diff options
author | Be <be@mixxx.org> | 2020-05-07 07:43:21 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-07 07:43:21 -0500 |
commit | b25d0ed9d570a91de8b200a123290461f7f1e763 (patch) | |
tree | 3d87e38c863e3343373bf8e0956bd53909d54832 /src/engine/enginemaster.cpp | |
parent | ae03e5e6f1c846eac844db8e6f1e6a8f40f1c1b3 (diff) | |
parent | a87a8ea6acfabd25c6d295f97f2ec50bf9d2905b (diff) |
Merge pull request #2759 from daschuer/manual_ducking_fix
Fix manual ducking
Diffstat (limited to 'src/engine/enginemaster.cpp')
-rw-r--r-- | src/engine/enginemaster.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/engine/enginemaster.cpp b/src/engine/enginemaster.cpp index 8312f84979..51734431bb 100644 --- a/src/engine/enginemaster.cpp +++ b/src/engine/enginemaster.cpp @@ -466,11 +466,20 @@ void EngineMaster::process(const int iBufferSize) { m_pTalkover, m_iBufferSize, m_iSampleRate, busFeatures); - - // Clear talkover compressor for the next round of gain calculation. - m_pTalkoverDucking->clearKeys(); - if (m_pTalkoverDucking->getMode() != EngineTalkoverDucking::OFF) { + switch (m_pTalkoverDucking->getMode()) { + case EngineTalkoverDucking::OFF: + m_pTalkoverDucking->setAboveThreshold(false); + break; + case EngineTalkoverDucking::AUTO: m_pTalkoverDucking->processKey(m_pTalkover, m_iBufferSize); + break; + case EngineTalkoverDucking::MANUAL: + m_pTalkoverDucking->setAboveThreshold(m_activeTalkoverChannels.size()); + break; + default: + DEBUG_ASSERT("!Unknown Ducking mode"); + m_pTalkoverDucking->setAboveThreshold(false); + break; } // Calculate the crossfader gains for left and right side of the crossfader |