Merge pull request #180 from joeycastillo/default-handler
Restore long press on MODE to return to first watch face by adding a handler for unhandled events
This commit is contained in:
commit
8e11285fd9
@ -219,6 +219,30 @@ void movement_illuminate_led(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool movement_default_loop_handler(movement_event_t event, movement_settings_t *settings) {
|
||||||
|
(void)settings;
|
||||||
|
|
||||||
|
switch (event.event_type) {
|
||||||
|
case EVENT_MODE_BUTTON_UP:
|
||||||
|
movement_move_to_next_face();
|
||||||
|
break;
|
||||||
|
case EVENT_LIGHT_BUTTON_DOWN:
|
||||||
|
movement_illuminate_led();
|
||||||
|
break;
|
||||||
|
case EVENT_MODE_LONG_PRESS:
|
||||||
|
if (MOVEMENT_SECONDARY_FACE_INDEX && movement_state.current_watch_face == 0) {
|
||||||
|
movement_move_to_face(MOVEMENT_SECONDARY_FACE_INDEX);
|
||||||
|
} else {
|
||||||
|
movement_move_to_face(0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void movement_move_to_face(uint8_t watch_face_index) {
|
void movement_move_to_face(uint8_t watch_face_index) {
|
||||||
movement_state.watch_face_changed = true;
|
movement_state.watch_face_changed = true;
|
||||||
movement_state.next_watch_face = watch_face_index;
|
movement_state.next_watch_face = watch_face_index;
|
||||||
@ -449,20 +473,6 @@ bool app_loop(void) {
|
|||||||
if (event.event_type) {
|
if (event.event_type) {
|
||||||
event.subsecond = movement_state.subsecond;
|
event.subsecond = movement_state.subsecond;
|
||||||
can_sleep = watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]);
|
can_sleep = watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]);
|
||||||
|
|
||||||
// Long-pressing MODE brings one back to the first face, provided that the watch face hasn't decided to send them elsewhere
|
|
||||||
// (and we're not currently on the first face). If we're currently on the first face, a long press
|
|
||||||
// of MODE sends us to the secondary faces (if defined).
|
|
||||||
// Note that it's the face's responsibility to provide some way to get to the next face, so if EVENT_MODE_BUTTON_* is
|
|
||||||
// used for face functionality EVENT_MODE_LONG_PRESS should probably be handled and next_face() triggered in the face
|
|
||||||
// (which would effectively disable the normal 'long press to face 0' behaviour).
|
|
||||||
if (event.event_type == EVENT_MODE_LONG_PRESS
|
|
||||||
&& !movement_state.watch_face_changed) {
|
|
||||||
if (MOVEMENT_SECONDARY_FACE_INDEX && movement_state.current_watch_face == 0) {
|
|
||||||
movement_move_to_face(MOVEMENT_SECONDARY_FACE_INDEX);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
event.event_type = EVENT_NONE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we have timed out of our timeout countdown, give the app a hint that they can resign.
|
// if we have timed out of our timeout countdown, give the app a hint that they can resign.
|
||||||
|
@ -285,6 +285,9 @@ typedef struct {
|
|||||||
|
|
||||||
void movement_move_to_face(uint8_t watch_face_index);
|
void movement_move_to_face(uint8_t watch_face_index);
|
||||||
void movement_move_to_next_face(void);
|
void movement_move_to_next_face(void);
|
||||||
|
|
||||||
|
bool movement_default_loop_handler(movement_event_t event, movement_settings_t *settings);
|
||||||
|
|
||||||
void movement_illuminate_led(void);
|
void movement_illuminate_led(void);
|
||||||
|
|
||||||
void movement_request_tick_frequency(uint8_t freq);
|
void movement_request_tick_frequency(uint8_t freq);
|
||||||
|
@ -53,13 +53,10 @@ bool <#watch_face_name#>_face_loop(movement_event_t event, movement_settings_t *
|
|||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
// If needed, update your display here.
|
// If needed, update your display here.
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
// You shouldn't need to change this case; Mode almost always moves to the next watch face.
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
// If you have other uses for the Light button, you can opt not to illuminate the LED for this event.
|
// You can use the Light button for your own purposes. Note that by default, Movement will also
|
||||||
movement_illuminate_led();
|
// illuminate the LED in response to EVENT_LIGHT_BUTTON_DOWN; to suppress that behavior, add an
|
||||||
|
// empty case for EVENT_LIGHT_BUTTON_DOWN.
|
||||||
break;
|
break;
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
// Just in case you have need for another button.
|
// Just in case you have need for another button.
|
||||||
@ -76,11 +73,20 @@ bool <#watch_face_name#>_face_loop(movement_event_t event, movement_settings_t *
|
|||||||
// watch_start_tick_animation(500);
|
// watch_start_tick_animation(500);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
// Movement's default loop handler will step in for any cases you don't handle above:
|
||||||
|
// * EVENT_LIGHT_BUTTON_DOWN lights the LED
|
||||||
|
// * EVENT_MODE_BUTTON_UP moves to the next watch face in the list
|
||||||
|
// * EVENT_MODE_LONG_PRESS returns to the first watch face (or skips to the secondary watch face, if configured)
|
||||||
|
// You can override any of these behaviors by adding a case for these events to this switch statement.
|
||||||
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
// return true if the watch can enter standby mode. If you are PWM'ing an LED or buzzing the buzzer here,
|
// return true if the watch can enter standby mode. Generally speaking, you should always return true.
|
||||||
// you should return false since the PWM driver does not operate in standby mode.
|
// Exceptions:
|
||||||
|
// * If you are displaying a color using the low-level watch_set_led_color function, you should return false.
|
||||||
|
// * If you are sounding the buzzer using the low-level watch_set_buzzer_on function, you should return false.
|
||||||
|
// Note that if you are driving the LED or buzzer using Movement functions like movement_illuminate_led or
|
||||||
|
// movement_play_alarm, you can still return true. This guidance only applies to the low-level watch_ functions.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,16 +57,8 @@ bool beats_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
|
|
||||||
watch_display_string(buf, 0);
|
watch_display_string(buf, 0);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,9 +129,6 @@ bool mars_time_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
_update(settings, state);
|
_update(settings, state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
state->displaying_sol = !state->displaying_sol;
|
state->displaying_sol = !state->displaying_sol;
|
||||||
_update(settings, state);
|
_update(settings, state);
|
||||||
@ -152,6 +149,7 @@ bool mars_time_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
// watch_start_tick_animation(500);
|
// watch_start_tick_animation(500);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,12 +128,6 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting
|
|||||||
// handle alarm indicator
|
// handle alarm indicator
|
||||||
if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state);
|
if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
return false;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
case EVENT_ALARM_LONG_PRESS:
|
||||||
state->signal_enabled = !state->signal_enabled;
|
state->signal_enabled = !state->signal_enabled;
|
||||||
if (state->signal_enabled) watch_set_indicator(WATCH_INDICATOR_BELL);
|
if (state->signal_enabled) watch_set_indicator(WATCH_INDICATOR_BELL);
|
||||||
@ -155,7 +149,7 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -122,12 +122,6 @@ bool weeknumber_clock_face_loop(movement_event_t event, movement_settings_t *set
|
|||||||
// handle alarm indicator
|
// handle alarm indicator
|
||||||
if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state);
|
if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
return false;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
case EVENT_ALARM_LONG_PRESS:
|
||||||
state->signal_enabled = !state->signal_enabled;
|
state->signal_enabled = !state->signal_enabled;
|
||||||
if (state->signal_enabled) watch_set_indicator(WATCH_INDICATOR_BELL);
|
if (state->signal_enabled) watch_set_indicator(WATCH_INDICATOR_BELL);
|
||||||
@ -149,6 +143,7 @@ bool weeknumber_clock_face_loop(movement_event_t event, movement_settings_t *set
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,18 +113,12 @@ static bool world_clock_face_do_display_mode(movement_event_t event, movement_se
|
|||||||
}
|
}
|
||||||
watch_display_string(buf, pos);
|
watch_display_string(buf, pos);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
return false;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
case EVENT_ALARM_LONG_PRESS:
|
||||||
movement_request_tick_frequency(4);
|
movement_request_tick_frequency(4);
|
||||||
state->current_screen = 1;
|
state->current_screen = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -441,13 +441,11 @@ bool alarm_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
_alarm_update_alarm_enabled(settings, state);
|
_alarm_update_alarm_enabled(settings, state);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,14 +219,6 @@ bool astronomy_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
_astronomy_face_update(event, settings, state);
|
_astronomy_face_update(event, settings, state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
// You shouldn't need to change this case; Mode almost always moves to the next watch face.
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
|
||||||
// If you have other uses for the Light button, you can opt not to illuminate the LED for this event.
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
switch (state->mode) {
|
switch (state->mode) {
|
||||||
case ASTRONOMY_MODE_SELECTING_BODY:
|
case ASTRONOMY_MODE_SELECTING_BODY:
|
||||||
@ -267,6 +259,7 @@ bool astronomy_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
// TODO?
|
// TODO?
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,9 +57,6 @@ bool blinky_face_loop(movement_event_t event, movement_settings_t *settings, voi
|
|||||||
case EVENT_ACTIVATE:
|
case EVENT_ACTIVATE:
|
||||||
_blinky_face_update_lcd(state);
|
_blinky_face_update_lcd(state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
if (!state->active) {
|
if (!state->active) {
|
||||||
state->color = (state->color + 1) % 3;
|
state->color = (state->color + 1) % 3;
|
||||||
@ -93,7 +90,9 @@ bool blinky_face_loop(movement_event_t event, movement_settings_t *settings, voi
|
|||||||
break;
|
break;
|
||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
if (!state->active) movement_move_to_face(0);
|
if (!state->active) movement_move_to_face(0);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,8 +289,10 @@ bool countdown_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
movement_default_loop_handler(event, settings);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -47,12 +47,6 @@ bool counter_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
counter_state_t *state = (counter_state_t *)context;
|
counter_state_t *state = (counter_state_t *)context;
|
||||||
|
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
state->counter_idx++; // increment counter index
|
state->counter_idx++; // increment counter index
|
||||||
if (state->counter_idx>99) { //0-99
|
if (state->counter_idx>99) { //0-99
|
||||||
@ -72,6 +66,7 @@ bool counter_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
// ignore timeout
|
// ignore timeout
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,12 +110,6 @@ bool databank_face_loop(movement_event_t event, movement_settings_t *settings, v
|
|||||||
databank_state.current_word = 0;
|
databank_state.current_word = 0;
|
||||||
display();
|
display();
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
// when the user presses 'mode', we tell movement to move to the next watch face.
|
|
||||||
// movement will call our resign function, clear the screen, and transfer control
|
|
||||||
// to the next watch face in the list.
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
case EVENT_ALARM_LONG_PRESS:
|
||||||
databank_state.databank_page = (databank_state.databank_page + 1) % databank_num_pages;
|
databank_state.databank_page = (databank_state.databank_page + 1) % databank_num_pages;
|
||||||
databank_state.current_word = 0;
|
databank_state.current_word = 0;
|
||||||
@ -141,7 +135,9 @@ bool databank_face_loop(movement_event_t event, movement_settings_t *settings, v
|
|||||||
// and it will do it long before the watch enters low energy mode. This ensures we
|
// and it will do it long before the watch enters low energy mode. This ensures we
|
||||||
// won't be on screen, and thus opts us out of getting the EVENT_LOW_ENERGY_UPDATE above.
|
// won't be on screen, and thus opts us out of getting the EVENT_LOW_ENERGY_UPDATE above.
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,9 +123,6 @@ bool day_one_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
case EVENT_LIGHT_BUTTON_DOWN:
|
||||||
// only illuminate if we're in display mode
|
// only illuminate if we're in display mode
|
||||||
if (state->current_page == 0) movement_illuminate_led();
|
if (state->current_page == 0) movement_illuminate_led();
|
||||||
@ -176,7 +173,9 @@ bool day_one_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
if (state->current_page != 0) {
|
if (state->current_page != 0) {
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -664,14 +664,12 @@ bool interval_face_loop(movement_event_t event, movement_settings_t *settings, v
|
|||||||
watch_buzzer_play_sequence((int8_t *)_sound_seq_finish, NULL);
|
watch_buzzer_play_sequence((int8_t *)_sound_seq_finish, NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
if (state->face_state != interval_state_running) movement_move_to_face(0);
|
if (state->face_state != interval_state_running) movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
movement_default_loop_handler(event, settings);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
@ -155,12 +155,6 @@ bool moon_phase_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
watch_display_string(" ", 8);
|
watch_display_string(" ", 8);
|
||||||
if (!watch_tick_animation_is_running()) watch_start_tick_animation(1000);
|
if (!watch_tick_animation_is_running()) watch_start_tick_animation(1000);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
// Pressing the alarm adds an offset of one day to the displayed value,
|
// Pressing the alarm adds an offset of one day to the displayed value,
|
||||||
// so you can see moon phases in the future.
|
// so you can see moon phases in the future.
|
||||||
@ -171,7 +165,7 @@ bool moon_phase_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
// QUESTION: Should timeout reset offset to 0?
|
// QUESTION: Should timeout reset offset to 0?
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -174,14 +174,6 @@ bool orrery_face_loop(movement_event_t event, movement_settings_t *settings, voi
|
|||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
_orrery_face_update(event, settings, state);
|
_orrery_face_update(event, settings, state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
switch (state->mode) {
|
switch (state->mode) {
|
||||||
case ORRERY_MODE_SELECTING_BODY:
|
case ORRERY_MODE_SELECTING_BODY:
|
||||||
@ -219,6 +211,7 @@ bool orrery_face_loop(movement_event_t event, movement_settings_t *settings, voi
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,9 +141,6 @@ bool probability_face_loop(movement_event_t event, movement_settings_t *settings
|
|||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
display_dice_roll_animation(state);
|
display_dice_roll_animation(state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
// Change how many sides the die has
|
// Change how many sides the die has
|
||||||
for (int i = 0; i < NUM_DICE_TYPES; i++) {
|
for (int i = 0; i < NUM_DICE_TYPES; i++) {
|
||||||
@ -170,6 +167,7 @@ bool probability_face_loop(movement_event_t event, movement_settings_t *settings
|
|||||||
watch_display_string("SLEEP ", 4);
|
watch_display_string("SLEEP ", 4);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,12 +46,6 @@ bool pulsometer_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
pulsometer_state_t *pulsometer_state = (pulsometer_state_t *)context;
|
pulsometer_state_t *pulsometer_state = (pulsometer_state_t *)context;
|
||||||
char buf[14];
|
char buf[14];
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
case EVENT_ALARM_BUTTON_DOWN:
|
||||||
pulsometer_state->measuring = true;
|
pulsometer_state->measuring = true;
|
||||||
pulsometer_state->pulse = 0xFFFF;
|
pulsometer_state->pulse = 0xFFFF;
|
||||||
@ -102,6 +96,7 @@ bool pulsometer_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,12 +49,6 @@ bool ratemeter_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
case EVENT_ACTIVATE:
|
case EVENT_ACTIVATE:
|
||||||
watch_display_string("ra ", 0);
|
watch_display_string("ra ", 0);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
case EVENT_ALARM_BUTTON_DOWN:
|
||||||
if (ratemeter_state->ticks != 0) {
|
if (ratemeter_state->ticks != 0) {
|
||||||
ratemeter_state->rate = (int16_t)(60.0 / ((float)ratemeter_state->ticks / (float)RATEMETER_FACE_FREQUENCY));
|
ratemeter_state->rate = (int16_t)(60.0 / ((float)ratemeter_state->ticks / (float)RATEMETER_FACE_FREQUENCY));
|
||||||
@ -85,6 +79,7 @@ bool ratemeter_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -441,7 +441,9 @@ bool rpn_calculator_alt_face_loop(movement_event_t event, movement_settings_t *s
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -333,6 +333,7 @@ bool rpn_calculator_face_loop(movement_event_t event, movement_settings_t *setti
|
|||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,9 +196,6 @@ bool sailing_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
}
|
}
|
||||||
draw(state, event.subsecond, settings);
|
draw(state, event.subsecond, settings);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_LONG_PRESS:
|
case EVENT_LIGHT_LONG_PRESS:
|
||||||
if (state->mode == sl_running) {
|
if (state->mode == sl_running) {
|
||||||
reset(state);
|
reset(state);
|
||||||
@ -257,8 +254,10 @@ bool sailing_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
movement_default_loop_handler(event, settings);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -251,9 +251,6 @@ bool stock_stopwatch_face_loop(movement_event_t event, movement_settings_t *sett
|
|||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
_draw();
|
_draw();
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_LONG_PRESS:
|
case EVENT_LIGHT_LONG_PRESS:
|
||||||
// kind od hidden feature: long press toggles light on or off
|
// kind od hidden feature: long press toggles light on or off
|
||||||
state->light_on_button = !state->light_on_button;
|
state->light_on_button = !state->light_on_button;
|
||||||
@ -313,6 +310,7 @@ bool stock_stopwatch_face_loop(movement_event_t event, movement_settings_t *sett
|
|||||||
_draw();
|
_draw();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -107,9 +107,6 @@ bool stopwatch_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
_stopwatch_face_update_display(stopwatch_state, true);
|
_stopwatch_face_update_display(stopwatch_state, true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
case EVENT_LIGHT_BUTTON_DOWN:
|
||||||
movement_illuminate_led();
|
movement_illuminate_led();
|
||||||
if (!stopwatch_state->running) {
|
if (!stopwatch_state->running) {
|
||||||
@ -161,7 +158,7 @@ bool stopwatch_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -339,9 +339,6 @@ bool sunrise_sunset_face_loop(movement_event_t event, movement_settings_t *setti
|
|||||||
_sunrise_sunset_face_update_settings_display(event, state);
|
_sunrise_sunset_face_update_settings_display(event, state);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
case EVENT_LIGHT_BUTTON_DOWN:
|
||||||
if (state->page) {
|
if (state->page) {
|
||||||
state->active_digit++;
|
state->active_digit++;
|
||||||
@ -360,8 +357,6 @@ bool sunrise_sunset_face_loop(movement_event_t event, movement_settings_t *setti
|
|||||||
_sunrise_sunset_face_update(settings, state);
|
_sunrise_sunset_face_update(settings, state);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
if (state->page) {
|
if (state->page) {
|
||||||
_sunrise_sunset_face_advance_digit(state);
|
_sunrise_sunset_face_advance_digit(state);
|
||||||
@ -393,7 +388,7 @@ bool sunrise_sunset_face_loop(movement_event_t event, movement_settings_t *setti
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -138,9 +138,6 @@ bool tachymeter_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
state->animation_state = (state->animation_state + 1) % 6;
|
state->animation_state = (state->animation_state + 1) % 6;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
if (state->editing){
|
if (state->editing){
|
||||||
// Go to next digit
|
// Go to next digit
|
||||||
@ -254,6 +251,7 @@ bool tachymeter_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
// watch_start_tick_animation(500);
|
// watch_start_tick_animation(500);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// return true if the watch can enter standby mode. If you are PWM'ing an LED or buzzing the buzzer here,
|
// return true if the watch can enter standby mode. If you are PWM'ing an LED or buzzing the buzzer here,
|
||||||
|
@ -46,12 +46,6 @@ bool tally_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
tally_state_t *state = (tally_state_t *)context;
|
tally_state_t *state = (tally_state_t *)context;
|
||||||
|
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
// increment tally index
|
// increment tally index
|
||||||
state->tally_idx++;
|
state->tally_idx++;
|
||||||
@ -79,6 +73,7 @@ bool tally_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
// ignore timeout
|
// ignore timeout
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,9 +248,6 @@ bool tarot_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
display_animation(state);
|
display_animation(state);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
if (state->drawn_cards[0] == 0xff) {
|
if (state->drawn_cards[0] == 0xff) {
|
||||||
// deck is inited; cycle through # cards to draw
|
// deck is inited; cycle through # cards to draw
|
||||||
@ -287,11 +284,8 @@ bool tarot_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
watch_display_string("SLEEP ", 4);
|
watch_display_string("SLEEP ", 4);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_LONG_PRESS:
|
|
||||||
// since we ignore timeouts, provide a convenient way to jump back to the start
|
|
||||||
movement_move_to_face(0);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,12 +89,6 @@ bool tempchart_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
// on activate and tick, if we are animating,
|
// on activate and tick, if we are animating,
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
// when the user presses 'mode', we tell movement to move to the next watch face.
|
|
||||||
// movement will call our resign function, clear the screen, and transfer control
|
|
||||||
// to the next watch face in the list.
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
// This low energy mode update occurs once a minute, if the watch face is in the
|
// This low energy mode update occurs once a minute, if the watch face is in the
|
||||||
// foreground when Movement enters low energy mode. We have the option of supporting
|
// foreground when Movement enters low energy mode. We have the option of supporting
|
||||||
@ -133,6 +127,7 @@ bool tempchart_face_loop(movement_event_t event, movement_settings_t *settings,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,9 +142,6 @@ bool tomato_face_loop(movement_event_t event, movement_settings_t *settings, voi
|
|||||||
}
|
}
|
||||||
tomato_draw(state);
|
tomato_draw(state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
movement_illuminate_led();
|
movement_illuminate_led();
|
||||||
if (state->mode == tomato_ready) {
|
if (state->mode == tomato_ready) {
|
||||||
@ -179,6 +176,7 @@ bool tomato_face_loop(movement_event_t event, movement_settings_t *settings, voi
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,12 +79,6 @@ bool totp_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
|
|
||||||
watch_display_string(buf, 0);
|
watch_display_string(buf, 0);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
@ -101,7 +95,9 @@ bool totp_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
break;
|
break;
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
case EVENT_ALARM_BUTTON_DOWN:
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
case EVENT_ALARM_LONG_PRESS:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,12 +242,6 @@ bool totp_face_lfs_loop(movement_event_t event, movement_settings_t *settings, v
|
|||||||
case EVENT_ACTIVATE:
|
case EVENT_ACTIVATE:
|
||||||
totp_face_display(totp_state);
|
totp_face_display(totp_state);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
@ -257,7 +251,9 @@ bool totp_face_lfs_loop(movement_event_t event, movement_settings_t *settings, v
|
|||||||
break;
|
break;
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
case EVENT_ALARM_BUTTON_DOWN:
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
case EVENT_ALARM_LONG_PRESS:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,15 +144,14 @@ bool wake_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
movement_play_alarm();
|
movement_play_alarm();
|
||||||
// 2022-07-23: Thx @joeycastillo for the dedicated “alarm” signal
|
// 2022-07-23: Thx @joeycastillo for the dedicated “alarm” signal
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
case EVENT_LOW_ENERGY_UPDATE:
|
case EVENT_LOW_ENERGY_UPDATE:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
movement_default_loop_handler(event, settings);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -45,12 +45,6 @@ bool character_set_face_loop(movement_event_t event, movement_settings_t *settin
|
|||||||
char *c = (char *)context;
|
char *c = (char *)context;
|
||||||
char buf[11];
|
char buf[11];
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
*c = (*c) + 1;
|
*c = (*c) + 1;
|
||||||
if (*c & 0x80) *c = ' ';
|
if (*c & 0x80) *c = ' ';
|
||||||
@ -63,6 +57,7 @@ bool character_set_face_loop(movement_event_t event, movement_settings_t *settin
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,12 +65,6 @@ bool demo_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
(void) settings;
|
(void) settings;
|
||||||
demo_face_index_t *screen = (demo_face_index_t *)context;
|
demo_face_index_t *screen = (demo_face_index_t *)context;
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
*screen = ((*screen) + 1) % DEMO_FACE_NUM_FACES;
|
*screen = ((*screen) + 1) % DEMO_FACE_NUM_FACES;
|
||||||
// fall through
|
// fall through
|
||||||
@ -129,6 +123,7 @@ bool demo_face_loop(movement_event_t event, movement_settings_t *settings, void
|
|||||||
// ignore timeout
|
// ignore timeout
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,9 +96,6 @@ bool frequency_correction_face_loop(movement_event_t event, movement_settings_t
|
|||||||
break;
|
break;
|
||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
freqcorr = RTC->MODE2.FREQCORR.reg;
|
freqcorr = RTC->MODE2.FREQCORR.reg;
|
||||||
if (freqcorr < 127) {
|
if (freqcorr < 127) {
|
||||||
@ -126,6 +123,7 @@ bool frequency_correction_face_loop(movement_event_t event, movement_settings_t
|
|||||||
watch_start_tick_animation(500);
|
watch_start_tick_animation(500);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,18 +66,6 @@ bool hello_there_face_loop(movement_event_t event, movement_settings_t *settings
|
|||||||
state->current_word = (state->current_word + 1) % 2;
|
state->current_word = (state->current_word + 1) % 2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
|
||||||
// when the user presses 'light', we illuminate the LED. We could override this if
|
|
||||||
// our UI needed an additional button for input, consuming the light button press
|
|
||||||
// but not illuminating the LED.
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
// when the user presses 'mode', we tell movement to move to the next watch face.
|
|
||||||
// movement will call our resign function, clear the screen, and transfer control
|
|
||||||
// to the next watch face in the list.
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
// when the user presses 'alarm', we toggle the state of the animation. If animating,
|
// when the user presses 'alarm', we toggle the state of the animation. If animating,
|
||||||
// we stop; if stopped, we resume.
|
// we stop; if stopped, we resume.
|
||||||
@ -97,7 +85,9 @@ bool hello_there_face_loop(movement_event_t event, movement_settings_t *settings
|
|||||||
// and it will do it long before the watch enters low energy mode. This ensures we
|
// and it will do it long before the watch enters low energy mode. This ensures we
|
||||||
// won't be on screen, and thus opts us out of getting the EVENT_LOW_ENERGY_UPDATE above.
|
// won't be on screen, and thus opts us out of getting the EVENT_LOW_ENERGY_UPDATE above.
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,12 +146,6 @@ bool lis2dw_logging_face_loop(movement_event_t event, movement_settings_t *setti
|
|||||||
lis2dw_interrupt_source interrupt_source = 0;
|
lis2dw_interrupt_source interrupt_source = 0;
|
||||||
|
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_LONG_PRESS:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
case EVENT_LIGHT_BUTTON_DOWN:
|
||||||
logger_state->axis_index = (logger_state->axis_index + 1) % 4;
|
logger_state->axis_index = (logger_state->axis_index + 1) % 4;
|
||||||
logger_state->log_ticks = 255;
|
logger_state->log_ticks = 255;
|
||||||
@ -187,6 +181,7 @@ bool lis2dw_logging_face_loop(movement_event_t event, movement_settings_t *setti
|
|||||||
_lis2dw_logging_face_log_data(logger_state);
|
_lis2dw_logging_face_log_data(logger_state);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,12 +55,6 @@ bool voltage_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
(void) context;
|
(void) context;
|
||||||
watch_date_time date_time;
|
watch_date_time date_time;
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ACTIVATE:
|
case EVENT_ACTIVATE:
|
||||||
_voltage_face_update_display();
|
_voltage_face_update_display();
|
||||||
break;
|
break;
|
||||||
@ -78,6 +72,7 @@ bool voltage_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
watch_display_string("BA SLEEP ", 0);
|
watch_display_string("BA SLEEP ", 0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,9 +159,6 @@ bool accelerometer_data_acquisition_face_loop(movement_event_t event, movement_s
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
switch (state->mode) {
|
switch (state->mode) {
|
||||||
case ACCELEROMETER_DATA_ACQUISITION_MODE_IDLE:
|
case ACCELEROMETER_DATA_ACQUISITION_MODE_IDLE:
|
||||||
@ -218,6 +215,7 @@ bool accelerometer_data_acquisition_face_loop(movement_event_t event, movement_s
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,9 +94,6 @@ bool thermistor_logging_face_loop(movement_event_t event, movement_settings_t *s
|
|||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_LONG_PRESS:
|
case EVENT_LIGHT_LONG_PRESS:
|
||||||
// light button shows the timestamp, but if you need the light, long press it.
|
// light button shows the timestamp, but if you need the light, long press it.
|
||||||
movement_illuminate_led();
|
movement_illuminate_led();
|
||||||
@ -121,6 +118,7 @@ bool thermistor_logging_face_loop(movement_event_t event, movement_settings_t *s
|
|||||||
_thermistor_logging_face_log_data(logger_state);
|
_thermistor_logging_face_log_data(logger_state);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,12 +57,6 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
|
|||||||
(void) context;
|
(void) context;
|
||||||
watch_date_time date_time = watch_rtc_get_date_time();
|
watch_date_time date_time = watch_rtc_get_date_time();
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_LIGHT_BUTTON_DOWN:
|
|
||||||
movement_illuminate_led();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
case EVENT_ALARM_BUTTON_DOWN:
|
||||||
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
|
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
|
||||||
_thermistor_readout_face_update_display(settings->bit.use_imperial_units);
|
_thermistor_readout_face_update_display(settings->bit.use_imperial_units);
|
||||||
@ -86,6 +80,7 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
|
|||||||
watch_display_string("TE SLEEP ", 0);
|
watch_display_string("TE SLEEP ", 0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,9 +64,6 @@ void thermistor_testing_face_activate(movement_settings_t *settings, void *conte
|
|||||||
bool thermistor_testing_face_loop(movement_event_t event, movement_settings_t *settings, void *context) {
|
bool thermistor_testing_face_loop(movement_event_t event, movement_settings_t *settings, void *context) {
|
||||||
(void) context;
|
(void) context;
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_MODE_BUTTON_UP:
|
|
||||||
movement_move_to_next_face();
|
|
||||||
break;
|
|
||||||
case EVENT_ALARM_BUTTON_DOWN:
|
case EVENT_ALARM_BUTTON_DOWN:
|
||||||
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
|
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
|
||||||
_thermistor_testing_face_update_display(settings->bit.use_imperial_units);
|
_thermistor_testing_face_update_display(settings->bit.use_imperial_units);
|
||||||
@ -76,6 +73,7 @@ bool thermistor_testing_face_loop(movement_event_t event, movement_settings_t *s
|
|||||||
_thermistor_testing_face_update_display(settings->bit.use_imperial_units);
|
_thermistor_testing_face_update_display(settings->bit.use_imperial_units);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,6 +239,7 @@ bool finetune_face_loop(movement_event_t event, movement_settings_t *settings, v
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -365,6 +365,7 @@ bool nanosec_face_loop(movement_event_t event, movement_settings_t *settings, vo
|
|||||||
apply_RTC_correction(correction);
|
apply_RTC_correction(correction);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,11 +56,15 @@ void preferences_face_activate(movement_settings_t *settings, void *context) {
|
|||||||
bool preferences_face_loop(movement_event_t event, movement_settings_t *settings, void *context) {
|
bool preferences_face_loop(movement_event_t event, movement_settings_t *settings, void *context) {
|
||||||
uint8_t current_page = *((uint8_t *)context);
|
uint8_t current_page = *((uint8_t *)context);
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
|
case EVENT_TICK:
|
||||||
|
case EVENT_ACTIVATE:
|
||||||
|
// Do nothing; handled below.
|
||||||
|
break;
|
||||||
case EVENT_MODE_BUTTON_UP:
|
case EVENT_MODE_BUTTON_UP:
|
||||||
watch_set_led_off();
|
watch_set_led_off();
|
||||||
movement_move_to_next_face();
|
movement_move_to_next_face();
|
||||||
return false;
|
return false;
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_DOWN:
|
||||||
current_page = (current_page + 1) % PREFERENCES_FACE_NUM_PREFEFENCES;
|
current_page = (current_page + 1) % PREFERENCES_FACE_NUM_PREFEFENCES;
|
||||||
*((uint8_t *)context) = current_page;
|
*((uint8_t *)context) = current_page;
|
||||||
break;
|
break;
|
||||||
@ -93,7 +97,7 @@ bool preferences_face_loop(movement_event_t event, movement_settings_t *settings
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
watch_display_string((char *)preferences_face_titles[current_page], 0);
|
watch_display_string((char *)preferences_face_titles[current_page], 0);
|
||||||
|
@ -128,7 +128,7 @@ bool set_time_face_loop(movement_event_t event, movement_settings_t *settings, v
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return movement_default_loop_handler(event, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
char buf[11];
|
char buf[11];
|
||||||
|
@ -201,6 +201,7 @@ bool set_time_hackwatch_face_loop(movement_event_t event, movement_settings_t *s
|
|||||||
movement_move_to_face(0);
|
movement_move_to_face(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
movement_default_loop_handler(event, settings);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user