[RFC] Multitouch support, step one

Carsten Haitzler (The Rasterman) raster at rasterman.com
Tue Mar 16 18:48:40 PDT 2010


On Mon, 15 Mar 2010 12:55:11 +0100 Benjamin Tissoires <tissoire at cena.fr> said:

> >>> XI2 allows devices to change at runtime. Hence a device may add or remove
> >>> valuators on-the-fly as touchpoints appear and disappear. There is a
> >>> chance of a race condition here. If a driver decides to add/remove
> >>> valuators together with the touchpoints, a client that skips events may
> >>> miss out. e.g. if a DeviceChanged event that removes an axis is followed
> >>> by one that adds an axis, a client may only take the second one as
> >>> current, thus thinking the axis was never removed. There is nothing in
> >>> the XI2 specs that prohibits this. Anyways, adding removing axes together
> >>> with touchpoints seems superfluous if we use the presence of an axis as
> >>> indicator for touch. Rather, I think a device should be set up with a
> >>> fixed number of valuators describing the default maximum number of
> >>> touchpoints. Additional ones can be added at runtime if necessary.
> >>
> >> agreed. i really see this having a fixed # of touch points - and not
> >> changing - unless you literally unplug/plug in new hardware that has
> >> different features (has more or less in the way of touch point support).
> 
> We can have a fixed number of touch point but send only the required 
> ones. So agreed too. The point is: how many touch point do we have. The 
> kernel knows how many touches a device can send as the data are not 
> serialized. But after that, we have no idea of how many touches the 
> device support.
> 
> With the mask system (or the packing of the touches at the beginning), 
> we will send only the right number of touches, but the description will 
> be very heavy. If each point has 5 axes (trackingID, x, y, width, height 
> for instance) we will have 50 valuators if we support 10 touches ;-) By 
> the way, it's not the point here.

this is what i'm concerned about. there are touch surfaces that now support 10
touches - AND they can give you not just x,y but radius (x and y) too. so 10
touch points -> 40 valuators. already blown the 36 valuator limit - and we
havent added yet more things like tracking id, separate pressure, angle etc.
properties. multiple devices with valuators for these touch params will handle
this. anyway - that's my concern for now.

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster at rasterman.com



More information about the xorg-devel mailing list