]> git.earman.xyz Git - sensor-watch.git/commitdiff
refactor movement's unit preference to a function call
authorjoeycastillo <joeycastillo@utexas.edu>
Sun, 29 Sep 2024 12:09:11 +0000 (08:09 -0400)
committerjoeycastillo <joeycastillo@utexas.edu>
Sun, 29 Sep 2024 12:09:11 +0000 (08:09 -0400)
movement.c
movement.h
movement/watch_faces/complication/kitchen_conversions_face.c
movement/watch_faces/sensor/alarm_thermometer_face.c
movement/watch_faces/sensor/minmax_face.c
movement/watch_faces/sensor/thermistor_logging_face.c
movement/watch_faces/sensor/thermistor_readout_face.c
movement/watch_faces/sensor/thermistor_testing_face.c

index 344522375dde516f71d6c19431d1085fe2b0d3fd..3321005e83fd0ae7e3f88fc59236b44650a89e2d 100644 (file)
@@ -345,6 +345,14 @@ void movement_set_clock_mode_24h(movement_clock_mode_t value) {
     movement_state.settings.bit.clock_mode_24h = (value == MOVEMENT_CLOCK_MODE_24H);
 }
 
+bool movement_use_imperial_units(void) {
+    return movement_state.settings.bit.use_imperial_units;
+}
+
+void movement_set_use_imperial_units(bool value) {
+    movement_state.settings.bit.use_imperial_units = value;
+}
+
 void app_init(void) {
     _watch_init();
 
index a071f94ed55350f6bca8f95dee2e760cdd2f73f1..d5b183ec8e2f5496ca9fb12476b525350e809749 100644 (file)
@@ -330,3 +330,6 @@ void movement_set_button_should_sound(bool value);
 
 movement_clock_mode_t movement_clock_mode_24h(void);
 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);
