summaryrefslogtreecommitdiffstats
path: root/movement
diff options
context:
space:
mode:
authorJoey Castillo <joeycastillo@utexas.edu>2022-02-12 22:23:13 -0500
committerJoey Castillo <joeycastillo@utexas.edu>2022-02-13 11:25:28 -0500
commit96017d6ec1816ab1c9bd95b0308b908b4708d388 (patch)
treef2f6fcca2e479910712a64afaf46fa098bc95ca8 /movement
parentb8cb6f3bcf52d5c94f1cc99879deaceb9cbaf7b5 (diff)
downloadSensor-Watch-96017d6ec1816ab1c9bd95b0308b908b4708d388.tar.gz
Sensor-Watch-96017d6ec1816ab1c9bd95b0308b908b4708d388.tar.bz2
Sensor-Watch-96017d6ec1816ab1c9bd95b0308b908b4708d388.zip
movement: add mechanism for watch faces to use backup registers
Diffstat (limited to 'movement')
-rw-r--r--movement/movement.c6
-rw-r--r--movement/movement.h5
2 files changed, 11 insertions, 0 deletions
diff --git a/movement/movement.c b/movement/movement.c
index 42b73526..8185458c 100644
--- a/movement/movement.c
+++ b/movement/movement.c
@@ -216,6 +216,11 @@ void movement_play_alarm(void) {
_movement_enable_fast_tick_if_needed();
}
+uint8_t movement_claim_backup_register(void) {
+ if (movement_state.next_available_backup_register >= 8) return 0;
+ return movement_state.next_available_backup_register++;
+}
+
void app_init(void) {
memset(&movement_state, 0, sizeof(movement_state));
@@ -226,6 +231,7 @@ void app_init(void) {
movement_state.settings.bit.time_zone = 16; // default to GMT
movement_state.light_ticks = -1;
movement_state.alarm_ticks = -1;
+ movement_state.next_available_backup_register = 4;
_movement_reset_inactivity_countdown();
#if __EMSCRIPTEN__
diff --git a/movement/movement.h b/movement/movement.h
index cb2c9ca2..a29c4469 100644
--- a/movement/movement.h
+++ b/movement/movement.h
@@ -268,6 +268,9 @@ typedef struct {
uint8_t tick_frequency;
uint8_t last_second;
uint8_t subsecond;
+
+ // backup register stuff
+ uint8_t next_available_backup_register;
} movement_state_t;
void movement_move_to_face(uint8_t watch_face_index);
@@ -287,4 +290,6 @@ void movement_cancel_background_task(void);
void movement_play_signal(void);
void movement_play_alarm(void);
+uint8_t movement_claim_backup_register(void);
+
#endif // MOVEMENT_H_