From 7e0e4fe888eba8133a753bb2abc748b0c404e9f5 Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Thu, 21 Oct 2021 23:36:09 +0200 Subject: Add setting to hide shutdown message Also keeps display from lighting up before shutdown, which reduces distractions, especially at night and when the sleep timer is used by allowing the screen to remain dark. Change-Id: I1c2d1966f6fb9766532adf01e8828876a871857f --- apps/lang/english.lang | 14 ++++++++++++++ apps/menus/settings_menu.c | 2 ++ apps/misc.c | 5 ++++- apps/settings.h | 3 +++ apps/settings_list.c | 4 ++++ firmware/backlight.c | 9 ++++++++- manual/appendix/config_file_options.tex | 1 + manual/configure_rockbox/startup_shutdown_options.tex | 5 +++++ 8 files changed, 41 insertions(+), 2 deletions(-) diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 50cec84b7c..333527c71c 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -16136,3 +16136,17 @@ *: "List Wraparound" + + id: LANG_SHOW_SHUTDOWN_MESSAGE + desc: in Settings + user: core + + *: "Show Shutdown Message" + + + *: "Show Shutdown Message" + + + *: "Show Shutdown Message" + + \ No newline at end of file diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index 1dce12907f..562a89e85a 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -563,9 +563,11 @@ MENUITEM_SETTING(sleeptimer_on_startup, &global_settings.sleeptimer_on_startup, NULL); MENUITEM_SETTING(keypress_restarts_sleeptimer, &global_settings.keypress_restarts_sleeptimer, NULL); +MENUITEM_SETTING(show_shutdown_message, &global_settings.show_shutdown_message, NULL); MAKE_MENU(startup_shutdown_menu, ID2P(LANG_STARTUP_SHUTDOWN), 0, Icon_System_menu, + &show_shutdown_message, &start_screen, &poweroff, &sleeptimer_toggle, diff --git a/apps/misc.c b/apps/misc.c index 7da86930ba..2668ba714d 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -323,7 +323,10 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter) #endif level = battery_level(); if (level > 10 || level < 0) - splash(0, str(LANG_SHUTTINGDOWN)); + { + if (global_settings.show_shutdown_message) + splash(0, str(LANG_SHUTTINGDOWN)); + } else { msg_id = LANG_WARNING_BATTERY_LOW; diff --git a/apps/settings.h b/apps/settings.h index ce7421d95e..4374cc720b 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -761,6 +761,9 @@ struct user_settings bool sleeptimer_on_startup; bool keypress_restarts_sleeptimer; + bool show_shutdown_message; /* toggle whether display lights up and displays message + when shutting down */ + #ifdef HAVE_MORSE_INPUT bool morse_input; /* text input method setting */ #endif diff --git a/apps/settings_list.c b/apps/settings_list.c index 383ec9cd0e..d8702148ba 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -1956,6 +1956,10 @@ const struct settings_list settings[] = { "sleeptimer on startup", NULL), OFFON_SETTING(0, keypress_restarts_sleeptimer, LANG_KEYPRESS_RESTARTS_SLEEP_TIMER, false, "keypress restarts sleeptimer", set_keypress_restarts_sleep_timer), + + OFFON_SETTING(0, show_shutdown_message, LANG_SHOW_SHUTDOWN_MESSAGE, true, + "show shutdown message", NULL), + #ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING /* If specific values are set for touchpad sensitivity setting we use those */ #if (defined(MAX_TOUCHPAD_SENSITIVITY_SETTING) \ diff --git a/firmware/backlight.c b/firmware/backlight.c index e8a71af12c..1284db4659 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c @@ -21,6 +21,9 @@ * ****************************************************************************/ #include "config.h" +#if !defined(BOOTLOADER) +#include "settings.h" +#endif #include #include "cpu.h" #include "kernel.h" @@ -667,7 +670,11 @@ void backlight_thread(void) case SYS_POWEROFF: /* Lock backlight on poweroff so it doesn't */ locked = true; /* go off before power is actually cut. */ - /* fall through */ +#if !defined(BOOTLOADER) + if (!global_settings.show_shutdown_message) + break; +#endif + /* else fall through */ #if CONFIG_CHARGING case SYS_CHARGER_CONNECTED: case SYS_CHARGER_DISCONNECTED: diff --git a/manual/appendix/config_file_options.tex b/manual/appendix/config_file_options.tex index fd08f64335..5cf5b1b0f7 100644 --- a/manual/appendix/config_file_options.tex +++ b/manual/appendix/config_file_options.tex @@ -107,6 +107,7 @@ idle poweroff & off, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 30, 45, 60 & min\\ + show shutdown message & off, on & N/A\\ sleeptimer duration & 5 to 300 (in steps of 5) & min\\ sleeptimer on startup & off, on & N/A\\ diff --git a/manual/configure_rockbox/startup_shutdown_options.tex b/manual/configure_rockbox/startup_shutdown_options.tex index 20dd21356d..7952985ece 100644 --- a/manual/configure_rockbox/startup_shutdown_options.tex +++ b/manual/configure_rockbox/startup_shutdown_options.tex @@ -5,6 +5,11 @@ The \setting{Startup/Shutdown} sub menu allows you to configure items which are run at startup, or initiate a shutdown when conditions are met. +\begin{description} + \item[Show Shutdown Message.] If set, a message will be displayed and the display + will light up before the device shuts down. +\end{description} + \subsection{Start Screen} Set the screen that Rockbox will start in. The default is the main menu but the following options are available: -- cgit v1.2.3