bool LoadPrefs() { if (prefLoaded) // already attempted loading return true; bool prefFound = false; prefFound = LoadPrefsFromMethod(MPLAYER_DATADIR); prefLoaded = true; // attempted to load preferences if (prefFound) FixInvalidSettings(); return prefFound; }
bool SavePrefs(bool silent) { char filepath[MAXPATHLEN]; int datasize; int offset = 0; FixInvalidSettings(); savebuffer = (unsigned char*) malloc(SAVEBUFFERSIZE); datasize = preparePrefsData(); sprintf(filepath, "%s/%s", MPLAYER_DATADIR, PREF_FILE_NAME); offset = SaveFile(filepath, datasize, silent); free(savebuffer); if (offset > 0) { return true; } return false; }
bool LoadPrefs() { if(prefLoaded) // already attempted loading return true; bool prefFound = false; char filepath[4][MAXPATHLEN]; int numDevices; #ifdef HW_RVL numDevices = 5; sprintf(filepath[0], "%s", appPath); sprintf(filepath[1], "sd:/apps/%s", APPFOLDER); sprintf(filepath[2], "usb:/apps/%s", APPFOLDER); sprintf(filepath[3], "sd:/%s", APPFOLDER); sprintf(filepath[4], "usb:/%s", APPFOLDER); #else numDevices = 2; sprintf(filepath[0], "carda:/%s", APPFOLDER); sprintf(filepath[1], "cardb:/%s", APPFOLDER); #endif for(int i=0; i<numDevices; i++) { prefFound = LoadPrefsFromMethod(filepath[i]); if(prefFound) break; } prefLoaded = true; // attempted to load preferences if(prefFound) FixInvalidSettings(); ResetText(); return prefFound; }
bool SavePrefs (bool silent) { char filepath[MAXPATHLEN]; int datasize; int offset = 0; int device = 0; if(prefpath[0] != 0) { sprintf(filepath, "%s/%s", prefpath, PREF_FILE_NAME); FindDevice(filepath, &device); } else if(appPath[0] != 0) { sprintf(filepath, "%s/%s", appPath, PREF_FILE_NAME); strcpy(prefpath, appPath); FindDevice(filepath, &device); } else { device = autoSaveMethod(silent); if(device == 0) return false; sprintf(filepath, "%s%s", pathPrefix[device], APPFOLDER); DIR *dir = opendir(filepath); if (!dir) { if(mkdir(filepath, 0777) != 0) return false; sprintf(filepath, "%s%s/roms", pathPrefix[device], APPFOLDER); if(mkdir(filepath, 0777) != 0) return false; sprintf(filepath, "%s%s/saves", pathPrefix[device], APPFOLDER); if(mkdir(filepath, 0777) != 0) return false; } else { closedir(dir); } sprintf(filepath, "%s%s/%s", pathPrefix[device], APPFOLDER, PREF_FILE_NAME); sprintf(prefpath, "%s%s", pathPrefix[device], APPFOLDER); } if(device == 0) return false; if (!silent) ShowAction ("Saving preferences..."); FixInvalidSettings(); AllocSaveBuffer (); datasize = preparePrefsData (); offset = SaveFile(filepath, datasize, silent); FreeSaveBuffer (); CancelAction(); if (offset > 0) { if (!silent) InfoPrompt("Preferences saved"); return true; } return false; }
bool LoadPrefs() { if(prefLoaded) // already attempted loading return true; bool prefFound = false; char filepath[5][MAXPATHLEN]; int numDevices; #ifdef HW_RVL numDevices = 5; sprintf(filepath[0], "%s", appPath); sprintf(filepath[1], "sd:/apps/%s", APPFOLDER); sprintf(filepath[2], "usb:/apps/%s", APPFOLDER); sprintf(filepath[3], "sd:/%s", APPFOLDER); sprintf(filepath[4], "usb:/%s", APPFOLDER); #else numDevices = 2; sprintf(filepath[0], "carda:/%s", APPFOLDER); sprintf(filepath[1], "cardb:/%s", APPFOLDER); #endif for(int i=0; i<numDevices; i++) { prefFound = LoadPrefsFromMethod(filepath[i]); if(prefFound) break; } prefLoaded = true; // attempted to load preferences if(prefFound) FixInvalidSettings(); // rename snes9x to snes9xgx if(GCSettings.LoadMethod == DEVICE_SD) { if(ChangeInterface(DEVICE_SD, NOTSILENT) && opendir("sd:/snes9x")) rename("sd:/snes9x", "sd:/snes9xgx"); } else if(GCSettings.LoadMethod == DEVICE_USB) { if(ChangeInterface(DEVICE_USB, NOTSILENT) && opendir("usb:/snes9x")) rename("usb:/snes9x", "usb:/snes9xgx"); } else if(GCSettings.LoadMethod == DEVICE_SMB) { if(ChangeInterface(DEVICE_SMB, NOTSILENT) && opendir("smb:/snes9x")) rename("smb:/snes9x", "smb:/snes9xgx"); } // update folder locations if(strcmp(GCSettings.LoadFolder, "snes9x/roms") == 0) sprintf(GCSettings.LoadFolder, "snes9xgx/roms"); if(strcmp(GCSettings.SaveFolder, "snes9x/saves") == 0) sprintf(GCSettings.SaveFolder, "snes9xgx/saves"); if(strcmp(GCSettings.CheatFolder, "snes9x/cheats") == 0) sprintf(GCSettings.CheatFolder, "snes9xgx/cheats"); if(strcmp(GCSettings.ScreenshotsFolder, "snes9x/screenshots") == 0) sprintf(GCSettings.ScreenshotsFolder, "snes9xgx/screenshots"); ResetText(); return prefFound; }
bool LoadPrefs() { if (prefLoaded) // already attempted loading return true; char filepath[MAXPATHLEN]; sprintf(filepath, "%s/%s", MPLAYER_DATADIR, PREF_FILE_NAME); TiXmlDocument doc; bool loadOkay = doc.LoadFile(filepath); if (loadOkay) { FixInvalidSettings(); TiXmlHandle docu(&doc); TiXmlElement* settings = docu.FirstChildElement().Element(); if (settings == NULL) { goto noheader; } TiXmlHandle handle(0); TiXmlElement* elem; handle = TiXmlHandle(settings); elem = handle.FirstChild("global").FirstChild().Element(); for (elem; elem; elem = elem->NextSiblingElement()) { const char* elemName = elem->Value(); if (strcmp(elemName, "exit") == 0) { XMPlayerCfg.exit_action = atoi(elem->Attribute("value")); } else if (strcmp(elemName, "language") == 0) { XMPlayerCfg.language = atoi(elem->Attribute("value")); } } elem = handle.FirstChild("filebrowser").FirstChild().Element(); for (elem; elem; elem = elem->NextSiblingElement()) { const char* elemName = elem->Value(); if (strcmp(elemName, "sort") == 0) { XMPlayerCfg.sort_order = atoi(elem->Attribute("value")); } } elem = handle.FirstChild("audio").FirstChild().Element(); for (elem; elem; elem = elem->NextSiblingElement()) { const char* elemName = elem->Value(); if (strcmp(elemName, "language") == 0) { sprintf(XMPlayerCfg.alang, elem->Attribute("value")); sprintf(XMPlayerCfg.alang_desc, elem->Attribute("desc")); } else if (strcmp(elemName, "volume") == 0) { XMPlayerCfg.volume = atoi(elem->Attribute("value")); } else if (strcmp(elemName, "softvol") == 0) { XMPlayerCfg.softvol = atoi(elem->Attribute("value")); } } elem = handle.FirstChild("video").FirstChild().Element(); for (elem; elem; elem = elem->NextSiblingElement()) { const char* elemName = elem->Value(); if (strcmp(elemName, "framedrop") == 0) { XMPlayerCfg.framedrop = atoi(elem->Attribute("value")); } else if (strcmp(elemName, "vsync") == 0) { XMPlayerCfg.vsync = atoi(elem->Attribute("value")); } } elem = handle.FirstChild("subtitles").FirstChild().Element(); for (elem; elem; elem = elem->NextSiblingElement()) { const char* elemName = elem->Value(); if (strcmp(elemName, "sub_color") == 0) { elem->Attribute("value", &XMPlayerCfg.subcolor); } else if (strcmp(elemName, "border_color") == 0) { elem->Attribute("value", &XMPlayerCfg.border_color); } else if (strcmp(elemName, "codepage") == 0) { sprintf(XMPlayerCfg.subcp, elem->Attribute("value")); sprintf(XMPlayerCfg.subcp_desc, elem->Attribute("desc")); } else if (strcmp(elemName, "language") == 0) { sprintf(XMPlayerCfg.sublang, elem->Attribute("value")); sprintf(XMPlayerCfg.sublang_desc, elem->Attribute("desc")); } } doc.Clear(); prefLoaded = true; printf("[Preferences] Sucessfully loaded xmplayer.xml \n"); return true; } else { noheader: DefaultSettings(); printf("[Preferences] Failed to load xmplayer.xml - Loading default settings \n"); return false; } }
/**************************************************************************** * Save Preferences ***************************************************************************/ bool SavePrefs(bool silent) { char filepath[MAXPATHLEN]; FixInvalidSettings(); sprintf(filepath, "%s/%s", MPLAYER_DATADIR, PREF_FILE_NAME); TiXmlDocument doc; TiXmlDeclaration * decl = new TiXmlDeclaration("1.0", "", ""); doc.LinkEndChild(decl); TiXmlElement* settings = new TiXmlElement("settings"); doc.LinkEndChild(settings); TiXmlElement* file = new TiXmlElement("file"); settings->LinkEndChild(file); file->SetAttribute("app", APPNAME); file->SetAttribute("version", APPVERSION); //Global TiXmlElement* global = new TiXmlElement("global"); settings->LinkEndChild(global); TiXmlElement* exit = new TiXmlElement("exit"); global->LinkEndChild(exit); exit->SetAttribute("value", XMPlayerCfg.exit_action); TiXmlElement* language = new TiXmlElement("language"); global->LinkEndChild(language); language->SetAttribute("value", XMPlayerCfg.language); //File browser TiXmlElement* filebrowser = new TiXmlElement("filebrowser"); settings->LinkEndChild(filebrowser); TiXmlElement* sort = new TiXmlElement("sort"); filebrowser->LinkEndChild(sort); sort->SetAttribute("value", XMPlayerCfg.sort_order); //Audio TiXmlElement* audio = new TiXmlElement("audio"); settings->LinkEndChild(audio); TiXmlElement* alang = new TiXmlElement("language"); audio->LinkEndChild(alang); alang->SetAttribute("value", XMPlayerCfg.alang); alang->SetAttribute("desc", XMPlayerCfg.alang_desc); TiXmlElement* volume = new TiXmlElement("volume"); audio->LinkEndChild(volume); volume->SetAttribute("value", XMPlayerCfg.volume); TiXmlElement* softvol = new TiXmlElement("softvol"); audio->LinkEndChild(softvol); softvol->SetAttribute("value", XMPlayerCfg.softvol); //Video TiXmlElement* video = new TiXmlElement("video"); settings->LinkEndChild(video); TiXmlElement* framedrop = new TiXmlElement("framedrop"); video->LinkEndChild(framedrop); framedrop->SetAttribute("value", XMPlayerCfg.framedrop); TiXmlElement* vsync = new TiXmlElement("vsync"); video->LinkEndChild(vsync); vsync->SetAttribute("value", XMPlayerCfg.vsync); //Subtitles TiXmlElement* subtitles = new TiXmlElement("subtitles"); settings->LinkEndChild(subtitles); TiXmlElement* subcolor = new TiXmlElement("sub_color"); subtitles->LinkEndChild(subcolor); subcolor->SetUnsignedIntAttribute("value", XMPlayerCfg.subcolor); TiXmlElement* border_color = new TiXmlElement("border_color"); subtitles->LinkEndChild(border_color); border_color->SetUnsignedIntAttribute("value", XMPlayerCfg.border_color); TiXmlElement* subcp = new TiXmlElement("codepage"); subtitles->LinkEndChild(subcp); subcp->SetAttribute("value", XMPlayerCfg.subcp); subcp->SetAttribute("desc", XMPlayerCfg.subcp_desc); TiXmlElement* sublang = new TiXmlElement("language"); subtitles->LinkEndChild(sublang); sublang->SetAttribute("value", XMPlayerCfg.sublang); sublang->SetAttribute("desc", XMPlayerCfg.sublang_desc); bool success = doc.SaveFile(filepath); doc.Clear(); if (success) return true; else return false; }