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)
|
static bool clean_shutdown(void (*callback)(void *), void *parameter)
|
||||||
{
|
{
|
||||||
#if (CONFIG_PLATFORM & PLATFORM_HOSTED)
|
#if (CONFIG_PLATFORM & PLATFORM_ANDROID)
|
||||||
(void)callback;
|
(void)callback;
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
bookmark_autobookmark(false);
|
bookmark_autobookmark(false);
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include <libhal.h>
|
#include <libhal.h>
|
||||||
#include <libosso.h>
|
#include <libosso.h>
|
||||||
#include <SDL_thread.h>
|
#include <SDL_thread.h>
|
||||||
|
#include <SDL_events.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -213,6 +214,11 @@ void reset_poweroff_timer(void)
|
||||||
|
|
||||||
void shutdown_hw(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)
|
void cancel_shutdown(void)
|
||||||
|
|
|
@ -261,7 +261,12 @@ static bool event_handler(SDL_Event *event)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SDL_QUIT:
|
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;
|
return true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
|
#include <SDL_events.h>
|
||||||
|
|
||||||
#define BATT_MINMVOLT 2500 /* minimum millivolts of battery */
|
#define BATT_MINMVOLT 2500 /* minimum millivolts of battery */
|
||||||
#define BATT_MAXMVOLT 4500 /* maximum millivolts of battery */
|
#define BATT_MAXMVOLT 4500 /* maximum millivolts of battery */
|
||||||
|
@ -155,6 +156,11 @@ void reset_poweroff_timer(void)
|
||||||
|
|
||||||
void shutdown_hw(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)
|
void cancel_shutdown(void)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue