diff --git a/src/hidpp-generic.c b/src/hidpp-generic.c index ae4ff759..a562ada2 100644 --- a/src/hidpp-generic.c +++ b/src/hidpp-generic.c @@ -57,24 +57,27 @@ struct hidpp20_1b04_action_mapping { struct ratbag_button_action action; }; +#define BUTTON_ACTION_MAPPING(v_, n_, act_) \ + { v_, n_, act_ } + static const struct hidpp20_1b04_action_mapping hidpp20_1b04_logical_mapping[] = { - { 0, "None" , BUTTON_ACTION_NONE }, - { 1, "Volume Up" , BUTTON_ACTION_KEY(KEY_VOLUMEUP) }, - { 2, "Volume Down" , BUTTON_ACTION_KEY(KEY_VOLUMEDOWN) }, - { 3, "Mute" , BUTTON_ACTION_KEY(KEY_MUTE) }, - { 4, "Play/Pause" , BUTTON_ACTION_KEY(KEY_PLAYPAUSE) }, - { 5, "Next" , BUTTON_ACTION_KEY(KEY_NEXTSONG) }, - { 6, "Previous" , BUTTON_ACTION_KEY(KEY_PREVIOUSSONG) }, - { 7, "Stop" , BUTTON_ACTION_KEY(KEY_STOPCD) }, - { 80, "Left" , BUTTON_ACTION_BUTTON(1) }, - { 81, "Right" , BUTTON_ACTION_BUTTON(2) }, - { 82, "Middle" , BUTTON_ACTION_BUTTON(3) }, - { 83, "Back" , BUTTON_ACTION_BUTTON(4) }, - { 86, "Forward" , BUTTON_ACTION_BUTTON(5) }, - { 195, "AppSwitchGesture" , BUTTON_ACTION_NONE }, - { 196, "SmartShift" , BUTTON_ACTION_SPECIAL(RATBAG_BUTTON_ACTION_SPECIAL_RATCHET_MODE_SWITCH) }, - { 315, "LedToggle" , BUTTON_ACTION_NONE }, + BUTTON_ACTION_MAPPING(0, "None" , BUTTON_ACTION_NONE), + BUTTON_ACTION_MAPPING(1, "Volume Up" , BUTTON_ACTION_KEY(KEY_VOLUMEUP)), + BUTTON_ACTION_MAPPING(2, "Volume Down" , BUTTON_ACTION_KEY(KEY_VOLUMEDOWN)), + BUTTON_ACTION_MAPPING(3, "Mute" , BUTTON_ACTION_KEY(KEY_MUTE)), + BUTTON_ACTION_MAPPING(4, "Play/Pause" , BUTTON_ACTION_KEY(KEY_PLAYPAUSE)), + BUTTON_ACTION_MAPPING(5, "Next" , BUTTON_ACTION_KEY(KEY_NEXTSONG)), + BUTTON_ACTION_MAPPING(6, "Previous" , BUTTON_ACTION_KEY(KEY_PREVIOUSSONG)), + BUTTON_ACTION_MAPPING(7, "Stop" , BUTTON_ACTION_KEY(KEY_STOPCD)), + BUTTON_ACTION_MAPPING(80, "Left" , BUTTON_ACTION_BUTTON(1)), + BUTTON_ACTION_MAPPING(81, "Right" , BUTTON_ACTION_BUTTON(2)), + BUTTON_ACTION_MAPPING(82, "Middle" , BUTTON_ACTION_BUTTON(3)), + BUTTON_ACTION_MAPPING(83, "Back" , BUTTON_ACTION_BUTTON(4)), + BUTTON_ACTION_MAPPING(86, "Forward" , BUTTON_ACTION_BUTTON(5)), + BUTTON_ACTION_MAPPING(195, "AppSwitchGesture" , BUTTON_ACTION_NONE), + BUTTON_ACTION_MAPPING(196, "SmartShift" , BUTTON_ACTION_SPECIAL(RATBAG_BUTTON_ACTION_SPECIAL_RATCHET_MODE_SWITCH)), + BUTTON_ACTION_MAPPING(315, "LedToggle" , BUTTON_ACTION_NONE), }; struct hidpp20_1b04_physical_mapping { @@ -83,26 +86,29 @@ struct hidpp20_1b04_physical_mapping { enum ratbag_button_type type; }; +#define BUTTON_PHYS_MAPPING(v_, n_, t_) \ + { v_, n_, t_ } + static const struct hidpp20_1b04_physical_mapping hidpp20_1b04_physical_mapping[] = { - { 0, "None" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 1, "Volume Up" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 2, "Volume Down" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 3, "Mute" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 4, "Play/Pause" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 5, "Next" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 6, "Previous" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 7, "Stop" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 56, "Left Click" , RATBAG_BUTTON_TYPE_LEFT }, - { 57, "Right Click" , RATBAG_BUTTON_TYPE_RIGHT }, - { 58, "Middle Click" , RATBAG_BUTTON_TYPE_MIDDLE }, - { 59, "Wheel Side Click Left" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 60, "Back Click" , RATBAG_BUTTON_TYPE_SIDE }, - { 61, "Wheel Side Click Right" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 62, "Forward Click" , RATBAG_BUTTON_TYPE_EXTRA }, - { 156, "Gesture Button" , RATBAG_BUTTON_TYPE_UNKNOWN }, - { 157, "SmartShift" , RATBAG_BUTTON_TYPE_WHEEL_RATCHET_MODE_SHIFT }, - { 221, "LedToggle" , RATBAG_BUTTON_TYPE_UNKNOWN }, + BUTTON_PHYS_MAPPING(0, "None" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(1, "Volume Up" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(2, "Volume Down" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(3, "Mute" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(4, "Play/Pause" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(5, "Next" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(6, "Previous" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(7, "Stop" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(56, "Left Click" , RATBAG_BUTTON_TYPE_LEFT), + BUTTON_PHYS_MAPPING(57, "Right Click" , RATBAG_BUTTON_TYPE_RIGHT), + BUTTON_PHYS_MAPPING(58, "Middle Click" , RATBAG_BUTTON_TYPE_MIDDLE), + BUTTON_PHYS_MAPPING(59, "Wheel Side Click Left" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(60, "Back Click" , RATBAG_BUTTON_TYPE_SIDE), + BUTTON_PHYS_MAPPING(61, "Wheel Side Click Right", RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(62, "Forward Click" , RATBAG_BUTTON_TYPE_EXTRA), + BUTTON_PHYS_MAPPING(156, "Gesture Button" , RATBAG_BUTTON_TYPE_UNKNOWN), + BUTTON_PHYS_MAPPING(157, "SmartShift" , RATBAG_BUTTON_TYPE_WHEEL_RATCHET_MODE_SHIFT), + BUTTON_PHYS_MAPPING(221, "LedToggle" , RATBAG_BUTTON_TYPE_UNKNOWN), }; const struct ratbag_button_action *