From 3cd8e5c47ed1e0fa45b4cd29a42d9e606a12fcab Mon Sep 17 00:00:00 2001 From: Jeremy O'Brien Date: Mon, 23 Jan 2023 15:15:57 -0500 Subject: tarot: avoid mandatory function call on every tick (#185) --- movement/watch_faces/complication/tarot_face.c | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/movement/watch_faces/complication/tarot_face.c b/movement/watch_faces/complication/tarot_face.c index fe29f8a7..39feaf15 100644 --- a/movement/watch_faces/complication/tarot_face.c +++ b/movement/watch_faces/complication/tarot_face.c @@ -179,30 +179,28 @@ static void pick_cards(tarot_state_t *state) { } static void display_animation(tarot_state_t *state) { - if (state->is_picking) { - if (state->animation_frame == 0) { - watch_display_string(" ", 7); - watch_set_pixel(1, 4); - watch_set_pixel(1, 6); - state->animation_frame = 1; - } else if (state->animation_frame == 1) { - watch_clear_pixel(1, 4); - watch_clear_pixel(1, 6); - watch_set_pixel(2, 4); - watch_set_pixel(0, 6); - state->animation_frame = 2; - } else if (state->animation_frame == 2) { - watch_clear_pixel(2, 4); - watch_clear_pixel(0, 6); - watch_set_pixel(2, 5); - watch_set_pixel(0, 5); - state->animation_frame = 3; - } else if (state->animation_frame == 3) { - state->animation_frame = 0; - state->is_picking = false; - movement_request_tick_frequency(1); - tarot_display(state); - } + if (state->animation_frame == 0) { + watch_display_string(" ", 7); + watch_set_pixel(1, 4); + watch_set_pixel(1, 6); + state->animation_frame = 1; + } else if (state->animation_frame == 1) { + watch_clear_pixel(1, 4); + watch_clear_pixel(1, 6); + watch_set_pixel(2, 4); + watch_set_pixel(0, 6); + state->animation_frame = 2; + } else if (state->animation_frame == 2) { + watch_clear_pixel(2, 4); + watch_clear_pixel(0, 6); + watch_set_pixel(2, 5); + watch_set_pixel(0, 5); + state->animation_frame = 3; + } else if (state->animation_frame == 3) { + state->animation_frame = 0; + state->is_picking = false; + movement_request_tick_frequency(1); + tarot_display(state); } } @@ -246,7 +244,9 @@ bool tarot_face_loop(movement_event_t event, movement_settings_t *settings, void tarot_display(state); break; case EVENT_TICK: - display_animation(state); + if (state->is_picking) { + display_animation(state); + } break; case EVENT_MODE_BUTTON_UP: movement_move_to_next_face(); -- cgit v1.2.3