static void suspendDevice() { closeSettingsMenu(); scePowerRequestSuspend(); }
void deviceStandby() { scePowerRequestSuspend(); }
static int lua_standby(lua_State *L) { if (lua_gettop(L) != 0) return luaL_error(L, "no arguments expected."); scePowerRequestSuspend(); return 0; }
static int music_thread(SceSize arg, void *argp) { u32 key = 0; u32 oldkey = 0; u64 start, end; double interval = 0; g_thread_actived = 1; g_thread_exited = 0; sceRtcGetCurrentTick(&start); sceRtcGetCurrentTick(&end); while (g_thread_actived) { music_lock(); if (g_list.is_list_playing) { if (musicdrv_has_stop()) { if (g_list.first_time) { int ret; ret = music_play(g_list.curr_pos); if (ret == 0) g_list.first_time = false; } else { get_next_music(); if (!g_list.is_list_playing) { music_unlock(); music_load(g_list.curr_pos); music_stop(); continue; } music_play(g_list.curr_pos); } } music_unlock(); sceKernelDelayThread(100000); } else { music_unlock(); sceKernelDelayThread(500000); } if (g_music_hprm_enable) { key = ctrl_hprm_raw(); sceRtcGetCurrentTick(&end); interval = pspDiffTime(&end, &start); if (key == PSP_HPRM_FORWARD || key == PSP_HPRM_BACK || key == PSP_HPRM_PLAYPAUSE) { if (key != oldkey) { sceRtcGetCurrentTick(&start); sceRtcGetCurrentTick(&end); interval = pspDiffTime(&end, &start); } if (interval >= 0.5) { if (key == PSP_HPRM_FORWARD) { musicdrv_fforward(5); sceKernelDelayThread(200000); } else if (key == PSP_HPRM_BACK) { musicdrv_fbackward(5); sceKernelDelayThread(200000); } } oldkey = key; if (key == PSP_HPRM_PLAYPAUSE && interval >= 4.0) { power_down(); scePowerRequestSuspend(); } } else { if ((oldkey == PSP_HPRM_FORWARD || oldkey == PSP_HPRM_BACK || oldkey == PSP_HPRM_PLAYPAUSE)) { if (interval < 0.5) { if (oldkey == PSP_HPRM_FORWARD) music_next(); else if (oldkey == PSP_HPRM_BACK) music_prev(); } if (interval < 4.0) { if (oldkey == PSP_HPRM_PLAYPAUSE) music_list_playorpause(); } } oldkey = key; sceRtcGetCurrentTick(&start); } } { int thid = sceKernelGetThreadId(); int oldpri = sceKernelGetThreadCurrentPriority(); sceKernelChangeThreadPriority(thid, 90); cache_routine(); sceKernelChangeThreadPriority(thid, oldpri); } } g_thread_actived = 0; g_thread_exited = 1; return 0; }