From 1c2f1bad5d256e4cf6381931d36b2fc289374726 Mon Sep 17 00:00:00 2001 From: joeycastillo Date: Sun, 29 Sep 2024 08:58:28 -0400 Subject: [PATCH] refactor LED dwell time to function call --- movement.c | 8 ++++++++ movement.h | 3 +++ movement/watch_faces/demo/demo_face.c | 2 +- watch-faces/settings/preferences_face.c | 12 ++++++------ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/movement.c b/movement.c index 25ae9303..6d7897eb 100644 --- a/movement.c +++ b/movement.c @@ -383,6 +383,14 @@ void movement_set_backlight_color(movement_color_t color) { movement_state.settings.bit.led_blue_color = color.blue; } +uint8_t movement_get_backlight_dwell(void) { + return movement_state.settings.bit.led_duration; +} + +void movement_set_backlight_dwell(uint8_t value) { + movement_state.settings.bit.led_duration = value; +} + bool movement_alarm_enabled(void) { return movement_state.settings.bit.alarm_enabled; } diff --git a/movement.h b/movement.h index f56f90b9..2ac312f9 100644 --- a/movement.h +++ b/movement.h @@ -349,6 +349,9 @@ void movement_set_low_energy_timeout(uint8_t value); movement_color_t movement_backlight_color(void); void movement_set_backlight_color(movement_color_t color); +uint8_t movement_get_backlight_dwell(void); +void movement_set_backlight_dwell(uint8_t value); + /// TODO: For #SecondMovement: Should we have a counter that watch faces increment when they enable an alarm, and decrement when they disable it? /// Or should there be a watch face function where watch faces can tell us if they have an alarm enabled? /// Worth considering a better way to handle this. diff --git a/movement/watch_faces/demo/demo_face.c b/movement/watch_faces/demo/demo_face.c index 2f4d0b93..0587a06b 100644 --- a/movement/watch_faces/demo/demo_face.c +++ b/movement/watch_faces/demo/demo_face.c @@ -58,7 +58,7 @@ void demo_face_activate(movement_settings_t *settings, void *context) { movement_request_tick_frequency(0); // ensure the watch never enters low energy mode movement_set_low_energy_timeout(0); - settings->bit.led_duration = 3; + movement_set_backlight_dwell(3); } bool demo_face_loop(movement_event_t event, movement_settings_t *settings, void *context) { diff --git a/watch-faces/settings/preferences_face.c b/watch-faces/settings/preferences_face.c index db5bbac5..95da02d4 100644 --- a/watch-faces/settings/preferences_face.c +++ b/watch-faces/settings/preferences_face.c @@ -140,12 +140,12 @@ bool preferences_face_loop(movement_event_t event, movement_settings_t *settings } break; case PREFERENCES_PAGE_LED_DURATION: - if (settings->bit.led_duration == 0) { + if (movement_get_backlight_dwell() == 0) { watch_display_text(WATCH_POSITION_BOTTOM, "instnt"); - } else if (settings->bit.led_duration == 0b111) { + } else if (movement_get_backlight_dwell() == 0b111) { watch_display_text(WATCH_POSITION_BOTTOM, "no LEd"); } else { - sprintf(buf, " %1d SeC", settings->bit.led_duration * 2 - 1); + sprintf(buf, " %1d SeC", (movement_get_backlight_dwell() * 2 - 1) % 10); watch_display_text(WATCH_POSITION_BOTTOM, buf); } break; @@ -195,10 +195,10 @@ bool preferences_face_loop(movement_event_t event, movement_settings_t *settings movement_set_low_energy_timeout((movement_get_low_energy_timeout() + 1)); break; case PREFERENCES_PAGE_LED_DURATION: - settings->bit.led_duration = settings->bit.led_duration + 1; - if (settings->bit.led_duration > 3) { + movement_set_backlight_dwell(movement_get_backlight_dwell() + 1); + if (movement_get_backlight_dwell() > 3) { // set all bits to disable the LED - settings->bit.led_duration = 0b111; + movement_set_backlight_dwell(0b111); } break; case PREFERENCES_PAGE_LED_RED: