Thread (3 messages) flat view 3 messages, 2 authors, 2011-10-27

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help