210 lines
4.4 KiB
C++
210 lines
4.4 KiB
C++
#include "rm_settings.h"
|
|
#include "rm_include.h"
|
|
#include <QStandardPaths>
|
|
#include <QSettings>
|
|
#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();
|
|
}
|
|
}
|