Skip to content

Commit 38a1931

Browse files
committed
add SetChannel and sanity check some ops
1 parent 8254bad commit 38a1931

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

src/main.c

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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;
387387
enum 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))
433433
static 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

Comments
 (0)