[RFC] Multitouch support, step one

Ping Cheng pinglinux at gmail.com
Sun Mar 21 22:01:13 PDT 2010

2010/3/20 Ping Cheng <pinglinux at gmail.com>:
> 2010/3/20 Rafi Rubin <rafi at seas.upenn.edu>:
>>>> The reporting is always for the whole group, since the contacts are
>>>> interdependent. I do not see what argument stands because of this, nor the
>>>> rationale behind it. Could you clarify, please?
>>> If we consider to filter the data in the kernel, reporting ID from the
>>> kernel is unavoidable.  Otherwise we would have to either filter the
>>> whole group or report the whole group even if there is only one point
>>> in the group changed significantly.
>> Henrik expressed the assumption that the whole group would be transmitted
>> together.  I had some thoughts about keeping or not keeping ID, but I have
>> another idea.
>> Why don't we just report delta(ID).
> I might have mistaken the definition of tracking ID here.

After reading the Multi-touch (MT) Protocol again,  I think combining
ABS_MT_TRACKING_ID with ABS_MT_BLOB_ID resolves my ID issue. So, I
withdraw my support to add a software tracking ID in the kernel. I
think ABS_MT_BLOB_ID serves as the software tracking ID, if I don't
misunderstand the use of ABS_MT_BLOB_ID here.

But, I reserve the request for a contact count in the kernel until I
understand the definition of "the whole group".

Henrik, by "the whole group", do you mean:

1.      all the contacts/fingers on the screen/surface at a certain time, or
2.      all the touch points supported by the hardware, or
3.      all the contacts defined in a blob?

If it is case 1, it would be nice if we (X driver or contact driver in
your term :) know the total contacts the hardware support (if there is
a limit) and how many contacts we are getting;

if it is case 2, it would be nice if we know the total touches.
Reporting it only once in the kernel would be enough since it would be
a constant during its life time (my concern is we would need to repeat
the unchanged touches in this case);

if it is case 3, I think we could consider each blob as an
finger/touch group.  Then reporting the number of blob/fingers as well
as number of contacts in the blob would make sense too.

The Multi-touch (MT) Protocol might have already provided everything I
need. But I have to understand it to use it appropriately.

Thank you, Henrik.


More information about the xorg-devel mailing list