summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2014-05-02 13:04:58 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2014-05-02 13:04:58 +0200
commit521eaad10b2b9b7104b2b55e66864b54577e7b54 (patch)
tree81a446304a1996baa7544adaa0ca0be721d63a72
parent6fa22c8eab8cbae74079a344a759fbd179ed857e (diff)
Fixed peak reporting. Use fabs() not abs() when working with double!
-rw-r--r--dgedit/mainwindow.cc3
-rw-r--r--dgedit/player.cc4
-rw-r--r--dgedit/volumefader.cc5
3 files changed, 9 insertions, 3 deletions
diff --git a/dgedit/mainwindow.cc b/dgedit/mainwindow.cc
index 9c88631..0e154ed 100644
--- a/dgedit/mainwindow.cc
+++ b/dgedit/mainwindow.cc
@@ -189,6 +189,9 @@ MainWindow::MainWindow()
&player, SLOT(setGainDB(double)));
connect(&player, SIGNAL(peakUpdate(double)),
vol, SLOT(updatePeakPower(double)));
+// connect(&player, SIGNAL(peakUpdateDB(double)),
+// vol, SLOT(updatePeakDb(double)));
+
vol->setVolumeDb(0);
dockWidget->widget()->layout()->addWidget(vol);
diff --git a/dgedit/player.cc b/dgedit/player.cc
index 64b3067..3a2bfd2 100644
--- a/dgedit/player.cc
+++ b/dgedit/player.cc
@@ -102,7 +102,9 @@ void Player::run()
sample = pcm_data[p] * fade * gain_scalar;
}
- if(abs(sample) > peak) peak = abs(sample);
+ if(fabs(sample) > peak) {
+ peak = fabs(sample);
+ }
s[i] = _MIN(sample * SHRT_MAX, SHRT_MAX);
}
diff --git a/dgedit/volumefader.cc b/dgedit/volumefader.cc
index 33b1f57..08bab80 100644
--- a/dgedit/volumefader.cc
+++ b/dgedit/volumefader.cc
@@ -61,13 +61,14 @@ VolumeFader::~VolumeFader()
}
-void VolumeFader::updatePeakDb(double)
+void VolumeFader::updatePeakDb(double db)
{
+// updatePeakPower(pow(10, db/20));
}
void VolumeFader::updatePeakPower(double newpeak)
{
- peak = (newpeak * (1-P) + peak * P);
+ peak = (newpeak * (1.0-P) + peak * P);
volumepeak->setText("Peak " + QString::number(peak, 'f', 5));
handleValueChanged();
}