aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-12-16 22:01:41 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-12-16 22:01:41 +0000
commitfbf6df0e267774e4cfa32678176869095fa28986 (patch)
treed4438e5d329f8423fa37f33cb3990ea772fcfda3 /src
parent8ab140dace337d1d413433510a87e161759ccc53 (diff)
downloadqmmp-fbf6df0e267774e4cfa32678176869095fa28986.tar.gz
qmmp-fbf6df0e267774e4cfa32678176869095fa28986.tar.bz2
qmmp-fbf6df0e267774e4cfa32678176869095fa28986.zip
improved equalizer precision
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@689 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Input/cue/decoder_cue.cpp2
-rw-r--r--src/plugins/Input/cue/decoder_cue.h6
-rw-r--r--src/qmmp/decoder.cpp6
-rw-r--r--src/qmmp/decoder.h2
-rw-r--r--src/qmmp/soundcore.cpp2
-rw-r--r--src/qmmp/soundcore.h8
-rw-r--r--src/ui/eqpreset.cpp8
-rw-r--r--src/ui/eqpreset.h12
-rw-r--r--src/ui/eqslider.cpp12
-rw-r--r--src/ui/eqslider.h12
-rw-r--r--src/ui/eqwidget.cpp20
-rw-r--r--src/ui/eqwidget.h4
-rw-r--r--src/ui/mainwindow.cpp2
13 files changed, 48 insertions, 48 deletions
diff --git a/src/plugins/Input/cue/decoder_cue.cpp b/src/plugins/Input/cue/decoder_cue.cpp
index 70bd81e48..a660d3cc0 100644
--- a/src/plugins/Input/cue/decoder_cue.cpp
+++ b/src/plugins/Input/cue/decoder_cue.cpp
@@ -220,7 +220,7 @@ void DecoderCUE::pause()
}
}
-void DecoderCUE::setEQ(int bands[10], int preamp)
+void DecoderCUE::setEQ(double bands[10], double preamp)
{
for (int i = 0; i < 10; ++i)
m_bands2[i] = bands[i];
diff --git a/src/plugins/Input/cue/decoder_cue.h b/src/plugins/Input/cue/decoder_cue.h
index 2b1904f4a..35ab8496e 100644
--- a/src/plugins/Input/cue/decoder_cue.h
+++ b/src/plugins/Input/cue/decoder_cue.h
@@ -43,7 +43,7 @@ public:
void pause();
// Equalizer
- void setEQ(int bands[10], int preamp);
+ void setEQ(double bands[10], double preamp);
void setEQEnabled(bool on);
private:
@@ -55,8 +55,8 @@ private:
QIODevice *m_input2;
qint64 m_length;
qint64 m_offset;
- int m_preamp2;
- int m_bands2[10];
+ double m_preamp2;
+ double m_bands2[10];
bool m_useEQ2;
};
diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp
index 13cbd51a2..e9aa42b27 100644
--- a/src/qmmp/decoder.cpp
+++ b/src/qmmp/decoder.cpp
@@ -53,7 +53,7 @@ void Decoder::init()
{
if (m_output)
m_output->recycler()->clear();
- int b[] = {0,0,0,0,0,0,0,0,0,0};
+ double b[] = {0,0,0,0,0,0,0,0,0,0};
setEQ(b, 0);
qRegisterMetaType<Qmmp::State>("Qmmp::State");
blksize = Buffer::size();
@@ -96,13 +96,13 @@ void Decoder::setStateHandler(StateHandler *handler)
m_handler = handler;
}
-void Decoder::setEQ(int bands[10], int preamp)
+void Decoder::setEQ(double bands[10], double preamp)
{
set_preamp(0, 1.0 + 0.0932471 *preamp + 0.00279033 * preamp * preamp);
set_preamp(1, 1.0 + 0.0932471 *preamp + 0.00279033 * preamp * preamp);
for (int i=0; i<10; ++i)
{
- int value = bands[i];
+ double value = bands[i];
set_gain(i,0, 0.03*value+0.000999999*value*value);
set_gain(i,1, 0.03*value+0.000999999*value*value);
}
diff --git a/src/qmmp/decoder.h b/src/qmmp/decoder.h
index 4a4a9ab98..ef3a74308 100644
--- a/src/qmmp/decoder.h
+++ b/src/qmmp/decoder.h
@@ -55,7 +55,7 @@ public:
StateHandler *stateHandler();
void setStateHandler(StateHandler *handler);
- virtual void setEQ(int bands[10], int preamp);
+ virtual void setEQ(double bands[10], double preamp);
virtual void setEQEnabled(bool on);
// static methods
diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp
index 2474092c0..9eafb557d 100644
--- a/src/qmmp/soundcore.cpp
+++ b/src/qmmp/soundcore.cpp
@@ -248,7 +248,7 @@ qint64 SoundCore::length() const
return (m_decoder) ? m_decoder->lengthInSeconds() : 0;
}
-void SoundCore::setEQ(int bands[10], const int &preamp)
+void SoundCore::setEQ(double bands[10], double preamp)
{
for (int i = 0; i < 10; ++i)
m_bands[i] = bands[i];
diff --git a/src/qmmp/soundcore.h b/src/qmmp/soundcore.h
index df3792be5..03af722a9 100644
--- a/src/qmmp/soundcore.h
+++ b/src/qmmp/soundcore.h
@@ -52,9 +52,9 @@ public:
/*!
* Sets equalizer settings. Each item of \p bands[] and \p reamp should be
- * \b -100..100
+ * \b -20.0..20.0
*/
- void setEQ(int bands[10], const int &preamp);
+ void setEQ(double bands[10], double preamp);
/*!
* Enables equalizer if \p on is \b TRUE or disables it if \p on is \b FALSE
@@ -161,8 +161,8 @@ private:
bool m_useEQ;
bool m_update;
bool m_block;
- int m_preamp;
- int m_bands[10];
+ double m_preamp;
+ double m_bands[10];
Visual *m_vis;
QList <Visual*> m_visuals;
QWidget *m_parentWidget;
diff --git a/src/ui/eqpreset.cpp b/src/ui/eqpreset.cpp
index 760dea9d2..533dd4f67 100644
--- a/src/ui/eqpreset.cpp
+++ b/src/ui/eqpreset.cpp
@@ -31,26 +31,26 @@ EQPreset::EQPreset()
EQPreset::~EQPreset()
{}
-void EQPreset::setGain(int n, int value)
+void EQPreset::setGain(int n, double value)
{
if(n > 9 || n < 0)
return;
m_bands[n] = value;
}
-void EQPreset::setPreamp(int preamp)
+void EQPreset::setPreamp(double preamp)
{
m_preamp = preamp;
}
-int EQPreset::gain(int n)
+double EQPreset::gain(int n)
{
if(n > 9 || n < 0)
return 0;
return m_bands[n];
}
-int EQPreset::preamp()
+double EQPreset::preamp()
{
return m_preamp;
}
diff --git a/src/ui/eqpreset.h b/src/ui/eqpreset.h
index 80f31747e..fd99e6826 100644
--- a/src/ui/eqpreset.h
+++ b/src/ui/eqpreset.h
@@ -32,15 +32,15 @@ public:
~EQPreset();
- void setGain(int n, int value);
- void setPreamp(int);
+ void setGain(int n, double value);
+ void setPreamp(double);
- int gain(int n);
- int preamp();
+ double gain(int n);
+ double preamp();
private:
- int m_bands[10];
- int m_preamp;
+ double m_bands[10];
+ double m_preamp;
};
diff --git a/src/ui/eqslider.cpp b/src/ui/eqslider.cpp
index bdc4ec4e2..5c08c71e3 100644
--- a/src/ui/eqslider.cpp
+++ b/src/ui/eqslider.cpp
@@ -94,12 +94,12 @@ void EqSlider::mouseMoveEvent(QMouseEvent* e)
}
}
-int EqSlider::value()
+double EqSlider::value()
{
- return -m_value;
+ return - m_value;
}
-void EqSlider::setValue(int p)
+void EqSlider::setValue(double p)
{
if (m_moving)
return;
@@ -107,7 +107,7 @@ void EqSlider::setValue(int p)
draw(FALSE);
}
-void EqSlider::setMax(int m)
+void EqSlider::setMax(double m)
{
m_max = m;
draw(FALSE);
@@ -131,9 +131,9 @@ void EqSlider::draw(bool pressed)
m_pos = p;
}
-int EqSlider::convert(int p)
+double EqSlider::convert(int p)
{
- return int(ceil(double(m_max-m_min)*(p)/(height()-12)+m_min));
+ return (m_max - m_min)*(p)/(height() - 12) + m_min;
}
void EqSlider::wheelEvent(QWheelEvent *e)
diff --git a/src/ui/eqslider.h b/src/ui/eqslider.h
index 54dc9f285..3915ec05b 100644
--- a/src/ui/eqslider.h
+++ b/src/ui/eqslider.h
@@ -38,14 +38,14 @@ public:
~EqSlider();
- int value();
+ double value();
public slots:
- void setValue(int);
- void setMax(int);
+ void setValue(double);
+ void setMax(double);
signals:
- void sliderMoved (int);
+ void sliderMoved (double);
private slots:
void updateSkin();
@@ -54,9 +54,9 @@ private:
Skin *m_skin;
bool m_moving;
int press_pos;
- int m_max, m_min, m_pos, m_value, m_old;
+ double m_max, m_min, m_pos, m_value, m_old;
QPixmap m_pixmap;
- int convert(int); // value = convert(position);
+ double convert(int); // value = convert(position);
void draw(bool pressed = TRUE);
protected:
diff --git a/src/ui/eqwidget.cpp b/src/ui/eqwidget.cpp
index 457bfd5e0..860830146 100644
--- a/src/ui/eqwidget.cpp
+++ b/src/ui/eqwidget.cpp
@@ -54,7 +54,7 @@ EqWidget::EqWidget (QWidget *parent)
m_preamp = new EqSlider (this);
m_preamp->show();
m_preamp->move (21,38);
- connect (m_preamp,SIGNAL (sliderMoved (int)),SLOT (setPreamp ()));
+ connect (m_preamp,SIGNAL (sliderMoved (double)),SLOT (setPreamp ()));
m_on = new ToggleButton (this,Skin::EQ_BT_ON_N,Skin::EQ_BT_ON_P,
Skin::EQ_BT_OFF_N,Skin::EQ_BT_OFF_P);
@@ -83,7 +83,7 @@ EqWidget::EqWidget (QWidget *parent)
m_sliders << new EqSlider (this);
m_sliders.at (i)->move (78+i*18,38);
m_sliders.at (i)->show();
- connect (m_sliders.at (i), SIGNAL (sliderMoved (int)),SLOT (setGain()));
+ connect (m_sliders.at (i), SIGNAL (sliderMoved (double)),SLOT (setGain()));
}
readSettings();
createActions();
@@ -98,12 +98,12 @@ EqWidget::~EqWidget()
delete m_autoPresets.takeFirst();
}
-int EqWidget::preamp()
+double EqWidget::preamp()
{
return m_preamp->value();
}
-int EqWidget::gain (int g)
+double EqWidget::gain (int g)
{
return m_sliders.at (g)->value();
}
@@ -138,8 +138,8 @@ void EqWidget::readSettings()
//equalizer
for (int i = 0; i < m_sliders.size(); ++i)
m_sliders.at(i)->setValue(settings.value("band_"+
- QString("%1").arg(i), 0).toInt());
- m_preamp->setValue(settings.value("preamp", 0).toInt());
+ QString("%1").arg(i), 0).toDouble());
+ m_preamp->setValue(settings.value("preamp", 0).toDouble());
m_on->setON(settings.value("enabled", FALSE).toBool());
settings.endGroup();
setGain();
@@ -157,9 +157,9 @@ void EqWidget::readSettings()
for (int j = 0; j < 10; ++j)
{
preset->setGain(j,eq_preset.value("Band"+QString("%1").arg(j),
- 0).toInt());
+ 0).toDouble());
}
- preset->setPreamp(eq_preset.value("Preamp",0).toInt());
+ preset->setPreamp(eq_preset.value("Preamp",0).toDouble());
m_presets.append(preset);
eq_preset.endGroup();
}
@@ -180,9 +180,9 @@ void EqWidget::readSettings()
for (int j = 0; j < 10; ++j)
{
preset->setGain(j,eq_auto.value("Band"+QString("%1").arg(j),
- 0).toInt());
+ 0).toDouble());
}
- preset->setPreamp(eq_auto.value("Preamp",0).toInt());
+ preset->setPreamp(eq_auto.value("Preamp",0).toDouble());
m_autoPresets.append(preset);
eq_auto.endGroup();
}
diff --git a/src/ui/eqwidget.h b/src/ui/eqwidget.h
index 7e30eec86..da79c3073 100644
--- a/src/ui/eqwidget.h
+++ b/src/ui/eqwidget.h
@@ -46,8 +46,8 @@ public:
~EqWidget();
- int preamp();
- int gain(int);
+ double preamp();
+ double gain(int);
bool isEQEnabled();
/*!
* necessary for auto-load presets
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index ec2ebbb1b..d9a45249d 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -212,7 +212,7 @@ void MainWindow::previous()
void MainWindow::updateEQ()
{
- int b[10];
+ double b[10];
for (int i=0; i<10; ++i)
b[i] = m_equalizer->gain(i);
m_core->setEQ(b, m_equalizer->preamp());