wavetable/plugin/Source/Editor.cpp

70 lines
1.6 KiB
C++

#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);
addAndMakeVisible (filter);
addAndMakeVisible (fltADSR);
for (auto& i : modItems)
modHeader.addItem (i);
addAndMakeVisible (modHeader);
for (int i = 0; i < Cfg::numLFOs; i++)
{
lfoBox.addBox (i, &lfos[i]);
lfoBox.addBox (i, &lfoGraphs[i]);
}
addAndMakeVisible (lfoBox);
lfoBox.setPage (0);
for (auto& i : fxItems)
fxHeader.addItem (i);
addAndMakeVisible (fxHeader);
effects.addBox (&gate);
effects.addBox (&pattern);
effects.addBox (&chorus);
effects.addBox (&distort);
effects.addBox (&delay);
effects.addBox (&reverb);
effects.addBox (&scope);
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
}