forked from len0rd/rockbox
Fix the shutdown sequence for maemo, SDL and simulator builds
Do proper shutdown in RaaA builds like writeout of last.FM scrobbler file and other neat things. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29309 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
1f85259ef1
commit
258626f455
4 changed files with 18 additions and 1 deletions
|
@ -256,7 +256,7 @@ static void system_restore(void)
|
|||
|
||||
static bool clean_shutdown(void (*callback)(void *), void *parameter)
|
||||
{
|
||||
#if (CONFIG_PLATFORM & PLATFORM_HOSTED)
|
||||
#if (CONFIG_PLATFORM & PLATFORM_ANDROID)
|
||||
(void)callback;
|
||||
(void)parameter;
|
||||
bookmark_autobookmark(false);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <libhal.h>
|
||||
#include <libosso.h>
|
||||
#include <SDL_thread.h>
|
||||
#include <SDL_events.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
|
@ -213,6 +214,11 @@ void reset_poweroff_timer(void)
|
|||
|
||||
void shutdown_hw(void)
|
||||
{
|
||||
/* Shut down SDL event loop */
|
||||
SDL_Event event;
|
||||
memset(&event, 0, sizeof(SDL_Event));
|
||||
event.type = SDL_USEREVENT;
|
||||
SDL_PushEvent(&event);
|
||||
}
|
||||
|
||||
void cancel_shutdown(void)
|
||||
|
|
|
@ -261,7 +261,12 @@ static bool event_handler(SDL_Event *event)
|
|||
break;
|
||||
}
|
||||
case SDL_QUIT:
|
||||
/* Post SYS_POWEROFF event. Will post SDL_USEREVENT in shutdown_hw() if successful. */
|
||||
queue_broadcast(SYS_POWEROFF, 0);
|
||||
break;
|
||||
case SDL_USEREVENT:
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <time.h>
|
||||
#include "kernel.h"
|
||||
#include "powermgmt.h"
|
||||
#include <SDL_events.h>
|
||||
|
||||
#define BATT_MINMVOLT 2500 /* minimum millivolts of battery */
|
||||
#define BATT_MAXMVOLT 4500 /* maximum millivolts of battery */
|
||||
|
@ -155,6 +156,11 @@ void reset_poweroff_timer(void)
|
|||
|
||||
void shutdown_hw(void)
|
||||
{
|
||||
/* Shut down SDL event loop */
|
||||
SDL_Event event;
|
||||
memset(&event, 0, sizeof(SDL_Event));
|
||||
event.type = SDL_USEREVENT;
|
||||
SDL_PushEvent(&event);
|
||||
}
|
||||
|
||||
void cancel_shutdown(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue