From 5ff81313f65ddda4f3e749f53976a76de1d004b9 Mon Sep 17 00:00:00 2001 From: Warren Winter Date: Sun, 10 Nov 2019 21:13:40 +0100 Subject: [PATCH 1/2] add quick save option via screensaver shortcut --- software/o_c_REV/OC_apps.ino | 9 +++++++++ software/o_c_REV/OC_options.h | 3 ++- software/o_c_REV/OC_ui.h | 2 ++ software/o_c_REV/o_c_REV.ino | 6 +++++- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/software/o_c_REV/OC_apps.ino b/software/o_c_REV/OC_apps.ino index 8388e98e..73b138a0 100644 --- a/software/o_c_REV/OC_apps.ino +++ b/software/o_c_REV/OC_apps.ino @@ -350,6 +350,15 @@ void draw_save_message(uint8_t c) { GRAPHICS_END_FRAME(); } +void Ui::SaveSettings() { + save_global_settings(); + save_app_data(); + // draw message: + int cnt = 0; + while(idle_time() < SETTINGS_SAVE_TIMEOUT_MS) + draw_save_message((cnt++) >> 4); +} + void Ui::AppSettings() { SetButtonIgnoreMask(); diff --git a/software/o_c_REV/OC_options.h b/software/o_c_REV/OC_options.h index bc884293..245b1f7e 100644 --- a/software/o_c_REV/OC_options.h +++ b/software/o_c_REV/OC_options.h @@ -30,7 +30,8 @@ //#define DAC8564 /* ------------ 0 / 10V range --------------------------------------------------------------------------------------------------------------------------- */ //#define IO_10V - +/* ------------ uncomment for all settings to get saved whenever the user invokes the screensaver shortcut ---------------------------------------------- */ +// #define screensaver_quick_save /* do not edit the stuff below (unless ... ) */ diff --git a/software/o_c_REV/OC_ui.h b/software/o_c_REV/OC_ui.h index cbc456c0..23f097d2 100644 --- a/software/o_c_REV/OC_ui.h +++ b/software/o_c_REV/OC_ui.h @@ -42,6 +42,7 @@ enum UiMode { UI_MODE_SCREENSAVER, UI_MODE_MENU, UI_MODE_APP_SETTINGS, + UI_MODE_SAVE_SETTINGS, UI_MODE_CALIBRATE }; @@ -59,6 +60,7 @@ class Ui { void DebugStats(); void Calibrate(); void AppSettings(); + void SaveSettings(); UiMode DispatchEvents(OC::App *app); void Poll(); diff --git a/software/o_c_REV/o_c_REV.ino b/software/o_c_REV/o_c_REV.ino index 098bc866..34a0d7c8 100644 --- a/software/o_c_REV/o_c_REV.ino +++ b/software/o_c_REV/o_c_REV.ino @@ -190,8 +190,12 @@ void FASTRUN loop() { // State transition for app if (mode != ui_mode) { - if (OC::UI_MODE_SCREENSAVER == mode) + if (OC::UI_MODE_SCREENSAVER == mode) { + #ifdef screensaver_quick_save + OC::ui.SaveSettings(); + #endif OC::apps::current_app->HandleAppEvent(OC::APP_EVENT_SCREENSAVER_ON); + } else if (OC::UI_MODE_SCREENSAVER == ui_mode) OC::apps::current_app->HandleAppEvent(OC::APP_EVENT_SCREENSAVER_OFF); ui_mode = mode; From 70478e9601169a421d6c1ad8b7a383d66d8a257a Mon Sep 17 00:00:00 2001 From: "W. Winter" Date: Mon, 11 Nov 2019 00:47:28 +0100 Subject: [PATCH 2/2] remove UI_MODE_APP_SETTINGS Cruft not intended to be included in the commit. --- software/o_c_REV/OC_ui.h | 1 - 1 file changed, 1 deletion(-) diff --git a/software/o_c_REV/OC_ui.h b/software/o_c_REV/OC_ui.h index 23f097d2..44661323 100644 --- a/software/o_c_REV/OC_ui.h +++ b/software/o_c_REV/OC_ui.h @@ -42,7 +42,6 @@ enum UiMode { UI_MODE_SCREENSAVER, UI_MODE_MENU, UI_MODE_APP_SETTINGS, - UI_MODE_SAVE_SETTINGS, UI_MODE_CALIBRATE };