summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/lang/english.lang14
-rw-r--r--apps/menus/exported_menus.h1
-rw-r--r--apps/menus/main_menu.c88
-rw-r--r--apps/menus/settings_menu.c109
-rw-r--r--apps/menus/time_menu.c8
-rw-r--r--manual/configure_rockbox/main.tex16
-rw-r--r--manual/configure_rockbox/sleep_timer.tex13
-rw-r--r--manual/configure_rockbox/startup_shutdown_options.tex57
-rw-r--r--manual/configure_rockbox/system_options.tex34
-rw-r--r--manual/configure_rockbox/time_and_date.tex1
-rw-r--r--manual/main_menu/main.tex7
11 files changed, 179 insertions, 169 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index d955c46324..c2db1e6fb2 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -12965,3 +12965,17 @@
*: "Glyphs To Cache"
</voice>
</phrase>
+<phrase>
+ id: LANG_STARTUP_SHUTDOWN
+ desc: in the general settings menu
+ user: core
+ <source>
+ *: "Startup/Shutdown"
+ </source>
+ <dest>
+ *: "Startup/Shutdown"
+ </dest>
+ <voice>
+ *: "Startup/Shutdown"
+ </voice>
+</phrase>
diff --git a/apps/menus/exported_menus.h b/apps/menus/exported_menus.h
index c439af1479..568791b1f0 100644
--- a/apps/menus/exported_menus.h
+++ b/apps/menus/exported_menus.h
@@ -38,7 +38,6 @@ extern const struct menu_item_ex
sound_settings, /* sound_menu.c */
settings_menu_item, /* settings_menu.c */
bookmark_settings_menu,
- sleep_timer_call, /* main_menu.c */
playlist_settings, /* playlist_menu.c */
equalizer_menu, /* eq_menu.c */
#ifdef AUDIOHW_HAVE_EQ
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c
index 130d0bc2d5..cefc395b3d 100644
--- a/apps/menus/main_menu.c
+++ b/apps/menus/main_menu.c
@@ -374,97 +374,11 @@ static bool show_info(void)
MENUITEM_FUNCTION(show_info_item, 0, ID2P(LANG_ROCKBOX_INFO),
(menu_function)show_info, NULL, NULL, Icon_NOICON);
-
-/* sleep Menu */
-const char* sleep_timer_formatter(char* buffer, size_t buffer_size,
- int value, const char* unit)
-{
- (void) unit;
- int minutes, hours;
-
- if (value) {
- hours = value / 60;
- minutes = value - (hours * 60);
- snprintf(buffer, buffer_size, "%d:%02d", hours, minutes);
- return buffer;
- } else {
- return str(LANG_OFF);
- }
-}
-
-static void sleep_timer_set(int minutes)
-{
- if (minutes)
- global_settings.sleeptimer_duration = minutes;
- set_sleep_timer(minutes * 60);
-}
-
-static int sleep_timer(void)
-{
- int minutes = global_settings.sleeptimer_duration;
- if (get_sleep_timer())
- sleep_timer_set(0);
- else
- set_int(str(LANG_SLEEP_TIMER), "", UNIT_MIN, &minutes,
- &sleep_timer_set, 5, 0, 300, sleep_timer_formatter);
- return 0;
-}
-
-static int seconds_to_min(int secs)
-{
- return (secs + 10) / 60; /* round up for 50+ seconds */
-}
-
-static char* sleep_timer_getname(int selected_item, void * data, char *buffer)
-{
- (void)selected_item;
- (void)data;
- int sec = get_sleep_timer();
- char timer_buf[10];
- /* we have no sprintf, so MAX_PATH is a guess */
- if (sec > 0)
- { /* show cancel and countdown if running */
- snprintf(buffer, MAX_PATH, "%s (%s)", str(LANG_SLEEP_TIMER_CANCEL_CURRENT),
- sleep_timer_formatter(timer_buf, sizeof(timer_buf), seconds_to_min(sec), NULL));
- }
- else
- snprintf(buffer, MAX_PATH, "%s", str(LANG_SLEEP_TIMER));
-
- return buffer;
-}
-
-static int sleep_timer_voice(int selected_item, void*data)
-{
- (void)selected_item;
- (void)data;
- int seconds = get_sleep_timer();
- if (seconds > 0)
- {
- long talk_ids[] = {
- LANG_SLEEP_TIMER_CANCEL_CURRENT,
- VOICE_PAUSE,
- seconds_to_min(seconds) | UNIT_MIN << UNIT_SHIFT,
- TALK_FINAL_ID
- };
- talk_idarray(talk_ids, true);
- }
- else
- talk_id(LANG_SLEEP_TIMER, true);
- return 0;
-}
-
#if CONFIG_RTC
int time_screen(void* ignored);
MENUITEM_FUNCTION(timedate_item, MENU_FUNC_CHECK_RETVAL, ID2P(LANG_TIME_MENU),
time_screen, NULL, NULL, Icon_Menu_setting );
#endif
-MENUITEM_FUNCTION_DYNTEXT(sleep_timer_call, 0, sleep_timer, NULL, sleep_timer_getname,
- sleep_timer_voice, NULL, NULL, Icon_Menu_setting);
- /* make it look like a setting to the user */
-#if CONFIG_RTC == 0
-MENUITEM_SETTING(sleeptimer_on_startup,
- &global_settings.sleeptimer_on_startup, NULL);
-#endif
MENUITEM_FUNCTION(show_credits_item, 0, ID2P(LANG_CREDITS),
(menu_function)show_credits, NULL, NULL, Icon_NOICON);
@@ -511,8 +425,6 @@ MAKE_MENU(main_menu_, ID2P(LANG_SETTINGS), mainmenu_callback,
#endif
#if CONFIG_RTC
&timedate_item,
-#else
- &sleep_timer_call, &sleeptimer_on_startup,
#endif
&manage_settings,
);
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index bcb182ebca..cce5dd751d 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -215,9 +215,6 @@ MAKE_MENU(disk_menu, ID2P(LANG_DISK_MENU), 0, Icon_NOICON,
);
#endif
-/* System menu */
-MENUITEM_SETTING(poweroff, &global_settings.poweroff, NULL);
-
/* Limits menu */
MENUITEM_SETTING(max_files_in_dir, &global_settings.max_files_in_dir, NULL);
MENUITEM_SETTING(max_files_in_playlist, &global_settings.max_files_in_playlist, NULL);
@@ -276,7 +273,6 @@ MENUITEM_SETTING(accessory_supply, &global_settings.accessory_supply, NULL);
#ifdef HAVE_LINEOUT_POWEROFF
MENUITEM_SETTING(lineout_onoff, &global_settings.lineout_active, NULL);
#endif
-MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL);
#ifdef USB_ENABLE_HID
MENUITEM_SETTING(usb_hid, &global_settings.usb_hid, NULL);
MENUITEM_SETTING(usb_keypad_mode, &global_settings.usb_keypad_mode, NULL);
@@ -303,14 +299,12 @@ MENUITEM_SETTING(touchpad_sensitivity, &global_settings.touchpad_sensitivity, NU
MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
0, Icon_System_menu,
- &start_screen,
#if (BATTERY_CAPACITY_INC > 0) || (BATTERY_TYPES_COUNT > 1)
&battery_menu,
#endif
#if defined(HAVE_DIRCACHE) || defined(HAVE_DISK_STORAGE)
&disk_menu,
#endif
- &poweroff,
&limits_menu,
#ifdef HAVE_MORSE_INPUT
&morse_input,
@@ -354,6 +348,108 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
/* SYSTEM MENU */
/***********************************/
+/***********************************/
+/* STARTUP/SHUTDOWN MENU */
+
+/* sleep timer option */
+const char* sleep_timer_formatter(char* buffer, size_t buffer_size,
+ int value, const char* unit)
+{
+ (void) unit;
+ int minutes, hours;
+
+ if (value) {
+ hours = value / 60;
+ minutes = value - (hours * 60);
+ snprintf(buffer, buffer_size, "%d:%02d", hours, minutes);
+ return buffer;
+ } else {
+ return str(LANG_OFF);
+ }
+}
+
+static void sleep_timer_set(int minutes)
+{
+ if (minutes)
+ global_settings.sleeptimer_duration = minutes;
+ set_sleep_timer(minutes * 60);
+}
+
+static int sleep_timer(void)
+{
+ int minutes = global_settings.sleeptimer_duration;
+ if (get_sleep_timer())
+ sleep_timer_set(0);
+ else
+ set_int(str(LANG_SLEEP_TIMER), "", UNIT_MIN, &minutes,
+ &sleep_timer_set, 5, 0, 300, sleep_timer_formatter);
+ return 0;
+}
+
+static int seconds_to_min(int secs)
+{
+ return (secs + 10) / 60; /* round up for 50+ seconds */
+}
+
+static char* sleep_timer_getname(int selected_item, void * data, char *buffer)
+{
+ (void)selected_item;
+ (void)data;
+ int sec = get_sleep_timer();
+ char timer_buf[10];
+ /* we have no sprintf, so MAX_PATH is a guess */
+ if (sec > 0)
+ { /* show cancel and countdown if running */
+ snprintf(buffer, MAX_PATH, "%s (%s)",
+ str(LANG_SLEEP_TIMER_CANCEL_CURRENT),
+ sleep_timer_formatter(timer_buf, sizeof(timer_buf),
+ seconds_to_min(sec), NULL));
+ }
+ else
+ snprintf(buffer, MAX_PATH, "%s", str(LANG_SLEEP_TIMER));
+
+ return buffer;
+}
+
+static int sleep_timer_voice(int selected_item, void*data)
+{
+ (void)selected_item;
+ (void)data;
+ int seconds = get_sleep_timer();
+ if (seconds > 0)
+ {
+ long talk_ids[] = {
+ LANG_SLEEP_TIMER_CANCEL_CURRENT,
+ VOICE_PAUSE,
+ seconds_to_min(seconds) | UNIT_MIN << UNIT_SHIFT,
+ TALK_FINAL_ID
+ };
+ talk_idarray(talk_ids, true);
+ }
+ else
+ talk_id(LANG_SLEEP_TIMER, true);
+ return 0;
+}
+
+MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL);
+MENUITEM_SETTING(poweroff, &global_settings.poweroff, NULL);
+MENUITEM_FUNCTION_DYNTEXT(sleep_timer_call, 0, sleep_timer, NULL,
+ sleep_timer_getname, sleep_timer_voice, NULL, NULL,
+ Icon_Menu_setting);
+ /* make it look like a setting to the user */
+MENUITEM_SETTING(sleeptimer_on_startup,
+ &global_settings.sleeptimer_on_startup, NULL);
+
+MAKE_MENU(startup_shutdown_menu, ID2P(LANG_STARTUP_SHUTDOWN),
+ 0, Icon_System_menu,
+ &start_screen,
+ &poweroff,
+ &sleep_timer_call,
+ &sleeptimer_on_startup
+ );
+
+/* STARTUP/SHUTDOWN MENU */
+/***********************************/
/***********************************/
/* BOOKMARK MENU */
@@ -513,6 +609,7 @@ MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0,
&tagcache_menu,
#endif
&display_menu, &system_menu,
+ &startup_shutdown_menu,
&bookmark_settings_menu,
#ifdef HAVE_TAGCACHE
#if CONFIG_CODEC == SWCODEC
diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c
index a793809800..1eb4bd68cc 100644
--- a/apps/menus/time_menu.c
+++ b/apps/menus/time_menu.c
@@ -28,10 +28,8 @@
#include "lang.h"
#include "action.h"
#include "settings.h"
-#include "powermgmt.h"
#include "menu.h"
#include "misc.h"
-#include "exported_menus.h"
#include "keyboard.h"
#include "talk.h"
#include "time.h"
@@ -136,8 +134,6 @@ MENUITEM_FUNCTION(alarm_wake_up_screen, 0, ID2P(LANG_ALARM_WAKEUP_SCREEN),
#endif /* CONFIG_TUNER || defined(HAVE_RECORDING) */
#endif /* HAVE_RTC_ALARM */
-MENUITEM_SETTING(sleeptimer_on_startup,
- &global_settings.sleeptimer_on_startup, NULL);
void talk_timedate(void)
{
@@ -237,14 +233,14 @@ static int time_menu_callback(int action,
MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), time_menu_callback, Icon_NOICON,
- &time_set, &sleep_timer_call,
+ &time_set,
#ifdef HAVE_RTC_ALARM
&alarm_screen_call,
#if defined(HAVE_RECORDING) || CONFIG_TUNER
&alarm_wake_up_screen,
#endif
#endif
- &sleeptimer_on_startup, &timeformat);
+ &timeformat);
int time_screen(void* ignored)
{
diff --git a/manual/configure_rockbox/main.tex b/manual/configure_rockbox/main.tex
index 60054f4912..0eeea4e256 100644
--- a/manual/configure_rockbox/main.tex
+++ b/manual/configure_rockbox/main.tex
@@ -14,6 +14,7 @@
\input{configure_rockbox/database.tex}
\input{configure_rockbox/display_options.tex}
\input{configure_rockbox/system_options.tex}
+ \input{configure_rockbox/startup_shutdown_options.tex}
\input{configure_rockbox/bookmarking.tex}
\opt{tagcache}{\opt{swcodec}{
\input{configure_rockbox/autoresume.tex}
@@ -21,12 +22,6 @@
\input{configure_rockbox/language.tex}
\input{configure_rockbox/voice.tex}
\input{configure_rockbox/hotkey_settings.tex}
- \nopt{rtc}{
- \section{\label{ref:sleep_timer}Sleep Timer}
- \begin{description}
- \input{configure_rockbox/sleep_timer.tex}
- \end{description}
- }
\chapter{Theme Settings}
\label{ref:configure_rockbox_themes}
@@ -38,15 +33,6 @@
\input{configure_rockbox/recording_settings.tex}
}
-\nopt{rtc}{
- \chapter{Sleep Timer related settings}
- \label{ref:SleepTimerRelatedSettings}
- These settings control the behaviour of the sleep timer.
- \begin{description}
- \input{configure_rockbox/sleep_timer.tex}
- \end{description}
-}
-
\opt{rtc}{
\chapter{Time and Date}
\input{configure_rockbox/time_and_date.tex}
diff --git a/manual/configure_rockbox/sleep_timer.tex b/manual/configure_rockbox/sleep_timer.tex
deleted file mode 100644
index f9cb76a603..0000000000
--- a/manual/configure_rockbox/sleep_timer.tex
+++ /dev/null
@@ -1,13 +0,0 @@
-% $Id:$ %
-\item[Sleep Timer:]
- The \setting{Sleep Timer} powers off your \dap{} after playing for a given
- time.
- Shown when the \setting{Sleep Timer} is inactive, it can be set from
- \setting{Off} to 5 hours in 5 minute steps.
- While the \setting{Sleep Timer} is reset on boot, the value selected is
- retained and will be used as the default from then on.
-\item[Cancel Sleep Timer (h:mm):]
- Shown when the \setting{Sleep Timer} is active, this option disables the
- current \setting{Sleep Timer}.
-\item[Start Sleep Timer On Boot:]
- If set, a \setting{Sleep Timer} will be initiated when the device starts.
diff --git a/manual/configure_rockbox/startup_shutdown_options.tex b/manual/configure_rockbox/startup_shutdown_options.tex
new file mode 100644
index 0000000000..2fb4c4881a
--- /dev/null
+++ b/manual/configure_rockbox/startup_shutdown_options.tex
@@ -0,0 +1,57 @@
+% $Id$ %
+
+\section{\label{ref:StartupShutdownOptions}Startup/Shutdown}
+
+The \setting{Startup/Shutdown} sub menu allows you to configure items which
+are run at startup, or initiate a shutdown when conditions are met.
+
+\subsection{Start Screen}
+ Set the screen that Rockbox will start in. The default is the main menu but
+ the following options are available:
+ % almost all items in the main menu with a few exceptions
+ \begin{description}
+ \item[Previous Screen.] Start Rockbox in the same screen as when it was
+ shut off.
+ \item[Main Menu.] Show the main menu.
+ \item[Files.] Display the file browser, starting in the root directory of
+ your \dap.
+ \item[Database.] Show the default database view.
+ \item[Resume Playback.] Go to the WPS and and resume playback from where
+ it was before turning off (if there is a playlist to resume).
+ \item[Settings.] Display the main settings menu.
+ \opt{recording}{
+ \item[Recording.] Start the \dap{} in the recording screen
+ (recording does not start automatically).
+ }
+ \opt{radio}{
+ \item[FM Radio.] Go to the radio screen and start playing.
+ }
+ \item[Recent Bookmarks.] Show the list of recent bookmarks as
+ described in \reference{ref:Bookmarkconfigactual}. Bookmarking needs
+ to be enabled.
+ \end{description}
+
+\subsection{\label{ref:IdlePoweroffSetting}Idle Poweroff}
+ Rockbox can be configured to turn off power after the unit has been idle for
+ a defined number of minutes. The \dap{} is idle when playback is stopped or
+ paused. It is not idle while the USB or charger is connected
+ \opt{recording}{, or while recording}.
+ Settings are either \setting{Off} or 1 to 10 minutes in 1 minute steps. Then
+ 15, 30, 45 or 60 minutes are available.
+
+\subsection{Sleep Timer}
+ The \setting{Sleep Timer} powers off your \dap{} after a given time, whether
+ playing or not.
+ \begin{description}
+ \item[Sleep Timer:]
+ Shown when the \setting{Sleep Timer} is inactive, it can be set from
+ \setting{Off} to 5 hours in 5 minute steps.
+ While the \setting{Sleep Timer} is reset on boot, the value selected is
+ retained and will be used as the default from then on.
+ \item[Cancel Sleep Timer (h:mm):]
+ Shown when the \setting{Sleep Timer} is active, this option disables the
+ current \setting{Sleep Timer}.
+ \item[Start Sleep Timer On Boot:]
+ If set, a \setting{Sleep Timer} will be initiated when the device
+ starts.
+ \end{description}
diff --git a/manual/configure_rockbox/system_options.tex b/manual/configure_rockbox/system_options.tex
index b61c55a5f2..6db37d9fe7 100644
--- a/manual/configure_rockbox/system_options.tex
+++ b/manual/configure_rockbox/system_options.tex
@@ -1,27 +1,5 @@
% $Id$ %
\section{\label{ref:SystemOptions}System}
-\subsection{Start Screen}
- Set the screen that Rockbox will start in. The default is the main menu but
- the following options are available: % almost all items in the main menu with a few exceptions
- \begin{description}
- \item[Previous Screen.] Start Rockbox in the same screen as when it was shut off.
- \item[Main Menu.] Show the main menu.
- \item[Files.] Display the file browser, starting in the root directory of your \dap.
- \item[Database.] Show the default database view.
- \item[Resume Playback.] Go to the WPS and and resume playback from where it was
- before turning off (if there is a playlist to resume).
- \item[Settings.] Display the main settings menu.
- \opt{recording}{%
- \item[Recording.] Start the \dap{} in the recording screen
- (recording does not start automatically).
- }
- \opt{radio}{%
- \item[FM Radio.] Go to the radio screen and start playing.
- }
- \item[Recent Bookmarks.] Show the list of recent bookmarks as
- described in \reference{ref:Bookmarkconfigactual}. Bookmarking needs
- to be enabled.
- \end{description}
\nopt{sansa}%will probably be there on Sansas one day - exclude it the simple way without specific option
{\nopt{sansaAMS}{
@@ -112,15 +90,6 @@
\end{description}
} % \opt{dircache,HAVE_DISK_STORAGE}
-\subsection{Idle Poweroff}
-Rockbox can be configured to turn off power after the unit has been idle for a
-defined number of minutes. The \dap{} is idle when playback is stopped or
-paused. It is not idle while the USB or charger is connected
-\opt{recording}{, or while recording}.
-Settings are either \setting{Off} or 1 to 10 minutes in 1 minute steps. Then
-15, 30, 45 or 60 minutes are available.
-
-
\subsection{Limits}
This sub menu relates to limits in the Rockbox operating system.
\begin{description}
@@ -167,7 +136,8 @@ This sub menu relates to limits in the Rockbox operating system.
is turned off. If the \setting{Car Adapter Mode} is set to \setting{On},
Rockbox will pause playback when the external power off condition is
detected. Rockbox will then shutdown the \dap{} after the length of time set
- in the \setting{Idle Poweroff} setting (see above).
+ in the \setting{Idle Poweroff} setting
+ (see \reference{ref:IdlePoweroffSetting}).
If power to the DC in jack is turned back on before the \emph{Idle Poweroff}
function has shut the \dap{} off, playback will be resumed 5 seconds after
the power is applied. This delay is to allow for the time while the car
diff --git a/manual/configure_rockbox/time_and_date.tex b/manual/configure_rockbox/time_and_date.tex
index 9f1223ecfe..fe1624211b 100644
--- a/manual/configure_rockbox/time_and_date.tex
+++ b/manual/configure_rockbox/time_and_date.tex
@@ -18,6 +18,5 @@ if voice support is enabled.
This option controls what the \dap{} does when it is woken up by the alarm.
}%\opt{recording,radio}
}%\opt{alarm}
- \input{configure_rockbox/sleep_timer.tex}
\item[Time Format:] Choose 12 or 24 hour clock.
\end{description}
diff --git a/manual/main_menu/main.tex b/manual/main_menu/main.tex
index 16f0189160..33e64c12fe 100644
--- a/manual/main_menu/main.tex
+++ b/manual/main_menu/main.tex
@@ -144,13 +144,6 @@ to recording. The details of this menu are covered in detail in
\reference{ref:Recordingsettings}.
}
-\nopt{rtc}{
-\subsection{Sleep Timer related Settings}
-The \setting{Sleep Timer} related settings allow you to configure the sleep timer
-which powers off your \dap{} after playing for a given time.
-The details of this menu are covered in detail in \reference{ref:SleepTimerRelatedSettings}.
-}
-
\subsection{Manage Settings}
The \setting{Manage Settings} option allows the saving and re-loading of user
configuration settings, browsing the hard drive for alternate firmwares, and finally