diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-24 21:26:41 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-24 21:26:41 +0000 |
commit | 5b5003dcb12b0fe22f497a62d3024f3cf7a10fd1 (patch) | |
tree | effe16b48cdae25b0776df1d0ef87f73c36c5267 /apps/misc.c | |
parent | 6b8d020876f97a4af01d628ad0de251b103be01c (diff) | |
download | rockbox-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.c | 28 |
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 | |||
216 | bool 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 | } | ||