[PATCH libinput 00/23] Revised: Tablet support in libinput
Stephen Chandler Paul
thatslyude at gmail.com
Thu Jun 12 20:28:21 PDT 2014
Hello! I've done a ton of revisions and changes to the patches Carlos sent a little while ago to add tablet support to libinput. Feel free to let me know what you think.
* Tablet events are now in their own group of events.
* Tool update events are no longer emitted when the tool leaves proximity,
they have been replaced with a more specific
"LIBINPUT_EVENT_TABLET_PROXIMITY_OUT" event. This is similar to how X
handles tools going out of proximity.
* Normalization is now done for both the tilt axes and the pressure axes.
Pressure is normalized from 0 to 1, and tilt is normalized from *1 to 1. All
of the other axes are left as-is.
* Axis changes are now compressed into a single TABLET_AXIS_UPDATE event. The
event contains a bitmask of the changed axes that can be accessed with
libinput_event_tablet_axis_has_changed(). These bitfields are internally
managed using modified versions of some of the bitfield helpers from
libevdev.
* During an axis update, the collected values of all of the axes are available
to the caller using libinput_event_tablet_axis_get_value(), regardless of
whether or not they actually updated.
* Tools are now abstracted by libinput as objects. Each tool object contains
the tool type and the serial number of the tool. These can be retrieved with
libinput_tool_get_serial() and libinput_tool_get_type().
* Tools now have ref counts and are stored internally in a list. By default,
every tool is destroyed at the end of an event, but if the caller wishes
they can increment the reference count of the tool. When this happens, the
tool is kept in the list and whenever that tool comes into proximity of the
tablet again the same object whose ref count was incremented is returned by
libinput.
* Other miscellanious fixes and additions
* Style fixes
Carlos Garnacho (6):
Add LIBINPUT_DEVICE_CAP_TABLET libinput_device_capability value
test: Add infrastructure for testing tablet events.
test: Add Wacom Bamboo 16FG 4x5 Pen device definition
test: Add Wacom Cintiq 12WX device definition
test: Add Wacom Intuos5 touch M Pen device definition
test: Add Wacom ISDv4 E6 Pen device definition
Stephen Chandler Paul (17):
evdev: Add basic support for tablet devices
tools: handle TABLET_EVENT_AXIS in event-debug
Add the libinput_tool object
Emit LIBINPUT_TABLET_EVENT_TOOL_UPDATE events on tool changes
tools: handle LIBINPUT_TABLET_EVENT_TOOL_UPDATE in event-debug
Emit LIBINPUT_EVENT_TABLET_PROXIMITY_OUT when tool leaves proximity
tools: Handle LIBINPUT_EVENT_TABLET_PROXIMITY_OUT in event-debug
tablet: Handle button-events
tools: handle tablet button events in event-debug
tablet: Report and normalize distance, pressure, and tilt axes
Sanitize distance and pressure axes before reporting their values
tools: Handle pressure, tilt, and distance in event-debug
test: Add litest_assert_double_*() macros
test: Add proximity-in-out and proximity-out-clear-buttons tests
test: Add motion event test for tablets
test: Add bad-distance-events test
test: Add tests for normalization
src/Makefile.am | 2 +
src/evdev-tablet.c | 469 +++++++++++++++++++++++++++++++++++++
src/evdev-tablet.h | 93 ++++++++
src/evdev.c | 10 +
src/evdev.h | 6 +-
src/libinput-private.h | 27 +++
src/libinput-util.h | 2 +
src/libinput.c | 256 ++++++++++++++++++++
src/libinput.h | 292 ++++++++++++++++++++++-
test/Makefile.am | 10 +
test/litest-int.h | 8 +
test/litest-wacom-bamboo-tablet.c | 105 +++++++++
test/litest-wacom-cintiq-tablet.c | 136 +++++++++++
test/litest-wacom-intuos-tablet.c | 134 +++++++++++
test/litest-wacom-isdv4-tablet.c | 98 ++++++++
test/litest.c | 97 ++++++++
test/litest.h | 31 +++
test/tablet.c | 481 ++++++++++++++++++++++++++++++++++++++
tools/event-debug.c | 140 ++++++++++-
19 files changed, 2390 insertions(+), 7 deletions(-)
create mode 100644 src/evdev-tablet.c
create mode 100644 src/evdev-tablet.h
create mode 100644 test/litest-wacom-bamboo-tablet.c
create mode 100644 test/litest-wacom-cintiq-tablet.c
create mode 100644 test/litest-wacom-intuos-tablet.c
create mode 100644 test/litest-wacom-isdv4-tablet.c
create mode 100644 test/tablet.c
--
1.8.5.5
More information about the wayland-devel
mailing list