[RFC XI 2.1 - xf86-input-evdev 2/3] Add experimental XI 2.1 multitouch support

Chase Douglas chase.douglas at canonical.com
Fri Nov 19 07:58:20 PST 2010


On 11/19/2010 01:29 AM, Peter Hutterer wrote:
> On Fri, Nov 12, 2010 at 05:35:12PM -0500, Chase Douglas wrote:
>> From: Chase Douglas <chase.douglas at ubuntu.com>
>>
>> This multitouch addition only supports slotted MT evdev protocol
>> devices. Support must be enabled at configure time using
>> --enable-multitouch. It is built on the masked valuator support in
>> XInput ABI 12, so do not attempt to build it for an earlier ABI.
>>
>> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
>> ---
>>  configure.ac |   11 ++++
>>  src/evdev.c  |  159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
>>  src/evdev.h  |    5 ++
>>  3 files changed, 167 insertions(+), 8 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 07cd64e..cc9e721 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -47,6 +47,17 @@ XORG_DEFAULT_OPTIONS
>>  # Obtain compiler/linker options from server and required extensions
>>  PKG_CHECK_MODULES(XORG, xorg-server xproto inputproto)
>>  
>> +# Whether to include support for experimental XI 2.1 multitouch
>> +AC_ARG_ENABLE(multitouch,
>> +              AC_HELP_STRING([--enable-multitouch],
>> +                             [Enable experimental XI 2.1 multitouch support [[default: disabled]]]),
>> +              [MULTITOUCH=$enableval],
>> +              [MULTITOUCH=no])
>> +
>> +if test "x$MULTITOUCH" = xyes; then
>> +        AC_DEFINE(MULTITOUCH, 1, [Enable experimental multitouch code])
>> +fi
>> +
> 
> keep it on a branch and skip this bit.

Ok.

> I'll give a high-level review of these bits only because with the
> requirements for masked valuators the ifdef stuff goes away and the next
> patch will look quite different anyway.
> 
> the touch event processing skips the event queue completely. I don't think
> that's a good idea and we've had problems with this in the past. In the past
> this was because we'd post button events before motion events if they were
> within the same sync window. I think this here has the danger to suffer from
> the same issue, even though the current MT protocol makes this less of an
> issue.
> 
> so I'd say queue them up like other events, then send them when the EV_SYN
> comes around. this way the driver keeps the clean split between
> queueing/processing.

Ok, I can try that.

> on-the-side question that I just thought of: will having
> XIDirectTouch/XIDependentTouch on a device be equally limiting as having a
> single axis mode in XI 1.x?

Can you provide more detail? I don't see the parallel yet.

If you're thinking that each touch axis valuator could have it's own
direct/dependent mode, I don't really understand what that would mean.

Thanks,

-- Chase


More information about the xorg-devel mailing list