#include "ui.hpp" #include "chassis.hpp" START_NAMESPACE_DISTRHO namespace Art = Artwork; DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundHeight, true), fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, kImageFormatRGB) { Image orangeSlider(Art::orangeData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA); Image greenSlider(Art::greenData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA); Image blueSlider(Art::blueData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA); Image whiteSlider(Art::whiteData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA); xSliderLFORate = new ImageSlider(this, orangeSlider); xSliderLFORate->setId(Chassis::paramLFORate); xSliderLFORate->setStartPos(50, 72); xSliderLFORate->setEndPos(50, 150); xSliderLFORate->setRange(0, 1.0f); xSliderLFORate->setCallback(this); xSliderLFODelay = new ImageSlider(this, orangeSlider); xSliderLFODelay->setId(Chassis::paramLFODelay); xSliderLFODelay->setStartPos(92, 72); xSliderLFODelay->setEndPos(92, 150); xSliderLFODelay->setRange(0, 1.0f); xSliderLFODelay->setCallback(this); xSliderLFODepth = new ImageSlider(this, greenSlider); xSliderLFODepth->setId(Chassis::paramLFODepth); xSliderLFODepth->setStartPos(292, 72); xSliderLFODepth->setEndPos(292, 150); xSliderLFODepth->setRange(0, 1.0f); xSliderLFODepth->setCallback(this); xSliderPWMDepth = new ImageSlider(this, greenSlider); xSliderPWMDepth->setId(Chassis::paramPWMDepth); xSliderPWMDepth->setStartPos(331, 72); xSliderPWMDepth->setEndPos(331, 150); xSliderPWMDepth->setRange(0, 1.0f); xSliderPWMDepth->setCallback(this); xSliderSubLevel = new ImageSlider(this, greenSlider); xSliderSubLevel->setId(Chassis::paramSubLevel); xSliderSubLevel->setStartPos(331, 72); xSliderSubLevel->setEndPos(331, 150); xSliderSubLevel->setRange(0, 1.0f); xSliderSubLevel->setCallback(this); xSliderNoiseLevel = new ImageSlider(this, greenSlider); xSliderNoiseLevel->setId(Chassis::paramNoiseLevel); xSliderNoiseLevel->setStartPos(331, 72); xSliderNoiseLevel->setEndPos(331, 150); xSliderNoiseLevel->setRange(0, 1.0f); xSliderNoiseLevel->setCallback(this); xSliderCutoff = new ImageSlider(this, blueSlider); xSliderCutoff->setId(Chassis::paramCutoff); xSliderCutoff->setStartPos(21, 261); xSliderCutoff->setEndPos(21, 340); xSliderCutoff->setRange(0, 1.0f); xSliderCutoff->setCallback(this); xSliderVCALevel = new ImageSlider(this, whiteSlider); xSliderVCALevel->setId(Chassis::paramVCALevel); xSliderVCALevel->setStartPos(314, 261); xSliderVCALevel->setEndPos(314, 340); xSliderVCALevel->setRange(0, 1.0f); xSliderVCALevel->setCallback(this); programLoaded(0); } DistrhoUIchassis::~DistrhoUIchassis() { printf("Called destructor for UI\n"); } void DistrhoUIchassis::programLoaded(uint32_t index) { // printf("in programLoaded %d\n", i switch (index) { case Chassis::paramLFORate: xSliderLFORate->setValue(0.5); printf("set lforate\n"); break; case Chassis::paramLFODelay: xSliderLFODelay->setValue(0.5); printf("set lfoDelay\n"); break; } } void DistrhoUIchassis::parameterChanged(uint32_t index, float value) { // printf("in parameterchanged %d %f\n", index, value); if (index == Chassis::paramLFORate) { xSliderLFORate->setValue(value); printf("changed lforate\n"); } if (index == Chassis::paramLFODelay) { xSliderLFODelay->setValue(value); printf("changed lfoDelay\n"); } } void DistrhoUIchassis::imageSliderDragStarted(ImageSlider* slider) { editParameter(slider->getId(), true); } void DistrhoUIchassis::imageSliderDragFinished(ImageSlider* slider) { editParameter(slider->getId(), false); } void DistrhoUIchassis::imageSliderValueChanged(ImageSlider* slider, float value) { printf("%f\n", value); setParameterValue(slider->getId(), value); } void DistrhoUIchassis::onDisplay() { const GraphicsContext& context(getGraphicsContext()); fImgBackground.draw(context); }; UI* createUI() { return new DistrhoUIchassis(); } END_NAMESPACE_DISTRHO