Re: [PATCH] input: Add a detailed multi-touch finger data report protocol

Henrik Rydberg
2008-11-21T14:44:59Z

Dmitry,

My patch is all wrong. It would certainly benefit from using the
EV_SYN/SYN_MT_REPORT, but the defuzz mechanism of the EV_ABS class
simply will not work when sending data for several different fingers
using the same event.

I can see two clear alternatives: either add a new event class, EV_MT,
which sends all data without trying to limit the bandwidth, or forget
about the whole serial-finger-data idea and expand the current EV_ABS
class with an array of MT finger data [1]. I would very much appreciate
your input on this. Maybe there is a third option.

Cheers,
Henrik

[1] An example of a straight-forward addition of EV_ABS/ABS_MT events:

#define ABS_MT_FINGER_CNT 10
#define ABS_MT_PROPERTY_CNT 12

#define ABS_MT_FINGER_START 0x30
#define ABS_MT_TOUCH(x) (ABS_MT_FINGER_START + 0 * ABS_MT_FINGER_CNT + x)
#define ABS_MT_WIDTH(x) (ABS_MT_FINGER_START + 1 * ABS_MT_FINGER_CNT + x)
...
#define ABS_MT_FINGER_END 0xa8 /* = ABS_MT_FINGER_START + ABS_MT_PROPERTY_CNT * ABS_MT_FINGER_CNT */