1
0
forked from drath/libratbag

Drop the Led.Type property

The led type was the physical led type to describe where the LED sits.

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 led index anyway. The only time this
matters is when we're looking at (human) device discovery. But even then just
trying to set the LED is enough to figure out which one is which.

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:
Peter Hutterer
2019-02-22 15:06:39 +10:00
committed by Benjamin Tissoires
parent 79711dfdad
commit 367aa29dfe
8 changed files with 28 additions and 85 deletions

View File

@@ -113,26 +113,6 @@ static int ratbagd_led_set_mode(sd_bus *bus,
return 0;
}
static int ratbagd_led_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_led *led = userdata;
enum ratbag_led_type type;
type = ratbag_led_get_type(led->lib_led);
verify_unsigned_int(type);
CHECK_CALL(sd_bus_message_append(reply, "u", type));
return 0;
}
static int ratbagd_led_get_color(sd_bus *bus,
const char *path,
const char *interface,
@@ -295,7 +275,6 @@ const sd_bus_vtable ratbagd_led_vtable[] = {
ratbagd_led_get_mode,
ratbagd_led_set_mode, 0,
SD_BUS_VTABLE_UNPRIVILEGED|SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("Type", "u", ratbagd_led_get_type, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_WRITABLE_PROPERTY("Color", "(uuu)",
ratbagd_led_get_color, ratbagd_led_set_color, 0,
SD_BUS_VTABLE_UNPRIVILEGED|SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),

View File

@@ -284,10 +284,15 @@ enum ratbag_led_mode {
*/
RATBAG_LED_BREATHING,
};
/**
* @ingroup enums
*
* LED types, usually based on their physical location
*
* This enum is deprecated and should not be used.
*
* @deprecated
*/
enum ratbag_led_type {
RATBAG_LED_TYPE_LOGO = 1,

View File

@@ -1470,12 +1470,6 @@ ratbag_led_get_mode(struct ratbag_led *led)
return led->mode;
}
LIBRATBAG_EXPORT enum ratbag_led_type
ratbag_led_get_type(struct ratbag_led *led)
{
return led->type;
}
LIBRATBAG_EXPORT bool
ratbag_led_has_mode(struct ratbag_led *led,
enum ratbag_led_mode mode)

View File

@@ -1157,18 +1157,6 @@ ratbag_button_get_special(struct ratbag_button *button);
*/
struct ratbag_led *
ratbag_profile_get_led(struct ratbag_profile *profile, unsigned int index);
/**
* @ingroup led
*
* This function returns the type for ratbag_led.
*
* @param led A previously initialized ratbag LED
* @return The LED type @ref ratbag_led_type
*
* @see ratbag_led_set_mode
*/
enum ratbag_led_type
ratbag_led_get_type(struct ratbag_led *led);
/**
* @ingroup led

View File

@@ -773,12 +773,6 @@ class RatbagdLed(metaclass=MetaRatbag):
"""
libratbag.ratbag_led_set_mode(self._led, mode)
@property
def type(self):
"""An enum describing this led's type, one of RatbagdLed.TYPE_UNKNOWN,
RatbagdLed.TYPE_LOGO or RatbagdLed.TYPE_SIDE."""
return libratbag.ratbag_led_get_type(self._led)
@property
def color(self):
"""An integer triple of the current LED color."""

View File

@@ -123,41 +123,30 @@ def print_led(d, p, l, level):
RatbagdLed.MODE_OFF: "off",
RatbagdLed.MODE_ON: "on",
}
types = {
RatbagdLed.TYPE_LOGO: "logo",
RatbagdLed.TYPE_SIDE: "side",
RatbagdLed.TYPE_BATTERY: "battery",
RatbagdLed.TYPE_DPI: "dpi",
RatbagdLed.TYPE_WHEEL: "wheel",
}
depths = {
RatbagdLed.COLORDEPTH_MONOCHROME: "monochrome",
RatbagdLed.COLORDEPTH_RGB_888: "rgb",
RatbagdLed.COLORDEPTH_RGB_111: "rgb111",
}
if l.mode == RatbagdLed.MODE_OFF:
print(" " * level + "LED: {} type: {}, depth: {}, mode: {}".format(l.index,
types[l.type],
print(" " * level + "LED: {}, depth: {}, mode: {}".format(l.index,
depths[l.colordepth],
leds[l.mode]))
elif l.mode == RatbagdLed.MODE_ON:
print(" " * level + "LED: {} type: {}, depth: {}, mode: {}, color: {:02x}{:02x}{:02x}".format(l.index,
types[l.type],
print(" " * level + "LED: {}, depth: {}, mode: {}, color: {:02x}{:02x}{:02x}".format(l.index,
depths[l.colordepth],
leds[l.mode],
l.color[0],
l.color[1],
l.color[2]))
elif l.mode == RatbagdLed.MODE_CYCLE:
print(" " * level + "LED: {} type: {}, depth: {}, mode: {}, duration: {}, brightness: {}".format(l.index,
types[l.type],
print(" " * level + "LED: {}, depth: {}, mode: {}, duration: {}, brightness: {}".format(l.index,
depths[l.colordepth],
leds[l.mode],
l.effect_duration,
l.brightness))
elif l.mode == RatbagdLed.MODE_BREATHING:
print(" " * level + "LED: {} type: {}, depth: {}, mode: {}, color: {:02x}{:02x}{:02x}, duration: {}, brightness: {}".format(l.index,
types[l.type],
print(" " * level + "LED: {}, depth: {}, mode: {}, color: {:02x}{:02x}{:02x}, duration: {}, brightness: {}".format(l.index,
depths[l.colordepth],
leds[l.mode],
l.color[0],

View File

@@ -480,11 +480,11 @@ class TestRatbagCtlLED(TestRatbagCtl):
def test_led_n_get(self):
self.setProfile(0)
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: off")
self.assertEqual(r, "LED: 0, depth: rgb, mode: off")
r = self.launch_good_test("led 1 get test_device")
self.assertEqual(r, "LED: 1 type: side, depth: rgb, mode: on, color: ff0000")
self.assertEqual(r, "LED: 1, depth: rgb, mode: on, color: ff0000")
r = self.launch_good_test("led 2 get test_device")
self.assertEqual(r, "LED: 2 type: side, depth: rgb, mode: cycle, duration: 333, brightness: 40")
self.assertEqual(r, "LED: 2, depth: rgb, mode: cycle, duration: 333, brightness: 40")
self.launch_fail_test("led 0 get 10 test_device")
self.launch_fail_test("led 10 get test_device")
self.launch_fail_test("led 0 get test_device X")
@@ -492,11 +492,11 @@ class TestRatbagCtlLED(TestRatbagCtl):
def test_led_n_set_mode(self):
self.setProfile(0)
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: off")
self.assertEqual(r, "LED: 0, depth: rgb, mode: off")
r = self.launch_good_test("led 0 set mode cycle test_device")
self.assertEqual(r, '')
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: cycle, duration: 1000, brightness: 20")
self.assertEqual(r, "LED: 0, depth: rgb, mode: cycle, duration: 1000, brightness: 20")
self.launch_fail_test("led 0 set mode bicycle test_device")
self.launch_fail_test("led 0 set mode test_device")
self.launch_fail_test("led 0 set mode cycle test_device X")
@@ -505,15 +505,15 @@ class TestRatbagCtlLED(TestRatbagCtl):
def test_led_n_set_color(self):
self.setProfile(0)
r = self.launch_good_test("led 1 get test_device")
self.assertEqual(r, "LED: 1 type: side, depth: rgb, mode: on, color: ff0000")
self.assertEqual(r, "LED: 1, depth: rgb, mode: on, color: ff0000")
r = self.launch_good_test("led 1 set color 00ff00 test_device")
self.assertEqual(r, '')
r = self.launch_good_test("led 1 get test_device")
self.assertEqual(r, "LED: 1 type: side, depth: rgb, mode: on, color: 00ff00")
self.assertEqual(r, "LED: 1, depth: rgb, mode: on, color: 00ff00")
r = self.launch_good_test("led 1 set color 0x0000ff test_device")
self.assertEqual(r, '')
r = self.launch_good_test("led 1 get test_device")
self.assertEqual(r, "LED: 1 type: side, depth: rgb, mode: on, color: 0000ff")
self.assertEqual(r, "LED: 1, depth: rgb, mode: on, color: 0000ff")
self.launch_fail_test("led 1 set color g0ff00 test_device")
self.launch_fail_test("led 1 set color test_device")
self.launch_fail_test("led 1 set color 00ff00 test_device X")
@@ -522,11 +522,11 @@ class TestRatbagCtlLED(TestRatbagCtl):
def test_led_n_set_duration(self):
self.setProfile(0)
r = self.launch_good_test("led 2 get test_device")
self.assertEqual(r, "LED: 2 type: side, depth: rgb, mode: cycle, duration: 333, brightness: 40")
self.assertEqual(r, "LED: 2, depth: rgb, mode: cycle, duration: 333, brightness: 40")
r = self.launch_good_test("led 2 set duration 10 test_device")
self.assertEqual(r, '')
r = self.launch_good_test("led 2 get test_device")
self.assertEqual(r, "LED: 2 type: side, depth: rgb, mode: cycle, duration: 10, brightness: 40")
self.assertEqual(r, "LED: 2, depth: rgb, mode: cycle, duration: 10, brightness: 40")
self.launch_fail_test("led 2 set duration this_is_not_an_int test_device")
self.launch_fail_test("led 2 set duration test_device")
self.launch_fail_test("led 2 set duration 100 test_device X")
@@ -535,11 +535,11 @@ class TestRatbagCtlLED(TestRatbagCtl):
def test_led_n_set_brightness(self):
self.setProfile(2)
r = self.launch_good_test("led 1 get test_device")
self.assertEqual(r, "LED: 1 type: side, depth: rgb, mode: cycle, duration: 333, brightness: 40")
self.assertEqual(r, "LED: 1, depth: rgb, mode: cycle, duration: 333, brightness: 40")
r = self.launch_good_test("led 1 set brightness 100 test_device")
self.assertEqual(r, '')
r = self.launch_good_test("led 1 get test_device")
self.assertEqual(r, "LED: 1 type: side, depth: rgb, mode: cycle, duration: 333, brightness: 100")
self.assertEqual(r, "LED: 1, depth: rgb, mode: cycle, duration: 333, brightness: 100")
self.launch_fail_test("led 1 set brightness this_is_not_an_int test_device")
self.launch_fail_test("led 1 set brightness test_device")
self.launch_fail_test("led 1 set brightness 100 test_device X")
@@ -551,28 +551,28 @@ class TestRatbagCtlLED(TestRatbagCtl):
def test_led_n_set_combination(self):
self.setProfile(2)
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: on, color: ff0000")
self.assertEqual(r, "LED: 0, depth: rgb, mode: on, color: ff0000")
r = self.launch_good_test("led 0 set mode cycle brightness 100 test_device")
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: cycle, duration: 1000, brightness: 100")
self.assertEqual(r, "LED: 0, depth: rgb, mode: cycle, duration: 1000, brightness: 100")
r = self.launch_good_test("led 0 set mode cycle duration 100 brightness 255 test_device")
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: cycle, duration: 100, brightness: 255")
self.assertEqual(r, "LED: 0, depth: rgb, mode: cycle, duration: 100, brightness: 255")
r = self.launch_good_test("led 0 set mode on color 00ff00 test_device")
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: on, color: 00ff00")
self.assertEqual(r, "LED: 0, depth: rgb, mode: on, color: 00ff00")
r = self.launch_good_test("led 0 set duration 100 brightness 200 mode cycle test_device")
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: cycle, duration: 100, brightness: 200")
self.assertEqual(r, "LED: 0, depth: rgb, mode: cycle, duration: 100, brightness: 200")
r = self.launch_good_test("led 0 set duration 100 brightness 200 mode cycle brightness 100 test_device")
r = self.launch_good_test("led 0 get test_device")
self.assertEqual(r, "LED: 0 type: logo, depth: rgb, mode: cycle, duration: 100, brightness: 100")
self.assertEqual(r, "LED: 0, depth: rgb, mode: cycle, duration: 100, brightness: 100")
self.launch_fail_test("led 0 set brightness 10 mode bicycle test_device")
def test_prefix_led(self):
self.setProfile(2)
r = self.launch_good_test("Profile 1 Led 1 get test_device")
self.assertEqual(r, "LED: 1 type: side, depth: rgb, mode: off")
self.assertEqual(r, "LED: 1, depth: rgb, mode: off")
self.launch_fail_test("Profile 1 Profile 2 Led 1 get test_device")
self.launch_fail_test("Profile 1 Resolution 2 Led 1 get test_device")

View File

@@ -919,12 +919,6 @@ class RatbagdLed(_RatbagdDBus):
"""The supported modes as a list"""
return self._get_dbus_property("Modes")
@GObject.Property
def type(self):
"""An enum describing this led's type,
RatbagdLed.TYPE_LOGO or RatbagdLed.TYPE_SIDE."""
return self._get_dbus_property("Type")
@GObject.Property
def color(self):
"""An integer triple of the current LED color."""