movement: add option to always snap back to first watch face
This commit is contained in:
parent
8723c70033
commit
77d3e5640f
@ -265,10 +265,17 @@ bool app_loop() {
|
|||||||
// 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.
|
||||||
if (movement_state.timeout_ticks == 0) {
|
if (movement_state.timeout_ticks == 0) {
|
||||||
movement_state.timeout_ticks = -1;
|
movement_state.timeout_ticks = -1;
|
||||||
event.event_type = EVENT_TIMEOUT;
|
if (movement_state.settings.bit.to_always == false) {
|
||||||
|
// if "timeout always" is false, give the current watch face a chance to exit gracefully...
|
||||||
|
event.event_type = EVENT_TIMEOUT;
|
||||||
|
}
|
||||||
event.subsecond = movement_state.subsecond;
|
event.subsecond = movement_state.subsecond;
|
||||||
watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]);
|
watch_faces[movement_state.current_watch_face].loop(event, &movement_state.settings, watch_face_contexts[movement_state.current_watch_face]);
|
||||||
event.event_type = EVENT_NONE;
|
event.event_type = EVENT_NONE;
|
||||||
|
if (movement_state.settings.bit.to_always && movement_state.current_watch_face != 0) {
|
||||||
|
// ...but if the user has "timeout always" set, give it the boot.
|
||||||
|
movement_move_to_face(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now that we've handled all display update tasks, handle the alarm.
|
// Now that we've handled all display update tasks, handle the alarm.
|
||||||
|
@ -23,6 +23,7 @@ typedef union {
|
|||||||
struct {
|
struct {
|
||||||
bool button_should_sound : 1; // if true, pressing a button emits a sound.
|
bool button_should_sound : 1; // if true, pressing a button emits a sound.
|
||||||
uint8_t to_interval : 2; // an inactivity interval for asking the active face to resign.
|
uint8_t to_interval : 2; // an inactivity interval for asking the active face to resign.
|
||||||
|
bool to_always : 1; // if true, always time out from the active face to face 0. otherwise only faces that time out will resign (the default).
|
||||||
uint8_t le_interval : 3; // 0 to disable low energy mode, or an inactivity interval for going into low energy mode.
|
uint8_t le_interval : 3; // 0 to disable low energy mode, or an inactivity interval for going into low energy mode.
|
||||||
uint8_t led_duration : 2; // how many seconds to shine the LED for (x2), or 0 to disable it.
|
uint8_t led_duration : 2; // how many seconds to shine the LED for (x2), or 0 to disable it.
|
||||||
uint8_t led_red_color : 4; // for general purpose illumination, the red LED value (0-15)
|
uint8_t led_red_color : 4; // for general purpose illumination, the red LED value (0-15)
|
||||||
@ -35,7 +36,7 @@ typedef union {
|
|||||||
// altimeter to display feet or meters as easily as it tells a thermometer to display degrees in F or C.
|
// altimeter to display feet or meters as easily as it tells a thermometer to display degrees in F or C.
|
||||||
bool clock_mode_24h : 1; // indicates whether clock should use 12 or 24 hour mode.
|
bool clock_mode_24h : 1; // indicates whether clock should use 12 or 24 hour mode.
|
||||||
bool use_imperial_units : 1; // indicates whether to use metric units (the default) or imperial.
|
bool use_imperial_units : 1; // indicates whether to use metric units (the default) or imperial.
|
||||||
uint8_t reserved : 8; // room for more preferences if needed.
|
uint8_t reserved : 7; // room for more preferences if needed.
|
||||||
} bit;
|
} bit;
|
||||||
uint32_t reg;
|
uint32_t reg;
|
||||||
} movement_settings_t;
|
} movement_settings_t;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user