xinput-calibrator XChangeDeviceProperty calls ignored

Peter Hutterer peter.hutterer at who-t.net
Wed Feb 10 15:18:47 PST 2010


On Wed, Feb 10, 2010 at 05:28:57PM +0100, Marco Cavallini wrote:
> Simon Thum ha scritto, Il 27/01/2010 13:29:
> > Marco Cavallini wrote:
> >> Simon Thum ha scritto, Il 27/01/2010 11:47:
> >>> Marco Cavallini wrote:
> >>>> Hi,
> >>>> I'm testing and debugging xinput-calibrator and looks like
> >>>> CalibratorEvdev::do_set_prop - XChangeDeviceProperty calls are ignored
> >>>> by Xorg.
> >>> Properties may reject attempts to change their value (to specific
> >>> values). Also, if the properties don't exist before, you may be creating
> >>> them but they don't have any actual meaning.
> >> Simon,
> >> If I see the following properties, should I be able to set an of them?
> > Yeah you should. But it's important to get the value and type right.
> > Citing from evdev-properties.h:
> > /* Run-time calibration */
> > /* CARD32, 4 values [minx, maxx, miny, maxy], or no values for unset */
> > #define EVDEV_PROP_CALIBRATION "Evdev Axis Calibration"
> > 
> > (you should have this file if you compiled evdev or have a *-dev package)
> > 
> > You ought to be getting errors if it doesn't work:
> > 
> > simon at simons ~ $ xinput --set-prop 6 "Device Accel Constant Deceleration" -1
> > X Error of failed request:  BadValue (integer parameter out of range for
> > operation)
> >   Major opcode of failed request:  139 (XInputExtension)
> >   Minor opcode of failed request:  57 ()
> >   Value in failed request:  0xf3
> >   Serial number of failed request:  17
> >   Current serial number in output stream:  18
> > 
> 
> My calls are successfull and I get back any error.
> I still have no effects on XChangeDeviceProperty calls.
> 
> Anybody could point me where to continue digging?
> For instance, where is XChangeDeviceProperty?

xserver/Xi/xiproperty.c, ProcXChangeDeviceProperty, or if you're using
server 1.7 xinput will likely use XIChangeProperty. that's in the same file,
but called ProcXIChangeProperty.

that again calls into the property handler, for acceleration properties that
is one of the AccelSet*Property calls in xserver/dix/ptrveloc.c. 
for evdev properties, it's EvdevSetProperty in xf86-input-evdev/src/evdev.c.
That's likely where the Error is coming from.

Can you provide some more detail though, it might be a trivial fix once I
can reproduce it. What's the URL for the calibrator program and what
property are you trying to set?

> How it manage the raw coordinates coming from /dev/input/touchscreen0 ?

not quite sure what you mean there.
 
Cheers,
  Peter



More information about the xorg mailing list