diff options
Diffstat (limited to 'apps/misc.c')
-rw-r--r-- | apps/misc.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/apps/misc.c b/apps/misc.c index ddf8d06e7b..d1b5c2274f 100644 --- a/apps/misc.c +++ b/apps/misc.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #ifdef HAVE_MMC | 46 | #ifdef HAVE_MMC |
47 | #include "ata_mmc.h" | 47 | #include "ata_mmc.h" |
48 | #endif | 48 | #endif |
49 | #include "tree.h" | ||
49 | 50 | ||
50 | #ifdef HAVE_LCD_BITMAP | 51 | #ifdef HAVE_LCD_BITMAP |
51 | #include "bmp.h" | 52 | #include "bmp.h" |
@@ -381,6 +382,16 @@ bool settings_parseline(char* line, char** name, char** value) | |||
381 | return true; | 382 | return true; |
382 | } | 383 | } |
383 | 384 | ||
385 | static void system_flush(void) | ||
386 | { | ||
387 | tree_flush(); | ||
388 | } | ||
389 | |||
390 | static void system_restore(void) | ||
391 | { | ||
392 | tree_restore(); | ||
393 | } | ||
394 | |||
384 | static bool clean_shutdown(void (*callback)(void *), void *parameter) | 395 | static bool clean_shutdown(void (*callback)(void *), void *parameter) |
385 | { | 396 | { |
386 | #ifdef SIMULATOR | 397 | #ifdef SIMULATOR |
@@ -396,6 +407,9 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter) | |||
396 | splash(0, true, str(LANG_SHUTTINGDOWN)); | 407 | splash(0, true, str(LANG_SHUTTINGDOWN)); |
397 | if (callback != NULL) | 408 | if (callback != NULL) |
398 | callback(parameter); | 409 | callback(parameter); |
410 | |||
411 | system_flush(); | ||
412 | |||
399 | shutdown_hw(); | 413 | shutdown_hw(); |
400 | } | 414 | } |
401 | #endif | 415 | #endif |
@@ -467,7 +481,11 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame | |||
467 | #ifdef HAVE_MMC | 481 | #ifdef HAVE_MMC |
468 | if (!mmc_touched() || (mmc_remove_request() == SYS_MMC_EXTRACTED)) | 482 | if (!mmc_touched() || (mmc_remove_request() == SYS_MMC_EXTRACTED)) |
469 | #endif | 483 | #endif |
484 | { | ||
485 | system_flush(); | ||
470 | usb_screen(); | 486 | usb_screen(); |
487 | system_restore(); | ||
488 | } | ||
471 | return SYS_USB_CONNECTED; | 489 | return SYS_USB_CONNECTED; |
472 | case SYS_POWEROFF: | 490 | case SYS_POWEROFF: |
473 | if (!clean_shutdown(callback, parameter)) | 491 | if (!clean_shutdown(callback, parameter)) |