[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
* 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
* 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


More information about the wayland-devel mailing list