1
0
forked from drath/libratbag

ratbagd: change the button type to the enum value

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer
2017-07-25 15:25:17 +10:00
committed by Benjamin Tissoires
parent b7f53effa1
commit 10903e2434
4 changed files with 62 additions and 85 deletions

View File

@@ -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

View File

@@ -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),

View File

@@ -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))

View File

@@ -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