Ejemplo n.º 1
0
int LPP_UtilsMsgDialogUpdate(void)
{
    int res = -1;

    switch(sceUtilityMsgDialogGetStatus())
    {
    case PSP_UTILITY_DIALOG_NONE :
        res = lpp_UtilsMsgDialogParams.buttonPressed;
        break;
    case PSP_UTILITY_DIALOG_VISIBLE:
        sceUtilityMsgDialogUpdate(1);
        break;
    case PSP_UTILITY_DIALOG_QUIT :
        sceUtilityMsgDialogShutdownStart();
        break;
    case PSP_UTILITY_DIALOG_FINISHED:
        break;
    default:
        break;
    }

    if(res != -1)
    {
        if(!(lpp_UtilsMsgDialogParams.options & LPP_UTILS_MSG_DIALOG_YESNO_BUTTONS))
            res = LPP_UTILS_MSG_DIALOG_RESULT_BACK;
    }

    return(res);
}
Ejemplo n.º 2
0
static void ShowMessageDialog(const char *message, int enableYesno)
{
    clearScreen(0);
    flipScreen();
    clearScreen(0);
    flipScreen();
    ConfigureDialog(&dialog, sizeof(dialog));
    dialog.mode = PSP_UTILITY_MSGDIALOG_MODE_TEXT;
    dialog.options = PSP_UTILITY_MSGDIALOG_OPTION_TEXT;

    if(enableYesno)
        dialog.options |= PSP_UTILITY_MSGDIALOG_OPTION_YESNO_BUTTONS|PSP_UTILITY_MSGDIALOG_OPTION_DEFAULT_NO;        
    
    strcpy(dialog.message, message);

    sceUtilityMsgDialogInitStart(&dialog);

    for(;;) {


    switch(sceUtilityMsgDialogGetStatus()) {

    case 2:
        sceUtilityMsgDialogUpdate(1);
        break;
        
    case 3:
        sceUtilityMsgDialogShutdownStart();
        break;
        
    case 0:
        return;
        
    }

    sceDisplayWaitVblankStart();
    }
}
Ejemplo n.º 3
0
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;
		}
    }
}
Ejemplo n.º 4
0
Archivo: ui.c Proyecto: kradhub/pspdc
void
ui_msg_dialog (UI * ui, const char * msg)
{
	pspUtilityMsgDialogParams params;
	unsigned int swap_count = 0;
	SceCtrlLatch latch;

	memset (&params, 0, sizeof (params));

	params.base.size = sizeof (params);
	params.base.language = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH;
	params.base.buttonSwap = PSP_UTILITY_ACCEPT_CROSS;

	/* Thread priorities */
	params.base.graphicsThread = 17;
	params.base.accessThread = 19;
	params.base.fontThread = 18;
	params.base.soundThread = 16;

	params.mode = PSP_UTILITY_MSGDIALOG_MODE_TEXT;
	params.options = PSP_UTILITY_MSGDIALOG_OPTION_TEXT;
	snprintf (params.message, 512, msg);

	sceUtilityMsgDialogInitStart (&params);

	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 (sceUtilityMsgDialogGetStatus ()) {
			case PSP_UTILITY_DIALOG_NONE:
				break;
			case PSP_UTILITY_DIALOG_VISIBLE:
				sceUtilityMsgDialogUpdate (1);
				break;
			case PSP_UTILITY_DIALOG_QUIT:
				sceUtilityMsgDialogShutdownStart ();
				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);
}