On 03/18/2012 11:39 PM, Henrik Rydberg wrote: >> The proper way to send events through evdev when there are two different >> "tools" (pen and touch) is to use BTN_TOOL_*. In your example above, it >> would be: >> >> # finger touch (Note lack of tool, it's assumed to be finger) >> ABS_MT_SLOT 0 >> ABS_MT_TRACKING_ID 42 >> ABS_MT_POSITION_X finger_x >> ABS_MT_POSITION_Y finger_y >> SYN_MT_REPORT >> ABS_X finger_x >> ABS_Y finger_y >> SYN_REPORT >> # finger release >> ABS_MT_SLOT 0 >> ABS_MT_TRACKING_ID -1 >> SYN_REPORT >> # pen motion >> BTN_TOOL_PEN 1 >> ABS_X pen_x >> ABS_Y pen_y >> SYN_REPORT >> # finger touch begin >> ABS_MT_SLOT 0 >> ABS_MT_TRACKING_ID 42 >> ABS_MT_POSITION_X finger_x >> ABS_MT_POSITION_Y finger_y >> SYN_MT_REPORT >> BTN_TOOL_PEN 0 >> ABS_X finger_x >> ABS_Y finger_y >> SYN_REPORT >> etc. >> >> Then, xf86-input-evdev ignores ABS_{X,Y} events when there is no >> BTN_TOOL_* active. > > On the subject how pen and touch could work going forward, the MT > protocol is prepared to deal with tool type per slot. It makes a lot > of sense to move away from the above example, towards a fully parallel > representation of pen and touch data. Today's multitouch interfaces > are really tremendously restrictive; I am looking forward to the day > when one does not need to worry about touching or resting on a surface > in order to operate it. > > In short, why not make xf86-input-evdev aware of MT_TOOL_TYPE? There's no reason it can't be made aware. The question is whether you want to create separate X input devices, or annotate events with the tool type. No one has really bothered looking into it outside of wacom devices, but my understanding is that wacom is a big special cased situation due to historical reasons anyway. If we merely annotate events by setting valuator values, that's a trivial change that may even be already supported out of the box. Splitting the evdev device into multiple X input devices is also possible, since xf86-input-wacom does it, but would require a large refactoring of xf86-input-evdev. -- Chase -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html