Commit graph

48 commits

Author SHA1 Message Date
Peter Hutterer
31961e8d59 Use a macro for type_to_mask
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-26 17:47:28 +10:00
Peter Hutterer
6019083a1a Add function to get max value for a given ev type
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-26 17:47:28 +10:00
Peter Hutterer
03fa066aec Default to a max of -1 for undefined EV_foo bits
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-26 17:47:28 +10:00
Peter Hutterer
dc27c627a7 Fix type_to_mask to return -1
EV_SYN doesn't have a max, so 0 is not enough.

returning 0 on failure is a bad idea, as mask is unset.
2013-06-26 17:47:28 +10:00
Peter Hutterer
645d5d3a64 test: add infrastructure for uinput device tests
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-26 17:47:24 +10:00
Peter Hutterer
0e9ef8a22d Add functions to enable axis on the device in the kernel
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 20:17:27 +10:00
Peter Hutterer
aff1db36da Inline the type-to-mask helpers
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 15:55:20 +10:00
Peter Hutterer
f65a1932c1 Move utility functions to a separate header
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 15:46:03 +10:00
Peter Hutterer
57ba888d43 Add a few includes the libevdev-int.h needs
These were hidden due to the include order from the .c files, but really,
libevdev-int should include them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 15:44:51 +10:00
Peter Hutterer
a7c5ae50f4 Protect against NULL device on log handler
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 14:53:30 +10:00
Peter Hutterer
7c860d6002 Set up a test harness
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:33 +10:00
Peter Hutterer
c92f81b648 Blacklist some key names that resolve to other names
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:33 +10:00
Peter Hutterer
b3c661d397 Switch tools to use libevdev_get_event_*_name interface
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:33 +10:00
Peter Hutterer
91e95d2ff4 Expose API for retrieving event names
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
d029e6ddbf Add man page for libevdev_get_event_value and friends
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
fe34f7cff7 Move libevdev-events over to a tools directory
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
ea705612e1 Merge libevdev-print and libevdev-events into one binary
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
2159a7b154 test: drop unused function print_code_bits
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
a3f89c647d Drop requirement on ffi - copy/paste leftover
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
c19463eff5 Allow libevdev_free on a NULL pointer.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
954fc8a70a Include stdarg for va_list.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-04 11:39:32 +10:00
Peter Hutterer
999c89083e Skip over ABS_MT_SLOT when syncing MT axis values
The slot event is already on the queue.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 16:36:34 +10:00
Peter Hutterer
b01c94a762 Fix invalid abs_info read
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 16:36:10 +10:00
Peter Hutterer
1927b2024f Fill in the last event time for synced events
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 16:20:35 +10:00
Peter Hutterer
bfc41a9ab9 Update README
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 15:25:15 +10:00
Peter Hutterer
46b829a4f2 Let the name be dynamically allocated
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 15:25:15 +10:00
Peter Hutterer
4318b73549 Expose phys/uniq to the caller
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 15:25:13 +10:00
Peter Hutterer
a98c9b3bee Export version fields as well
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 14:15:16 +10:00
Peter Hutterer
e8e4bc37c7 Add man-pages for the current interface
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 14:15:14 +10:00
Peter Hutterer
ba90eab419 Rename pid/vid to product-id and vendor-id
Slightly more expressive and it's not that painful to type.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 14:09:27 +10:00
Peter Hutterer
0797c0035b Add a FIXME for lack of O_NONBLOCK
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 14:09:27 +10:00
Peter Hutterer
897dfba2ef Add a fixme: if we're dropping sync event, libedev loses state info too
If a client doesn't care about syncing that's one thing, but
libevdev functions still need to return the right _current_ (i.e. synced)
value.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 14:09:27 +10:00
Peter Hutterer
20c4c73adf Don't allow re-setting the fd
If a caller needs to re-init a device, libevdev_new_from_fd() is a better
choice.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-03 14:09:25 +10:00
Peter Hutterer
27528b9668 Change libevdev_grab to take an enum
Enum values fo 3 and 4 to avoid callers using true/false values for grabbing
and ungrabbing. If the evdev mute ioctl is merged, we can extend this
without having to worry about breaking callers.

[1] http://lwn.net/Articles/476830/

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-31 15:24:58 +10:00
Peter Hutterer
cfcfa4c159 gitignore: Ignore tarballs
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-31 15:24:58 +10:00
Peter Hutterer
9dee4db9d7 Split libevdev_new() into _new and _new_from_fd()
libevdev_new() can only fail on allocation failures, but with an fd the
failure options are more. Split into a new function that can return an error
code.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-31 15:24:58 +10:00
Peter Hutterer
0867f2f10a Free the event queue on cleanup.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-31 15:24:39 +10:00
Peter Hutterer
8bdd0639a6 Check for allocation failure in libevdev_new()
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-31 15:22:50 +10:00
Peter Hutterer
05ba468a27 Rename ER_SYNC flag to LIBEVDEV_READ_SYNC
ER dated to an earlier version of this library called libevdev_read.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 14:05:01 +10:00
Peter Hutterer
ee054e9cf9 Add a function to retrieve the current slot
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 14:02:27 +10:00
Peter Hutterer
4ae4f24ef7 Update the MT state properly
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 13:58:45 +10:00
Peter Hutterer
3e22ef86ab If a client doesn't sync when it should, drop all sync events
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 13:37:44 +10:00
Peter Hutterer
ec093aa398 After a SYN_DROPPED, drop all events in the queue
Ideally, we could sync by pre-pending all the sync events and then pretend
nothing happened but our queue is too small and likely too full for any
extra events. So drop all events, then add the sync events to the queue.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 13:37:44 +10:00
Peter Hutterer
549f0f0bcd Abstract the event queue away
Provide a couple of handler functions to avoid erroneous queue updates. This
will make it easier if we need to swap queue implementation later.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 13:37:43 +10:00
Peter Hutterer
f3d94ecfd7 Drop the callback interface, replace with libevdev_next_event
Callbacks looked good on paper, but synaptics ran into an issue already that
it just couldn't easily pass around the state needed in the actual event
processing function.

Replace with a new interface that only returns the next event (still reading
more off the fd while doing so).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 13:37:25 +10:00
Peter Hutterer
e19994c34c Add log func handling
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 13:25:58 +10:00
Peter Hutterer
8034fdd0d7 Fix MT slot index handling
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-30 13:25:44 +10:00
Peter Hutterer
a3255d3ec7 libevdev is a library to handle evdev devices
Two main goals of this library:
- 'transparently' handle SYN_DROPPED events
- avoid errors in ioctl handling by providing a simpler interface.

Keeps a cached copy of the device for quick querying.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-05-29 15:33:21 +10:00