libinput/tools
Peter Hutterer 6583f4bb53 pad: Add a new API for modes and mode groups
Move mode control to libinput. This reduces some flexibility on what we can do
with modes but makes it a lot easier for anyone to implement modes correctly
and have the LEDs apply appropriately, etc. Let's go with the option to make
the 95% use-case easy. Note: whether the mode is actually used is up to the
caller, e.g.  under Windows and OS X the mode only applies to the
rings/strips, not the buttons.

A tablet pad has 1 or more mode groups, all buttons/ring/strips are assigned
to a mode group. That group has a numeric mode index and is hooked to the
LEDs. libinput will switch the LEDs accordingly.

The mode group is a separate object. This allows for better APIs when it comes
to:
* checking whether a button/ring/strip is part of a mode group
* checking whether a button will trigger a mode transition

and in the future potentially:
* checking which mode transition will happen
* setting which button should change the mode transition
* changing what type of mode transition should happen.
* moving a button from one mode group to the other

This patch adds the basic scaffolding, without any real implementation.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Proofread-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-06-22 11:57:07 +10:00
..
.gitignore tools: ship the event-debug tool as an installed libinput-debug-events tool 2015-04-30 19:20:49 +10:00
event-debug.c pad: Add a new API for modes and mode groups 2016-06-22 11:57:07 +10:00
event-gui.c pad: Add a new API for modes and mode groups 2016-06-22 11:57:07 +10:00
libinput-debug-events.man tools: ship the event-debug tool as an installed libinput-debug-events tool 2015-04-30 19:20:49 +10:00
libinput-list-devices.c tools: print button/ring/strip info for pads 2016-06-02 12:42:19 +10:00
libinput-list-devices.man tools: fix typo in man page 2015-04-30 16:44:43 +10:00
make-ptraccel-graphs.sh tools: add shell script for making the pointer acceleration graphs in the docs 2015-08-12 14:06:00 +10:00
Makefile.am tools: add shell script for making the pointer acceleration graphs in the docs 2015-08-12 14:06:00 +10:00
ptraccel-debug.c tools: allow filter-switching in ptraccel-debug 2015-08-12 14:06:00 +10:00
publish-doc tools: update the doc publish tool to take a subdir 2016-04-12 07:56:52 +10:00
shared.c touchpad: add a config option to disable tap-and-drag 2016-01-27 10:03:28 +10:00
shared.h touchpad: add a config option to disable tap-and-drag 2016-01-27 10:03:28 +10:00