2023-08-24 13:25:21 -07:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <JuceHeader.h>
|
|
|
|
|
#include "PluginProcessor.h"
|
|
|
|
|
#include "Panels.h"
|
|
|
|
|
|
|
|
|
|
//==============================================================================
|
2023-10-08 14:31:14 -07:00
|
|
|
class Editor : public juce::Component,
|
|
|
|
|
private gin::Parameter::ParameterListener,
|
|
|
|
|
private juce::AsyncUpdater
|
2023-08-24 13:25:21 -07:00
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
Editor (WavetableAudioProcessor& proc_);
|
2023-10-08 14:31:14 -07:00
|
|
|
~Editor() override;
|
2023-08-24 13:25:21 -07:00
|
|
|
|
|
|
|
|
void setupCallbacks();
|
|
|
|
|
void resized() override;
|
|
|
|
|
|
|
|
|
|
private:
|
2023-10-08 14:31:14 -07:00
|
|
|
void valueUpdated (gin::Parameter*) override { triggerAsyncUpdate(); }
|
|
|
|
|
void handleAsyncUpdate() override;
|
|
|
|
|
|
2023-08-24 13:25:21 -07:00
|
|
|
WavetableAudioProcessor& proc;
|
|
|
|
|
|
|
|
|
|
OscillatorBox oscillators[Cfg::numOSCs] { { "oscillator 1", proc, 0 }, { "oscillator 2", proc, 1 } };
|
2023-08-26 11:17:03 -07:00
|
|
|
NoiseBox noise { "noise", proc };
|
|
|
|
|
SubBox sub { "sub", proc };
|
2023-08-24 13:25:21 -07:00
|
|
|
|
2023-08-26 12:33:15 -07:00
|
|
|
ADSRBox adsr { "adsr", proc };
|
2023-08-25 13:26:25 -07:00
|
|
|
FilterBox filter { "filter", proc };
|
2023-08-24 13:25:21 -07:00
|
|
|
|
|
|
|
|
LFOBox lfos[Cfg::numLFOs] { { "LFO 1", proc, 0 }, { "LFO 2", proc, 1 }, { "LFO 3", proc, 2 } };
|
2023-08-26 12:33:15 -07:00
|
|
|
ENVBox envs[Cfg::numENVs] { { "ENV 1", proc, 0 }, { "ENV 2", proc, 1 }, { "ENV 3", proc, 2 } };
|
|
|
|
|
StepBox step { "step", proc };
|
2023-08-26 13:01:59 -07:00
|
|
|
ModBox mod { "mod", proc };
|
2023-09-08 17:11:50 -07:00
|
|
|
MatrixBox mtx { "mtx", proc };
|
2023-08-26 13:01:59 -07:00
|
|
|
GlobalBox global { "global", proc };
|
2023-08-24 13:25:21 -07:00
|
|
|
|
|
|
|
|
GateBox gate { proc };
|
|
|
|
|
ChorusBox chorus { proc };
|
|
|
|
|
DistortBox distort { proc };
|
|
|
|
|
DelayBox delay { proc };
|
|
|
|
|
ReverbBox reverb { proc };
|
|
|
|
|
|
2023-10-08 14:31:14 -07:00
|
|
|
gin::ComponentGrid fx { "fx" };
|
|
|
|
|
|
2023-08-24 13:25:21 -07:00
|
|
|
gin::Layout layout { *this };
|
|
|
|
|
};
|