From 4a83e6de85c64c32e2adeeb08cdebab93f7e8505 Mon Sep 17 00:00:00 2001 From: xs5871 Date: Sat, 4 Dec 2021 18:16:32 +0000 Subject: [PATCH] code deduplication --- kmk/extensions/led.py | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/kmk/extensions/led.py b/kmk/extensions/led.py index bc2e498..daac8e4 100644 --- a/kmk/extensions/led.py +++ b/kmk/extensions/led.py @@ -5,6 +5,10 @@ from kmk.extensions import Extension, InvalidExtensionEnvironment from kmk.keys import make_argumented_key, make_key +def _clamp(x): + return min(max(0, x), 100) + + class LEDKeyMeta: def __init__(self, *leds): self.leds = leds @@ -135,33 +139,21 @@ class LED(Extension): for i in leds: self._leds[i].duty_cycle = int(percent / 100 * 65535) - def increase_brightness(self, step=None, leds=None): + def step_brightness(self, step, leds=None): leds = leds or range(0, len(self._leds)) for i in leds: - brightness = int(self._leds[i].duty_cycle / 65535 * 100) - if not step: - brightness += self.brightness_step - else: - brightness += step + brightness = int(self._leds[i].duty_cycle / 65535 * 100) + step + self.set_brightness(_clamp(brightness), [i]) - if brightness > 100: - brightness = 100 - - self.set_brightness(brightness, [i]) + def increase_brightness(self, step=None, leds=None): + if step is None: + step = self.brightness_step + self.step_brightness(step, leds) def decrease_brightness(self, step=None, leds=None): - leds = leds or range(0, len(self._leds)) - for i in leds: - brightness = int(self._leds[i].duty_cycle / 65535 * 100) - if not step: - brightness -= self.brightness_step - else: - brightness -= step - - if brightness < 0: - brightness = 0 - - self.set_brightness(brightness, [i]) + if step is None: + step = self.brightness_step + self.step_brightness(-step, leds) def off(self): self.set_brightness(0)