From: Nikolay Tischenko Date: Sun, 28 Nov 2010 13:31:01 +0000 (+0600) Subject: Separated user and system equalizer settings X-Git-Tag: 1.4.3-1~22 X-Git-Url: https://vcs.maemo.org/git/?p=someplayer;a=commitdiff_plain;h=3d70b1d3bc03cd8efd3c34c2dcc3bb3b56ac1838 Separated user and system equalizer settings --- diff --git a/resources/equalizer.ini b/resources/equalizer.ini index f4309fd..e70c10c 100644 --- a/resources/equalizer.ini +++ b/resources/equalizer.ini @@ -1,6 +1,6 @@ [equalizer] enabled=false -presets=Club, Classical, Dance, Down, Headphones, Pop, Rock, Tehno, Reggae, Concert, Hte big hall, Ska +presets=Club, Classical, Dance, Down, Headphones, Pop, Rock, Techno, Reggae, Concert, Hte big hall, Ska [equalizer_preset_Club] band0=0.5 @@ -86,7 +86,7 @@ band7=5.9 band8=5.9 band9=5.8 -[equalizer_preset_Tehno] +[equalizer_preset_Techno] band0=4.6 band1=2.7 band2=-1.1 diff --git a/src/config.cpp b/src/config.cpp index 4703152..58cb3ba 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -20,6 +20,7 @@ #include "config.h" #include #include +#include using namespace SomePlayer::Storage; @@ -36,12 +37,14 @@ Config::Config() _settings->setValue("ui/language", "en"); if (_settings->value("ui/trackcolor").toString() == "") _settings->setValue("ui/trackcolor", "blue"); - _equalizer_settings = new QSettings(QString(applicationDir())+"/equalizer.ini", QSettings::IniFormat); + _equalizer_settings = new QSettings("/etc/skel/.someplayer/equalizer.ini", QSettings::IniFormat); + _equalizer_user_settings = new QSettings(QString(applicationDir())+"/equalizer.ini", QSettings::IniFormat); } Config::~Config() { delete _settings; delete _equalizer_settings; + delete _equalizer_user_settings; } QString Config::applicationDir() { @@ -63,38 +66,49 @@ void Config::setValue(QString key, QVariant value) { QStringList Config::getEqualizerPresets() { QStringList presets = _equalizer_settings->value("equalizer/presets").toStringList(); - return presets; + QStringList user_presets = _equalizer_user_settings->value("equalizer/presets").toStringList(); + user_presets.append(presets); + user_presets = QList::fromSet(QSet::fromList(user_presets)); + return user_presets; } double Config::getEqualizerValue(QString band, QString preset) { QString section; + QSettings *settings = NULL; if (preset.isEmpty()) { section = "equalizer"; + settings = _equalizer_user_settings; } else { section = "equalizer_preset_"+preset; + QStringList user_presets = _equalizer_user_settings->value("equalizer/presets").toStringList(); + if (user_presets.contains(preset)) { + settings = _equalizer_user_settings; + } else { + settings = _equalizer_settings; + } } - return _equalizer_settings->value(section+"/"+band).toDouble(); + return settings->value(section+"/"+band).toDouble(); } void Config::setEqualizerValue(QString band, double value) { - _equalizer_settings->setValue("equalizer/"+band, value); + _equalizer_user_settings->setValue("equalizer/"+band, value); } void Config::saveEqualizer(QString preset) { QString section = QString("equalizer_preset_%1/%2").arg(preset); - QStringList presets = getEqualizerPresets(); - if (!presets.contains(preset)) presets.append(preset); - _equalizer_settings->setValue("equalizer/presets", presets); + QStringList user_presets = _equalizer_user_settings->value("equalizer/presets").toStringList(); + if (!user_presets.contains(preset)) user_presets.append(preset); + _equalizer_user_settings->setValue("equalizer/presets", user_presets); for (int i = 0; i < 10; i++) { QString band = QString("band%1").arg(i); - _equalizer_settings->setValue(section.arg(band), getEqualizerValue(band)); + _equalizer_user_settings->setValue(section.arg(band), getEqualizerValue(band)); } } bool Config::equalizerEnabled() { - return _equalizer_settings->value("equalizer/enabled").toBool(); + return _equalizer_user_settings->value("equalizer/enabled").toBool(); } void Config::setEqualizerEnabled(bool enabled) { - _equalizer_settings->setValue("equalizer/enabled", enabled); + _equalizer_user_settings->setValue("equalizer/enabled", enabled); } diff --git a/src/config.h b/src/config.h index 97e6c1c..5e6086f 100644 --- a/src/config.h +++ b/src/config.h @@ -41,6 +41,7 @@ namespace SomePlayer { private: QSettings *_settings; QSettings *_equalizer_settings; + QSettings *_equalizer_user_settings; }; }; };