xtc/examples/juce/Editor.h

30 lines
1.3 KiB
C
Raw Normal View History

2026-11-06 18:29:35 +01:00
#pragma once
#include "Processor.h"
class XtcJuceEditor final : public juce::AudioProcessorEditor,
private juce::MidiKeyboardState::Listener,
private juce::Timer {
public:
explicit XtcJuceEditor(XtcJuceProcessor&);
~XtcJuceEditor() override;
void paint(juce::Graphics&) override;
void resized() override;
private:
XtcJuceProcessor& engine;
juce::MidiKeyboardState keyboardState;
juce::MidiKeyboardComponent keyboard{keyboardState,juce::MidiKeyboardComponent::horizontalKeyboard};
std::array<juce::Slider,4> sliders;
std::array<juce::Label,4> labels;
std::array<std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment>,4> attachments;
juce::ToggleButton effects{"Filter + reverb"};
std::unique_ptr<juce::AudioProcessorValueTreeState::ButtonAttachment> effectsAttachment;
juce::TextButton save{"Save preset"},load{"Load preset"},panicButton{"Panic"};
juce::Label status;
juce::String presetStatus;
std::unique_ptr<juce::FileChooser> chooser;
float level=0;
void handleNoteOn(juce::MidiKeyboardState*,int,int,float) override;
void handleNoteOff(juce::MidiKeyboardState*,int,int,float) override;
void timerCallback() override;
void choosePreset(bool saving);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(XtcJuceEditor)
};