code deduplication

This commit is contained in:
xs5871 2021-12-04 18:16:32 +00:00 committed by Kyle Brown
parent 9e8b8376c5
commit 4a83e6de85

View File

@ -5,6 +5,10 @@ from kmk.extensions import Extension, InvalidExtensionEnvironment
from kmk.keys import make_argumented_key, make_key from kmk.keys import make_argumented_key, make_key
def _clamp(x):
return min(max(0, x), 100)
class LEDKeyMeta: class LEDKeyMeta:
def __init__(self, *leds): def __init__(self, *leds):
self.leds = leds self.leds = leds
@ -135,33 +139,21 @@ class LED(Extension):
for i in leds: for i in leds:
self._leds[i].duty_cycle = int(percent / 100 * 65535) 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)) leds = leds or range(0, len(self._leds))
for i in leds: for i in leds:
brightness = int(self._leds[i].duty_cycle / 65535 * 100) brightness = int(self._leds[i].duty_cycle / 65535 * 100) + step
if not step: self.set_brightness(_clamp(brightness), [i])
brightness += self.brightness_step
else:
brightness += step
if brightness > 100: def increase_brightness(self, step=None, leds=None):
brightness = 100 if step is None:
step = self.brightness_step
self.set_brightness(brightness, [i]) self.step_brightness(step, leds)
def decrease_brightness(self, step=None, leds=None): def decrease_brightness(self, step=None, leds=None):
leds = leds or range(0, len(self._leds)) if step is None:
for i in leds: step = self.brightness_step
brightness = int(self._leds[i].duty_cycle / 65535 * 100) self.step_brightness(-step, leds)
if not step:
brightness -= self.brightness_step
else:
brightness -= step
if brightness < 0:
brightness = 0
self.set_brightness(brightness, [i])
def off(self): def off(self):
self.set_brightness(0) self.set_brightness(0)