aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-11-01 14:15:36 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-11-01 14:15:36 +0000
commit37251bf9021f1daf70b81a20edf5162a17b3d440 (patch)
tree45dbe7e2d0af84886ae04e8760652e8a6f767aa3 /src
parente4dda5059cf63f8b10f6b15da845e3a91c03544f (diff)
downloadqmmp-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.cpp2
-rw-r--r--src/qmmp/eqsettings.cpp1
-rw-r--r--src/qmmp/eqsettings.h12
-rw-r--r--src/qmmp/qmmpsettings.cpp29
-rw-r--r--src/qmmp/qmmpsettings.h5
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;