/**************************************************************************** * BackupModeAllFiles - SD Mode * Copy all files on the Memory Card to the SD card ****************************************************************************/ void SD_BackupModeAllFiles () { int memitems; int selected = 0; int bytestodo; char buffer[128]; clearRightPane(); DrawText(386,130," B a c k u p A l l "); DrawText(386,134,"_____________________"); setfontsize (14); writeStatusBar("Backing up all files.", "This may take a while."); /*** Get the directory listing from the memory card ***/ memitems = CardGetDirectory (MEM_CARD); /*** If it's a blank card, get out of here ***/ if (!memitems) { WaitPrompt ("No saved games to backup!"); } else { for ( selected = 0; selected < memitems; selected++ ) { /*** Backup files ***/ sprintf(buffer, "[%d/%d] Reading from MC slot B", selected+1, memitems); ShowAction(buffer); bytestodo = CardReadFile(MEM_CARD, selected); if (bytestodo) { sprintf(buffer, "[%d/%d] Saving to FAT device", selected+1, memitems); ShowAction(buffer); SDSaveMCImage(); } else { WaitPrompt ("Error reading MC file"); return; } } WaitPrompt("Full card backup done!"); } }
void MC_DeleteMode(int slot) { int memitems, err; int selected = 0; int erase; displaypath = 0; clearRightPane(); DrawText(386,130,"D e l e t e M o d e"); DrawText(386,134,"_____________________"); char msg[1024]; writeStatusBar("Reading memory card... ", ""); /*** Get the directory listing from the memory card ***/ memitems = CardGetDirectory (slot); setfontsize (14); writeStatusBar("Choose a file with UP button or DOWN button ", "Press A button to delete ") ; /*** If it's a blank card, get out of here ***/ if (!memitems) { WaitPrompt ("No saved games to delete !"); } else { while(1) { // TODO: implement showselector selected = ShowSelector(1); if (cancel) { WaitPrompt ("Delete action cancelled !"); return; } //0 = Z or 2 was pressed -> delete the file erase = WaitPromptChoiceAZ("Are you sure you want to delete the file?", "Delete", "Cancel"); if (!erase) { // selected = 1; /*** Delete the file ***/ sprintf(msg, "Deleting \"%s\"", CardList[selected].filename); writeStatusBar(msg,""); //WaitPrompt(msg); /*** Try to mount the card ***/ err = MountCard(slot); if (err < 0) { WaitCardError("MCDel Mount", err); return; /*** Unable to mount the card ***/ } /*** Initialise for this company & gamecode ***/ CARD_SetCompany(CardList[selected].company); CARD_SetGamecode(CardList[selected].gamecode); err = CARD_Delete(slot, (char *) &CardList[selected].filename); if (err < 0) { WaitCardError("MCDel", err); } else { WaitPrompt("Delete complete"); } CARD_Unmount(slot); return; } offsetchanged = true; } } }
/**************************************************************************** * BackupMode -SD Mode * * Perform backup of a memory card file to a SD Card. ****************************************************************************/ void SD_BackupMode () { int memitems; int selected = 0; int bytestodo; char buffer[256], text[64]; clearRightPane(); DrawText(386,130,"B a c k u p M o d e"); DrawText(386,134,"_____________________"); writeStatusBar("Reading memory card... ", ""); /*** Get the directory listing from the memory card ***/ memitems = CardGetDirectory (MEM_CARD); setfontsize (14); writeStatusBar("Pick a file using UP or DOWN ", "Press A to backup savegame") ; #ifdef HW_RVL DrawText(40, 60, "Press R/1 to backup ALL savegames"); #else DrawText(40, 60, "Press R to backup ALL savegames"); #endif /*** If it's a blank card, get out of here ***/ if (!memitems) { WaitPrompt ("No saved games to backup!"); } else { selected = ShowSelector (1); if (cancel) { WaitPrompt ("Backup action cancelled!"); } else if(doall) { doall = WaitPromptChoice("Are you sure you want to backup all files?", "No", "Yes"); if (doall) { //Backup All files for ( selected = 0; selected < memitems; selected++ ) { /*** Backup files ***/ sprintf(buffer, "[%d/%d] Reading from MC slot %s", selected+1, memitems, (MEM_CARD) ? "B" : "A"); ShowAction(buffer); bytestodo = CardReadFile(MEM_CARD, selected); if (bytestodo) { sprintf(buffer, "[%d/%d] Saving to FAT device", selected+1, memitems); ShowAction(buffer); if (!SDSaveMCImage()) { strncpy(text, (char*)filelist[selected], 32); text[32]='\0'; sprintf(buffer, "Error during backup (%s). Continue?", text); doall = WaitPromptChoice(buffer, "Yes", "No"); if (doall) { WaitPrompt ("Backup action cancelled due to error!"); return; } } } else { WaitPrompt ("Error reading MC file"); return; } } WaitPrompt("Full card backup done!"); return; } } else { /*** Backup the file ***/ ShowAction ("Reading File From MC SLOT B"); bytestodo = CardReadFile (MEM_CARD, selected); if (bytestodo) { ShowAction ("Saving to FAT device"); if (SDSaveMCImage()) { WaitPrompt ("Backup complete"); return; } else { WaitPrompt ("Backup failed"); return; } } else { WaitPrompt ("Error reading MC file"); return; } } } return; }