diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-11-01 14:15:36 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-11-01 14:15:36 +0000 |
| commit | 37251bf9021f1daf70b81a20edf5162a17b3d440 (patch) | |
| tree | 45dbe7e2d0af84886ae04e8760652e8a6f767aa3 /src | |
| parent | e4dda5059cf63f8b10f6b15da845e3a91c03544f (diff) | |
| download | qmmp-37251bf9021f1daf70b81a20edf5162a17b3d440.tar.gz qmmp-37251bf9021f1daf70b81a20edf5162a17b3d440.tar.bz2 qmmp-37251bf9021f1daf70b81a20edf5162a17b3d440.zip | |
fixed equalizer settings
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2472 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/Ui/skinned/skinnedfactory.cpp | 2 | ||||
| -rw-r--r-- | src/qmmp/eqsettings.cpp | 1 | ||||
| -rw-r--r-- | src/qmmp/eqsettings.h | 12 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.cpp | 29 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.h | 5 |
5 files changed, 39 insertions, 10 deletions
diff --git a/src/plugins/Ui/skinned/skinnedfactory.cpp b/src/plugins/Ui/skinned/skinnedfactory.cpp index e5a65d40d..acb1371ee 100644 --- a/src/plugins/Ui/skinned/skinnedfactory.cpp +++ b/src/plugins/Ui/skinned/skinnedfactory.cpp @@ -20,6 +20,7 @@ #include <QtPlugin> #include <QMessageBox> +#include <qmmp/qmmpsettings.h> #include "mainwindow.h" #include "skinnedfactory.h" @@ -34,6 +35,7 @@ const UiProperties SkinnedFactory::properties() const QObject *SkinnedFactory::SkinnedFactory::create() { + QmmpSettings::instance()->readEqSettings(EqSettings::EQ_BANDS_10); return new MainWindow(); } diff --git a/src/qmmp/eqsettings.cpp b/src/qmmp/eqsettings.cpp index a9d67d238..11d7926f4 100644 --- a/src/qmmp/eqsettings.cpp +++ b/src/qmmp/eqsettings.cpp @@ -32,6 +32,7 @@ EqSettings::EqSettings(int bands) m_gains[i] = 0; m_bands = bands; m_preamp = 0; + m_is_enabled = false; } bool EqSettings::isEnabled() const diff --git a/src/qmmp/eqsettings.h b/src/qmmp/eqsettings.h index 12765e40f..ad9184b28 100644 --- a/src/qmmp/eqsettings.h +++ b/src/qmmp/eqsettings.h @@ -31,7 +31,7 @@ public: * Constructs an empty equalizer settings (0 dB, disabled) * @param bands - Number of bands (supported: 10, 15, 25, 31) */ - EqSettings(int bands = 10); + EqSettings(int bands = EQ_BANDS_10); /*! * Returns \b true if equalizer os enabled, otherwise returns \b false. */ @@ -74,6 +74,16 @@ public: * Returns \b true if equalizer settins \b s is not equal to this settings; otherwise returns false. */ bool operator!=(const EqSettings &s) const; + /*! + * Equalizer bands number + */ + enum BANDS + { + EQ_BANDS_10 = 10, /*!< 10 bands */ + EQ_BANDS_15 = 15, /*!< 15 bands */ + EQ_BANDS_25 = 25, /*!< 25 bands */ + EQ_BANDS_31 = 31 /*!< 31 bands */ + }; private: double m_gains[31]; diff --git a/src/qmmp/qmmpsettings.cpp b/src/qmmp/qmmpsettings.cpp index 170f75df8..55cae527a 100644 --- a/src/qmmp/qmmpsettings.cpp +++ b/src/qmmp/qmmpsettings.cpp @@ -51,11 +51,7 @@ QmmpSettings::QmmpSettings(QObject *parent) : QObject(parent) m_proxy_enabled = settings.value("Proxy/use_proxy", false).toBool(); m_proxy_auth = settings.value("Proxy/authentication", false).toBool(); m_proxy_url = settings.value("Proxy/url").toUrl(); - //equalizer settings - for (int i = 0; i < 10; ++i) - m_eq_settings.setGain(i, settings.value("Equalizer/band_"+ QString("%1").arg(i), 0).toDouble()); - m_eq_settings.setPreamp(settings.value("Equalizer/preamp", 0).toDouble()); - m_eq_settings.setEnabled(settings.value("Equalizer/enabled", true).toBool()); + //buffer m_buffer_size = settings.value("Output/buffer_size", 500).toInt(); } @@ -170,6 +166,19 @@ void QmmpSettings::setEqSettings(const EqSettings &settings) emit eqSettingsChanged(); } +void QmmpSettings::readEqSettings(int bands) +{ + m_eq_settings = EqSettings(bands); + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup(QString("Equalizer_%1").arg(bands)); + for (int i = 0; i < bands; ++i) + m_eq_settings.setGain(i, settings.value("band_"+ QString("%1").arg(i), 0).toDouble()); + m_eq_settings.setPreamp(settings.value("preamp", 0).toDouble()); + m_eq_settings.setEnabled(settings.value("enabled", true).toBool()); + settings.endGroup(); + emit eqSettingsChanged(); +} + int QmmpSettings:: bufferSize() const { return m_buffer_size; @@ -205,10 +214,12 @@ void QmmpSettings::sync() settings.setValue("Proxy/authentication", m_proxy_auth); settings.setValue("Proxy/url", m_proxy_url); //equalizer settings - for (int i = 0; i < 10; ++i) - settings.setValue("Equalizer/band_"+ QString("%1").arg(i), m_eq_settings.gain(i)); - settings.setValue("Equalizer/preamp", m_eq_settings.preamp()); - settings.setValue("Equalizer/enabled", m_eq_settings.isEnabled()); + settings.beginGroup(QString("Equalizer_%1").arg(m_eq_settings.bands())); + for (int i = 0; i < m_eq_settings.bands(); ++i) + settings.setValue("band_"+ QString("%1").arg(i), m_eq_settings.gain(i)); + settings.setValue("preamp", m_eq_settings.preamp()); + settings.setValue("enabled", m_eq_settings.isEnabled()); + settings.endGroup(); //buffer size settings.setValue("Output/buffer_size", m_buffer_size); } diff --git a/src/qmmp/qmmpsettings.h b/src/qmmp/qmmpsettings.h index 8b77bfb1f..583a43b71 100644 --- a/src/qmmp/qmmpsettings.h +++ b/src/qmmp/qmmpsettings.h @@ -141,6 +141,11 @@ public: */ void setEqSettings(const EqSettings &settings); /*! + * Reads equalizer settings. Call this function before equalizer usage. + * @param bands Number of bands. + */ + void readEqSettings(int bands = EqSettings::EQ_BANDS_10); + /*! * Returns buffer size in milliseconds */ int bufferSize() const; |
