diff options
author | Be <be@mixxx.org> | 2020-05-03 01:13:29 -0500 |
---|---|---|
committer | Be <be@mixxx.org> | 2020-05-03 01:15:13 -0500 |
commit | d6c00e5b41450ee12e84c3a312acb0469c8f2cba (patch) | |
tree | ae7dd84b6eebe12f433849dc0d3cc0f67c95005b /src/effects/effectchainslot.cpp | |
parent | 63e5db92f525604f57c61e0d7e0310bce1f6e9a4 (diff) |
EffectChainSlot: fix saving presets for Dry+Wet mode chains
The state of the mix mode switch was duplicated between a member
variable and the ControlObject. Of course this led to a bug. Now
only the ControlObject maintains the state.
Diffstat (limited to 'src/effects/effectchainslot.cpp')
-rw-r--r-- | src/effects/effectchainslot.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/effects/effectchainslot.cpp b/src/effects/effectchainslot.cpp index 9401177404..7fef0b3b7f 100644 --- a/src/effects/effectchainslot.cpp +++ b/src/effects/effectchainslot.cpp @@ -26,7 +26,6 @@ EffectChainSlot::EffectChainSlot(const QString& group, m_pMessenger(pEffectsMessenger), m_group(group), m_presetName(""), - m_mixMode(EffectChainMixMode::DrySlashWet), m_signalProcessingStage(stage), m_pEngineEffectChain(nullptr) { // qDebug() << "EffectChainSlot::EffectChainSlot " << group << ' ' << iChainNumber; @@ -54,6 +53,7 @@ EffectChainSlot::EffectChainSlot(const QString& group, m_pControlChainMix = new ControlPotmeter(ConfigKey(m_group, "mix"), 0.0, 1.0, false, true, false, true, 1.0); + m_pControlChainMix->set(static_cast<int>(EffectChainMixMode::DrySlashWet)); connect(m_pControlChainMix, &ControlObject::valueChanged, this, &EffectChainSlot::sendParameterUpdate); @@ -218,8 +218,7 @@ void EffectChainSlot::sendParameterUpdate() { pRequest->type = EffectsRequest::SET_EFFECT_CHAIN_PARAMETERS; pRequest->pTargetChain = m_pEngineEffectChain; pRequest->SetEffectChainParameters.enabled = m_pControlChainEnabled->get(); - pRequest->SetEffectChainParameters.mix_mode = static_cast<EffectChainMixMode>( - static_cast<int>(m_pControlChainMixMode->get())); + pRequest->SetEffectChainParameters.mix_mode = mixMode(); pRequest->SetEffectChainParameters.mix = m_pControlChainMix->get(); m_pMessenger->writeRequest(pRequest); } @@ -237,6 +236,12 @@ void EffectChainSlot::setSuperParameter(double value, bool force) { slotControlChainSuperParameter(value, force); } +EffectChainMixMode EffectChainSlot::mixMode() const { + return static_cast<EffectChainMixMode>( + static_cast<int>( + m_pControlChainMixMode->get())); +} + void EffectChainSlot::setMixMode(EffectChainMixMode mixMode) { m_pControlChainMixMode->set(static_cast<int>(mixMode)); sendParameterUpdate(); |