[PATCH evdev 0/3] Preliminary support of multitouch (rev4)

Chase Douglas chase.douglas at canonical.com
Thu Jun 17 08:51:34 PDT 2010

On Thu, 2010-06-17 at 12:16 +1000, Peter Hutterer wrote:
> On Thu, Jun 10, 2010 at 05:47:57PM +0200, Benjamin Tissoires wrote:
> > Even if there is an interesting thread concerning the use of multitouch on xorg-devel,
> > I still send the up-to-date patches to enable multitouch as valuators.
> > 
> > Changes since last time:
> > 
> > * Remove the detection of the maximum number of touches based on the tracking ID
> > * changes in comments
> Henrik, Rafi, others - any further comments on this? Patches look good to
> me, with a minor issue (see below) that can be fixed in a follow-up patch.

>From patch 2/3:

        --- a/src/evdev.c
        +++ b/src/evdev.c
        @@ -339,6 +344,8 @@ EvdevQueueButtonClicks(InputInfoPtr pInfo,
        int button, int count)
         #define ABS_X_VALUE 0x1
         #define ABS_Y_VALUE 0x2
         #define ABS_VALUE   0x4
        +#define ABS_MT_X_VALUE   0x8
        +#define ABS_MT_Y_VALUE   0x16
          * Take the valuators and process them accordingly.
It looks like ABS_MT_Y_VALUE should be 0x10.

Overall this makes sense to me for devices where the MT data should be
attached to the cursor (i.e. like a magicmouse). How will this mesh with
direct input devices (or whatever mechanism is developed for multitouch
touchscreens)? It seems to me we will need to somehow tell the module
whether to pass the data as valuators or as DIDs, but not both. However,
that's an implementation detail that can be worked out later when we get
to it.

> Benjamin - I'm not sure exposing the tracking ID in a valuator is a good
> long-term solution. Does it provide any info that we do not already have by
> splitting the touchpoints into different valuators?

Why not expose the tracking ID? It's one less thing for the client to
worry about if it needs to track touches. Without the ID, clients would
have to implement their own tracking algorithms because they would just
get an array of touches. The same finger will be sent in a different
slot of the array on subsequent events, such as when a previous finger
is removed.

-- Chase

More information about the xorg-devel mailing list