diff --git a/src/effects/effectchainmanager.cpp b/src/effects/effectchainmanager.cpp index 6cf0fc04499..d2527b45167 100644 --- a/src/effects/effectchainmanager.cpp +++ b/src/effects/effectchainmanager.cpp @@ -97,50 +97,50 @@ EffectRackPointer EffectChainManager::getEffectRack(const QString& group) { return m_effectRacksByGroup.value(group); } -void EffectChainManager::addEffectChain(EffectChainPointer pEffectChain) { - if (pEffectChain) { - m_effectChains.append(pEffectChain); +void EffectChainManager::addEffectChain(EffectChainSlotPointer pEffectChainSlot) { + if (pEffectChainSlot) { + m_effectChainSlots.append(pEffectChainSlot); } } -void EffectChainManager::removeEffectChain(EffectChainPointer pEffectChain) { - if (pEffectChain) { - m_effectChains.removeAll(pEffectChain); +void EffectChainManager::removeEffectChain(EffectChainSlotPointer pEffectChainSlot) { + if (pEffectChainSlot) { + m_effectChainSlots.removeAll(pEffectChainSlot); } } -EffectChainPointer EffectChainManager::getNextEffectChain(EffectChainPointer pEffectChain) { - if (m_effectChains.isEmpty()) - return EffectChainPointer(); +EffectChainSlotPointer EffectChainManager::getNextEffectChain(EffectChainSlotPointer pEffectChainSlot) { + if (m_effectChainSlots.isEmpty()) + return EffectChainSlotPointer(); - if (!pEffectChain) { - return m_effectChains[0]; + if (!pEffectChainSlot) { + return m_effectChainSlots[0]; } - int indexOf = m_effectChains.lastIndexOf(pEffectChain); + int indexOf = m_effectChainSlots.lastIndexOf(pEffectChainSlot); if (indexOf == -1) { qWarning() << debugString() << "WARNING: getNextEffectChain called for an unmanaged EffectChain"; - return m_effectChains[0]; + return m_effectChainSlots[0]; } - return m_effectChains[(indexOf + 1) % m_effectChains.size()]; + return m_effectChainSlots[(indexOf + 1) % m_effectChainSlots.size()]; } -EffectChainPointer EffectChainManager::getPrevEffectChain(EffectChainPointer pEffectChain) { - if (m_effectChains.isEmpty()) - return EffectChainPointer(); +EffectChainSlotPointer EffectChainManager::getPrevEffectChain(EffectChainSlotPointer pEffectChainSlot) { + if (m_effectChainSlots.isEmpty()) + return EffectChainSlotPointer(); - if (!pEffectChain) { - return m_effectChains[m_effectChains.size()-1]; + if (!pEffectChainSlot) { + return m_effectChainSlots[m_effectChainSlots.size()-1]; } - int indexOf = m_effectChains.lastIndexOf(pEffectChain); + int indexOf = m_effectChainSlots.lastIndexOf(pEffectChainSlot); if (indexOf == -1) { qWarning() << debugString() << "WARNING: getPrevEffectChain called for an unmanaged EffectChain"; - return m_effectChains[m_effectChains.size()-1]; + return m_effectChainSlots[m_effectChainSlots.size()-1]; } - return m_effectChains[(indexOf - 1 + m_effectChains.size()) % m_effectChains.size()]; + return m_effectChainSlots[(indexOf - 1 + m_effectChainSlots.size()) % m_effectChainSlots.size()]; } void EffectChainManager::refeshAllRacks() { diff --git a/src/effects/effectchainmanager.h b/src/effects/effectchainmanager.h index 713b9431f2d..91442419c47 100644 --- a/src/effects/effectchainmanager.h +++ b/src/effects/effectchainmanager.h @@ -47,15 +47,15 @@ class EffectChainManager : public QObject { EffectRackPointer getEffectRack(const QString& group); - void addEffectChain(EffectChainPointer pEffectChain); - void removeEffectChain(EffectChainPointer pEffectChain); + void addEffectChain(EffectChainSlotPointer pEffectChainSlot); + void removeEffectChain(EffectChainSlotPointer pEffectChainSlot); // To support cycling through effect chains, there is a global ordering of // chains. These methods allow you to get the next or previous chain given // your current chain. // TODO(rryan): Prevent double-loading of a chain into a slot? - EffectChainPointer getNextEffectChain(EffectChainPointer pEffectChain); - EffectChainPointer getPrevEffectChain(EffectChainPointer pEffectChain); + EffectChainSlotPointer getNextEffectChain(EffectChainSlotPointer pEffectChainSlot); + EffectChainSlotPointer getPrevEffectChain(EffectChainSlotPointer pEffectChainSlot); // NOTE(Kshitij) : New functions for saving and loading // bool saveEffectChains(); @@ -80,7 +80,7 @@ class EffectChainManager : public QObject { QList m_quickEffectRacks; OutputEffectRackPointer m_pOutputEffectRack; QHash m_effectRacksByGroup; - QList m_effectChains; + QList m_effectChainSlots; QSet m_registeredInputChannels; QSet m_registeredOutputChannels; DISALLOW_COPY_AND_ASSIGN(EffectChainManager); diff --git a/src/effects/effectchainslot.cpp b/src/effects/effectchainslot.cpp index 073e96ffd30..845295a063e 100644 --- a/src/effects/effectchainslot.cpp +++ b/src/effects/effectchainslot.cpp @@ -3,7 +3,6 @@ #include "effects/effectrack.h" #include "effects/effectxmlelements.h" #include "effects/effectslot.h" -#include "effects/effectchainmanager.h" #include "effects/effectsmanager.h" #include "effects/effectprocessor.h" #include "engine/effects/engineeffectchain.h" @@ -30,11 +29,8 @@ EffectChainSlot::EffectChainSlot(EffectRack* pRack, const QString& group, m_group(group), m_pEffectRack(pRack), m_pEffectsManager(pEffectsManager), - m_bEnabled(true), m_id(id), m_name(""), - m_mixMode(EffectChainMixMode::DrySlashWet), - m_dMix(0), m_pEngineEffectChain(nullptr) { qDebug() << "EffectChainSlot::EffectChainSlot " << pRack << ' ' << group << ' ' << iChainNumber; @@ -57,12 +53,12 @@ EffectChainSlot::EffectChainSlot(EffectRack* pRack, const QString& group, m_pControlChainEnabled->setDefaultValue(true); m_pControlChainEnabled->set(true); connect(m_pControlChainEnabled, SIGNAL(valueChanged(double)), - this, SLOT(slotControlChainEnabled(double))); + this, SLOT(slotChainUpdated(double))); m_pControlChainMix = new ControlPotmeter(ConfigKey(m_group, "mix"), 0.0, 1.0, false, true, false, true, 1.0); connect(m_pControlChainMix, SIGNAL(valueChanged(double)), - this, SLOT(slotControlChainMix(double))); + this, SLOT(slotChainUpdated(double))); m_pControlChainSuperParameter = new ControlPotmeter(ConfigKey(m_group, "super1"), 0.0, 1.0); connect(m_pControlChainSuperParameter, SIGNAL(valueChanged(double)), @@ -74,7 +70,7 @@ EffectChainSlot::EffectChainSlot(EffectRack* pRack, const QString& group, m_pControlChainMixMode->setButtonMode(ControlPushButton::TOGGLE); m_pControlChainMixMode->setStates(static_cast(EffectChainMixMode::NumMixModes)); connect(m_pControlChainMixMode, SIGNAL(valueChanged(double)), - this, SLOT(slotControlChainMixMode(double))); + this, SLOT(slotChainUpdated(double))); m_pControlChainNextPreset = new ControlPushButton(ConfigKey(m_group, "next_chain")); connect(m_pControlChainNextPreset, SIGNAL(valueChanged(double)), @@ -210,17 +206,6 @@ void EffectChainSlot::setDescription(const QString& description) { // emit(descriptionChanged(description)); } -bool EffectChainSlot::enabled() const { - return m_bEnabled; -} - -void EffectChainSlot::setEnabled(bool enabled) { - m_bEnabled = enabled; - sendParameterUpdate(); - // emit(enabledChanged(enabled)); - slotChainEnabledChanged(enabled); -} - void EffectChainSlot::enableForInputChannel(const ChannelHandleAndGroup& handle_group) { // TODO(Be): remove m_enabledChannels from this class and move this logic // to EffectChainSlot @@ -295,26 +280,8 @@ void EffectChainSlot::disableForInputChannel(const ChannelHandleAndGroup& handle } } -double EffectChainSlot::mix() const { - return m_dMix; -} - void EffectChainSlot::setMix(const double& dMix) { - m_dMix = dMix; - sendParameterUpdate(); - // emit(mixChanged(dMix)); - slotChainMixChanged(dMix); -} - -EffectChainMixMode EffectChainSlot::mixMode() const { - return m_mixMode; -} - -void EffectChainSlot::setMixMode(EffectChainMixMode mixMode) { - m_mixMode = mixMode; - sendParameterUpdate(); - // emit(mixModeChanged(mixMode)); - slotChainMixModeChanged(mixMode); + m_pControlChainMix->set(dMix); } void EffectChainSlot::addEffect(EffectPointer pEffect) { @@ -387,14 +354,15 @@ void EffectChainSlot::sendParameterUpdate() { EffectsRequest* pRequest = new EffectsRequest(); pRequest->type = EffectsRequest::SET_EFFECT_CHAIN_PARAMETERS; pRequest->pTargetChain = m_pEngineEffectChain; - pRequest->SetEffectChainParameters.enabled = m_bEnabled; - pRequest->SetEffectChainParameters.mix_mode = m_mixMode; - pRequest->SetEffectChainParameters.mix = m_dMix; + pRequest->SetEffectChainParameters.enabled = m_pControlChainEnabled->get(); + pRequest->SetEffectChainParameters.mix_mode = static_cast( + static_cast(m_pControlChainMixMode->get())); + pRequest->SetEffectChainParameters.mix = m_pControlChainMix->get(); m_pEffectsManager->writeRequest(pRequest); } // static -EffectChainPointer EffectChainSlot::createFromXml(EffectsManager* pEffectsManager, +EffectChainSlotPointer EffectChainSlot::createFromXml(EffectsManager* pEffectsManager, const QDomElement& element) { // if (!element.hasChildNodes()) { // // An empty element is treated as an ejected Chain (null) @@ -454,18 +422,9 @@ void EffectChainSlot::slotChainNameChanged(const QString&) { emit(updated()); } -void EffectChainSlot::slotChainEnabledChanged(bool bEnabled) { - m_pControlChainEnabled->set(bEnabled); - emit(updated()); -} - -void EffectChainSlot::slotChainMixChanged(double mix) { - m_pControlChainMix->set(mix); - emit(updated()); -} - -void EffectChainSlot::slotChainMixModeChanged(EffectChainMixMode mixMode) { - m_pControlChainMixMode->set(static_cast(mixMode)); +void EffectChainSlot::slotChainUpdated(double v) { + Q_UNUSED(v); + sendParameterUpdate(); emit(updated()); } @@ -510,13 +469,6 @@ void EffectChainSlot::loadEffectChainToSlot() { clear(); m_pControlChainLoaded->forceSet(true); - m_pControlChainMixMode->set( - static_cast(mixMode())); - - // Mix and enabled channels are persistent properties of the chain slot, - // not of the chain. Propagate the current settings to the chain. - setMix(m_pControlChainMix->get()); - setEnabled(m_pControlChainEnabled->get() > 0.0); // Don't emit because we will below. for (int i = 0; i < m_slots.size(); ++i) { @@ -618,25 +570,6 @@ void EffectChainSlot::slotControlClear(double v) { } } -void EffectChainSlot::slotControlChainEnabled(double v) { - qDebug() << debugString() << "slotControlChainEnabled" << v; - - setEnabled(v > 0); -} - -void EffectChainSlot::slotControlChainMix(double v) { - qDebug() << debugString() << "slotControlChainMix" << v; - - // Clamp to [0.0, 1.0] - if (v < 0.0 || v > 1.0) { - qWarning() << debugString() << "value out of limits"; - v = math_clamp(v, 0.0, 1.0); - m_pControlChainMix->set(v); - } - - setMix(v); -} - void EffectChainSlot::slotControlChainSuperParameter(double v, bool force) { qDebug() << debugString() << "slotControlChainSuperParameter" << v; @@ -651,16 +584,6 @@ void EffectChainSlot::slotControlChainSuperParameter(double v, bool force) { } } -void EffectChainSlot::slotControlChainMixMode(double v) { - // Intermediate cast to integer is needed for VC++. - EffectChainMixMode type = static_cast(int(v)); - (void)v; // this avoids a false warning with g++ 4.8.1 - - if (type < EffectChainMixMode::NumMixModes) { - setMixMode(type); - } -} - void EffectChainSlot::slotControlChainSelector(double v) { // qDebug() << debugString() << "slotControlChainSelector" << v; // if (v > 0) { diff --git a/src/effects/effectchainslot.h b/src/effects/effectchainslot.h index be42573afa6..1176633e6c6 100644 --- a/src/effects/effectchainslot.h +++ b/src/effects/effectchainslot.h @@ -22,9 +22,6 @@ class EffectChainSlot; class EffectsManager; class EngineEffectRack; class EngineEffectChain; -class EffectChain; -typedef QSharedPointer EffectChainPointer; - class EffectChainSlot : public QObject { Q_OBJECT @@ -45,8 +42,6 @@ class EffectChainSlot : public QObject { void loadEffectChainToSlot(); void updateRoutingSwitches(); - EffectChainPointer getEffectChain() const; - EffectChainPointer getOrCreateEffectChain(EffectsManager* pEffectsManager); void registerInputChannel(const ChannelHandleAndGroup& handle_group); @@ -67,16 +62,14 @@ class EffectChainSlot : public QObject { void loadChainSlotFromXml(const QDomElement& effectChainElement); - // Whether the chain is enabled (eligible for processing). - bool enabled() const; - void setEnabled(bool enabled); - // Activates EffectChain processing for the provided channel. + // TODO(Kshitij) : Make this function private once EffectRack layer is removed void enableForInputChannel(const ChannelHandleAndGroup& handle_group); bool enabledForChannel(const ChannelHandleAndGroup& handle_group) const; const QSet& enabledChannels() const; void disableForInputChannel(const ChannelHandleAndGroup& handle_group); + // TODO(Kshitij) : Make this function private once EffectRack layer is removed void updateEngineState(); // Get the human-readable name of the EffectChain @@ -87,7 +80,7 @@ class EffectChainSlot : public QObject { QString description() const; void setDescription(const QString& description); - double mix() const; + // TODO(Kshitij) : Make this function private once EffectRack layer is removed void setMix(const double& dMix); static QString mixModeToString(EffectChainMixMode type) { @@ -110,9 +103,6 @@ class EffectChainSlot : public QObject { } } - EffectChainMixMode mixMode() const; - void setMixMode(EffectChainMixMode type); - void addEffect(EffectPointer pEffect); void replaceEffect(unsigned int effectSlotNumber, EffectPointer pEffect); void removeEffect(unsigned int effectSlotNumber); @@ -122,8 +112,8 @@ class EffectChainSlot : public QObject { EngineEffectChain* getEngineEffectChain(); unsigned int numEffects() const; - static EffectChainPointer createFromXml(EffectsManager* pEffectsManager, - const QDomElement& element); + static EffectChainSlotPointer createFromXml(EffectsManager* pEffectsManager, + const QDomElement& element); signals: // Indicates that the effect pEffect has been loaded into slotNumber of @@ -134,21 +124,21 @@ class EffectChainSlot : public QObject { // Indicates that the given EffectChain was loaded into this // EffectChainSlot - void effectChainLoaded(EffectChainPointer pEffectChain); + void effectChainLoaded(EffectChainSlotPointer pEffectChain); // Signal that whoever is in charge of this EffectChainSlot should load the // next EffectChain into it. void nextChain(unsigned int iChainSlotNumber, - EffectChainPointer pEffectChain); + EffectChainSlotPointer pEffectChain); // Signal that whoever is in charge of this EffectChainSlot should load the // previous EffectChain into it. void prevChain(unsigned int iChainSlotNumber, - EffectChainPointer pEffectChain); + EffectChainSlotPointer pEffectChain); // Signal that whoever is in charge of this EffectChainSlot should clear // this EffectChain (by removing the chain from this EffectChainSlot). - void clearChain(unsigned int iChainNumber, EffectChainPointer pEffectChain); + void clearChain(unsigned int iChainNumber, EffectChainSlotPointer pEffectChain); // Signal that whoever is in charge of this EffectChainSlot should load the // next Effect into the specified EffectSlot. @@ -167,11 +157,9 @@ class EffectChainSlot : public QObject { private slots: + void slotChainUpdated(double v); void slotChainEffectChanged(unsigned int effectSlotNumber, bool shouldEmit=true); void slotChainNameChanged(const QString& name); - void slotChainEnabledChanged(bool enabled); - void slotChainMixChanged(double mix); - void slotChainMixModeChanged(EffectChainMixMode mixMode); void slotChainChannelStatusChanged(const QString& group, bool enabled); void slotEffectLoaded(EffectPointer pEffect, unsigned int slotNumber); @@ -179,10 +167,7 @@ class EffectChainSlot : public QObject { void slotClearEffect(unsigned int iEffectSlotNumber); void slotControlClear(double v); - void slotControlChainEnabled(double v); - void slotControlChainMix(double v); void slotControlChainSuperParameter(double v, bool force = false); - void slotControlChainMixMode(double v); void slotControlChainSelector(double v); void slotControlChainNextPreset(double v); void slotControlChainPrevPreset(double v); @@ -246,12 +231,9 @@ class EffectChainSlot : public QObject { EffectsManager* m_pEffectsManager; - bool m_bEnabled; QString m_id; QString m_name; QString m_description; - EffectChainMixMode m_mixMode; - double m_dMix; QSet m_enabledInputChannels; QList m_effects; diff --git a/src/effects/effectrack.cpp b/src/effects/effectrack.cpp index 3f90b2dc4f9..a239e9a3d51 100644 --- a/src/effects/effectrack.cpp +++ b/src/effects/effectrack.cpp @@ -92,11 +92,11 @@ EffectChainSlotPointer EffectRack::getEffectChainSlot(int i) { } void EffectRack::loadNextChain(const unsigned int iChainSlotNumber, - EffectChainPointer pLoadedChain) { + EffectChainSlotPointer pLoadedChain) { } void EffectRack::loadPrevChain(const unsigned int iChainSlotNumber, - EffectChainPointer pLoadedChain) { + EffectChainSlotPointer pLoadedChain) { } void EffectRack::maybeLoadEffect(const unsigned int iChainSlotNumber, @@ -158,17 +158,17 @@ void EffectRack::loadPrevEffect(const unsigned int iChainSlotNumber, QDomElement EffectRack::toXml(QDomDocument* doc) const { QDomElement rackElement = doc->createElement("Rack"); - QDomElement groupElement = doc->createElement("Group"); - QDomText groupText = doc->createTextNode(m_group); - groupElement.appendChild(groupText); - rackElement.appendChild(groupElement); - - QDomElement chainsElement = doc->createElement("Chains"); - for (EffectChainSlotPointer pChainSlot : m_effectChainSlots) { - QDomElement chain = pChainSlot->toXml(doc); - chainsElement.appendChild(chain); - } - rackElement.appendChild(chainsElement); + // QDomElement groupElement = doc->createElement("Group"); + // QDomText groupText = doc->createTextNode(m_group); + // groupElement.appendChild(groupText); + // rackElement.appendChild(groupElement); + + // QDomElement chainsElement = doc->createElement("Chains"); + // for (EffectChainSlotPointer pChainSlot : m_effectChainSlots) { + // QDomElement chain = pChainSlot->toXml(doc); + // chainsElement.appendChild(chain); + // } + // rackElement.appendChild(chainsElement); return rackElement; } @@ -208,10 +208,10 @@ EffectChainSlotPointer StandardEffectRack::addEffectChainSlot() { getRackNumber(), iChainSlotNumber, i)); } - connect(pChainSlot, SIGNAL(nextChain(unsigned int, EffectChainPointer)), - this, SLOT(loadNextChain(unsigned int, EffectChainPointer))); - connect(pChainSlot, SIGNAL(prevChain(unsigned int, EffectChainPointer)), - this, SLOT(loadPrevChain(unsigned int, EffectChainPointer))); + connect(pChainSlot, SIGNAL(nextChain(unsigned int, EffectChainSlotPointer)), + this, SLOT(loadNextChain(unsigned int, EffectChainSlotPointer))); + connect(pChainSlot, SIGNAL(prevChain(unsigned int, EffectChainSlotPointer)), + this, SLOT(loadPrevChain(unsigned int, EffectChainSlotPointer))); connect(pChainSlot, SIGNAL(nextEffect(unsigned int, unsigned int, EffectPointer)), this, SLOT(loadNextEffect(unsigned int, unsigned int, EffectPointer))); @@ -242,10 +242,10 @@ OutputEffectRack::OutputEffectRack(EffectsManager* pEffectsManager, pChainSlot->loadEffectChainToSlot(); pChainSlot->addEffectSlot("[OutputEffectRack_[Master]_Effect1]"); - connect(pChainSlot, SIGNAL(nextChain(unsigned int, EffectChainPointer)), - this, SLOT(loadNextChain(unsigned int, EffectChainPointer))); - connect(pChainSlot, SIGNAL(prevChain(unsigned int, EffectChainPointer)), - this, SLOT(loadPrevChain(unsigned int, EffectChainPointer))); + connect(pChainSlot, SIGNAL(nextChain(unsigned int, EffectChainSlotPointer)), + this, SLOT(loadNextChain(unsigned int, EffectChainSlotPointer))); + connect(pChainSlot, SIGNAL(prevChain(unsigned int, EffectChainSlotPointer)), + this, SLOT(loadPrevChain(unsigned int, EffectChainSlotPointer))); connect(pChainSlot, SIGNAL(nextEffect(unsigned int, unsigned int, EffectPointer)), this, SLOT(loadNextEffect(unsigned int, unsigned int, EffectPointer))); diff --git a/src/effects/effectrack.h b/src/effects/effectrack.h index 1f97f9f1d8a..ad44cd06d14 100644 --- a/src/effects/effectrack.h +++ b/src/effects/effectrack.h @@ -57,9 +57,9 @@ class EffectRack : public QObject { private slots: void loadNextChain(const unsigned int iChainSlotNumber, - EffectChainPointer pLoadedChain); + EffectChainSlotPointer pLoadedChain); void loadPrevChain(const unsigned int iChainSlotNumber, - EffectChainPointer pLoadedChain); + EffectChainSlotPointer pLoadedChain); void loadNextEffect(const unsigned int iChainSlotNumber, const unsigned int iEffectSlotNumber, diff --git a/src/effects/effectsmanager.h b/src/effects/effectsmanager.h index b9a10abf28e..a28d21dc157 100644 --- a/src/effects/effectsmanager.h +++ b/src/effects/effectsmanager.h @@ -141,6 +141,20 @@ class EffectsManager : public QObject { bool m_underDestruction; + // START EFFECTCHAINMANAGER + // UserSettingsPointer m_pConfig; + // EffectsManager* m_pEffectsManager; + // QList m_standardEffectRacks; + // QList m_equalizerEffectRacks; + // QList m_quickEffectRacks; + // OutputEffectRackPointer m_pOutputEffectRack; + // QHash m_effectRacksByGroup; + // QList m_effectChains; + // QSet m_registeredInputChannels; + // QSet m_registeredOutputChannels; + // END EFFECTCHAINMANAGER + + DISALLOW_COPY_AND_ASSIGN(EffectsManager); }; diff --git a/src/engine/effects/engineeffect.cpp b/src/engine/effects/engineeffect.cpp index 07647d96430..951022d735a 100644 --- a/src/engine/effects/engineeffect.cpp +++ b/src/engine/effects/engineeffect.cpp @@ -164,7 +164,6 @@ bool EngineEffect::process(const ChannelHandle& inputHandle, EffectEnableState effectiveEffectEnableState = m_effectEnableStateForChannelMatrix[inputHandle][outputHandle]; - qDebug() << debugString() << "processing enabled = " << static_cast(effectiveEffectEnableState); // If the EngineEffect is fully disabled, do not let // intermediate enabling/disabing signals from the chain override // the EngineEffect's state. diff --git a/src/engine/effects/engineeffectchain.cpp b/src/engine/effects/engineeffectchain.cpp index 700ddab717f..de38e009897 100644 --- a/src/engine/effects/engineeffectchain.cpp +++ b/src/engine/effects/engineeffectchain.cpp @@ -113,7 +113,8 @@ bool EngineEffectChain::processEffectsRequest(EffectsRequest& message, if (kEffectDebugOutput) { qDebug() << debugString() << this << "SET_EFFECT_CHAIN_PARAMETERS" << "enabled" << message.SetEffectChainParameters.enabled - << "mix" << message.SetEffectChainParameters.mix; + << "mix" << message.SetEffectChainParameters.mix + << "mix_mode" << static_cast(message.SetEffectChainParameters.mix_mode); } response.success = updateParameters(message); break; @@ -270,7 +271,6 @@ bool EngineEffectChain::process(const ChannelHandle& inputHandle, for (EngineEffect* pEffect: m_effects) { if (pEffect != nullptr) { - qDebug() << "### Applying effect " << pEffect->name(); // Select an unused intermediate buffer for the next output if (pIntermediateInput == m_buffer1.data()) { pIntermediateOutput = m_buffer2.data();