MixGroupViz.h (1516B)
1 #ifndef MIXGROUPVIZ_H_INCLUDED 2 #define MIXGROUPVIZ_H_INCLUDED 3 4 #include "../../MixGroups/MixGroupsController.h" 5 #include <JuceHeader.h> 6 7 class MixGroupViz : public Component, 8 private AudioProcessorParameter::Listener, 9 private AsyncUpdater 10 { 11 public: 12 MixGroupViz (AudioProcessorParameter* mixGroupParam); 13 ~MixGroupViz() override; 14 15 void parameterValueChanged (int parameterIndex, float newValue) override; 16 void parameterGestureChanged (int, bool) override {} 17 void paint (Graphics& g) override; 18 void setMixGroupColour (int mixGroupIdx); 19 20 private: 21 void handleAsyncUpdate() override; 22 void mixGroupChanged(); 23 24 Colour circleColour; 25 AudioProcessorParameter* mixGroupParam; 26 27 int newMixGroupIndex = 0; 28 29 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MixGroupViz) 30 }; 31 32 class MixGroupVizItem : public foleys::GuiItem 33 { 34 public: 35 FOLEYS_DECLARE_GUI_FACTORY (MixGroupVizItem) 36 37 MixGroupVizItem (foleys::MagicGUIBuilder& builder, const ValueTree& node) : foleys::GuiItem (builder, node), 38 viz (builder.getMagicState().getParameter (MixGroupsConstants::mixGroupParamID)) 39 { 40 addAndMakeVisible (viz); 41 } 42 43 void update() override { viz.repaint(); } 44 Component* getWrappedComponent() override { return &viz; } 45 46 private: 47 MixGroupViz viz; 48 49 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MixGroupVizItem) 50 }; 51 52 #endif // !MIXGROUPVIZ_H_INCLUDED