From f7ecf67cd37259d77c82552f9bbfb7905ab89d9e Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Wed, 19 Aug 2015 10:51:55 -0400 Subject: [PATCH] Add a bunch of buttons used by the Etekcity mice Signed-off-by: Benjamin Tissoires --- src/libratbag.h | 40 ++++++++++++++++++++++++++++++++++++++-- tools/ratbag-command.c | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 4 deletions(-) diff --git a/src/libratbag.h b/src/libratbag.h index 5cdb52fc..1d62e4aa 100644 --- a/src/libratbag.h +++ b/src/libratbag.h @@ -454,16 +454,52 @@ ratbag_get_button_by_index(struct ratbag_device *ratbag, unsigned int index); enum ratbag_button_type { RATBAG_BUTTON_TYPE_UNKNOWN = 0, + + /* mouse buttons */ RATBAG_BUTTON_TYPE_LEFT, RATBAG_BUTTON_TYPE_MIDDLE, RATBAG_BUTTON_TYPE_RIGHT, RATBAG_BUTTON_TYPE_THUMB, RATBAG_BUTTON_TYPE_THUMB2, - RATBAG_BUTTON_TYPE_RESOLUTION_UP, - RATBAG_BUTTON_TYPE_RESOLUTION_DOWN, RATBAG_BUTTON_TYPE_WHEEL_LEFT, RATBAG_BUTTON_TYPE_WHEEL_RIGHT, RATBAG_BUTTON_TYPE_WHEEL_CLICK, /* FIXME: same as middle click? */ + RATBAG_BUTTON_TYPE_WHEEL_UP, + RATBAG_BUTTON_TYPE_WHEEL_DOWN, + RATBAG_BUTTON_TYPE_EXTRA, + RATBAG_BUTTON_TYPE_SIDE, + + /* DPI switch */ + RATBAG_BUTTON_TYPE_RESOLUTION_CYCLE_UP, + RATBAG_BUTTON_TYPE_RESOLUTION_UP, + RATBAG_BUTTON_TYPE_RESOLUTION_DOWN, + + /* Profile */ + RATBAG_BUTTON_TYPE_PROFILE_CYCLE_UP, + RATBAG_BUTTON_TYPE_PROFILE_UP, + RATBAG_BUTTON_TYPE_PROFILE_DOWN, + + /* multimedia */ + RATBAG_BUTTON_TYPE_KEY_CONFIG, + RATBAG_BUTTON_TYPE_KEY_PREVIOUSSONG, + RATBAG_BUTTON_TYPE_KEY_NEXTSONG, + RATBAG_BUTTON_TYPE_KEY_PLAYPAUSE, + RATBAG_BUTTON_TYPE_KEY_STOPCD, + RATBAG_BUTTON_TYPE_KEY_MUTE, + RATBAG_BUTTON_TYPE_KEY_VOLUMEUP, + RATBAG_BUTTON_TYPE_KEY_VOLUMEDOWN, + + /* desktop */ + RATBAG_BUTTON_TYPE_KEY_CALC, + RATBAG_BUTTON_TYPE_KEY_MAIL, + RATBAG_BUTTON_TYPE_KEY_BOOKMARKS, + RATBAG_BUTTON_TYPE_KEY_FORWARD, + RATBAG_BUTTON_TYPE_KEY_BACK, + RATBAG_BUTTON_TYPE_KEY_STOP, + RATBAG_BUTTON_TYPE_KEY_FILE, + RATBAG_BUTTON_TYPE_KEY_REFRESH, + RATBAG_BUTTON_TYPE_KEY_HOMEPAGE, + RATBAG_BUTTON_TYPE_KEY_SEARCH, }; /** diff --git a/tools/ratbag-command.c b/tools/ratbag-command.c index 1a380577..1f5bf719 100644 --- a/tools/ratbag-command.c +++ b/tools/ratbag-command.c @@ -108,11 +108,45 @@ button_type_to_str(enum ratbag_button_type type) case RATBAG_BUTTON_TYPE_RIGHT: str = "right"; break; case RATBAG_BUTTON_TYPE_THUMB: str = "thumb"; break; case RATBAG_BUTTON_TYPE_THUMB2: str = "thumb2"; break; - case RATBAG_BUTTON_TYPE_RESOLUTION_UP: str = "resolution up"; break; - case RATBAG_BUTTON_TYPE_RESOLUTION_DOWN:str = "resolution down"; break; case RATBAG_BUTTON_TYPE_WHEEL_LEFT: str = "wheel left"; break; case RATBAG_BUTTON_TYPE_WHEEL_RIGHT: str = "wheel right"; break; case RATBAG_BUTTON_TYPE_WHEEL_CLICK: str = "wheel click"; break; + case RATBAG_BUTTON_TYPE_WHEEL_UP: str = "wheel up"; break; + case RATBAG_BUTTON_TYPE_WHEEL_DOWN: str = "wheel down"; break; + case RATBAG_BUTTON_TYPE_EXTRA: str = "extra (forward)"; break; + case RATBAG_BUTTON_TYPE_SIDE: str = "side (backward)"; break; + + /* DPI switch */ + case RATBAG_BUTTON_TYPE_RESOLUTION_CYCLE_UP: str = "resolution cycle up"; break; + case RATBAG_BUTTON_TYPE_RESOLUTION_UP: str = "resolution up"; break; + case RATBAG_BUTTON_TYPE_RESOLUTION_DOWN: str = "resolution down"; break; + + /* Profile */ + case RATBAG_BUTTON_TYPE_PROFILE_CYCLE_UP: str = "profile cycle up"; break; + case RATBAG_BUTTON_TYPE_PROFILE_UP: str = "profile up"; break; + case RATBAG_BUTTON_TYPE_PROFILE_DOWN: str = "profile down"; break; + + /* multimedia */ + case RATBAG_BUTTON_TYPE_KEY_CONFIG: str = "key config"; break; + case RATBAG_BUTTON_TYPE_KEY_PREVIOUSSONG: str = "key previous song"; break; + case RATBAG_BUTTON_TYPE_KEY_NEXTSONG: str = "key next song"; break; + case RATBAG_BUTTON_TYPE_KEY_PLAYPAUSE: str = "key play/pause"; break; + case RATBAG_BUTTON_TYPE_KEY_STOPCD: str = "key stop"; break; + case RATBAG_BUTTON_TYPE_KEY_MUTE: str = "key mute"; break; + case RATBAG_BUTTON_TYPE_KEY_VOLUMEUP: str = "key volume up"; break; + case RATBAG_BUTTON_TYPE_KEY_VOLUMEDOWN: str = "key volume down"; break; + + /* desktop */ + case RATBAG_BUTTON_TYPE_KEY_CALC: str = "key calc"; break; + case RATBAG_BUTTON_TYPE_KEY_MAIL: str = "key mail"; break; + case RATBAG_BUTTON_TYPE_KEY_BOOKMARKS: str = "key bookmarks"; break; + case RATBAG_BUTTON_TYPE_KEY_FORWARD: str = "key forward"; break; + case RATBAG_BUTTON_TYPE_KEY_BACK: str = "key back"; break; + case RATBAG_BUTTON_TYPE_KEY_STOP: str = "key stop"; break; + case RATBAG_BUTTON_TYPE_KEY_FILE: str = "key file"; break; + case RATBAG_BUTTON_TYPE_KEY_REFRESH: str = "key refresh"; break; + case RATBAG_BUTTON_TYPE_KEY_HOMEPAGE: str = "key homepage"; break; + case RATBAG_BUTTON_TYPE_KEY_SEARCH: str = "key search"; break; } return str;