Commit graph

67 commits

Author SHA1 Message Date
Peter Hutterer
09a1f6e427 Simplify a bit state setter
set_bit_state does exactly what the previous if/else did.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-08-14 10:22:51 +10:00
Peter Hutterer
1caf4ecb10 Add setters for product/vendor/bustype/version
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:05 +10:00
Peter Hutterer
c9bc2a9e39 Rename ID getters to have a consistent naming scheme
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:05 +10:00
Peter Hutterer
a1f8a4ecb8 Replace ID getter implementation with a define
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:05 +10:00
Peter Hutterer
ff9d68af0c Provide setters for name, phys, uniq
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:05 +10:00
Peter Hutterer
699399f653 Add abs setters for changing a single value on an abs axis
Changing a single value on an abs axis is slightly more common than
having to enable that axis outright. Provide a set of accessors for
doing so.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:05 +10:00
Peter Hutterer
00528f27d5 Rename a few getters for consistency
Deprecated:
* libevdev_get_abs_min, libevdev_get_abs_max
* libevdev_get_input_prop_name

Will be removed in one or two versions.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:05 +10:00
Peter Hutterer
2ff65baf59 Replace libevdev_get_abs_* with macro-generated ones
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:04 +10:00
Peter Hutterer
7ee722ac6f Add setter for property bits
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:04 +10:00
Peter Hutterer
a28473cb62 Add libevdev_has_event_pending()
Returns non-zero if there are events avialable to be read.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-08-01 13:53:04 +10:00
Peter Hutterer
40493c3ff2 When enabling EV_REP, set the delay/period values
Just enabling EV_REP sets them to zero, but when enabling them directly,
a value is required.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-07-31 08:36:51 +10:00
Peter Hutterer
fc7c3b73a4 Make sure all EV_REP bits are set
Current code was skipping REP_PERIOD

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-07-31 08:36:51 +10:00
Peter Hutterer
6a1a0f4f0c Don't try setting an ABS code without data
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-07-29 14:05:21 +10:00
Peter Hutterer
b311e74d6e Allow enabling of EV_SYN codes
Has no effect, but allow it nonetheless to avoid superfluous
conditions in client code.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2013-07-29 14:05:21 +10:00
Peter Hutterer
e6f85ee1f1 Add two helper functions to check event type/code
These aren't really that useful since they're just one or two lines in
code, but it saves callers from accidentally misplacing braces, etc.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-04 10:07:44 +10:00
Peter Hutterer
1527c0056f Sync the initial slot state from the device
libevdev_get_slot_value() needs to return the correct value from the outset.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-03 15:53:50 +10:00
Peter Hutterer
2ba194f51b If we don't have anything to sync, don't add a EV_SYN event
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-02 14:02:58 +10:00
Peter Hutterer
c661e80ba0 Switch to a state machine to handle incomplete syncs
A caller may start syncing but switch back to normal half-way through the
sync. In that case, we need to drop all sync events and continue with
regular events only.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-02 14:02:55 +10:00
Peter Hutterer
f3a6b0c685 Add a flag for blocking read
Not all clients need nonblocking read, so add a flag to read
in blocking mode. In that mode, events are only read from the fd when
the queue is empty.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-02 10:59:01 +10:00
Peter Hutterer
a10fc33cd8 If the caller doesn't sync when it should, process all events regardless
libevdev needs to maintain the correct state of the device, even if the caller
decides to drop all delta events after a SYN_DROPPED.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-02 10:58:57 +10:00
Peter Hutterer
cca3cc95af Don't sync mt axes that don't exist
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-01 14:39:53 +10:00
Peter Hutterer
2ae4dc003a Don't deliver events that are filtered
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-01 10:10:25 +10:00
Peter Hutterer
0aa639b443 Disallow disabling of EV_SYN
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-01 10:10:25 +10:00
Peter Hutterer
5db85056a2 Require data be NULL when enabling a non-EV_ABS axis
In the future this may change, but for now enforce that callers use NULL.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-01 09:35:16 +10:00
Peter Hutterer
fe30bf7d96 Drop code for kernel-enabling bits
We can't enable axes on devices at runtime in the kernel, not even
for uinput devices. So this API can't work anyway, remove it before
someone thinks it does work.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-30 15:27:24 +10:00
Peter Hutterer
ea8c69c3e4 Change signature for kernel_enable_event_code to match enable_event_code
They do essentially the same thing, so the function signature should be null.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-29 18:29:41 +10:00
Peter Hutterer
5bdd321d43 Return -1 for failing to enable/disable bits
as the documentation says

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-29 17:52:06 +10:00
Peter Hutterer
6482f9ad2a Add a FIXME to log a warning message
When a sync is complete and the first event is a SYN_DROPPED again,
we have a problem. Log that so that the process can print a warning.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-28 12:51:16 +10:00
Peter Hutterer
bc285acd9a Add a flag for forcing a SYN_DROPPED event
uinput doesn't route a SYN_DROPPED, so we neeed to handle fds in
a rather complicated manner. For tests, avoid this and instead force
the library to sync if a specific flag is given.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-28 11:21:44 +10:00
Peter Hutterer
627b33cfe7 Require a flag for normal mode too
Makes the whole thing more explicit.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 14:20:03 +10:00
Peter Hutterer
4f56b51332 Init dev->grabbed as LIBEVDEV_UNGRAB
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:55 +10:00
Peter Hutterer
51244538b5 Replace a few malloc + strcpy with strdup
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
045c3f50a8 Don't return a NULL name, ever.
Even if the device is not yet initialized (which would be a caller bug, but still)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
b10444f82f Slots are now definitely zero-indexed, see recent kernel patch
doc: specify that ABS_MT_SLOT must have a minimum of 0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
eda87cdf91 Add an API to get the repeat values
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-26 17:47:28 +10:00
Peter Hutterer
016cc05381 Add the remaining ev bits
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
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
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
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
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
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
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
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
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
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