summaryrefslogtreecommitdiffstats
path: root/src/effects/effectchainslot.cpp
diff options
context:
space:
mode:
authorBe <be@mixxx.org>2020-05-03 01:13:29 -0500
committerBe <be@mixxx.org>2020-05-03 01:15:13 -0500
commitd6c00e5b41450ee12e84c3a312acb0469c8f2cba (patch)
treeae7dd84b6eebe12f433849dc0d3cc0f67c95005b /src/effects/effectchainslot.cpp
parent63e5db92f525604f57c61e0d7e0310bce1f6e9a4 (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.cpp11
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();