OnOffManager.h (952B)
1 #ifndef ONOFFMANAGER_H_INCLUDED 2 #define ONOFFMANAGER_H_INCLUDED 3 4 #include <JuceHeader.h> 5 6 /** Utility class to enable/disable components triggered by audio parameter changes */ 7 class OnOffManager : private AudioProcessorValueTreeState::Listener, 8 private AsyncUpdater 9 { 10 public: 11 OnOffManager (AudioProcessorValueTreeState& vts, const AudioProcessor* proc); 12 ~OnOffManager() override; 13 14 void setOnOffForNewEditor (AudioProcessorEditor* editor); 15 void parameterChanged (const String& parameterID, float newValue) override; 16 17 private: 18 void handleAsyncUpdate() override; 19 void onOffButtonToggled(); 20 21 AudioProcessorValueTreeState& vts; 22 const AudioProcessor* proc; 23 24 const std::unordered_map<String, StringArray> triggerMap; 25 const StringArray* componentsToToggle = nullptr; 26 bool turningOn = false; 27 28 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OnOffManager) 29 }; 30 31 #endif // ONOFFMANAGER_H_INCLUDED