// format a memory card static void OnMcd_Format(GtkWidget *widget, gpointer user_data) { GtkWidget *message_dialog; gint result; char *str; gint memcard = GPOINTER_TO_INT(user_data); message_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _("Format this Memory Card?")); gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(message_dialog), _("If you format the memory card, the card will be empty, and any existing data overwritten.")); gtk_dialog_add_buttons(GTK_DIALOG(message_dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, _("Format card"), GTK_RESPONSE_YES, NULL); result = gtk_dialog_run(GTK_DIALOG(message_dialog)); gtk_widget_destroy(message_dialog); if (result == GTK_RESPONSE_YES) { if (memcard == 1) str = Config.Mcd1; else str = Config.Mcd2; CreateMcd(str); LoadMcd(memcard, str); UpdateMcdDlg(widget); } }
static void OnMcd_FileChange(GtkWidget *widget, gpointer user_data) { gint memcard = GPOINTER_TO_INT(user_data); gchar *filename; GtkWidget *chooser; // Ask for name of memory card chooser = gtk_file_chooser_dialog_new(_("Select A File"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL); if (memcard == 1) gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(chooser), Config.Mcd1); else gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(chooser), Config.Mcd2); if (gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_OK) { gtk_widget_hide(chooser); filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); if (filename != NULL) { if (memcard == 1) strncpy(Config.Mcd1, filename, MAXPATHLEN); else strncpy(Config.Mcd2, filename, MAXPATHLEN); LoadMcd(memcard, filename); LoadMcdDlg(widget); g_free(filename); } } gtk_widget_destroy(chooser); }
// create a new, formatted memory card static void OnMcd_New(GtkWidget *widget, gpointer user_data) { GtkWidget *chooser; gchar *path; // Ask for name of new memory card chooser = gtk_file_chooser_dialog_new(_("Create a new Memory Card"), NULL, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_OK, NULL); // Card should be put into $HOME/.pcsxr/memcards path = g_build_filename(g_get_home_dir(), ".pcsxr", "memcards", NULL); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), path); gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), _("New Memory Card.mcd")); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(chooser), TRUE); if (gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_OK) { gchar *name; gtk_widget_hide(chooser); name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); CreateMcd(name); gint mcd = GPOINTER_TO_INT(user_data); if (mcd == 1) strncpy(Config.Mcd1, name, MAXPATHLEN); else strncpy(Config.Mcd2, name, MAXPATHLEN); LoadMcd(mcd, name); LoadMcdDlg(widget); g_free(name); } gtk_widget_destroy(chooser); g_free(path); }
void LoadMcds(char *mcd1, char *mcd2) { LoadMcd(1, mcd1); LoadMcd(2, mcd2); }
// loadISO loads an ISO, resets the system and loads the save. int loadISO(fileBrowser_file* file) { // Refresh file pointers memset(&isoFile, 0, sizeof(fileBrowser_file)); memset(&cddaFile, 0, sizeof(fileBrowser_file)); memset(&subFile, 0, sizeof(fileBrowser_file)); memcpy(&isoFile, file, sizeof(fileBrowser_file) ); if(hasLoadedISO) { SysClose(); hasLoadedISO = FALSE; } SetIsoFile(&file->name[0]); if(SysInit() < 0) return -1; hasLoadedISO = TRUE; SysReset(); char *tempStr = &file->name[0]; if((strstr(tempStr,".EXE")!=NULL) || (strstr(tempStr,".exe")!=NULL)) { Load(file); } else { CheckCdrom(); LoadCdrom(); } if(autoSave==AUTOSAVE_ENABLE) { switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: case NATIVESAVEDEVICE_USB: // Adjust saveFile pointers saveFile_dir = (nativeSaveDevice==NATIVESAVEDEVICE_SD) ? &saveDir_libfat_Default:&saveDir_libfat_USB; saveFile_readFile = fileBrowser_libfat_readFile; saveFile_writeFile = fileBrowser_libfat_writeFile; saveFile_init = fileBrowser_libfat_init; saveFile_deinit = fileBrowser_libfat_deinit; break; case NATIVESAVEDEVICE_CARDA: case NATIVESAVEDEVICE_CARDB: // Adjust saveFile pointers saveFile_dir = (nativeSaveDevice==NATIVESAVEDEVICE_CARDA) ? &saveDir_CARD_SlotA:&saveDir_CARD_SlotB; saveFile_readFile = fileBrowser_CARD_readFile; saveFile_writeFile = fileBrowser_CARD_writeFile; saveFile_init = fileBrowser_CARD_init; saveFile_deinit = fileBrowser_CARD_deinit; break; } // Try loading everything int result = 0; saveFile_init(saveFile_dir); result += LoadMcd(1,saveFile_dir); result += LoadMcd(2,saveFile_dir); saveFile_deinit(saveFile_dir); switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: if (result) autoSaveLoaded = NATIVESAVEDEVICE_SD; break; case NATIVESAVEDEVICE_USB: if (result) autoSaveLoaded = NATIVESAVEDEVICE_USB; break; case NATIVESAVEDEVICE_CARDA: if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDA; break; case NATIVESAVEDEVICE_CARDB: if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDB; break; } } return 0; }