diff options
-rw-r--r-- | dgedit/player.cc | 5 | ||||
-rw-r--r-- | dgedit/player.h | 12 |
2 files changed, 15 insertions, 2 deletions
diff --git a/dgedit/player.cc b/dgedit/player.cc index a7f09c3..cb6b986 100644 --- a/dgedit/player.cc +++ b/dgedit/player.cc @@ -88,17 +88,18 @@ void Player::run() void Player::setGainScalar(double g) { - gain_scalar = g / 10000.0; + gain_scalar = g; } void Player::setGainDB(double gain_db) { - setGainScalar(20*log10(gain_db)); + setGainScalar(pow(10, gain_db/ 20.0)); } void Player::reportTimeout() { emit peakUpdate(peak); + emit peakUpdateDB(20 * log10(peak)); peak = 0.0; emit positionUpdate(pos); diff --git a/dgedit/player.h b/dgedit/player.h index af278f5..0289cd5 100644 --- a/dgedit/player.h +++ b/dgedit/player.h @@ -63,7 +63,19 @@ public slots: void setGainDB(double gain_db); signals: + /** + * The absolute maximum of samples seen since last update. + */ void peakUpdate(double peak); + + /** + * The absolute maximum of samples seen since last update in dB. + */ + void peakUpdateDB(double peak_db); + + /** + * The sample position of the player. + */ void positionUpdate(size_t position); private slots: |