movement: add mechanism for watch faces to use backup registers

This commit is contained in:
Joey Castillo 2022-02-12 22:23:13 -05:00
parent b8cb6f3bcf
commit 96017d6ec1
2 changed files with 11 additions and 0 deletions

View File

@ -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__

View File

@ -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_