Adjusted sleep-mode code so that the APP_STATUS on leaving sleep-mode, would be set to the status which was set when the prepare sleep-mode signal was triggered(and other minor changes).
This commit is contained in:
parent
d99ab43106
commit
4260edd6c9
@ -9,12 +9,13 @@ typedef enum{
|
||||
}NS_APPID; // cf http://3dbrew.org/wiki/NS#AppIDs
|
||||
|
||||
typedef enum{
|
||||
APT_NOTINITIALIZED,
|
||||
APP_NOTINITIALIZED,
|
||||
APP_RUNNING,
|
||||
APP_SUSPENDED,
|
||||
APP_EXITING,
|
||||
APP_SUSPENDING,
|
||||
APP_SLEEPMODE
|
||||
APP_SLEEPMODE,
|
||||
APP_PREPARE_SLEEPMODE
|
||||
}APP_STATUS;
|
||||
|
||||
extern Handle aptEvents[3];
|
||||
|
@ -20,7 +20,8 @@ u64 aptEventHandlerStack[APT_HANDLER_STACKSIZE/8]; //u64 so that it's 8-byte ali
|
||||
|
||||
Handle aptStatusMutex;
|
||||
Handle aptStatusEvent = 0;
|
||||
u32 aptStatus = APT_NOTINITIALIZED;
|
||||
APP_STATUS aptStatus = APP_NOTINITIALIZED;
|
||||
APP_STATUS aptStatus_beforesleepmode = APP_NOTINITIALIZED;
|
||||
u32 aptStatusPower = 0;
|
||||
|
||||
u32 aptParameters[0x1000/4]; //TEMP
|
||||
@ -212,21 +213,30 @@ void aptEventHandler(u32 arg)
|
||||
break;
|
||||
|
||||
case 0x3: //preparing to enter sleep-mode
|
||||
aptStatus_beforesleepmode = aptGetStatus();
|
||||
GSPGPU_SetLcdForceBlack(NULL, 1);
|
||||
aptOpenSession();
|
||||
APT_ReplySleepQuery(NULL, currentAppId, 0x1);
|
||||
aptCloseSession();
|
||||
aptSetStatus(APP_PREPARE_SLEEPMODE);
|
||||
break;
|
||||
|
||||
case 0x5: //entering sleep-mode
|
||||
if(aptGetStatus()==APP_PREPARE_SLEEPMODE)
|
||||
{
|
||||
aptOpenSession();
|
||||
APT_ReplySleepNotificationComplete(NULL, currentAppId);
|
||||
aptCloseSession();
|
||||
aptSetStatus(APP_SLEEPMODE);
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6: //leaving sleep-mode
|
||||
if(aptGetStatus()==APP_SLEEPMODE)
|
||||
{
|
||||
GSPGPU_SetLcdForceBlack(NULL, 0);
|
||||
aptSetStatus(APP_RUNNING);
|
||||
aptSetStatus(aptStatus_beforesleepmode);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -385,7 +395,7 @@ void aptSetStatus(APP_STATUS status)
|
||||
prevstatus = status;
|
||||
aptStatus = status;
|
||||
|
||||
if(prevstatus!=APT_NOTINITIALIZED)
|
||||
if(prevstatus!=APP_NOTINITIALIZED)
|
||||
{
|
||||
if(status==APP_RUNNING)svc_signalEvent(aptStatusEvent);
|
||||
if(status==APP_EXITING)svc_signalEvent(aptStatusEvent);
|
||||
|
Loading…
Reference in New Issue
Block a user