#include "rm_settings.h" #include "rm_include.h" #include #include #include "rm_app.h" /* [SDDRIVE] DEFAULT=E:\ DRIVETEXT= [USER] VOLUME=0 [SAVE] DIR= [LANG] DEFAULT=JAP [IMGSAVE] DIR= [DEF_LATLON] LAT=35.681382 LON=139.766084 [PATH] FOLDER= RECENT=C:\temp\CS-91FH 실차영상 [CAPTURE] PATH=C:\Users\jeong\Documents\BBViewerDoc\backup */ #if (PLAYER_ONLY_LIBRARY_MODE) RMSettings* RMSettings::_instance = NULL; #endif RMSettings::RMSettings(QObject *parent) : QObject(parent) { settings = NULL; } QString RMSettings::_loadString(const char* group,const char* item) { if(settings == NULL) { load(); } settings->beginGroup(group); QString res = settings->value(item).toString(); settings->endGroup(); return res; } void RMSettings::_setString(const char* group,const char* item,QString value) { if(settings == NULL) { load(); } settings->beginGroup(group); settings->setValue(item, value); settings->endGroup(); settings->sync(); } QString RMSettings::lastBackupPath() { QString recent = _loadString("/PATH","/BACKUP"); if(recent.isEmpty()) { return RMApp::appPath(RMApp::CAPTURE); } return recent; } void RMSettings::setLastBackupPath(QString& path) { if(path != lastMoviePath()) { _setString("/PATH","/BACKUP",path); } } int RMSettings::nullBitrate() { settings->beginGroup("/APP"); bool ok = false; int res = settings->value("/NULLBITRATE").toInt(&ok); settings->endGroup(); return ok ? res : 180; } QString RMSettings::lastMoviePath() { QString recent = _loadString("/PATH","/RECENT"); if(recent.isEmpty()) { return QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); } return recent; } void RMSettings::setLastMoviePath(QString& path) { if(path != lastMoviePath()) { _setString("/PATH","/RECENT",path); } } #if (RM_TESTING) QString RMSettings::lastScript() { QString recent = _loadString("/PATH","/SCRIPT"); return recent; } void RMSettings::setLastScript(QString& path) { if(path != lastMoviePath()) { _setString("/PATH","/SCRIPT",path); } } #endif #if (SELECT_AUDIO_BACKEND) QString RMSettings::AudioDevice() { return _loadString("/AUDIO","/DEVICE"); } void RMSettings::setAudioDevice(QString device) { _setString("/AUDIO","/DEVICE",device); } //bool RMSettings::XAudioOff() //{ // QString str = _loadString("/AUDIO","/XAUDIO"); // return (str.length() > 0 && str.toUpper() == "OFF"); //} //void RMSettings::setXAudioOff(bool off) //{ // _setString("/AUDIO","/XAUDIO",(off ? QString("OFF") : QString("ON"))); //} #endif // SELECT_AUDIO_BACKEND bool RMSettings::HWAccelOff() { #if !(HWACCEL_SETTING) return false; #else QString str = _loadString("/VIDEO","/HWACCEL"); return (str.length() > 0 && str.toUpper() == "OFF"); #endif } void RMSettings::setHWAccelOff(bool off) { #if (HWACCEL_SETTING) //qInfo() << (off ? QString("OFF") : QString("ON")); _setString("/VIDEO","/HWACCEL",(off ? QString("OFF") : QString("ON"))); #else Q_UNUSED(off); #endif } #if (LIVE_LANGUAGE_CHANGE) int RMSettings::language() { settings->beginGroup("APP"); #if (INITIAL_LANGUAGE_AUTO) int res = settings->value("LANGUAGE",RMLanguage::systemLanguage()).toInt(); #else int res = settings->value("LANGUAGE",RMLanguage::LANGUAGE_JP).toInt(); #endif settings->endGroup(); return res; } void RMSettings::setLanguage(int language) { settings->beginGroup("APP"); settings->setValue("LANGUAGE", language); settings->endGroup(); settings->sync(); } bool RMSettings::autoLanguage() { settings->beginGroup("APP"); #if (INITIAL_LANGUAGE_AUTO) bool res = settings->value("LANGUAGE_AUTO",true).toBool(); #else bool res = settings->value("LANGUAGE_AUTO",false).toBool(); #endif settings->endGroup(); return res; } void RMSettings::setAutoLanguage(bool bAuto) { settings->beginGroup("APP"); settings->setValue("LANGUAGE_AUTO", bAuto); settings->endGroup(); settings->sync(); } #endif void RMSettings::load() { if(settings != NULL) { return; } QString path = RMApp::appPath(RMApp::INI); //qInfo() << "INI PATH:" << path; settings = new QSettings(path, QSettings::IniFormat,this); const QStringList childKeys = settings->childKeys(); QStringList values; foreach (const QString &childKey, childKeys) { values << settings->value(childKey).toString(); } }