Commit graph

77 commits

Author SHA1 Message Date
Peter Hutterer
72a9f3ce02 Add documentation about the test suite
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-05 09:38:14 +10:00
Peter Hutterer
1065231148 Some minor documentation fixes
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-04 11:37:20 +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
bafd498b67 Add a simple example to the documentation
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-03 15:53:50 +10:00
Peter Hutterer
25a0a65d7f Indent some documentation better
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-03 15:53:50 +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
c22dd794bf Add more documentation to stop complaints about undocumented members
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-07-01 08:33:02 +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
234bf1faa9 Expand main documentation to explain libevdev a bit more
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-28 09:31:55 +10:00
Peter Hutterer
7bf7b1d7c9 Improve documentation to libevdev_next_event
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 14:21:55 +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
2da68a74e6 Fix distcheck
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
70c17eac01 Don't crash peeking at a zero-sized queue
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
960dc91844 Documentation fixes
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
479e16725d Use doxygen instead of man pages
Doxygen is bad for man pages, but having an online API documentation
is better and easier to maintain.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
90697197df Fix stray code tag in html
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
e1d599f4c9 Fix queue_num_free_elements
Return 0 for an unallocated queue, and return the actual number of events (rather than one too
little).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
7889b467f7 Don't return the next element if the queue is full
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
89fabb4e57 Don't allow a queue size of 0.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
9d04f1df84 Use a size_t, not an int, where appropriate
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-06-27 10:41:54 +10:00
Peter Hutterer
b06f6e9d41 Hook up gcov
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
52208c83f2 Handle EV_REP events in event-names.h
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
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
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
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