194 lines
6.4 KiB
C++
194 lines
6.4 KiB
C++
|
|
#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::pLFORate);
|
|
xSliderLFORate->setStartPos(50, 72);
|
|
xSliderLFORate->setEndPos(50, 151);
|
|
xSliderLFORate->setRange(0, 127.0f);
|
|
xSliderLFORate->setCallback(this);
|
|
|
|
xSliderLFODelay = new ImageSlider(this, orangeSlider);
|
|
xSliderLFODelay->setId(Chassis::pLFODelay);
|
|
xSliderLFODelay->setStartPos(90, 72);
|
|
xSliderLFODelay->setEndPos(90, 151);
|
|
xSliderLFODelay->setRange(0, 127.0f);
|
|
xSliderLFODelay->setCallback(this);
|
|
|
|
xSliderLFODepth = new ImageSlider(this, greenSlider);
|
|
xSliderLFODepth->setId(Chassis::pLFODepth);
|
|
xSliderLFODepth->setStartPos(292, 72);
|
|
xSliderLFODepth->setEndPos(292, 151);
|
|
xSliderLFODepth->setRange(0, 127.0f);
|
|
xSliderLFODepth->setCallback(this);
|
|
|
|
xSliderPWMDepth = new ImageSlider(this, greenSlider);
|
|
xSliderPWMDepth->setId(Chassis::pPWMDepth);
|
|
xSliderPWMDepth->setStartPos(331, 72);
|
|
xSliderPWMDepth->setEndPos(331, 151);
|
|
xSliderPWMDepth->setRange(0, 127.0f);
|
|
xSliderPWMDepth->setCallback(this);
|
|
|
|
xSliderSubLevel = new ImageSlider(this, greenSlider);
|
|
xSliderSubLevel->setId(Chassis::pSubLevel);
|
|
xSliderSubLevel->setStartPos(517, 72);
|
|
xSliderSubLevel->setEndPos(517, 151);
|
|
xSliderSubLevel->setRange(0, 127.0f);
|
|
xSliderSubLevel->setCallback(this);
|
|
|
|
xSliderNoiseLevel = new ImageSlider(this, greenSlider);
|
|
xSliderNoiseLevel->setId(Chassis::pNoiseLevel);
|
|
xSliderNoiseLevel->setStartPos(558, 72);
|
|
xSliderNoiseLevel->setEndPos(558, 151);
|
|
xSliderNoiseLevel->setRange(0, 127.0f);
|
|
xSliderNoiseLevel->setCallback(this);
|
|
|
|
xSliderHPF = new ImageSlider(this, blueSlider);
|
|
xSliderHPF->setId(Chassis::pHPF);
|
|
xSliderHPF->setStartPos(618, 72);
|
|
xSliderHPF->setEndPos(618, 151);
|
|
xSliderHPF->setRange(0, 3.0f);
|
|
xSliderHPF->setStep(1);
|
|
xSliderHPF->setCallback(this);
|
|
|
|
xSliderCutoff = new ImageSlider(this, blueSlider);
|
|
xSliderCutoff->setId(Chassis::pCutoff);
|
|
xSliderCutoff->setStartPos(21, 261);
|
|
xSliderCutoff->setEndPos(21, 340);
|
|
xSliderCutoff->setRange(0, 127.0f);
|
|
xSliderCutoff->setCallback(this);
|
|
|
|
xSliderRes = new ImageSlider(this, blueSlider);
|
|
xSliderRes->setId(Chassis::pRes);
|
|
xSliderRes->setStartPos(60, 261);
|
|
xSliderRes->setEndPos(60, 340);
|
|
xSliderRes->setRange(0, 127.0f);
|
|
xSliderRes->setCallback(this);
|
|
|
|
xSliderEnv = new ImageSlider(this, blueSlider);
|
|
xSliderEnv->setId(Chassis::pEnv);
|
|
xSliderEnv->setStartPos(144, 261);
|
|
xSliderEnv->setEndPos(144, 340);
|
|
xSliderEnv->setRange(0, 127.0f);
|
|
xSliderEnv->setCallback(this);
|
|
|
|
xSliderLfo = new ImageSlider(this, blueSlider);
|
|
xSliderLfo->setId(Chassis::pLfo);
|
|
xSliderLfo->setStartPos(183, 261);
|
|
xSliderLfo->setEndPos(183, 340);
|
|
xSliderLfo->setRange(0, 127.0f);
|
|
xSliderLfo->setCallback(this);
|
|
|
|
xSliderKyb = new ImageSlider(this, blueSlider);
|
|
xSliderKyb->setId(Chassis::pKyb);
|
|
xSliderKyb->setStartPos(222, 261);
|
|
xSliderKyb->setEndPos(222, 340);
|
|
xSliderKyb->setRange(0, 127.0f);
|
|
xSliderKyb->setCallback(this);
|
|
|
|
xSliderVCALevel = new ImageSlider(this, whiteSlider);
|
|
xSliderVCALevel->setId(Chassis::pVCALevel);
|
|
xSliderVCALevel->setStartPos(314, 261);
|
|
xSliderVCALevel->setEndPos(314, 340);
|
|
xSliderVCALevel->setRange(0, 127.0f);
|
|
xSliderVCALevel->setCallback(this);
|
|
|
|
xSliderAtk = new ImageSlider(this, whiteSlider);
|
|
xSliderAtk->setId(Chassis::pAtk);
|
|
xSliderAtk->setStartPos(375, 261);
|
|
xSliderAtk->setEndPos(375, 340);
|
|
xSliderAtk->setRange(0, 127.0f);
|
|
xSliderAtk->setCallback(this);
|
|
|
|
xSliderDcy = new ImageSlider(this, whiteSlider);
|
|
xSliderDcy->setId(Chassis::pDcy);
|
|
xSliderDcy->setStartPos(414, 261);
|
|
xSliderDcy->setEndPos(414, 340);
|
|
xSliderDcy->setRange(0, 127.0f);
|
|
xSliderDcy->setCallback(this);
|
|
|
|
xSliderStn = new ImageSlider(this, whiteSlider);
|
|
xSliderStn->setId(Chassis::pStn);
|
|
xSliderStn->setStartPos(454, 261);
|
|
xSliderStn->setEndPos(454, 340);
|
|
xSliderStn->setRange(0, 127.0f);
|
|
xSliderStn->setCallback(this);
|
|
|
|
xSliderRls = new ImageSlider(this, whiteSlider);
|
|
xSliderRls->setId(Chassis::pRls);
|
|
xSliderRls->setStartPos(493, 261);
|
|
xSliderRls->setEndPos(493, 340);
|
|
xSliderRls->setRange(0, 127.0f);
|
|
xSliderRls->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::pLFORate:
|
|
xSliderLFORate->setValue(0.5);
|
|
printf("set lforate\n");
|
|
break;
|
|
case Chassis::pLFODelay:
|
|
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::pLFORate) {
|
|
xSliderLFORate->setValue(value);
|
|
printf("changed lforate\n");
|
|
}
|
|
if (index == Chassis::pLFODelay) {
|
|
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
|