summaryrefslogtreecommitdiffstats
path: root/src/engine/enginemaster.cpp
diff options
context:
space:
mode:
authorBe <be@mixxx.org>2020-05-07 07:43:21 -0500
committerGitHub <noreply@github.com>2020-05-07 07:43:21 -0500
commitb25d0ed9d570a91de8b200a123290461f7f1e763 (patch)
tree3d87e38c863e3343373bf8e0956bd53909d54832 /src/engine/enginemaster.cpp
parentae03e5e6f1c846eac844db8e6f1e6a8f40f1c1b3 (diff)
parenta87a8ea6acfabd25c6d295f97f2ec50bf9d2905b (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.cpp17
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