diff options
Diffstat (limited to 'src/engine/enginevumeter.cpp')
-rw-r--r-- | src/engine/enginevumeter.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/engine/enginevumeter.cpp b/src/engine/enginevumeter.cpp index 07c761ff09..7826a5cc2f 100644 --- a/src/engine/enginevumeter.cpp +++ b/src/engine/enginevumeter.cpp @@ -80,14 +80,17 @@ void EngineVuMeter::process(CSAMPLE* pIn, const int iBufferSize) { // ControlObject will not prevent us from causing tons of extra // work. Because of this, we use an epsilon here to be gentle on the GUI // and MIDI controllers. - if (fabs(m_fRMSvolumeL - m_ctrlVuMeterL->get()) > epsilon) + if (fabs(m_fRMSvolumeL - m_ctrlVuMeterL->get()) > epsilon) { m_ctrlVuMeterL->set(m_fRMSvolumeL); - if (fabs(m_fRMSvolumeR - m_ctrlVuMeterR->get()) > epsilon) + } + if (fabs(m_fRMSvolumeR - m_ctrlVuMeterR->get()) > epsilon) { m_ctrlVuMeterR->set(m_fRMSvolumeR); + } double fRMSvolume = (m_fRMSvolumeL + m_fRMSvolumeR) / 2.0; - if (fabs(fRMSvolume - m_ctrlVuMeter->get()) > epsilon) + if (fabs(fRMSvolume - m_ctrlVuMeter->get()) > epsilon) { m_ctrlVuMeter->set(fRMSvolume); + } // Reset calculation: m_iSamplesCalculated = 0; @@ -121,14 +124,17 @@ void EngineVuMeter::process(CSAMPLE* pIn, const int iBufferSize) { void EngineVuMeter::doSmooth(CSAMPLE ¤tVolume, CSAMPLE newVolume) { - if (currentVolume > newVolume) + if (currentVolume > newVolume) { currentVolume -= kDecaySmoothing * (currentVolume - newVolume); - else + } else { currentVolume += kAttackSmoothing * (newVolume - currentVolume); - if (currentVolume < 0) + } + if (currentVolume < 0) { currentVolume=0; - if (currentVolume > 1.0) + } + if (currentVolume > 1.0) { currentVolume=1.0; + } } void EngineVuMeter::reset() { |