Does touchpads have buttons?

Søren Hauberg hauberg at gmail.com
Tue Sep 30 06:46:09 PDT 2008


2008/9/30 Peter Hutterer <peter.hutterer at who-t.net>:
> On Tue, Sep 30, 2008 at 03:14:17PM +0200, Søren Hauberg wrote:
>> My impression is that the ones in EvdevRec means something different.
>> The ones in the 'touchscreen' struct are the calibration parameters.
>> 'min_x' is the smallest x value that the hardware actually sends, and
>> similar for the other fields. So, I get x values in the range
>>
>>   [EvdevRec.touchscreen.min_x, EvdevRec.touchscreen.max_x]
>>
>> and I need to transform these linearly into the range
>>
>>   [EvdevRec.min_x, EvdevRec.max_x]
>
> min/max is read from the kernel at startup. So you mean there's a difference
> in the axis range the kernel reports and the actual value range in the events?
> Does the kernel report axis ranges at all?

To be honest I don't really know these things (I've had the 'pleasure'
of working with this hardware for a very short period of time -- and
my background is Image Processing, not hardware stuff). But from what
I understand, then yes, there is a difference in what the kernel
reports, and what the hardware actually sends. This is the reason we
need calibration. If we knew the actual range of the hardware, then I
don't think we would need calibration.

>> > +    if (pEvdev->flags & EVDEV_TOUCHSCREEN)
>> > +        EvdevInitTouchscreen(pInfo);
>> >
>> > I trust that'll disappear from the final patch.
>>
>> Why? (remember, I'm an X-newbie) I need to initialize the device to
>> get parameters. How would you like me to do this?
>
> all the parameters in InitTouchscreen were hardcoded. Just move what you have
> to into EvdevPreInit (but with the invert and swap culling there is only
> min/max left anyway). Get it from the options there (xf86SetIntOption(...) for
> example).

Okay, will do.

Søren



More information about the xorg mailing list