Hi,
I'm currently working on a kernel input driver for a pointing device that need
runtime
calibration.
The xorg evdev driver correctly detect and use it, my calibration app update
evdev's
absinfo with a :
prop = XInternAtom(display, "Evdev Axis Calibration", False);
...
XIChangeProperty(display, device_id, prop, XA_INTEGER, 32, PropModeReplace,
data.c, 4);
and the pointing device works like a charm.
But : when a do a
xinput --list --long 11
after calibration, i get that :
USB eBeam 2650:1311 id=11 [slave pointer (2)]
Reporting 3 classes:
Class originated from: 11
Buttons supported: 5
Button labels: Button Left Button Middle Button Right Button
Wheel Up Button Wheel Down
Button state:
Class originated from: 11
Detail for Valuator 0:
Label: Abs X
Range: 0.000000 - 65535.000000
Resolution: 0 units/m
Mode: absolute
Current value: 22032.000000
Class originated from: 11
Detail for Valuator 1:
Label: Abs Y
Range: 0.000000 - 65535.000000
Resolution: 0 units/m
Mode: absolute
Current value: 43433.000000
See the Range ? that's still the data gathered when the device is probed,
without calibration.
After calibration, the ranges should be 0 - screen-width and 0 - screen-height
(the kernel
driver does the maths).
This isn't a show-stopper (device is working) but i suspect that the input
layer play
ping-pong with the valuators :
driver/evdev -- xinput -- screen
0-1279 -> 0-65535 -> 0-1279
So, is there a way to adapt xinput's valuators, or even to entirely disable
scaling, as the
kernel driver will throw valid screen coordinates ?
--
Yann Cantin
A4FEB47F
--
_______________________________________________
[email protected]: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: [email protected]