Compare commits
2 Commits
d7fcc9c0b0
...
b095ff1a0f
Author | SHA1 | Date |
---|---|---|
|
b095ff1a0f | |
|
23e9e5f079 |
166
plugin/ui.cpp
166
plugin/ui.cpp
|
@ -7,6 +7,14 @@ START_NAMESPACE_DISTRHO
|
|||
|
||||
namespace Art = Artwork;
|
||||
|
||||
void prepSlider(ImageSlider* s, uint id, int x, int y) {
|
||||
s->setId(id);
|
||||
s->setStartPos(x, y);
|
||||
s->setEndPos(x, y + 79); // 80px high
|
||||
s->setInverted(true);
|
||||
s->setRange(0, 127.0f);
|
||||
}
|
||||
|
||||
DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundHeight, true),
|
||||
fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, kImageFormatRGB),
|
||||
fImgLedOn(Art::ledOnData, Art::ledWidth, Art::ledHeight, kImageFormatRGBA)
|
||||
|
@ -18,162 +26,92 @@ DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundH
|
|||
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->setInverted(true);
|
||||
prepSlider(xSliderLFORate, Chassis::pLFORate, 50, 72);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderLFODelay, Chassis::pLFODelay, 90, 72);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderLFODepth, Chassis::pLFODepth, 292, 72);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderPWMDepth, Chassis::pPWMDepth, 331, 72);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderSubLevel, Chassis::pSubLevel, 517, 72);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderNoiseLevel, Chassis::pNoiseLevel, 558, 72);
|
||||
xSliderNoiseLevel->setCallback(this);
|
||||
|
||||
// FIXME - put the stops back in
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderHPF, Chassis::pHPF, 618, 72);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderCutoff, Chassis::pCutoff, 21, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderRes, Chassis::pRes, 60, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderEnv, Chassis::pEnv, 144, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderLfo, Chassis::pLfo, 183, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderKyb, Chassis::pKyb, 222, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderVCALevel, Chassis::pVCALevel, 314, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderAtk, Chassis::pVCALevel, 375, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderDcy, Chassis::pDcy, 414, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderStn, Chassis::pStn, 454, 261);
|
||||
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->setInverted(true);
|
||||
prepSlider(xSliderRls, Chassis::pRls, 493, 261);
|
||||
xSliderRls->setCallback(this);
|
||||
|
||||
xBtn16ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
||||
xBtn16ft->setAbsolutePos(149,103);
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
||||
xBtn16ft->setAbsolutePos(149, 103);
|
||||
xBtn16ft->setId(Chassis::btn16);
|
||||
xBtn16ft->setCallback(this);
|
||||
xBtn8ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
||||
xBtn8ft->setAbsolutePos(190,103);
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
||||
xBtn8ft->setAbsolutePos(190, 103);
|
||||
xBtn8ft->setId(Chassis::btn8);
|
||||
xBtn8ft->setCallback(this);
|
||||
xBtn4ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB),
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
||||
xBtn4ft->setAbsolutePos(231,103);
|
||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
||||
xBtn4ft->setAbsolutePos(231, 103);
|
||||
xBtn4ft->setId(Chassis::btn4);
|
||||
xBtn4ft->setCallback(this);
|
||||
programLoaded(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
DistrhoUIchassis::~DistrhoUIchassis() {
|
||||
printf("Called destructor for UI\n");
|
||||
}
|
||||
|
@ -253,13 +191,19 @@ void DistrhoUIchassis::parameterChanged(uint32_t index, float value) {
|
|||
sw1 |= (value > 0.5) << 4;
|
||||
break;
|
||||
|
||||
case Chassis::pChorus:
|
||||
case Chassis::pChorus:
|
||||
sw1 &= 0x9f;
|
||||
//60, 40, 00
|
||||
switch((int)value) {
|
||||
case 0: sw1 |= 0x60; break;
|
||||
case 1: sw1 |= 0x40; break;
|
||||
case 2: sw1 |= 0x00; break;
|
||||
// 60, 40, 00
|
||||
switch ((int)value) {
|
||||
case 0:
|
||||
sw1 |= 0x60;
|
||||
break;
|
||||
case 1:
|
||||
sw1 |= 0x40;
|
||||
break;
|
||||
case 2:
|
||||
sw1 |= 0x00;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -276,14 +220,24 @@ void DistrhoUIchassis::imageSliderValueChanged(ImageSlider* slider, float value)
|
|||
setParameterValue(slider->getId(), value);
|
||||
}
|
||||
|
||||
void DistrhoUIchassis::imageButtonClicked(ImageButton *imgBtn, int) {
|
||||
void DistrhoUIchassis::imageButtonClicked(ImageButton* imgBtn, int) {
|
||||
int id = imgBtn->getId();
|
||||
//printf("imagebutton %d\n", id);
|
||||
// printf("imagebutton %d\n", id);
|
||||
switch (id) {
|
||||
case Chassis::btn16: sw1 &= 0xf8; sw1 |= 0x01; break;
|
||||
case Chassis::btn8: sw1 &= 0xf8; sw1 |= 0x02; break;
|
||||
case Chassis::btn4: sw1 &= 0xf8; sw1 |= 0x04; break;
|
||||
default: break;
|
||||
case Chassis::btn16:
|
||||
sw1 &= 0xf8;
|
||||
sw1 |= 0x01;
|
||||
break;
|
||||
case Chassis::btn8:
|
||||
sw1 &= 0xf8;
|
||||
sw1 |= 0x02;
|
||||
break;
|
||||
case Chassis::btn4:
|
||||
sw1 &= 0xf8;
|
||||
sw1 |= 0x04;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue