From 6b3b86337cf222c8691b68ae9d78ff91ecf739fe Mon Sep 17 00:00:00 2001 From: be_ Date: Mon, 10 Apr 2017 23:03:51 -0500 Subject: [PATCH] create [Master], num_effectsavailable ControlObject to be used for calculating how far to turn an effect knob to switch effects --- src/effects/effectsmanager.cpp | 7 +++++++ src/effects/effectsmanager.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/effects/effectsmanager.cpp b/src/effects/effectsmanager.cpp index 0775cba77f25..263143b98175 100644 --- a/src/effects/effectsmanager.cpp +++ b/src/effects/effectsmanager.cpp @@ -26,6 +26,9 @@ EffectsManager::EffectsManager(QObject* pParent, UserSettingsPointer pConfig) m_pRequestPipe.reset(requestPipes.first); m_pEngineEffectsManager = new EngineEffectsManager(requestPipes.second); + + m_pNumEffectsAvailable = new ControlObject(ConfigKey("[Master]", "num_effectsavailable")); + m_pNumEffectsAvailable->setReadOnly(); } EffectsManager::~EffectsManager() { @@ -47,6 +50,7 @@ EffectsManager::~EffectsManager() { delete m_pHiEqFreq; delete m_pLoEqFreq; + delete m_pNumEffectsAvailable; // Safe because the Engine is deleted before EffectsManager. Also, it holds // a bare pointer to m_pRequestPipe so it is critical that it does not // outlast us. @@ -69,6 +73,8 @@ void EffectsManager::addEffectsBackend(EffectsBackend* pBackend) { m_availableEffectManifests.append(pBackend->getManifest(effectId)); } + m_pNumEffectsAvailable->forceSet(m_availableEffectManifests.size()); + qSort(m_availableEffectManifests.begin(), m_availableEffectManifests.end(), alphabetizeEffectManifests); @@ -84,6 +90,7 @@ void EffectsManager::slotBackendRegisteredEffect(EffectManifest manifest) { m_availableEffectManifests.end(), manifest, alphabetizeEffectManifests); m_availableEffectManifests.insert(insertion_point, manifest); + m_pNumEffectsAvailable->forceSet(m_availableEffectManifests.size()); } void EffectsManager::registerChannel(const ChannelHandleAndGroup& handle_group) { diff --git a/src/effects/effectsmanager.h b/src/effects/effectsmanager.h index d3c33db9765a..3fbfa20d91c1 100644 --- a/src/effects/effectsmanager.h +++ b/src/effects/effectsmanager.h @@ -102,6 +102,7 @@ class EffectsManager : public QObject { qint64 m_nextRequestId; QHash m_activeRequests; + ControlObject* m_pNumEffectsAvailable; // We need to create Control Objects for Equalizers' frequencies ControlPotmeter* m_pLoEqFreq; ControlPotmeter* m_pHiEqFreq;