summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/apps/misc.c b/apps/misc.c
index 83b0324ea3..bd42ca9e34 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -62,6 +62,7 @@
62#include "bookmark.h" 62#include "bookmark.h"
63 63
64#include "misc.h" 64#include "misc.h"
65#include "playback.h"
65 66
66#ifdef BOOTFILE 67#ifdef BOOTFILE
67#if !defined(USB_NONE) && !defined(USB_IPODSTYLE) 68#if !defined(USB_NONE) && !defined(USB_IPODSTYLE)
@@ -603,6 +604,7 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter)
603 call_ata_idle_notifys(true); 604 call_ata_idle_notifys(true);
604 exit(0); 605 exit(0);
605#else 606#else
607 long msg_id = -1;
606 int i; 608 int i;
607 609
608 scrobbler_poweroff(); 610 scrobbler_poweroff();
@@ -625,19 +627,23 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter)
625 if (!tagcache_prepare_shutdown()) 627 if (!tagcache_prepare_shutdown())
626 { 628 {
627 cancel_shutdown(); 629 cancel_shutdown();
628 gui_syncsplash(HZ, str(LANG_TAGCACHE_BUSY)); 630 gui_syncsplash(HZ, ID2P(LANG_TAGCACHE_BUSY));
629 return false; 631 return false;
630 } 632 }
631#endif 633#endif
632 if (battery_level() > 10) 634 if (battery_level() > 10)
633 gui_syncsplash(0, str(LANG_SHUTTINGDOWN)); 635 gui_syncsplash(0, str(LANG_SHUTTINGDOWN));
634 else 636 else
637 {
638 msg_id = LANG_WARNING_BATTERY_LOW;
635 gui_syncsplash(0, "%s %s", 639 gui_syncsplash(0, "%s %s",
636 str(LANG_WARNING_BATTERY_LOW), 640 str(LANG_WARNING_BATTERY_LOW),
637 str(LANG_SHUTTINGDOWN)); 641 str(LANG_SHUTTINGDOWN));
642 }
638 } 643 }
639 else 644 else
640 { 645 {
646 msg_id = LANG_WARNING_BATTERY_EMPTY;
641 gui_syncsplash(0, "%s %s", 647 gui_syncsplash(0, "%s %s",
642 str(LANG_WARNING_BATTERY_EMPTY), 648 str(LANG_WARNING_BATTERY_EMPTY),
643 str(LANG_SHUTTINGDOWN)); 649 str(LANG_SHUTTINGDOWN));
@@ -675,6 +681,21 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter)
675#if defined(HAVE_RECORDING) && CONFIG_CODEC == SWCODEC 681#if defined(HAVE_RECORDING) && CONFIG_CODEC == SWCODEC
676 audio_close_recording(); 682 audio_close_recording();
677#endif 683#endif
684
685 if(talk_menus_enabled())
686 {
687 bool enqueue = false;
688 if(msg_id != -1)
689 {
690 talk_id(msg_id, enqueue);
691 enqueue = true;
692 }
693 talk_id(LANG_SHUTTINGDOWN, enqueue);
694#if CONFIG_CODEC == SWCODEC
695 voice_wait();
696#endif
697 }
698
678 system_flush(); 699 system_flush();
679#ifdef HAVE_EEPROM_SETTINGS 700#ifdef HAVE_EEPROM_SETTINGS
680 if (firmware_settings.initialized) 701 if (firmware_settings.initialized)
@@ -974,8 +995,8 @@ void check_bootfile(bool do_rolo)
974 if((entry->wrtdate != wrtdate) || 995 if((entry->wrtdate != wrtdate) ||
975 (entry->wrttime != wrttime)) 996 (entry->wrttime != wrttime))
976 { 997 {
977 char *lines[] = { str(LANG_BOOT_CHANGED), 998 char *lines[] = { ID2P(LANG_BOOT_CHANGED),
978 str(LANG_REBOOT_NOW) }; 999 ID2P(LANG_REBOOT_NOW) };
979 struct text_message message={ lines, 2 }; 1000 struct text_message message={ lines, 2 };
980 button_clear_queue(); /* Empty the keyboard buffer */ 1001 button_clear_queue(); /* Empty the keyboard buffer */
981 if(gui_syncyesno_run(&message, NULL, NULL) == YESNO_YES) 1002 if(gui_syncyesno_run(&message, NULL, NULL) == YESNO_YES)