2026-08-13 23:15:38 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "JuceHeader.h"
|
|
|
|
|
#include "PluginProcessor.h"
|
|
|
|
|
#include "AnalyserComponent.h"
|
|
|
|
|
#include "BeamgridLookAndFeel.h"
|
|
|
|
|
|
2026-08-14 01:33:20 +02:00
|
|
|
class BeamgridAudioProcessorEditor : public juce::AudioProcessorEditor,
|
|
|
|
|
public juce::AudioProcessorValueTreeState::Listener
|
2026-08-13 23:15:38 +02:00
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
explicit BeamgridAudioProcessorEditor (BeamgridAudioProcessor&);
|
|
|
|
|
~BeamgridAudioProcessorEditor() override;
|
|
|
|
|
|
|
|
|
|
void paint (juce::Graphics&) override;
|
|
|
|
|
void resized() override;
|
2026-08-14 01:33:20 +02:00
|
|
|
void parameterChanged (const juce::String& parameterID, float newValue) override;
|
2026-08-13 23:15:38 +02:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
BeamgridAudioProcessor& processorRef;
|
|
|
|
|
BeamgridLookAndFeel lookAndFeel;
|
|
|
|
|
|
|
|
|
|
AnalyserComponent analyserComponent;
|
|
|
|
|
|
|
|
|
|
juce::Slider graceSlider;
|
|
|
|
|
juce::Slider falloffSlider;
|
|
|
|
|
juce::Slider barfalloffSlider;
|
|
|
|
|
juce::Slider barsSlider;
|
|
|
|
|
juce::Slider hueSlider;
|
2026-08-14 01:33:20 +02:00
|
|
|
juce::Slider modeSlider;
|
|
|
|
|
juce::Slider ledsSlider;
|
|
|
|
|
juce::Slider smoothSlider;
|
2026-08-14 02:06:05 +02:00
|
|
|
juce::Slider gridSlider;
|
2026-08-14 02:55:28 +02:00
|
|
|
juce::Slider gridzoomSlider;
|
|
|
|
|
juce::Slider gridfadeSlider;
|
|
|
|
|
juce::Slider curvingSlider;
|
|
|
|
|
juce::Slider tiltSlider;
|
2026-08-13 23:15:38 +02:00
|
|
|
|
|
|
|
|
juce::Label graceLabel;
|
|
|
|
|
juce::Label falloffLabel;
|
|
|
|
|
juce::Label barfalloffLabel;
|
|
|
|
|
juce::Label barsLabel;
|
|
|
|
|
juce::Label hueLabel;
|
2026-08-14 01:33:20 +02:00
|
|
|
juce::Label modeLabel;
|
|
|
|
|
juce::Label ledsLabel;
|
|
|
|
|
juce::Label smoothLabel;
|
2026-08-14 02:06:05 +02:00
|
|
|
juce::Label gridLabel;
|
2026-08-14 02:55:28 +02:00
|
|
|
juce::Label gridzoomLabel;
|
|
|
|
|
juce::Label gridfadeLabel;
|
|
|
|
|
juce::Label curvingLabel;
|
|
|
|
|
juce::Label tiltLabel;
|
2026-08-13 23:15:38 +02:00
|
|
|
juce::Label titleLabel;
|
|
|
|
|
juce::Label statusLabel;
|
|
|
|
|
|
2026-08-14 01:33:20 +02:00
|
|
|
juce::ComboBox scaleBox;
|
|
|
|
|
|
2026-08-13 23:15:38 +02:00
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> graceAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> falloffAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> barfalloffAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> barsAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> hueAttachment;
|
2026-08-14 01:33:20 +02:00
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> modeAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> ledsAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> smoothAttachment;
|
2026-08-14 02:06:05 +02:00
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> gridAttachment;
|
2026-08-14 02:55:28 +02:00
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> gridzoomAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> gridfadeAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> curvingAttachment;
|
|
|
|
|
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> tiltAttachment;
|
2026-08-13 23:15:38 +02:00
|
|
|
|
|
|
|
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BeamgridAudioProcessorEditor)
|
|
|
|
|
};
|