index 9d1a92dd57f829fddb840ee4a1bdde8ee519f07c..9d71165aa59c7fdec4155e48ebf3d1349cc50108 100644 (file)
@@ -84,9 +84,9 @@ static void reset_state(kitchen_conversions_state_t *state, movement_settings_t
     state->pg = measurement;
     state->measurement_i = 0;
     state->from_i = 0;
-    state->from_is_us = settings->bit.use_imperial_units; // If uses imperial, most likely to be US
+    state->from_is_us = movement_use_imperial_units(); // If uses imperial, most likely to be US
     state->to_i = 0;
-    state->to_is_us = settings->bit.use_imperial_units;
+    state->to_is_us = movement_use_imperial_units();
     state->selection_value = 0;
     state->selection_index = 0;
     state->light_held = false;
@@ -395,12 +395,12 @@ bool kitchen_conversions_face_loop(movement_event_t event, movement_settings_t *
 
             case from:
                 state->from_i = 0;
-                state->from_is_us = settings->bit.use_imperial_units;
+                state->from_is_us = movement_use_imperial_units();
                 break;
 
             case to:
                 state->to_i = 0;
-                state->to_is_us = settings->bit.use_imperial_units;
+                state->to_is_us = movement_use_imperial_units();
                 break;
 
             case input:
index 5184df9902e76c1a32385fa46a9946623466c370..e4827e3d1cb175355f09ecddc699a76024b5da65 100644 (file)
@@ -70,19 +70,19 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
 
     switch (event.event_type) {
         case EVENT_ACTIVATE:
-            _alarm_thermometer_face_update(settings->bit.use_imperial_units);
+            _alarm_thermometer_face_update(movement_use_imperial_units());
             break;
         case EVENT_TICK:
             if (watch_rtc_get_date_time().unit.second % 5 == 0) {
                 switch (state->mode) {
                     case MODE_NORMAL:
-                        _alarm_thermometer_face_update(settings->bit.use_imperial_units);
+                        _alarm_thermometer_face_update(movement_use_imperial_units());
                         break;
                     case MODE_ALARM:
                         for (size_t i = LAST_SIZE - 1; i > 0; i--) {
                             state->last[i] = state->last[i - 1];
                         }
-                        state->last[0] = roundf(_alarm_thermometer_face_update(settings->bit.use_imperial_units) * 10.0f);
+                        state->last[0] = roundf(_alarm_thermometer_face_update(movement_use_imperial_units()) * 10.0f);
                         bool constant = true;
                         for (size_t i = 1; i < LAST_SIZE; i++) {
                             if (state->last[i - 1] != state->last[i]) {
@@ -116,7 +116,7 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
                 case MODE_ALARM:
                     state->mode = MODE_NORMAL;
                     watch_clear_indicator(WATCH_INDICATOR_BELL);
-                    _alarm_thermometer_face_update(settings->bit.use_imperial_units);
+                    _alarm_thermometer_face_update(movement_use_imperial_units());
                     break;
             }
             if (movement_button_should_sound()) {
@@ -125,8 +125,8 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
             break;
         case EVENT_ALARM_LONG_PRESS:
             if (state->mode != MODE_FREEZE) {
-                settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
-                _alarm_thermometer_face_update(settings->bit.use_imperial_units);
+                movement_set_use_imperial_units(!movement_use_imperial_units());
+                _alarm_thermometer_face_update(movement_use_imperial_units());
             }
             break;
         case EVENT_LOW_ENERGY_UPDATE:
@@ -137,7 +137,7 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
                 watch_start_tick_animation(1000);
             }
             if (watch_rtc_get_date_time().unit.minute % 5 == 0) {
-                _alarm_thermometer_face_update(settings->bit.use_imperial_units);
+                _alarm_thermometer_face_update(movement_use_imperial_units());
                 watch_display_string("  ", 8);
             }
             break;
index 82f3b7eeeeb131237a858284f62e5ee13326cf9b..f35760c6e8630a5ada2257052197ae3d6d66e101 100644 (file)
@@ -107,13 +107,13 @@ bool minmax_face_loop(movement_event_t event, movement_settings_t *settings, voi
     switch (event.event_type) {
        case EVENT_ACTIVATE:
            temp_c = _get_displayed_temperature_c(state);
-           _minmax_face_update_display(temp_c, settings->bit.use_imperial_units);
+           _minmax_face_update_display(temp_c, movement_use_imperial_units());
             break;
 
        case EVENT_LIGHT_LONG_PRESS:
-            settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
+        movement_set_use_imperial_units(!movement_use_imperial_units());
            temp_c = _get_displayed_temperature_c(state);
-           _minmax_face_update_display(temp_c, settings->bit.use_imperial_units);
+           _minmax_face_update_display(temp_c, movement_use_imperial_units());
             break;
 
        case EVENT_ALARM_BUTTON_UP:
@@ -124,7 +124,7 @@ bool minmax_face_loop(movement_event_t event, movement_settings_t *settings, voi
                watch_display_string("MX", 0);
            }
            temp_c = _get_displayed_temperature_c(state);
-           _minmax_face_update_display(temp_c, settings->bit.use_imperial_units);
+           _minmax_face_update_display(temp_c, movement_use_imperial_units());
             break;
 
        case EVENT_TIMEOUT:
index 63db33ce0a19744d765d1fe6c7bb7e16c05f2430..7c8d5b98fd92a279907e845e7d8be4c1a2863a31 100644 (file)
@@ -100,18 +100,18 @@ bool thermistor_logging_face_loop(movement_event_t event, movement_settings_t *s
             break;
         case EVENT_LIGHT_BUTTON_DOWN:
             logger_state->ts_ticks = 2;
-            _thermistor_logging_face_update_display(logger_state, settings->bit.use_imperial_units, movement_clock_mode_24h());
+            _thermistor_logging_face_update_display(logger_state, movement_use_imperial_units(), movement_clock_mode_24h());
             break;
         case EVENT_ALARM_BUTTON_DOWN:
             logger_state->display_index = (logger_state->display_index + 1) % THERMISTOR_LOGGING_NUM_DATA_POINTS;
             logger_state->ts_ticks = 0;
             // fall through
         case EVENT_ACTIVATE:
-            _thermistor_logging_face_update_display(logger_state, settings->bit.use_imperial_units, movement_clock_mode_24h());
+            _thermistor_logging_face_update_display(logger_state, movement_use_imperial_units(), movement_clock_mode_24h());
             break;
         case EVENT_TICK:
             if (logger_state->ts_ticks && --logger_state->ts_ticks == 0) {
-                _thermistor_logging_face_update_display(logger_state, settings->bit.use_imperial_units, movement_clock_mode_24h());
+                _thermistor_logging_face_update_display(logger_state, movement_use_imperial_units(), movement_clock_mode_24h());
             }
             break;
         case EVENT_BACKGROUND_TASK:
index 2b8ea18da8348c34c66103ef97ef9f36c4533e52..74b3ef752801f28762ca129b7168c004db0a3ff8 100644 (file)
@@ -58,8 +58,8 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
     watch_date_time date_time = watch_rtc_get_date_time();
     switch (event.event_type) {
         case EVENT_ALARM_BUTTON_DOWN:
-            settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
-            _thermistor_readout_face_update_display(settings->bit.use_imperial_units);
+            movement_set_use_imperial_units(!movement_use_imperial_units());
+            _thermistor_readout_face_update_display(movement_use_imperial_units());
             break;
         case EVENT_ACTIVATE:
             // force a measurement to be taken immediately.
@@ -72,7 +72,7 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
                 // In reality the measurement takes a fraction of a second, but this is just to show something is happening.
                 watch_set_indicator(WATCH_INDICATOR_SIGNAL);
             } else if (date_time.unit.second % 5 == 0) {
-                _thermistor_readout_face_update_display(settings->bit.use_imperial_units);
+                _thermistor_readout_face_update_display(movement_use_imperial_units());
                 watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
             }
             break;
@@ -85,7 +85,7 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
             // update every 5 minutes
             if (date_time.unit.minute % 5 == 0) {
                 watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
-                _thermistor_readout_face_update_display(settings->bit.use_imperial_units);
+                _thermistor_readout_face_update_display(movement_use_imperial_units());
                 watch_display_string("  ", 8);
             }
             break;
index 10addc0493836f68066e378fc8968aff0c8cc6c3..ca6cebf10c4cdfbf5b158d1c04969fe95fc7d7b2 100644 (file)
@@ -60,12 +60,12 @@ bool thermistor_testing_face_loop(movement_event_t event, movement_settings_t *s
     (void) context;
     switch (event.event_type) {
         case EVENT_ALARM_BUTTON_DOWN:
-            settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
-            _thermistor_testing_face_update_display(settings->bit.use_imperial_units);
+            movement_set_use_imperial_units(!movement_use_imperial_units());
+            _thermistor_testing_face_update_display(movement_use_imperial_units());
             break;
         case EVENT_ACTIVATE:
         case EVENT_TICK:
-            _thermistor_testing_face_update_display(settings->bit.use_imperial_units);
+            _thermistor_testing_face_update_display(movement_use_imperial_units());
             break;
         default:
             movement_default_loop_handler(event, settings);