[ANNOUNCE] xf86-input-evdev 2.0.99.2

Peter Hutterer peter.hutterer at who-t.net
Mon Oct 27 19:00:55 PDT 2008


On Mon, Oct 27, 2008 at 09:20:55AM +0100, Søren Hauberg wrote:
> Yes, not knowing [a, b] at server startup is indeed the real problem.
> If we want to support run-time calibration, then it simply won't be
> possible to fix these parameters at startup. From what I understand,
> it is only the driver that supports changing parameters at run-time,
> so support for run-time calibration requires some sort of scaling in
> the driver, right?

correct.

> 2) Clutter: scaling in the driver requires more code in the driver.
> This will add clutter to a currently quite clean piece of code.

there's a xf86ScaleAxis call, so the clutter is negligable.

> My previous e-mail was just saying: if we can't get around
> double-scaling, then we can solve the precision issue by scaling
> directly to [e, f] in the driver. This doesn't solve any other issues,
> though...

some extreme numbers to illustrate the problem:
say, the kernel device announces axis 0-10 (for x and y) for the touchscreen,
evdev sets it up that way. Event comes in at 5/5, driver passes it on, server
scales it to 512/384 (on a 1024x768 screen).

now, through calibration you suddenly realise that you actually need an axis
range of 400-500 (for x and y). Your axis is still set up as 0-10 though and
you mustn't touch that. event comes in at 450/450, driver must scale to 5/5,
driver passes it on, server scales it to 512/384.

you can't directly scale to screen res, as that would not only bust Xi, but
also be clipped by the server, who expects the coordinates in the axis range.

Cheers,
  Peter



More information about the xorg mailing list