2023-08-24 13:25:21 -07:00
|
|
|
#include "Editor.h"
|
|
|
|
|
|
|
|
|
|
Editor::Editor (WavetableAudioProcessor& proc_)
|
|
|
|
|
: proc ( proc_ )
|
|
|
|
|
{
|
|
|
|
|
for (auto& o : oscillators) addAndMakeVisible (o);
|
|
|
|
|
for (auto& l : lfos) addAndMakeVisible (l);
|
|
|
|
|
for (auto& l : lfoGraphs) addAndMakeVisible (l);
|
|
|
|
|
|
2023-08-26 11:17:03 -07:00
|
|
|
addAndMakeVisible (sub);
|
|
|
|
|
addAndMakeVisible (noise);
|
2023-08-24 13:25:21 -07:00
|
|
|
addAndMakeVisible (filter);
|
|
|
|
|
addAndMakeVisible (fltADSR);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < Cfg::numLFOs; i++)
|
|
|
|
|
{
|
2023-08-25 09:47:50 -07:00
|
|
|
addAndMakeVisible (&lfos[i]);
|
|
|
|
|
addAndMakeVisible (&lfoGraphs[i]);
|
2023-08-24 13:25:21 -07:00
|
|
|
}
|
|
|
|
|
|
2023-08-25 09:47:50 -07:00
|
|
|
addAndMakeVisible (gate);
|
|
|
|
|
addAndMakeVisible (pattern);
|
|
|
|
|
addAndMakeVisible (chorus);
|
|
|
|
|
addAndMakeVisible (distort);
|
|
|
|
|
addAndMakeVisible (delay);
|
|
|
|
|
addAndMakeVisible (reverb);
|
|
|
|
|
addAndMakeVisible (scope);
|
2023-08-24 13:25:21 -07:00
|
|
|
|
|
|
|
|
addAndMakeVisible (effects);
|
|
|
|
|
|
|
|
|
|
setupCallbacks();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::setupCallbacks()
|
|
|
|
|
{
|
|
|
|
|
// LFO mod items
|
|
|
|
|
for (int i = 0; i < Cfg::numLFOs; i++)
|
|
|
|
|
{
|
|
|
|
|
modItems[i].onClick = [this, i]
|
|
|
|
|
{
|
|
|
|
|
modItems[0].setSelected (i == 0);
|
|
|
|
|
modItems[1].setSelected (i == 1);
|
|
|
|
|
modItems[2].setSelected (i == 2);
|
|
|
|
|
|
|
|
|
|
lfoBox.setPage (i);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
modItems[0].onClick();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::resized()
|
|
|
|
|
{
|
|
|
|
|
#if JUCE_DEBUG
|
|
|
|
|
auto f = juce::File (__FILE__).getChildFile ("../../Resources/layout.json");
|
|
|
|
|
|
|
|
|
|
layout.setLayout ("layout.json", f);
|
|
|
|
|
#else
|
|
|
|
|
layout.setLayout ("layout.json");
|
|
|
|
|
#endif
|
|
|
|
|
}
|