Skip to content
  • Peter Hutterer's avatar
    pad: Add a new API for modes and mode groups · 6583f4bb
    Peter Hutterer authored
    
    
    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: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    Proofread-by: default avatarYong Bakos <ybakos@humanoriented.com>
    Reviewed-by: default avatarJason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: default avatarCarlos Garnacho <carlosg@gnome.org>
    6583f4bb