summaryrefslogtreecommitdiff
path: root/apps/menus
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menus')
-rw-r--r--apps/menus/main_menu.c37
-rw-r--r--apps/menus/settings_menu.c33
2 files changed, 36 insertions, 34 deletions
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c
index d986436311..d8b471889e 100644
--- a/apps/menus/main_menu.c
+++ b/apps/menus/main_menu.c
@@ -341,6 +341,40 @@ static bool show_info(void)
341} 341}
342MENUITEM_FUNCTION(show_info_item, ID2P(LANG_INFO_MENU), 342MENUITEM_FUNCTION(show_info_item, ID2P(LANG_INFO_MENU),
343 (menu_function)show_info, NULL, NOICON); 343 (menu_function)show_info, NULL, NOICON);
344
345
346/* sleep Menu */
347static void sleep_timer_formatter(char* buffer, int buffer_size, int value,
348 const char* unit)
349{
350 int minutes, hours;
351
352 (void) unit;
353
354 if (value) {
355 hours = value / 60;
356 minutes = value - (hours * 60);
357 snprintf(buffer, buffer_size, "%d:%02d", hours, minutes);
358 } else {
359 snprintf(buffer, buffer_size, "%s", str(LANG_OFF));
360 }
361}
362
363static void sleep_timer_set(int minutes)
364{
365 set_sleep_timer(minutes * 60);
366}
367
368static int sleep_timer(void)
369{
370 int minutes = (get_sleep_timer() + 59) / 60; /* round up */
371 return (int)set_int(str(LANG_SLEEP_TIMER), "", UNIT_MIN, &minutes,
372 &sleep_timer_set, -5, 300, 0, sleep_timer_formatter);
373}
374
375MENUITEM_FUNCTION(sleep_timer_call, ID2P(LANG_SLEEP_TIMER), sleep_timer,
376 NULL, bitmap_icons_6x8[Icon_Menu_setting]); /* make it look like a
377 setting to the user */
344MENUITEM_FUNCTION(show_credits_item, ID2P(LANG_VERSION), 378MENUITEM_FUNCTION(show_credits_item, ID2P(LANG_VERSION),
345 (menu_function)show_credits, NULL, NOICON); 379 (menu_function)show_credits, NULL, NOICON);
346MENUITEM_FUNCTION(show_runtime_item, ID2P(LANG_RUNNING_TIME), 380MENUITEM_FUNCTION(show_runtime_item, ID2P(LANG_RUNNING_TIME),
@@ -359,7 +393,8 @@ MENUITEM_FUNCTION(logfdump_item, "logfdump",(int (*)(void)) logfdump, NULL, NOIC
359#endif 393#endif
360 394
361MAKE_MENU(info_menu, ID2P(LANG_INFO), 0, bitmap_icons_6x8[Icon_Questionmark], 395MAKE_MENU(info_menu, ID2P(LANG_INFO), 0, bitmap_icons_6x8[Icon_Questionmark],
362 &show_info_item, &show_credits_item, &show_runtime_item, 396 &show_info_item, &show_credits_item, &show_runtime_item,
397 &sleep_timer_call,
363#ifndef SIMULATOR 398#ifndef SIMULATOR
364 &debug_menu_item 399 &debug_menu_item
365#else 400#else
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index ec7ccd80ae..050bf88d82 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -214,38 +214,6 @@ MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), rtc_detect_callback, NOICON, &time_se
214/* System menu */ 214/* System menu */
215MENUITEM_SETTING(poweroff, &global_settings.poweroff, NULL); 215MENUITEM_SETTING(poweroff, &global_settings.poweroff, NULL);
216 216
217/* sleep Menu */
218static void sleep_timer_formatter(char* buffer, int buffer_size, int value,
219 const char* unit)
220{
221 int minutes, hours;
222
223 (void) unit;
224
225 if (value) {
226 hours = value / 60;
227 minutes = value - (hours * 60);
228 snprintf(buffer, buffer_size, "%d:%02d", hours, minutes);
229 } else {
230 snprintf(buffer, buffer_size, "%s", str(LANG_OFF));
231 }
232}
233
234static void sleep_timer_set(int minutes)
235{
236 set_sleep_timer(minutes * 60);
237}
238
239static int sleep_timer(void)
240{
241 int minutes = (get_sleep_timer() + 59) / 60; /* round up */
242 return (int)set_int(str(LANG_SLEEP_TIMER), "", UNIT_MIN, &minutes,
243 &sleep_timer_set, -5, 300, 0, sleep_timer_formatter);
244}
245
246MENUITEM_FUNCTION(sleep_timer_call, ID2P(LANG_SLEEP_TIMER), sleep_timer,
247 NULL, bitmap_icons_6x8[Icon_Menu_setting]); /* make it look like a
248 setting to the user */
249#ifdef HAVE_RTC_ALARM 217#ifdef HAVE_RTC_ALARM
250MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU), 218MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU),
251 (menu_function)alarm_screen, rtc_detect_callback, NOICON); 219 (menu_function)alarm_screen, rtc_detect_callback, NOICON);
@@ -292,7 +260,6 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
292 &time_menu, 260 &time_menu,
293#endif 261#endif
294 &poweroff, 262 &poweroff,
295 &sleep_timer_call,
296#ifdef HAVE_RTC_ALARM 263#ifdef HAVE_RTC_ALARM
297 &alarm_screen_call, 264 &alarm_screen_call,
298#endif 265#endif