From 71922f8e51b3dffa9cfa487dbfafb25d7099465f Mon Sep 17 00:00:00 2001 From: joeycastillo Date: Sun, 29 Sep 2024 08:16:53 -0400 Subject: [PATCH] refactor movement's alarm_enabled bit to a function call --- movement.c | 8 ++++++++ movement.h | 6 ++++++ movement/watch_faces/clock/clock_face.c | 2 +- movement/watch_faces/clock/close_enough_clock_face.c | 6 +++--- movement/watch_faces/clock/minute_repeater_decimal_face.c | 4 ++-- movement/watch_faces/clock/repetition_minute_face.c | 4 ++-- movement/watch_faces/clock/simple_clock_bin_led_face.c | 4 ++-- movement/watch_faces/clock/weeknumber_clock_face.c | 4 ++-- movement/watch_faces/complication/alarm_face.c | 2 +- watch-faces/clock/simple_clock_face.c | 4 ++-- 10 files changed, 29 insertions(+), 15 deletions(-) diff --git a/movement.c b/movement.c index 3321005e..390edc3b 100644 --- a/movement.c +++ b/movement.c @@ -353,6 +353,14 @@ void movement_set_use_imperial_units(bool value) { movement_state.settings.bit.use_imperial_units = value; } +bool movement_alarm_enabled(void) { + return movement_state.settings.bit.alarm_enabled; +} + +void movement_set_alarm_enabled(bool value) { + movement_state.settings.bit.alarm_enabled = value; +} + void app_init(void) { _watch_init(); diff --git a/movement.h b/movement.h index d5b183ec..494a88ce 100644 --- a/movement.h +++ b/movement.h @@ -333,3 +333,9 @@ void movement_set_clock_mode_24h(movement_clock_mode_t value); bool movement_use_imperial_units(void); void movement_set_use_imperial_units(bool 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. +bool movement_alarm_enabled(void); +void movement_set_alarm_enabled(bool value); diff --git a/movement/watch_faces/clock/clock_face.c b/movement/watch_faces/clock/clock_face.c index 64a2bcd8..e2f492b1 100644 --- a/movement/watch_faces/clock/clock_face.c +++ b/movement/watch_faces/clock/clock_face.c @@ -69,7 +69,7 @@ static void clock_indicate(watch_indicator_t indicator, bool on) { } static void clock_indicate_alarm(movement_settings_t *settings) { - clock_indicate(WATCH_INDICATOR_SIGNAL, settings->bit.alarm_enabled); + clock_indicate(WATCH_INDICATOR_SIGNAL, movement_alarm_enabled()); } static void clock_indicate_time_signal(clock_state_t *clock) { diff --git a/movement/watch_faces/clock/close_enough_clock_face.c b/movement/watch_faces/clock/close_enough_clock_face.c index 0ca4b809..8aaf955a 100644 --- a/movement/watch_faces/clock/close_enough_clock_face.c +++ b/movement/watch_faces/clock/close_enough_clock_face.c @@ -82,7 +82,7 @@ void close_enough_clock_face_activate(movement_settings_t *settings, void *conte } // show alarm indicator if there is an active alarm - _update_alarm_indicator(settings->bit.alarm_enabled, state); + _update_alarm_indicator(movement_alarm_enabled(), state); // this ensures that none of the five_minute_periods will match, so we always rerender when the face activates state->prev_five_minute_period = -1; @@ -214,8 +214,8 @@ bool close_enough_clock_face_loop(movement_event_t event, movement_settings_t *s state->prev_five_minute_period = five_minute_period; // handle alarm indicator - if (state->alarm_enabled != settings->bit.alarm_enabled) { - _update_alarm_indicator(settings->bit.alarm_enabled, state); + if (state->alarm_enabled != movement_alarm_enabled()) { + _update_alarm_indicator(movement_alarm_enabled(), state); } break; diff --git a/movement/watch_faces/clock/minute_repeater_decimal_face.c b/movement/watch_faces/clock/minute_repeater_decimal_face.c index 8a745e3e..4cf09e43 100644 --- a/movement/watch_faces/clock/minute_repeater_decimal_face.c +++ b/movement/watch_faces/clock/minute_repeater_decimal_face.c @@ -90,7 +90,7 @@ void minute_repeater_decimal_face_activate(movement_settings_t *settings, void * else watch_clear_indicator(WATCH_INDICATOR_BELL); // show alarm indicator if there is an active alarm - _update_alarm_indicator(settings->bit.alarm_enabled, state); + _update_alarm_indicator(movement_alarm_enabled(), state); watch_set_colon(); @@ -158,7 +158,7 @@ bool minute_repeater_decimal_face_loop(movement_event_t event, movement_settings } watch_display_string(buf, pos); // handle alarm indicator - if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state); + if (state->alarm_enabled != movement_alarm_enabled()) _update_alarm_indicator(movement_alarm_enabled(), state); break; case EVENT_ALARM_LONG_PRESS: state->signal_enabled = !state->signal_enabled; diff --git a/movement/watch_faces/clock/repetition_minute_face.c b/movement/watch_faces/clock/repetition_minute_face.c index 27c2346c..59110e61 100644 --- a/movement/watch_faces/clock/repetition_minute_face.c +++ b/movement/watch_faces/clock/repetition_minute_face.c @@ -75,7 +75,7 @@ void repetition_minute_face_activate(movement_settings_t *settings, void *contex else watch_clear_indicator(WATCH_INDICATOR_BELL); // show alarm indicator if there is an active alarm - _update_alarm_indicator(settings->bit.alarm_enabled, state); + _update_alarm_indicator(movement_alarm_enabled(), state); watch_set_colon(); @@ -143,7 +143,7 @@ bool repetition_minute_face_loop(movement_event_t event, movement_settings_t *se } watch_display_string(buf, pos); // handle alarm indicator - if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state); + if (state->alarm_enabled != movement_alarm_enabled()) _update_alarm_indicator(movement_alarm_enabled(), state); break; case EVENT_ALARM_LONG_PRESS: state->signal_enabled = !state->signal_enabled; diff --git a/movement/watch_faces/clock/simple_clock_bin_led_face.c b/movement/watch_faces/clock/simple_clock_bin_led_face.c index 263efedb..4b2bea89 100644 --- a/movement/watch_faces/clock/simple_clock_bin_led_face.c +++ b/movement/watch_faces/clock/simple_clock_bin_led_face.c @@ -67,7 +67,7 @@ void simple_clock_bin_led_face_activate(movement_settings_t *settings, void *con else watch_clear_indicator(WATCH_INDICATOR_BELL); // show alarm indicator if there is an active alarm - _update_alarm_indicator(settings->bit.alarm_enabled, state); + _update_alarm_indicator(movement_alarm_enabled(), state); watch_set_colon(); @@ -169,7 +169,7 @@ bool simple_clock_bin_led_face_loop(movement_event_t event, movement_settings_t } watch_display_string(buf, pos); // handle alarm indicator - if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state); + if (state->alarm_enabled != movement_alarm_enabled()) _update_alarm_indicator(movement_alarm_enabled(), state); } break; case EVENT_ALARM_LONG_PRESS: diff --git a/movement/watch_faces/clock/weeknumber_clock_face.c b/movement/watch_faces/clock/weeknumber_clock_face.c index 9941858c..3eb3e5b6 100644 --- a/movement/watch_faces/clock/weeknumber_clock_face.c +++ b/movement/watch_faces/clock/weeknumber_clock_face.c @@ -57,7 +57,7 @@ void weeknumber_clock_face_activate(movement_settings_t *settings, void *context else watch_clear_indicator(WATCH_INDICATOR_BELL); // show alarm indicator if there is an active alarm - _update_alarm_indicator(settings->bit.alarm_enabled, state); + _update_alarm_indicator(movement_alarm_enabled(), state); watch_set_colon(); @@ -120,7 +120,7 @@ bool weeknumber_clock_face_loop(movement_event_t event, movement_settings_t *set } watch_display_string(buf, pos); // handle alarm indicator - if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state); + if (state->alarm_enabled != movement_alarm_enabled()) _update_alarm_indicator(movement_alarm_enabled(), state); break; case EVENT_ALARM_LONG_PRESS: state->signal_enabled = !state->signal_enabled; diff --git a/movement/watch_faces/complication/alarm_face.c b/movement/watch_faces/complication/alarm_face.c index a123f0e0..54b01c31 100644 --- a/movement/watch_faces/complication/alarm_face.c +++ b/movement/watch_faces/complication/alarm_face.c @@ -169,7 +169,7 @@ static void _alarm_update_alarm_enabled(movement_settings_t *settings, alarm_sta } } } - settings->bit.alarm_enabled = active_alarms; + movement_set_alarm_enabled(active_alarms); } static void _alarm_play_short_beep(uint8_t pitch_idx) { diff --git a/watch-faces/clock/simple_clock_face.c b/watch-faces/clock/simple_clock_face.c index d3c27868..7723d8be 100644 --- a/watch-faces/clock/simple_clock_face.c +++ b/watch-faces/clock/simple_clock_face.c @@ -58,7 +58,7 @@ void simple_clock_face_activate(movement_settings_t *settings, void *context) { else watch_clear_indicator(WATCH_INDICATOR_BELL); // show alarm indicator if there is an active alarm - _update_alarm_indicator(settings->bit.alarm_enabled, state); + _update_alarm_indicator(movement_alarm_enabled(), state); watch_set_colon(); @@ -130,7 +130,7 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting } // handle alarm indicator - if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state); + if (state->alarm_enabled != movement_alarm_enabled()) _update_alarm_indicator(movement_alarm_enabled(), state); break; case EVENT_ALARM_LONG_PRESS: state->signal_enabled = !state->signal_enabled;