int oslGetDialogStatus(){ if (dialogType == OSL_DIALOG_MESSAGE || dialogType == OSL_DIALOG_ERROR) return sceUtilityMsgDialogGetStatus(); else if (dialogType == OSL_DIALOG_NETCONF) return sceUtilityNetconfGetStatus(); return PSP_UTILITY_DIALOG_NONE; }
int LPP_AdhocDialogUpdate(void) { int res = -1; switch(sceUtilityNetconfGetStatus()) { case PSP_UTILITY_DIALOG_NONE : { res = lpp_UtilsNetconfData.base.result; } break; case PSP_UTILITY_DIALOG_VISIBLE : { sceUtilityNetconfUpdate(1); } break; case PSP_UTILITY_DIALOG_QUIT : { sceUtilityNetconfShutdownStart(); } break; case PSP_UTILITY_DIALOG_FINISHED : break; default : break; } return(res); }
int netDialog() { int done = 0; pspUtilityNetconfData data; memset(&data, 0, sizeof(data)); data.base.size = sizeof(data); data.base.language = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH; data.base.buttonSwap = PSP_UTILITY_ACCEPT_CROSS; data.base.graphicsThread = 17; data.base.accessThread = 19; data.base.fontThread = 18; data.base.soundThread = 16; data.action = PSP_NETCONF_ACTION_CONNECTAP; struct pspUtilityNetconfAdhoc adhocparam; memset(&adhocparam, 0, sizeof(adhocparam)); data.adhocparam = &adhocparam; sceUtilityNetconfInitStart(&data); while(running) { guStart(); clearScreen(0xff554433); guEnd(); switch(sceUtilityNetconfGetStatus()) { case PSP_UTILITY_DIALOG_NONE: break; case PSP_UTILITY_DIALOG_VISIBLE: sceUtilityNetconfUpdate(1); break; case PSP_UTILITY_DIALOG_QUIT: sceUtilityNetconfShutdownStart(); break; case PSP_UTILITY_DIALOG_FINISHED: done = 1; break; default: break; } sceDisplayWaitVblankStart(); flipScreen(); if(done) break; } return 1; }
void oslDrawDialog() { if (dialogType == OSL_DIALOG_MESSAGE || dialogType == OSL_DIALOG_ERROR){ switch(sceUtilityMsgDialogGetStatus()) { case PSP_UTILITY_DIALOG_INIT: case PSP_UTILITY_DIALOG_VISIBLE: sceGuFinish(); sceGuSync(0,0); sceUtilityMsgDialogUpdate(1); sceGuStart(GU_DIRECT, osl_list); oslSetAlpha(OSL_FX_RGBA, 0xff); break; case PSP_UTILITY_DIALOG_QUIT: sceUtilityMsgDialogShutdownStart(); break; case PSP_UTILITY_DIALOG_NONE: break; } }else if (dialogType == OSL_DIALOG_NETCONF){ switch(sceUtilityNetconfGetStatus()){ case PSP_UTILITY_DIALOG_INIT: case PSP_UTILITY_DIALOG_VISIBLE: sceGuFinish(); sceGuSync(0,0); sceUtilityNetconfUpdate(1); sceGuStart(GU_DIRECT, osl_list); oslSetAlpha(OSL_FX_RGBA, 0xff); break; case PSP_UTILITY_DIALOG_QUIT: sceUtilityNetconfShutdownStart(); break; case PSP_UTILITY_DIALOG_NONE: case PSP_UTILITY_DIALOG_FINISHED: break; } } }
/* configuration dialog return 0 when connected * 1 when cancelled (ie back) */ int ui_network_dialog_run (UI * ui) { pspUtilityNetconfData conf; struct pspUtilityNetconfAdhoc adhoc_params; unsigned int swap_count = 0; SceCtrlLatch latch; memset(&conf, 0, sizeof (conf)); memset(&adhoc_params, 0, sizeof (adhoc_params)); conf.base.size = sizeof (conf); conf.base.language = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH; conf.base.buttonSwap = PSP_UTILITY_ACCEPT_CROSS; /* Thread priorities */ conf.base.graphicsThread = 17; conf.base.accessThread = 19; conf.base.fontThread = 18; conf.base.soundThread = 16; conf.action = PSP_NETCONF_ACTION_CONNECTAP; conf.adhocparam = &adhoc_params; sceUtilityNetconfInitStart (&conf); while (running) { int done = 0; /* directly use GU to avoid flickering with SDL */ sceGuStart (GU_DIRECT, list); sceGuClearColor (0xff554433); sceGuClearDepth (0); sceGuClear (GU_COLOR_BUFFER_BIT|GU_DEPTH_BUFFER_BIT); sceGuFinish (); sceGuSync (0,0); switch (sceUtilityNetconfGetStatus ()) { case PSP_UTILITY_DIALOG_NONE: break; case PSP_UTILITY_DIALOG_VISIBLE: sceUtilityNetconfUpdate (1); break; case PSP_UTILITY_DIALOG_QUIT: sceUtilityNetconfShutdownStart (); break; case PSP_UTILITY_DIALOG_FINISHED: done = 1; break; default: break; } sceDisplayWaitVblankStart (); sceGuSwapBuffers (); swap_count++; if (done) break; } /* hack for SDL compatibility. * if it end up on an odd buffer, SDL won't be displayed. * ie SDL will display in an hidden buffer */ if (swap_count & 1) sceGuSwapBuffers (); /* message dialog seems to causes strange latch behavior, next read * of latch will contains all button pressed during dialog. * read one to reset it */ sceCtrlReadLatch (&latch); return conf.base.result; }