}\r
}\r
\r
+static void toggle_tap_control(blackjack_face_state_t *state) {\r
+ if (state->tap_control_on) {\r
+ movement_disable_tap_detection_if_available();\r
+ state->tap_control_on = false;\r
+ watch_clear_indicator(WATCH_INDICATOR_SIGNAL);\r
+ } else {\r
+ bool tap_could_enable = movement_enable_tap_detection_if_available();\r
+ if (tap_could_enable) {\r
+ state->tap_control_on = true;\r
+ watch_set_indicator(WATCH_INDICATOR_SIGNAL);\r
+ }\r
+ }\r
+}\r
+\r
void blackjack_face_setup(uint8_t watch_face_index, void **context_ptr) {\r
(void) watch_face_index;\r
\r
if (*context_ptr == NULL) {\r
*context_ptr = malloc(sizeof(blackjack_face_state_t));\r
memset(*context_ptr, 0, sizeof(blackjack_face_state_t));\r
+ blackjack_face_state_t *state = (blackjack_face_state_t *)*context_ptr;\r
+ state->tap_control_on = false;\r
}\r
}\r
\r
\r
bool blackjack_face_loop(movement_event_t event, void *context) {\r
blackjack_face_state_t *state = (blackjack_face_state_t *) context;\r
- (void) state;\r
-\r
switch (event.event_type) {\r
case EVENT_ACTIVATE:\r
+ if (state->tap_control_on) {\r
+ movement_enable_tap_detection_if_available();\r
+ }\r
break;\r
case EVENT_TICK:\r
if (game_state == BJ_DEALER_PLAYING) {\r
}\r
break;\r
case EVENT_LIGHT_BUTTON_UP:\r
+ case EVENT_DOUBLE_TAP:\r
handle_button_presses(false);\r
case EVENT_LIGHT_BUTTON_DOWN:\r
break;\r
case EVENT_ALARM_BUTTON_UP:\r
+ case EVENT_SINGLE_TAP:\r
handle_button_presses(true);\r
break;\r
+ case EVENT_ALARM_LONG_PRESS:\r
+ if (game_state == BJ_TITLE_SCREEN) {\r
+ toggle_tap_control(state);\r
+ }\r
+ break;\r
case EVENT_TIMEOUT:\r
break;\r
default:\r