This commit is contained in:
Armin 2026-09-16 17:47:45 +02:00
commit 5d4134966f
11 changed files with 996 additions and 0 deletions

44
Source/PluginEditor.h Normal file
View file

@ -0,0 +1,44 @@
#pragma once
#include <juce_audio_processors/juce_audio_processors.h>
#include "PluginProcessor.h"
#include "VectorScope.h"
#include "ArcKnob.h"
#include "Version.h"
class TerionProcessorEditor : public juce::AudioProcessorEditor
{
public:
explicit TerionProcessorEditor(TerionProcessor&);
~TerionProcessorEditor() override;
void paint(juce::Graphics&) override;
void resized() override;
private:
void scaleChanged();
TerionProcessor& processorRef;
VectorScope scope;
ArcKnob fadeKnob;
ArcKnob sensitivityKnob;
ArcKnob dotSizeKnob;
ArcKnob smoothingKnob;
juce::ToggleButton freezeButton;
juce::ComboBox scaleBox;
juce::Label fadeLabel, sensitivityLabel, dotSizeLabel, smoothingLabel;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> fadeAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> sensitivityAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> dotSizeAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> smoothingAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::ButtonAttachment> freezeAttachment;
float currentScale = 1.0f;
static constexpr int kBaseWidth = 420;
static constexpr int kBaseHeight = 420;
static constexpr int kFooterHeight = 28;
static constexpr int kKnobSize = 54;
static constexpr int kKnobMargin = 6;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(TerionProcessorEditor)
};