Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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;
}
Пример #5
0
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;
}
Пример #6
0
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;
    }

}
Пример #7
0
/****************************************************************************
 * 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;
}