From 127f43aae333bde0e1ccd773244bc7398b988cde Mon Sep 17 00:00:00 2001 From: Nikolay Tischenko Date: Sat, 13 Nov 2010 00:00:35 +0600 Subject: [PATCH] Segregated equalizer settings to separate ini file --- src/config.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ src/config.h | 7 +++++++ src/equalizerdialog.cpp | 36 +++++++++++++----------------------- src/player/player.cpp | 14 +++++--------- 4 files changed, 65 insertions(+), 32 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index 6695510..4703152 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -36,10 +36,12 @@ 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); } Config::~Config() { delete _settings; + delete _equalizer_settings; } QString Config::applicationDir() { @@ -58,3 +60,41 @@ QVariant Config::getValue(QString key) { void Config::setValue(QString key, QVariant value) { _settings->setValue(key, value); } + +QStringList Config::getEqualizerPresets() { + QStringList presets = _equalizer_settings->value("equalizer/presets").toStringList(); + return presets; +} + +double Config::getEqualizerValue(QString band, QString preset) { + QString section; + if (preset.isEmpty()) { + section = "equalizer"; + } else { + section = "equalizer_preset_"+preset; + } + return _equalizer_settings->value(section+"/"+band).toDouble(); +} + +void Config::setEqualizerValue(QString band, double value) { + _equalizer_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); + for (int i = 0; i < 10; i++) { + QString band = QString("band%1").arg(i); + _equalizer_settings->setValue(section.arg(band), getEqualizerValue(band)); + } +} + +bool Config::equalizerEnabled() { + return _equalizer_settings->value("equalizer/enabled").toBool(); +} + +void Config::setEqualizerEnabled(bool enabled) { + _equalizer_settings->setValue("equalizer/enabled", enabled); +} diff --git a/src/config.h b/src/config.h index 3eeb279..97e6c1c 100644 --- a/src/config.h +++ b/src/config.h @@ -32,8 +32,15 @@ namespace SomePlayer { QString applicationDir(); QVariant getValue(QString key); void setValue(QString key, QVariant value); + QStringList getEqualizerPresets(); + double getEqualizerValue(QString band, QString preset=""); + void setEqualizerValue(QString band, double value); + void saveEqualizer(QString preset); + bool equalizerEnabled(); + void setEqualizerEnabled(bool); private: QSettings *_settings; + QSettings *_equalizer_settings; }; }; }; diff --git a/src/equalizerdialog.cpp b/src/equalizerdialog.cpp index ecdeaa2..dd0a8e5 100644 --- a/src/equalizerdialog.cpp +++ b/src/equalizerdialog.cpp @@ -156,7 +156,7 @@ void EqualizerDialog::_value_master_changed(int v) { void EqualizerDialog::reloadPresets() { Config config; - QStringList presets = config.getValue("equalizer/presets").toStringList(); + QStringList presets = config.getEqualizerPresets(); ui->presetComboBox->clear(); ui->presetComboBox->addItems(presets); } @@ -164,44 +164,34 @@ void EqualizerDialog::reloadPresets() { void EqualizerDialog::_save_preset() { Config config; QString name = ui->presetComboBox->currentText().trimmed(); - QStringList presets = config.getValue("equalizer/presets").toStringList(); + QStringList presets = config.getEqualizerPresets(); if (!presets.contains(name)) presets.append(name); - config.setValue("equalizer/presets", presets); - config.setValue(QString("equalizer_preset_")+name+"/band0", ui->band0Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band1", ui->band1Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band2", ui->band2Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band3", ui->band3Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band4", ui->band4Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band5", ui->band5Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band6", ui->band6Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band7", ui->band7Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band8", ui->band8Slider->value()); - config.setValue(QString("equalizer_preset_")+name+"/band9", ui->band9Slider->value()); + config.saveEqualizer(name); reloadPresets(); } void EqualizerDialog::_load_preset(QString name) { Config config; - ui->band0Slider->setValue(config.getValue("equalizer_preset_"+name+"/band0").toInt()); + ui->band0Slider->setValue((int)(config.getEqualizerValue("band0", name)*10 + 0.5)); _value0_changed(ui->band0Slider->value()); - ui->band1Slider->setValue(config.getValue("equalizer_preset_"+name+"/band1").toInt()); + ui->band1Slider->setValue((int)(config.getEqualizerValue("band1", name)*10 + 0.5)); _value1_changed(ui->band1Slider->value()); - ui->band2Slider->setValue(config.getValue("equalizer_preset_"+name+"/band2").toInt()); + ui->band2Slider->setValue((int)(config.getEqualizerValue("band2", name)*10 + 0.5)); _value2_changed(ui->band2Slider->value()); - ui->band3Slider->setValue(config.getValue("equalizer_preset_"+name+"/band3").toInt()); + ui->band3Slider->setValue((int)(config.getEqualizerValue("band3", name)*10 + 0.5)); _value3_changed(ui->band3Slider->value()); - ui->band4Slider->setValue(config.getValue("equalizer_preset_"+name+"/band4").toInt()); + ui->band4Slider->setValue((int)(config.getEqualizerValue("band4", name)*10 + 0.5)); _value4_changed(ui->band4Slider->value()); - ui->band5Slider->setValue(config.getValue("equalizer_preset_"+name+"/band5").toInt()); + ui->band5Slider->setValue((int)(config.getEqualizerValue("band5", name)*10 + 0.5)); _value5_changed(ui->band5Slider->value()); - ui->band6Slider->setValue(config.getValue("equalizer_preset_"+name+"/band6").toInt()); + ui->band6Slider->setValue((int)(config.getEqualizerValue("band6", name)*10 + 0.5)); _value6_changed(ui->band6Slider->value()); - ui->band7Slider->setValue(config.getValue("equalizer_preset_"+name+"/band7").toInt()); + ui->band7Slider->setValue((int)(config.getEqualizerValue("band7", name)*10 + 0.5)); _value7_changed(ui->band7Slider->value()); - ui->band8Slider->setValue(config.getValue("equalizer_preset_"+name+"/band8").toInt()); + ui->band8Slider->setValue((int)(config.getEqualizerValue("band8", name)*10 + 0.5)); _value8_changed(ui->band8Slider->value()); - ui->band9Slider->setValue(config.getValue("equalizer_preset_"+name+"/band9").toInt()); + ui->band9Slider->setValue((int)(config.getEqualizerValue("band9", name)*10 + 0.5)); _value9_changed(ui->band9Slider->value()); } diff --git a/src/player/player.cpp b/src/player/player.cpp index 481ad6f..1a83844 100644 --- a/src/player/player.cpp +++ b/src/player/player.cpp @@ -90,16 +90,12 @@ Player::Player(QObject *parent) : if (desc.name() == "equalizer-10bands") { _equalizer = new Phonon::Effect(desc, this); Config config; - if (config.getValue("equalizer/equalizer").toString() == "enabled") { + if (config.equalizerEnabled()) { for (int i = 0; i < 10; i++) { - QVariant var = config.getValue(QString("equalizer/band%1").arg(i)); + QVariant var = config.getEqualizerValue(QString("band%1").arg(i)); setEqualizerValue(i, var.toDouble()); } enableEqualizer(); - } else if (config.getValue("equalizer/equalizer") == "") { - for (int i = 0; i < 10; i++) { - config.setValue(QString("equalizer/band%1").arg(i), 0); - } } } } @@ -289,7 +285,7 @@ void Player::enableEqualizer() { _equalizer_enabled = true; _path.insertEffect(_equalizer); Config config; - config.setValue("equalizer/equalizer", "enabled"); + config.setEqualizerEnabled(true); } void Player::disableEqualizer() { @@ -298,7 +294,7 @@ void Player::disableEqualizer() { _equalizer_enabled = false; _path.removeEffect(_equalizer); Config config; - config.setValue("equalizer/equalizer", "disabled"); + config.setEqualizerEnabled(false); } void Player::setEqualizerValue(int band, double value) { @@ -310,7 +306,7 @@ void Player::setEqualizerValue(int band, double value) { QList plist = _equalizer->parameters(); _equalizer->setParameterValue(plist[band], QVariant::fromValue(value)); Config config; - config.setValue(QString("equalizer/band%1").arg(band), value); + config.setEqualizerValue(QString("band%1").arg(band), value); } QString Player::artist() { -- 1.7.9.5