ok, after a few search on the subject (about MPX, and I found a thread on the mailing list of xorg "Multitouch support, step one"), things are not very well defined, yet.
On the other hand, the sample output of a multitouch device given to me seems to track a finger as long as it touches the device.
So, I will do it like that, for now :
- Define 2 evaluators per supported touch on the device
- the "first touch" (first subgroup of packet in a row) will be standard event (like today)
- any other touch will use corresponding valuators, and for button, it will send a button code along the position of the corresponding valuator, but I don't know which code to send, so there will be 2 strategy : always send a "left" button event, but with different evaluator, OR send another button code, with a customizable offset (in order to skip right, middle button, wheel, etc...)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
after reading the previous links, it appears I need to do the following :
- write a "subdevice" driver
- create as much of virtual devices using said "subdevice" driver as the number of possible touch. Each subdevice is assigned an order, and touch #n is send as an event to subdevice #(n -1), if n > 1 (n=1 is viewed as the normal touch)
- each subdevice, on receiving the event, send a real event. (post button/post motion)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ok, after a few search on the subject (about MPX, and I found a thread on the mailing list of xorg "Multitouch support, step one"), things are not very well defined, yet.
On the other hand, the sample output of a multitouch device given to me seems to track a finger as long as it touches the device.
So, I will do it like that, for now :
- Define 2 evaluators per supported touch on the device
- the "first touch" (first subgroup of packet in a row) will be standard event (like today)
- any other touch will use corresponding valuators, and for button, it will send a button code along the position of the corresponding valuator, but I don't know which code to send, so there will be 2 strategy : always send a "left" button event, but with different evaluator, OR send another button code, with a customizable offset (in order to skip right, middle button, wheel, etc...)
see also this page :
http://lii-enac.fr/en/projects/shareit/xorg-howto.html
after reading the previous links, it appears I need to do the following :
- write a "subdevice" driver
- create as much of virtual devices using said "subdevice" driver as the number of possible touch. Each subdevice is assigned an order, and touch #n is send as an event to subdevice #(n -1), if n > 1 (n=1 is viewed as the normal touch)
- each subdevice, on receiving the event, send a real event. (post button/post motion)