mirror of
https://codeberg.org/armin/terion.git
synced 2026-10-11 16:41:53 +02:00
44 lines
1.5 KiB
C++
44 lines
1.5 KiB
C++
#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)
|
|
};
|