Beispiel #1
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;
}