mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 23:23:52 +01:00
Drop the Button.Type property
The button type was the physical button type, not the logically assigned button number. This property is basically unused and of questionable use anyway. GUI applications would need to rely on drawings of the mouse anyway. Scripts don't really care because ratbagctl uses the button index anyway. The only time this matters is when we're looking at (human) device discovery. But often clicking around is enough to figure out the index. So let's drop this API on the assumption that it's not really needed and maintaining and extending that enum forever is not necessary. This is not a full purge, merely the DBus API that gets dropped. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
committed by
Benjamin Tissoires
parent
32a5ad377e
commit
79711dfdad
10
doc/dbus.rst
10
doc/dbus.rst
@@ -367,16 +367,6 @@ org.freedesktop.ratbag1.Button
|
||||
|
||||
Index of the button
|
||||
|
||||
.. attribute:: Type
|
||||
|
||||
:type: u
|
||||
:flags: read-only, constant
|
||||
|
||||
Enum describing the button physical type, see
|
||||
:cpp:enum:`ratbag_button_type`. This type is unrelated to the
|
||||
logical button mapping and serves to easily identify the button on
|
||||
the device.
|
||||
|
||||
.. attribute:: ButtonMapping
|
||||
|
||||
:type: u
|
||||
|
||||
@@ -45,24 +45,6 @@ struct ratbagd_button {
|
||||
char *path;
|
||||
};
|
||||
|
||||
static int ratbagd_button_get_type(sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error)
|
||||
{
|
||||
struct ratbagd_button *button = userdata;
|
||||
enum ratbag_button_type t;
|
||||
|
||||
t = ratbag_button_get_type(button->lib_button);
|
||||
|
||||
verify_unsigned_int(t);
|
||||
|
||||
return sd_bus_message_append(reply, "u", t);
|
||||
}
|
||||
|
||||
static int ratbagd_button_get_button(sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
@@ -363,7 +345,6 @@ 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", "u", ratbagd_button_get_type, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_WRITABLE_PROPERTY("ButtonMapping", "u",
|
||||
ratbagd_button_get_button,
|
||||
ratbagd_button_set_button,
|
||||
|
||||
@@ -142,6 +142,10 @@ enum ratbag_resolution_capability {
|
||||
* @ingroup enums
|
||||
*
|
||||
* Button types describing the physical button.
|
||||
*
|
||||
* This enum is deprecated and should not be used.
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
enum ratbag_button_type {
|
||||
RATBAG_BUTTON_TYPE_UNKNOWN = 0,
|
||||
|
||||
@@ -1240,12 +1240,6 @@ ratbag_profile_get_button(struct ratbag_profile *profile,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
LIBRATBAG_EXPORT enum ratbag_button_type
|
||||
ratbag_button_get_type(struct ratbag_button *button)
|
||||
{
|
||||
return button->type;
|
||||
}
|
||||
|
||||
LIBRATBAG_EXPORT enum ratbag_button_action_type
|
||||
ratbag_button_get_action_type(struct ratbag_button *button)
|
||||
{
|
||||
|
||||
@@ -1056,25 +1056,6 @@ ratbag_button_set_user_data(struct ratbag_button *button, void *userdata);
|
||||
void*
|
||||
ratbag_button_get_user_data(const struct ratbag_button *button);
|
||||
|
||||
/**
|
||||
* @ingroup button
|
||||
*
|
||||
* Return the type of the physical button. This function is intended to be
|
||||
* used by configuration tools to provide a generic list of button names or
|
||||
* handles to configure devices. The type describes the physical location of
|
||||
* the button and remains constant for the lifetime of the device.
|
||||
* For example, a button of type @ref RATBAG_BUTTON_TYPE_WHEEL_CLICK may be
|
||||
* mapped to a logical middle button, but the physical description is that
|
||||
* of a wheel click.
|
||||
*
|
||||
* For the button currently mapped to this physical button, see
|
||||
* ratbag_button_get_button()
|
||||
*
|
||||
* @return The type of the button
|
||||
*/
|
||||
enum ratbag_button_type
|
||||
ratbag_button_get_type(struct ratbag_button *button);
|
||||
|
||||
/**
|
||||
* @ingroup button
|
||||
*
|
||||
|
||||
@@ -565,11 +565,6 @@ class RatbagdButton(metaclass=MetaRatbag):
|
||||
"""The index of this button."""
|
||||
return self._id
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
"""An enum describing this button's type."""
|
||||
return libratbag.ratbag_button_get_type(self._button)
|
||||
|
||||
@property
|
||||
def mapping(self):
|
||||
"""An integer of the current button mapping, if mapping to a button."""
|
||||
|
||||
@@ -179,34 +179,7 @@ def print_led_caps(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, t)
|
||||
header = " " * level + "Button: {} is mapped to ".format(b.index)
|
||||
|
||||
if b.action_type == RatbagdButton.ACTION_TYPE_BUTTON:
|
||||
print("{}'button {}'".format(header, b.mapping))
|
||||
|
||||
@@ -402,13 +402,13 @@ class TestRatbagCtlButton(TestRatbagCtl):
|
||||
def test_button_n_get(self):
|
||||
self.setProfile(0)
|
||||
r = self.launch_good_test("button 0 get test_device")
|
||||
self.assertEqual(r, "Button: 0 type left is mapped to 'button 0'")
|
||||
self.assertEqual(r, "Button: 0 is mapped to 'button 0'")
|
||||
r = self.launch_good_test("button 1 get test_device")
|
||||
self.assertEqual(r, "Button: 1 type middle is mapped to UNKNOWN")
|
||||
self.assertEqual(r, "Button: 1 is mapped to UNKNOWN")
|
||||
r = self.launch_good_test("button 2 get test_device")
|
||||
self.assertEqual(r, "Button: 2 type right is mapped to 'profile-cycle-up'")
|
||||
self.assertEqual(r, "Button: 2 is mapped to 'profile-cycle-up'")
|
||||
r = self.launch_good_test("button 3 get test_device")
|
||||
self.assertEqual(r, "Button: 3 type unknown is mapped to macro '↕B 300ms'")
|
||||
self.assertEqual(r, "Button: 3 is mapped to macro '↕B 300ms'")
|
||||
self.launch_fail_test("button 1 get 10 test_device")
|
||||
self.launch_fail_test("button 10 get test_device")
|
||||
self.launch_fail_test("button 1 get test_device X")
|
||||
@@ -416,7 +416,7 @@ class TestRatbagCtlButton(TestRatbagCtl):
|
||||
def test_button_n_action_get(self):
|
||||
self.setProfile(0)
|
||||
r = self.launch_good_test("button 0 action get test_device")
|
||||
self.assertEqual(r, "Button: 0 type left is mapped to 'button 0'")
|
||||
self.assertEqual(r, "Button: 0 is mapped to 'button 0'")
|
||||
self.launch_fail_test("button 1 action get 10 test_device")
|
||||
self.launch_fail_test("button 10 action get test_device")
|
||||
self.launch_fail_test("button 1 action get test_device X")
|
||||
@@ -425,11 +425,11 @@ class TestRatbagCtlButton(TestRatbagCtl):
|
||||
self.setProfile(2)
|
||||
command = "button 2 action set button"
|
||||
r = self.launch_good_test("button 2 action get test_device")
|
||||
self.assertEqual(r, "Button: 2 type right is mapped to 'button 2'")
|
||||
self.assertEqual(r, "Button: 2 is mapped to 'button 2'")
|
||||
r = self.launch_good_test(command + " 1 test_device")
|
||||
self.assertEqual(r, '')
|
||||
r = self.launch_good_test("button 2 action get test_device")
|
||||
self.assertEqual(r, "Button: 2 type right is mapped to 'button 1'")
|
||||
self.assertEqual(r, "Button: 2 is mapped to 'button 1'")
|
||||
self.launch_fail_test(command)
|
||||
self.launch_fail_test(command + " X test_device")
|
||||
self.launch_fail_test(command + " 100 test_device X")
|
||||
@@ -438,11 +438,11 @@ class TestRatbagCtlButton(TestRatbagCtl):
|
||||
self.setProfile(2)
|
||||
command = "button 0 action set special "
|
||||
r = self.launch_good_test("button 0 action get test_device")
|
||||
self.assertEqual(r, "Button: 0 type left is mapped to 'profile-cycle-up'")
|
||||
self.assertEqual(r, "Button: 0 is mapped to 'profile-cycle-up'")
|
||||
r = self.launch_good_test(command + " second-mode test_device")
|
||||
self.assertEqual(r, '')
|
||||
r = self.launch_good_test("button 0 action get test_device")
|
||||
self.assertEqual(r, "Button: 0 type left is mapped to 'second-mode'")
|
||||
self.assertEqual(r, "Button: 0 is mapped to 'second-mode'")
|
||||
self.launch_fail_test(command)
|
||||
self.launch_fail_test(command + " X test_device")
|
||||
self.launch_fail_test(command + " 100 test_device X")
|
||||
@@ -451,22 +451,22 @@ class TestRatbagCtlButton(TestRatbagCtl):
|
||||
command = "button 2 action set macro "
|
||||
self.launch_good_test(command + '+KEY_B KEY_A -KEY_B KEY_C test_device')
|
||||
r = self.launch_good_test("button 2 get test_device")
|
||||
self.assertEqual(r, "Button: 2 type right is mapped to macro '↓B ↕A ↑B ↕C'")
|
||||
self.assertEqual(r, "Button: 2 is mapped to macro '↓B ↕A ↑B ↕C'")
|
||||
self.launch_good_test(command + 't100 t200 test_device')
|
||||
r = self.launch_good_test("button 2 get test_device")
|
||||
self.assertEqual(r, "Button: 2 type right is mapped to macro '100ms 200ms'")
|
||||
self.assertEqual(r, "Button: 2 is mapped to macro '100ms 200ms'")
|
||||
self.launch_good_test(command + 'KeY_z test_device')
|
||||
r = self.launch_good_test("button 2 get test_device")
|
||||
self.assertEqual(r, "Button: 2 type right is mapped to macro '↕Z'")
|
||||
self.assertEqual(r, "Button: 2 is mapped to macro '↕Z'")
|
||||
self.launch_good_test(command + ' test_device')
|
||||
r = self.launch_good_test("button 2 get test_device")
|
||||
self.assertEqual(r, "Button: 2 type right is mapped to macro 'None'")
|
||||
self.assertEqual(r, "Button: 2 is mapped to macro 'None'")
|
||||
self.launch_fail_test(command)
|
||||
self.launch_fail_test(command + " KEY_A test_device X")
|
||||
|
||||
def test_prefix_button(self):
|
||||
r = self.launch_good_test("Profile 2 Button 3 get test_device")
|
||||
self.assertEqual(r, "Button: 3 type unknown is mapped to 'button 3'")
|
||||
self.assertEqual(r, "Button: 3 is mapped to 'button 3'")
|
||||
self.launch_fail_test("Profile 2 Profile 2 Button 3 get test_device")
|
||||
self.launch_fail_test("Profile 2 Resolution 2 Button 3 get test_device")
|
||||
|
||||
|
||||
@@ -662,31 +662,6 @@ 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
|
||||
|
||||
"""A table mapping a button's index to its usual function as defined by X
|
||||
and the common desktop environments."""
|
||||
BUTTON_DESCRIPTION = {
|
||||
@@ -733,11 +708,6 @@ class RatbagdButton(_RatbagdDBus):
|
||||
"""The index of this button."""
|
||||
return self._get_dbus_property("Index")
|
||||
|
||||
@GObject.Property
|
||||
def type(self):
|
||||
"""An enum describing this button's type."""
|
||||
return self._get_dbus_property("Type")
|
||||
|
||||
@GObject.Property
|
||||
def mapping(self):
|
||||
"""An integer of the current button mapping, if mapping to a button."""
|
||||
|
||||
Reference in New Issue
Block a user