mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 15:14:38 +01:00
ratbagd: change the button type to the enum value
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
committed by
Benjamin Tissoires
parent
b7f53effa1
commit
10903e2434
@@ -219,9 +219,11 @@ org.freedesktop.ratbag1.Button
|
||||
|
||||
Index of the button
|
||||
#### `Type`
|
||||
- type: `s`, read-only, constant
|
||||
- type: `u`, read-only, constant
|
||||
|
||||
String describing the button type
|
||||
Enum describing the button physical type. This type is unrelated to the
|
||||
logical button mapping and serves to easily identify the button on the
|
||||
device.
|
||||
#### `ButtonMapping`
|
||||
- type: `u`, read-only, mutable
|
||||
|
||||
|
||||
@@ -53,90 +53,11 @@ static int ratbagd_button_get_type(sd_bus *bus,
|
||||
sd_bus_error *error)
|
||||
{
|
||||
struct ratbagd_button *button = userdata;
|
||||
const char *type = NULL;
|
||||
enum ratbag_button_type t;
|
||||
|
||||
t = ratbag_button_get_type(button->lib_button);
|
||||
|
||||
switch(t) {
|
||||
default:
|
||||
log_error("Unknown button type %d\n", t);
|
||||
/* fallthrough */
|
||||
case RATBAG_BUTTON_TYPE_UNKNOWN:
|
||||
type = "unknown";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_LEFT:
|
||||
type = "left";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_MIDDLE:
|
||||
type = "middle";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_RIGHT:
|
||||
type = "right";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_THUMB:
|
||||
type = "thumb";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_THUMB2:
|
||||
type = "thumb2";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_THUMB3:
|
||||
type = "thumb3";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_THUMB4:
|
||||
type = "thumb4";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_WHEEL_LEFT:
|
||||
type = "wheel-left";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_WHEEL_RIGHT:
|
||||
type = "wheel-right";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_WHEEL_CLICK:
|
||||
type = "wheel-click";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_WHEEL_UP:
|
||||
type = "wheel-up";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_WHEEL_DOWN:
|
||||
type = "wheel-down";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_WHEEL_RATCHET_MODE_SHIFT:
|
||||
type = "wheel-ratchet_mode_shift";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_EXTRA:
|
||||
type = "extra";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_SIDE:
|
||||
type = "side";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_PINKIE:
|
||||
type = "pinkie";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_PINKIE2:
|
||||
type = "pinkie2";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_RESOLUTION_CYCLE_UP:
|
||||
type = "resolution-cycle-up";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_RESOLUTION_UP:
|
||||
type = "resolution-up";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_RESOLUTION_DOWN:
|
||||
type = "resolution-down";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_PROFILE_CYCLE_UP:
|
||||
type = "profile-cycle-up";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_PROFILE_UP:
|
||||
type = "profile-up";
|
||||
break;
|
||||
case RATBAG_BUTTON_TYPE_PROFILE_DOWN:
|
||||
type = "profile-down";
|
||||
break;
|
||||
}
|
||||
|
||||
return sd_bus_message_append(reply, "s", type);
|
||||
return sd_bus_message_append(reply, "u", t);
|
||||
}
|
||||
|
||||
static int ratbagd_button_get_button(sd_bus *bus,
|
||||
@@ -558,7 +479,7 @@ static int ratbagd_button_disable(sd_bus_message *m,
|
||||
const sd_bus_vtable ratbagd_button_vtable[] = {
|
||||
SD_BUS_VTABLE_START(0),
|
||||
SD_BUS_PROPERTY("Index", "u", NULL, offsetof(struct ratbagd_button, index), SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Type", "s", ratbagd_button_get_type, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Type", "u", ratbagd_button_get_type, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("ButtonMapping", "u", ratbagd_button_get_button, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("SpecialMapping", "s", ratbagd_button_get_special, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("KeyMapping", "au", ratbagd_button_get_key, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
|
||||
@@ -135,8 +135,36 @@ def print_led(d, p, l, level):
|
||||
|
||||
|
||||
def print_button(d, p, b, level):
|
||||
types = {
|
||||
RatbagdButton.TYPE_UNKNOWN : "unknown",
|
||||
RatbagdButton.TYPE_LEFT : "left",
|
||||
RatbagdButton.TYPE_MIDDLE : "middle",
|
||||
RatbagdButton.TYPE_RIGHT : "right",
|
||||
RatbagdButton.TYPE_THUMB : "thumb",
|
||||
RatbagdButton.TYPE_THUMB2 : "thumb2",
|
||||
RatbagdButton.TYPE_THUMB3 : "thumb3",
|
||||
RatbagdButton.TYPE_THUMB4 : "thumb4",
|
||||
RatbagdButton.TYPE_WHEEL_LEFT : "wheel-left",
|
||||
RatbagdButton.TYPE_WHEEL_RIGHT : "wheel-right",
|
||||
RatbagdButton.TYPE_WHEEL_CLICK : "wheel-click",
|
||||
RatbagdButton.TYPE_WHEEL_UP : "wheel-up",
|
||||
RatbagdButton.TYPE_WHEEL_DOWN : "wheel-down",
|
||||
RatbagdButton.TYPE_WHEEL_RATCHET_MODE_SHIFT : "wheel-ratchet-mode-shift",
|
||||
RatbagdButton.TYPE_EXTRA : "extra",
|
||||
RatbagdButton.TYPE_SIDE : "side",
|
||||
RatbagdButton.TYPE_PINKIE : "pinkie",
|
||||
RatbagdButton.TYPE_PINKIE2 : "pinkie2",
|
||||
RatbagdButton.TYPE_RESOLUTION_CYCLE_UP : "resolution-cycle-up",
|
||||
RatbagdButton.TYPE_RESOLUTION_UP : "resolution-up",
|
||||
RatbagdButton.TYPE_RESOLUTION_DOWN : "resolution-down",
|
||||
RatbagdButton.TYPE_PROFILE_CYCLE_UP : "profile-cycle-up",
|
||||
RatbagdButton.TYPE_PROFILE_UP : "profile-up",
|
||||
RatbagdButton.TYPE_PROFILE_DOWN : "profile-down",
|
||||
}
|
||||
|
||||
t = types[b.type]
|
||||
header = " " * level + "Button: {} type {} is mapped to ".format(b.index,
|
||||
b.type)
|
||||
t)
|
||||
|
||||
if b.action_type == RatbagdButton.ACTION_TYPE_BUTTON:
|
||||
print("{}'button {}'".format(header, b.mapping))
|
||||
|
||||
@@ -440,6 +440,32 @@ class RatbagdButton(_RatbagdDBus):
|
||||
MACRO_KEY_RELEASE = 2
|
||||
MACRO_WAIT = 3
|
||||
|
||||
TYPE_UNKNOWN = 0
|
||||
TYPE_LEFT = 1
|
||||
TYPE_MIDDLE = 2
|
||||
TYPE_RIGHT= 3
|
||||
TYPE_THUMB = 4
|
||||
TYPE_THUMB2 = 5
|
||||
TYPE_THUMB3 = 6
|
||||
TYPE_THUMB4 = 7
|
||||
TYPE_WHEEL_LEFT = 8
|
||||
TYPE_WHEEL_RIGHT = 9
|
||||
TYPE_WHEEL_CLICK = 10
|
||||
TYPE_WHEEL_UP = 11
|
||||
TYPE_WHEEL_DOWN = 12
|
||||
TYPE_WHEEL_RATCHET_MODE_SHIFT = 13
|
||||
TYPE_EXTRA = 14
|
||||
TYPE_SIDE = 15
|
||||
TYPE_PINKIE = 16
|
||||
TYPE_PINKIE2 = 17
|
||||
TYPE_RESOLUTION_CYCLE_UP = 18
|
||||
TYPE_RESOLUTION_UP = 19
|
||||
TYPE_RESOLUTION_DOWN = 20
|
||||
TYPE_PROFILE_CYCLE_UP = 21
|
||||
TYPE_PROFILE_UP = 22
|
||||
TYPE_PROFILE_DOWN = 23
|
||||
|
||||
|
||||
def __init__(self, object_path):
|
||||
_RatbagdDBus.__init__(self, "Button", object_path)
|
||||
|
||||
@@ -450,7 +476,7 @@ class RatbagdButton(_RatbagdDBus):
|
||||
|
||||
@GObject.Property
|
||||
def type(self):
|
||||
"""A string describing this button's type."""
|
||||
"""An enum describing this button's type."""
|
||||
return self._get_dbus_property("Type")
|
||||
|
||||
@GObject.Property
|
||||
|
||||
Reference in New Issue
Block a user