summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2004-07-24 21:26:41 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2004-07-24 21:26:41 +0000
commit5b5003dcb12b0fe22f497a62d3024f3cf7a10fd1 (patch)
treeeffe16b48cdae25b0776df1d0ef87f73c36c5267 /apps/misc.c
parent6b8d020876f97a4af01d628ad0de251b103be01c (diff)
downloadrockbox-5b5003dcb12b0fe22f497a62d3024f3cf7a10fd1.tar.gz
rockbox-5b5003dcb12b0fe22f497a62d3024f3cf7a10fd1.zip
New feature: clean shutdown if you press OFF twice in the file browser, or select "Shut
off" in the main menu. Players only have the menu option, due to lack of keys. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4940 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/apps/misc.c b/apps/misc.c
index 535cd81814..8bb78f5d64 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -17,6 +17,7 @@
17 * 17 *
18 ****************************************************************************/ 18 ****************************************************************************/
19#include <ctype.h> 19#include <ctype.h>
20#include "lang.h"
20#include "string.h" 21#include "string.h"
21#include "config.h" 22#include "config.h"
22#include "file.h" 23#include "file.h"
@@ -25,6 +26,13 @@
25#include "errno.h" 26#include "errno.h"
26#include "system.h" 27#include "system.h"
27#include "timefuncs.h" 28#include "timefuncs.h"
29#include "screens.h"
30#include "mpeg.h"
31#include "mp3_playback.h"
32#include "settings.h"
33#include "ata.h"
34#include "kernel.h"
35#include "power.h"
28 36
29#define ONE_KILOBYTE 1024 37#define ONE_KILOBYTE 1024
30#define ONE_MEGABYTE (1024*1024) 38#define ONE_MEGABYTE (1024*1024)
@@ -204,3 +212,23 @@ bool settings_parseline(char* line, char** name, char** value)
204 *value = ptr; 212 *value = ptr;
205 return true; 213 return true;
206} 214}
215
216bool clean_shutdown(void)
217{
218 lcd_clear_display();
219 splash(0, true, str(LANG_SHUTTINGDOWN));
220 mpeg_stop();
221 settings_save();
222 ata_flush();
223 ata_spindown(1);
224#ifndef SIMULATOR
225 while(ata_disk_is_active())
226 sleep(HZ/10);
227 if(!charger_inserted())
228 {
229 mp3_shutdown();
230 power_off();
231 }
232#endif
233 return false;
234}