When the APT status is APP_PREPARE_SLEEPMODE, the application main thread should call aptSignalReadyForSleep() to signal that it is ready to enter sleep mode, and then call aptWaitStatusEvent() as usual.
Example code:
APP_STATUS status;
while ((status = aptGetStatus()) != APP_EXITING)
{
if(status==APP_RUNNING)
{
// application logic here
}
else if(status == APP_SUSPENDING)
{
aptReturnToMenu();
}
else if(status == APP_PREPARE_SLEEPMODE)
{
aptSignalReadyForSleep();
aptWaitStatusEvent();
}
}
This maybe isn't the proper/recommended way to do sleep mode, but I tested it multiple times and it always worked reliably.
(note: maybe the sample code above will not work if GPU drawing is done in a separate thread, haven't tested that)