#pragma once #include "JuceHeader.h" #include "PluginProcessor.h" #include "AnalyserComponent.h" #include "BeamgridLookAndFeel.h" class BeamgridAudioProcessorEditor : public juce::AudioProcessorEditor, public juce::AudioProcessorValueTreeState::Listener { public: explicit BeamgridAudioProcessorEditor (BeamgridAudioProcessor&); ~BeamgridAudioProcessorEditor() override; void paint (juce::Graphics&) override; void resized() override; void parameterChanged (const juce::String& parameterID, float newValue) override; private: BeamgridAudioProcessor& processorRef; BeamgridLookAndFeel lookAndFeel; AnalyserComponent analyserComponent; juce::Slider graceSlider; juce::Slider falloffSlider; juce::Slider barfalloffSlider; juce::Slider barsSlider; juce::Slider hueSlider; juce::Slider modeSlider; juce::Slider ledsSlider; juce::Slider smoothSlider; juce::Slider gridSlider; juce::Label graceLabel; juce::Label falloffLabel; juce::Label barfalloffLabel; juce::Label barsLabel; juce::Label hueLabel; juce::Label modeLabel; juce::Label ledsLabel; juce::Label smoothLabel; juce::Label gridLabel; juce::Label titleLabel; juce::Label statusLabel; juce::ComboBox scaleBox; std::unique_ptr graceAttachment; std::unique_ptr falloffAttachment; std::unique_ptr barfalloffAttachment; std::unique_ptr barsAttachment; std::unique_ptr hueAttachment; std::unique_ptr modeAttachment; std::unique_ptr ledsAttachment; std::unique_ptr smoothAttachment; std::unique_ptr gridAttachment; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BeamgridAudioProcessorEditor) };