movement_state.settings.bit.button_should_sound = MOVEMENT_DEFAULT_BUTTON_SOUND;
movement_state.settings.bit.button_volume = MOVEMENT_DEFAULT_BUTTON_VOLUME;
movement_state.settings.bit.to_interval = MOVEMENT_DEFAULT_TIMEOUT_INTERVAL;
+#ifdef MOVEMENT_LOW_ENERGY_MODE_FORBIDDEN
+ movement_state.settings.bit.le_interval = 0;
+#else
movement_state.settings.bit.le_interval = MOVEMENT_DEFAULT_LOW_ENERGY_INTERVAL;
+#endif
movement_state.settings.bit.led_duration = MOVEMENT_DEFAULT_LED_DURATION;
movement_store_settings();
}
}
+#ifndef MOVEMENT_LOW_ENERGY_MODE_FORBIDDEN
+
static void _sleep_mode_app_loop(void) {
movement_state.needs_wake = false;
// as long as le_mode_ticks is -1 (i.e. we are in low energy mode), we wake up here, update the screen, and go right back to sleep.
}
}
+#endif
+
bool app_loop(void) {
const watch_face_t *wf = &watch_faces[movement_state.current_face_idx];
bool woke_up_for_buzzer = false;
// if we have a scheduled background task, handle that here:
if (event.event_type == EVENT_TICK && movement_state.has_scheduled_background_task) _movement_handle_scheduled_tasks();
+#ifndef MOVEMENT_LOW_ENERGY_MODE_FORBIDDEN
// if we have timed out of our low energy mode countdown, enter low energy mode.
if (movement_state.le_mode_ticks == 0) {
movement_state.le_mode_ticks = -1;
// need to figure out if there's a better heuristic for determining how we woke up.
app_setup();
}
+#endif
// default to being allowed to sleep by the face.
bool can_sleep = true;
state->settings_screens[current_setting].display = timeout_setting_display;
state->settings_screens[current_setting].advance = timeout_setting_advance;
current_setting++;
+#ifndef MOVEMENT_LOW_ENERGY_MODE_FORBIDDEN
state->settings_screens[current_setting].display = low_energy_setting_display;
state->settings_screens[current_setting].advance = low_energy_setting_advance;
current_setting++;
+#endif
state->settings_screens[current_setting].display = led_duration_setting_display;
state->settings_screens[current_setting].advance = led_duration_setting_advance;
current_setting++;
+ state->led_color_start = current_setting;
#ifdef WATCH_RED_TCC_CHANNEL
state->settings_screens[current_setting].display = red_led_setting_display;
state->settings_screens[current_setting].advance = red_led_setting_advance;
return movement_default_loop_handler(event);
}
- if (state->current_page > 4) {
+ if (state->current_page >= state->led_color_start) {
movement_color_t color = movement_backlight_color();
// this bitwise math turns #000 into #000000, #111 into #111111, etc.
movement_force_led_on(color.red | color.red << 4,