Re: evdev interface question: ABS_X without ABS_Y?
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2011-10-27 05:44:17
Hi Dwayne, On Wed, Oct 26, 2011 at 05:10:23PM -0400, Dwayne Litzenberger wrote:
I have a quick question about the /dev/input/eventX interface with userspace. Let's say I have a touchscreen, and I move my finger to (200,100). I'll see something line this (simplified): EV_ABS ABS_X 200 EV_ABS ABS_Y 100 EV_SYN Next, let's say I see something like this: EV_ABS ABS_Y 90 EV_SYN What is the meaning of that, from the perspective of userspace? I see two possibilities. Either: 1. It's a move to (200,90), or 2. It's a move to (0,90) Which is the correct interpretation?
Door #1.
Is this documented anywhere?
From Documentation/input/event-codes.txt:
"The input protocol is a stateful protocol. Events are emitted only when values of event codes have changed. However, the state is maintained within the Linux input subsystem; drivers do not need to maintain the state and may attempt to emit unchanged values without harm. Userspace may obtain the current state of event code values using the EVIOCG* ioctls defined in linux/input.h."
Apparently, the usbhid driver is generating events that imply #1, but xserver-xorg-input-evdev interprets these according to #2. I'm trying to figure out what needs to be patched. :)
xserver-xorg-input-evdev. Thanks. -- Dmitry