diff --git a/doc/dbus.rst b/doc/dbus.rst index 131561e3..58596390 100644 --- a/doc/dbus.rst +++ b/doc/dbus.rst @@ -426,12 +426,12 @@ org.freedesktop.ratbag1.Led The color depth of this LED as one of the constants in libratbag-enums.h - .. js:attribute:: EffectRate + .. js:attribute:: EffectDuration :type: u :flags: read-write, mutable - The effect rate in Hz, possible values are in the range 100 - 20000 + The effect duration in ms, possible values are in the range 0 - 10000 .. js:attribute:: Brightness diff --git a/ratbagd/ratbagd-led.c b/ratbagd/ratbagd-led.c index 469fca3d..e3b4b39c 100644 --- a/ratbagd/ratbagd-led.c +++ b/ratbagd/ratbagd-led.c @@ -179,28 +179,28 @@ static int ratbagd_led_set_color(sd_bus *bus, return 0; } -static int ratbagd_led_get_effect_rate(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +static int ratbagd_led_get_effect_duration(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; int rate; - rate = ratbag_led_get_effect_rate(led->lib_led); + rate = ratbag_led_get_effect_duration(led->lib_led); return sd_bus_message_append(reply, "u", rate); } -static int ratbagd_led_set_effect_rate(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *m, - void *userdata, - sd_bus_error *error) +static int ratbagd_led_set_effect_duration(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *m, + void *userdata, + sd_bus_error *error) { struct ratbagd_led *led = userdata; unsigned int rate; @@ -210,19 +210,17 @@ static int ratbagd_led_set_effect_rate(sd_bus *bus, if (r < 0) return r; - if (rate < 100) - rate = 100; - else if (rate > 20000) - rate = 20000; + if (rate > 10000) + rate = 10000; - r = ratbag_led_set_effect_rate(led->lib_led, rate); + r = ratbag_led_set_effect_duration(led->lib_led, rate); if (r == 0) { sd_bus *bus = sd_bus_message_get_bus(m); sd_bus_emit_properties_changed(bus, led->path, RATBAGD_NAME_ROOT ".Led", - "EffectRate", + "EffectDuration", NULL); } @@ -290,8 +288,8 @@ const sd_bus_vtable ratbagd_led_vtable[] = { ratbagd_led_get_color, ratbagd_led_set_color, 0, SD_BUS_VTABLE_UNPRIVILEGED|SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY("ColorDepth", "u", NULL, offsetof(struct ratbagd_led, colordepth), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_WRITABLE_PROPERTY("EffectRate", "u", - ratbagd_led_get_effect_rate, ratbagd_led_set_effect_rate, 0, + SD_BUS_WRITABLE_PROPERTY("EffectDuration", "u", + ratbagd_led_get_effect_duration, ratbagd_led_set_effect_duration, 0, SD_BUS_VTABLE_UNPRIVILEGED|SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_WRITABLE_PROPERTY("Brightness", "u", ratbagd_led_get_brightness, ratbagd_led_set_brightness, 0, diff --git a/ratbagd/ratbagd-test.c b/ratbagd/ratbagd-test.c index d93e4c85..58f3b9e8 100644 --- a/ratbagd/ratbagd-test.c +++ b/ratbagd/ratbagd-test.c @@ -76,21 +76,21 @@ static const struct ratbag_test_device ratbagd_test_device_descr = { { .mode = RATBAG_LED_OFF, .color = { .red = 255, .green = 0, .blue = 0 }, - .hz = 1, + .ms = 1000, .brightness = 20, .type = RATBAG_LED_TYPE_LOGO, }, { .mode = RATBAG_LED_ON, .color = { .red = 255, .green = 0, .blue = 0 }, - .hz = 1, + .ms = 1000, .brightness = 20, .type = RATBAG_LED_TYPE_SIDE, }, { .mode = RATBAG_LED_CYCLE, .color = { .red = 255, .green = 255, .blue = 0 }, - .hz = 3, + .ms = 333, .brightness = 40, .type = RATBAG_LED_TYPE_SIDE, } @@ -145,13 +145,13 @@ static const struct ratbag_test_device ratbagd_test_device_descr = { { .mode = RATBAG_LED_ON, .color = { .red = 255, .green = 0, .blue = 0 }, - .hz = 1, + .ms = 1000, .brightness = 20 }, { .mode = RATBAG_LED_CYCLE, .color = { .red = 255, .green = 255, .blue = 0 }, - .hz = 3, + .ms = 333, .brightness = 40 } }, diff --git a/src/driver-hidpp20.c b/src/driver-hidpp20.c index e6e1ffa1..a86a571e 100644 --- a/src/driver-hidpp20.c +++ b/src/driver-hidpp20.c @@ -293,7 +293,7 @@ hidpp20drv_read_led_1300(struct ratbag_led *led, struct hidpp20drv_data* data) break; case HIDPP20_LED_MODE_BREATHING: led->mode = RATBAG_LED_BREATHING; - led->hz = state.breathing.period; + led->ms = state.breathing.period; led->brightness = state.breathing.brightness; break; default: @@ -344,7 +344,7 @@ hidpp20drv_read_led_8070(struct ratbag_led *led, struct hidpp20drv_data* drv_dat led->color.red = h_led->color.red; led->color.green = h_led->color.green; led->color.blue = h_led->color.blue; - led->hz = h_led->period; /* FIXME: should be ceil(1000.0 / h_led->period), but that would be very small */ + led->ms = h_led->period; led->brightness = h_led->brightness * 255 / 100; rc = hidpp20_color_led_effects_get_info(drv_data->dev, &info); @@ -514,7 +514,7 @@ hidpp20drv_update_led_1300(struct ratbag_led *led, struct hidpp20drv_data *data) case RATBAG_LED_BREATHING: h_led.mode = HIDPP20_LED_MODE_BREATHING; h_led.breathing.brightness = led->brightness; - h_led.breathing.period = led->hz; + h_led.breathing.period = led->ms; h_led.breathing.timeout = 300; break; case RATBAG_LED_OFF: @@ -580,7 +580,7 @@ hidpp20drv_update_led_8070(struct ratbag_led *led, struct ratbag_profile* profil h_led->color.red = led->color.red; h_led->color.green = led->color.green; h_led->color.blue = led->color.blue; - h_led->period = led->hz; /* FIXME: should be 1000 / led->hz, but that would be very small */ + h_led->period = led->ms; h_led->brightness = led->brightness * 100 / 255; return RATBAG_SUCCESS; diff --git a/src/driver-test.c b/src/driver-test.c index 48c432be..b8e25490 100644 --- a/src/driver-test.c +++ b/src/driver-test.c @@ -127,7 +127,7 @@ test_read_led(struct ratbag_led *led) led->color.red = t_led.color.red; led->color.green = t_led.color.green; led->color.blue = t_led.color.blue; - led->hz = t_led.hz; + led->ms = t_led.ms; led->brightness = t_led.brightness; /* The led type has to be the same anyway so make writing test @@ -148,7 +148,7 @@ test_write_button(struct ratbag_button *button, static int test_write_led(struct ratbag_led *led, enum ratbag_led_mode mode, - struct ratbag_color color, unsigned int hz, + struct ratbag_color color, unsigned int ms, unsigned int brightness) { /* check if the device is still valid */ diff --git a/src/libratbag-private.h b/src/libratbag-private.h index 39ea3829..42ddc021 100644 --- a/src/libratbag-private.h +++ b/src/libratbag-private.h @@ -239,7 +239,7 @@ struct ratbag_driver { * it. Look at commit() instead. */ int (*write_led)(struct ratbag_led *led, enum ratbag_led_mode mode, - struct ratbag_color color, unsigned int hz, + struct ratbag_color color, unsigned int ms, unsigned int brightness); /* private */ @@ -281,7 +281,7 @@ struct ratbag_led { uint32_t modes; /**< supported modes */ struct ratbag_color color; enum ratbag_led_colordepth colordepth; - unsigned int hz; /**< rate of action in hz */ + unsigned int ms; /**< duration of action in ms */ unsigned int brightness; /**< brightness of the LED */ bool dirty; }; diff --git a/src/libratbag-test.h b/src/libratbag-test.h index d7543bdb..4cf72e54 100644 --- a/src/libratbag-test.h +++ b/src/libratbag-test.h @@ -70,7 +70,7 @@ struct ratbag_test_led { enum ratbag_led_type type; enum ratbag_led_mode mode; struct ratbag_test_color color; - unsigned int hz; + unsigned int ms; unsigned int brightness; }; diff --git a/src/libratbag.c b/src/libratbag.c index 32b3db75..3c6babb1 100644 --- a/src/libratbag.c +++ b/src/libratbag.c @@ -905,7 +905,7 @@ ratbag_device_has_capability(const struct ratbag_device *device, static inline enum ratbag_error_code write_led_helper(struct ratbag_device *device, struct ratbag_led *led) { - return device->driver->write_led(led, led->mode, led->color, led->hz, led->brightness); + return device->driver->write_led(led, led->mode, led->color, led->ms, led->brightness); } /* FIXME: This is a temporary fix for all of the drivers that have yet to be @@ -1547,9 +1547,9 @@ ratbag_led_get_color(struct ratbag_led *led) } LIBRATBAG_EXPORT int -ratbag_led_get_effect_rate(struct ratbag_led *led) +ratbag_led_get_effect_duration(struct ratbag_led *led) { - return led->hz; + return led->ms; } LIBRATBAG_EXPORT unsigned int @@ -1596,13 +1596,13 @@ ratbag_led_get_colordepth(struct ratbag_led *led) } LIBRATBAG_EXPORT enum ratbag_error_code -ratbag_led_set_effect_rate(struct ratbag_led *led, unsigned int hz) +ratbag_led_set_effect_duration(struct ratbag_led *led, unsigned int ms) { if (!ratbag_device_has_capability(led->profile->device, RATBAG_DEVICE_CAP_LED)) return RATBAG_ERROR_CAPABILITY; - led->hz = hz; + led->ms = ms; led->dirty = true; led->profile->dirty = true; return RATBAG_SUCCESS; diff --git a/src/libratbag.h b/src/libratbag.h index 787b4831..005cbac5 100644 --- a/src/libratbag.h +++ b/src/libratbag.h @@ -1268,15 +1268,15 @@ ratbag_led_get_colordepth(struct ratbag_led *led); /** * @ingroup led * - * This function returns the LED effect rate. + * This function returns the LED effect duration. * * @param led A previously initialized ratbag LED - * @return The LED rate in Hz, can be 100 - 20000 + * @return The LED duration in ms, can be 0 - 10000 * - * @see ratbag_led_set_effect_rate + * @see ratbag_led_set_effect_duration */ int -ratbag_led_get_effect_rate(struct ratbag_led *led); +ratbag_led_get_effect_duration(struct ratbag_led *led); /** * @ingroup led * @@ -1329,16 +1329,16 @@ ratbag_led_set_color(struct ratbag_led *led, struct ratbag_color color); * @ingroup led * * If the LED's mode is @ref RATBAG_LED_CYCLE or @ref RATBAG_LED_BREATHING - * then this function sets the LED rate in Hz + * then this function sets the LED duration in ms * * @param led A previously initialized ratbag LED - * @param rate Effect rate in hz, 100 - 20000 + * @param rate Effect duration in ms, 0 - 10000 * @return 0 on success or an error code otherwise. * - * @see ratbag_led_get_effect_rate + * @see ratbag_led_get_effect_duration */ enum ratbag_error_code -ratbag_led_set_effect_rate(struct ratbag_led *led, unsigned int rate); +ratbag_led_set_effect_duration(struct ratbag_led *led, unsigned int rate); /** * @ingroup led diff --git a/test/test-device.c b/test/test-device.c index 3524f9b5..0c23c896 100644 --- a/test/test-device.c +++ b/test/test-device.c @@ -91,13 +91,13 @@ const struct ratbag_test_device sane_device = { { .mode = RATBAG_LED_ON, .color = { .red = 255, .green = 0, .blue = 0 }, - .hz = 1, + .ms = 1000, .brightness = 20, }, { .mode = RATBAG_LED_CYCLE, .color = { .red = 255, .green = 255, .blue = 0 }, - .hz = 3, + .ms = 333, .brightness = 40, } }, @@ -793,18 +793,18 @@ assert_led_equals(struct ratbag_led *l, struct ratbag_test_led e_l) { enum ratbag_led_mode mode; struct ratbag_color color; - int brightness, hz; + int brightness, ms; ck_assert(l != NULL); mode = ratbag_led_get_mode(l); color = ratbag_led_get_color(l); - hz = ratbag_led_get_effect_rate(l); + ms = ratbag_led_get_effect_duration(l); brightness = ratbag_led_get_brightness(l); ck_assert_int_eq(mode, e_l.mode); ck_assert_int_eq(color.red, e_l.color.red); ck_assert_int_eq(color.green, e_l.color.green); ck_assert_int_eq(color.blue, e_l.color.blue); - ck_assert_int_eq(hz, e_l.hz); + ck_assert_int_eq(ms, e_l.ms); ck_assert_int_eq(brightness, e_l.brightness); } @@ -876,7 +876,7 @@ START_TEST(device_leds_set) ratbag_led_set_mode(l, RATBAG_LED_BREATHING); ratbag_led_set_color(l, c); - ratbag_led_set_effect_rate(l, 11); + ratbag_led_set_effect_duration(l, 90); ratbag_led_set_brightness(l, 22); l = ratbag_profile_get_led(p, 0); @@ -887,7 +887,7 @@ START_TEST(device_leds_set) .green = c.green, .blue = c.blue }, - .hz = 11, + .ms = 90, .brightness = 22 }; assert_led_equals(l, e_l); diff --git a/tools/ratbagc.py b/tools/ratbagc.py index 14a602cd..fb0581fb 100644 --- a/tools/ratbagc.py +++ b/tools/ratbagc.py @@ -811,17 +811,17 @@ class RatbagdLed(metaclass=MetaRatbag): return libratbag.ratbag_led_get_colordepth(self._led) @property - def effect_rate(self): - """The LED's effect rate in Hz, values range from 100 to 20000.""" - return libratbag.ratbag_led_get_effect_rate(self._led) + def effect_duration(self): + """The LED's effect duration in ms, values range from 0 to 10000.""" + return libratbag.ratbag_led_get_effect_duration(self._led) - @effect_rate.setter - def effect_rate(self, effect_rate): - """Set the effect rate in Hz. Allowed values range from 100 to 20000. + @effect_duration.setter + def effect_duration(self, effect_duration): + """Set the effect duration in ms. Allowed values range from 0 to 10000. - @param effect_rate The new effect rate, as int + @param effect_duration The new effect duration, as int """ - libratbag.ratbag_led_set_effect_rate(self._led, effect_rate) + self._set_dbus_property("EffectDuration", "u", effect_duration) @property def brightness(self): diff --git a/tools/ratbagctl.in b/tools/ratbagctl.in index d44a5a63..6ad95eeb 100755 --- a/tools/ratbagctl.in +++ b/tools/ratbagctl.in @@ -147,22 +147,22 @@ def print_led(d, p, l, level): l.color[1], l.color[2])) elif l.mode == RatbagdLed.MODE_CYCLE: - print(" " * level + "LED: {} type: {}, depth: {}, mode: {}, rate: {}, brightness: {}".format(l.index, - types[l.type], - depths[l.colordepth], - leds[l.mode], - l.effect_rate, - l.brightness)) + print(" " * level + "LED: {} type: {}, depth: {}, mode: {}, duration: {}, brightness: {}".format(l.index, + types[l.type], + 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}, rate: {}, brightness: {}".format(l.index, - types[l.type], - depths[l.colordepth], - leds[l.mode], - l.color[0], - l.color[1], - l.color[2], - l.effect_rate, - l.brightness)) + print(" " * level + "LED: {} type: {}, depth: {}, mode: {}, color: {:02x}{:02x}{:02x}, duration: {}, brightness: {}".format(l.index, + types[l.type], + depths[l.colordepth], + leds[l.mode], + l.color[0], + l.color[1], + l.color[2], + l.effect_duration, + l.brightness)) def print_led_caps(d, p, l, level): @@ -340,11 +340,11 @@ def func_led_set(r, args): else: l.color = color try: - rate = args.rate + duration = args.duration except AttributeError: pass else: - l.effect_rate = rate + l.effect_duration = duration try: brightness = args.brightness except AttributeError: @@ -1146,14 +1146,14 @@ active profile if none is given.""", }, { of_type: command, - name: 'rate', - help_str: 'The rate to set as current', + name: 'duration', + help_str: 'The duration to set as current', pos_args: [ { of_type: argument, - name: 'rate', + name: 'duration', metavar: 'R', - help_str: 'The rate in Hz to set as current', + help_str: 'The duration in ms to set as current', arg_type: int, }, ], @@ -1488,7 +1488,7 @@ Examples: {0} dpi set 800 {0} profile 0 led 0 set mode on {0} profile 0 led 0 set color ff00ff - {0} profile 0 led 0 set rate 20 + {0} profile 0 led 0 set duration 50 Exit codes: 0 Success diff --git a/tools/ratbagctl.test.in b/tools/ratbagctl.test.in index 1f9d45b1..40073c64 100755 --- a/tools/ratbagctl.test.in +++ b/tools/ratbagctl.test.in @@ -484,7 +484,7 @@ class TestRatbagCtlLED(TestRatbagCtl): r = self.launch_good_test("led 1 get test_device") self.assertEqual(r, "LED: 1 type: side, 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, rate: 3, brightness: 40") + self.assertEqual(r, "LED: 2 type: side, 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") @@ -496,7 +496,7 @@ class TestRatbagCtlLED(TestRatbagCtl): 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, rate: 1, brightness: 20") + self.assertEqual(r, "LED: 0 type: logo, 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") @@ -519,27 +519,27 @@ class TestRatbagCtlLED(TestRatbagCtl): self.launch_fail_test("led 1 set color 00ff00 test_device X") self.launch_fail_test("led 1 set color 00ff00 X test_device") - def test_led_n_set_rate(self): + 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, rate: 3, brightness: 40") - r = self.launch_good_test("led 2 set rate 100 test_device") + self.assertEqual(r, "LED: 2 type: side, 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, rate: 100, brightness: 40") - self.launch_fail_test("led 2 set rate this_is_not_an_int test_device") - self.launch_fail_test("led 2 set rate test_device") - self.launch_fail_test("led 2 set rate 100 test_device X") - self.launch_fail_test("led 2 set rate 100 X test_device") + self.assertEqual(r, "LED: 2 type: side, 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") + self.launch_fail_test("led 2 set duration 100 X test_device") 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, rate: 3, brightness: 40") + self.assertEqual(r, "LED: 1 type: side, 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, rate: 3, brightness: 100") + self.assertEqual(r, "LED: 1 type: side, 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") @@ -554,19 +554,19 @@ class TestRatbagCtlLED(TestRatbagCtl): self.assertEqual(r, "LED: 0 type: logo, 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, rate: 1, brightness: 100") - r = self.launch_good_test("led 0 set mode cycle rate 100 brightness 255 test_device") + self.assertEqual(r, "LED: 0 type: logo, 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, rate: 100, brightness: 255") + self.assertEqual(r, "LED: 0 type: logo, 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") - r = self.launch_good_test("led 0 set rate 100 brightness 200 mode cycle test_device") + 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, rate: 100, brightness: 200") - r = self.launch_good_test("led 0 set rate 100 brightness 200 mode cycle brightness 100 test_device") + self.assertEqual(r, "LED: 0 type: logo, 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, rate: 100, brightness: 100") + self.assertEqual(r, "LED: 0 type: logo, 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): diff --git a/tools/ratbagd.py b/tools/ratbagd.py index 438d315a..d686452a 100644 --- a/tools/ratbagd.py +++ b/tools/ratbagd.py @@ -974,17 +974,17 @@ class RatbagdLed(_RatbagdDBus): return self._get_dbus_property("ColorDepth") @GObject.Property - def effect_rate(self): - """The LED's effect rate in Hz, values range from 100 to 20000.""" - return self._get_dbus_property("EffectRate") + def effect_duration(self): + """The LED's effect duration in ms, values range from 0 to 10000.""" + return self._get_dbus_property("EffectDuration") - @effect_rate.setter - def effect_rate(self, effect_rate): - """Set the effect rate in Hz. Allowed values range from 100 to 20000. + @effect_duration.setter + def effect_duration(self, effect_duration): + """Set the effect duration in ms. Allowed values range from 0 to 10000. - @param effect_rate The new effect rate, as int + @param effect_duration The new effect duration, as int """ - self._set_dbus_property("EffectRate", "u", effect_rate) + self._set_dbus_property("EffectDuration", "u", effect_duration) @GObject.Property def brightness(self):