@@ -383,7 +383,7 @@ static void Show_About_uLE(void)
383383#define SET_NEXT_CARD 1
384384#define SET_PREV_CARD 2
385385#define BUILD_SETCARD (param , type , mode , num ) param = type << 24; param |= mode << 16; param |= num;
386-
386+ #define BUILD_SETCHANNEL ( param , mode , num ) param = mode << 16; param |= num;
387387enum mmceman_cmds {
388388 MMCE_CMD_PING = 0x1 ,
389389 MMCE_CMD_GET_STATUS ,
@@ -429,13 +429,13 @@ static void refresh_mmceman_data(struct cardinfo_t* CardInfo) {
429429 } else CardInfo [i ].validcard = FALSE;
430430 }
431431}
432-
432+ #define INFORM_ERR ( res , cause ) if (res == -1) snprintf(Notifs, MAX_TEXT_LINE, cause": %s", LNG(Failed))
433433static void Show_MMCEManager (void )
434434{
435+ char Notifs [MAX_TEXT_LINE ] = "MMCE Manager" ;
435436 int event = 1 , post_event = 0 , curcard = 0 , res , i ;
436437 int hpos [2 ] = {2 , 40 };
437438 char TextRow [256 ];
438- char * unk = LNG (Unknown );
439439 struct cardinfo_t CardInfo [2 ] = {
440440 {LNG (Unknown ), -1 , -1 , FALSE, "" },
441441 {LNG (Unknown ), -1 , -1 , FALSE, "" },
@@ -459,17 +459,29 @@ static void Show_MMCEManager(void)
459459 } else if (new_pad & PAD_CROSS ) {
460460 curcard ^= 1 ;
461461 event |= 2 ;
462- } else if (new_pad & PAD_R1 || new_pad & PAD_R2 ) {
463- u32 param ;
464- BUILD_SETCARD (param , VMC_NORMAL , (new_pad & PAD_R1 ) ? SET_PREV_CARD : SET_NEXT_CARD , 0 )
465- res = fileXioDevctl (mmce , MMCE_CMD_SET_CARD , & param , sizeof (param ), NULL , 0 );
466- event |= 2 ;
467462 } else if (new_pad & PAD_SELECT ) {
468463 refresh_mmceman_data (CardInfo );
469464 event |= 2 ;
470- } else if (new_pad & PAD_START ) {
471- if (keyboard (TextRow , 36 ) > 0 ) {
472- fileXioDevctl (mmce , MMCE_CMD_SET_GAMEID , TextRow , 255 , NULL , 0 );
465+ strcpy (Notifs , "MMCE Manager" );
466+ }
467+ if (CardInfo [curcard ].validcard ) {
468+ if (new_pad & PAD_START ) {
469+ if (keyboard (TextRow , 36 ) > 0 ) {
470+ res = fileXioDevctl (mmce , MMCE_CMD_SET_GAMEID , TextRow , 255 , NULL , 0 );
471+ event |= 2 ;
472+ INFORM_ERR (res , "SetGameID" );
473+ }
474+ } else if (new_pad & PAD_R1 || new_pad & PAD_R2 ) {
475+ u32 param ;
476+ BUILD_SETCARD (param , VMC_NORMAL , (new_pad & PAD_R1 ) ? SET_PREV_CARD : SET_NEXT_CARD , 0 )
477+ res = fileXioDevctl (mmce , MMCE_CMD_SET_CARD , & param , sizeof (param ), NULL , 0 );
478+ INFORM_ERR (res , "SetCard" );
479+ event |= 2 ;
480+ } else if (new_pad & PAD_L1 || new_pad & PAD_L2 ) {
481+ u32 param ;
482+ BUILD_SETCHANNEL (param , (new_pad & PAD_L1 ) ? SET_PREV_CARD : SET_NEXT_CARD , 0 )
483+ res = fileXioDevctl (mmce , MMCE_CMD_SET_CHANNEL , & param , sizeof (param ), NULL , 0 );
484+ INFORM_ERR (res , "SetChannel" );
473485 event |= 2 ;
474486 }
475487 }
@@ -489,17 +501,16 @@ static void Show_MMCEManager(void)
489501 if (CardInfo [i ].validcard ) {
490502 sprintf (TextRow , " Device: %s" , CardInfo [i ].product );
491503 PrintPos (02 , hpos [i ], TextRow , COLOR_TEXT );
492- sprintf (TextRow , " Revision : %d, Protocol: %d" , CardInfo [i ].revision , CardInfo [i ].protocol );
504+ sprintf (TextRow , " Rev : %d, Protocol: %d" , CardInfo [i ].revision , CardInfo [i ].protocol );
493505 PrintPos (03 , hpos [i ], TextRow , COLOR_TEXT );
494- snprintf (TextRow , 36 , " GameId '%s'" , CardInfo [i ].gid );
506+ snprintf (TextRow , 36 , " GameID '%s'" , CardInfo [i ].gid );
495507 PrintPos (04 , hpos [i ], TextRow , COLOR_TEXT );
496508 } else {
497- sprintf (TextRow , "%s" , "No device Found " );
509+ sprintf (TextRow , "%s" , " No device found " );
498510 PrintPos (02 , hpos [i ], TextRow , COLOR_GRAPH3 );
499511 }
500512 }
501-
502- setScrTmp ("MMCE Manager" , "R1/R2:card L1/L2:chan START:SetGameID " FNCH_CROSS ":card slot " FNCH_CIRCLE ":Back SELECT:Refresh" );
513+ setScrTmp (Notifs , "R1/R2:card L1/L2:chan START:SetGameID " FNCH_CROSS ":card slot " FNCH_CIRCLE ":Back SELECT:Refresh" );
503514 }
504515 drawScr ();
505516 post_event = event ;
0 commit comments