dim_time and off_time can now be none

This commit is contained in:
regicidal.plutophage 2023-03-03 01:44:09 +00:00
parent 3c966dc69f
commit 7182dbf4e5

View File

@ -73,8 +73,8 @@ class Oled(Extension):
device_address=0x3C, device_address=0x3C,
brightness=0.8, brightness=0.8,
brightness_step=0.1, brightness_step=0.1,
dim_time=3, dim_time=None,
off_time=6, off_time=None,
): ):
displayio.release_displays() displayio.release_displays()
self.rotation = 180 if flip else 0 self.rotation = 180 if flip else 0
@ -88,8 +88,9 @@ class Oled(Extension):
self._timer_start = ticks_ms() self._timer_start = ticks_ms()
self._dark = False self._dark = False
self._go_dark = False self._go_dark = False
self._dim_time_ms = dim_time * 1000 self._powersave = False
self._off_time_ms = off_time * 1000 self._dim_time_ms = dim_time * 1000 if dim_time else None
self._off_time_ms = off_time * 1000 if off_time else None
gc.collect() gc.collect()
make_key( make_key(
@ -177,15 +178,11 @@ class Oled(Extension):
return return
def on_powersave_enable(self, sandbox): def on_powersave_enable(self, sandbox):
self._display.brightness = ( self._powersave = True
self._display.brightness / 2 if self._display.brightness > 0.5 else 0.2
)
return return
def on_powersave_disable(self, sandbox): def on_powersave_disable(self, sandbox):
self._display.brightness = ( self._powersave = False
self._brightness
) # Restore brightness to default or previous value
return return
def _oled_bri(self, *args, **kwargs): def _oled_bri(self, *args, **kwargs):
@ -208,11 +205,20 @@ class Oled(Extension):
self._timer_start = ticks_ms() self._timer_start = ticks_ms()
def dim(self): def dim(self):
if not check_deadline(ticks_ms(), self._timer_start, self._off_time_ms): if self._off_time_ms is not None and not check_deadline(
ticks_ms(), self._timer_start, self._off_time_ms
):
self._go_dark = True self._go_dark = True
elif not check_deadline(ticks_ms(), self._timer_start, self._dim_time_ms): elif self._dim_time_ms is not None and not check_deadline(
if self._display.brightness > 0.2: ticks_ms(), self._timer_start, self._dim_time_ms
self._display.brightness = 0.2 ):
if self._display.brightness > 0.1:
self._display.brightness = 0.1
elif self._powersave:
self._display.brightness = (
self._display.brightness / 2 if self._display.brightness > 0.5 else 0.1
)
self._go_dark = False
else: else:
self._display.brightness = self._brightness self._display.brightness = self._brightness
self._go_dark = False self._go_dark = False