sliders set by function

This commit is contained in:
Gordon JC Pearce 2025-02-15 20:15:28 +00:00
parent d7fcc9c0b0
commit 23e9e5f079
1 changed files with 59 additions and 106 deletions

View File

@ -7,6 +7,14 @@ START_NAMESPACE_DISTRHO
namespace Art = Artwork; 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), DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundHeight, true),
fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, kImageFormatRGB), fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight, kImageFormatRGB),
fImgLedOn(Art::ledOnData, Art::ledWidth, Art::ledHeight, kImageFormatRGBA) fImgLedOn(Art::ledOnData, Art::ledWidth, Art::ledHeight, kImageFormatRGBA)
@ -18,140 +26,71 @@ DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundH
Image whiteSlider(Art::whiteData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA); Image whiteSlider(Art::whiteData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA);
xSliderLFORate = new ImageSlider(this, orangeSlider); xSliderLFORate = new ImageSlider(this, orangeSlider);
xSliderLFORate->setId(Chassis::pLFORate); prepSlider(xSliderLFORate, Chassis::pLFORate, 50, 72);
xSliderLFORate->setStartPos(50, 72);
xSliderLFORate->setEndPos(50, 151);
xSliderLFORate->setRange(0, 127.0f);
xSliderLFORate->setInverted(true);
xSliderLFORate->setCallback(this); xSliderLFORate->setCallback(this);
xSliderLFODelay = new ImageSlider(this, orangeSlider); xSliderLFODelay = new ImageSlider(this, orangeSlider);
xSliderLFODelay->setId(Chassis::pLFODelay); prepSlider(xSliderLFODelay, Chassis::pLFODelay, 90, 72);
xSliderLFODelay->setStartPos(90, 72);
xSliderLFODelay->setEndPos(90, 151);
xSliderLFODelay->setRange(0, 127.0f);
xSliderLFODelay->setInverted(true);
xSliderLFODelay->setCallback(this); xSliderLFODelay->setCallback(this);
xSliderLFODepth = new ImageSlider(this, greenSlider); xSliderLFODepth = new ImageSlider(this, greenSlider);
xSliderLFODepth->setId(Chassis::pLFODepth); prepSlider(xSliderLFODepth, Chassis::pLFODepth, 292, 72);
xSliderLFODepth->setStartPos(292, 72);
xSliderLFODepth->setEndPos(292, 151);
xSliderLFODepth->setRange(0, 127.0f);
xSliderLFODepth->setInverted(true);
xSliderLFODepth->setCallback(this); xSliderLFODepth->setCallback(this);
xSliderPWMDepth = new ImageSlider(this, greenSlider); xSliderPWMDepth = new ImageSlider(this, greenSlider);
xSliderPWMDepth->setId(Chassis::pPWMDepth); prepSlider(xSliderPWMDepth, Chassis::pPWMDepth, 331, 72);
xSliderPWMDepth->setStartPos(331, 72);
xSliderPWMDepth->setEndPos(331, 151);
xSliderPWMDepth->setRange(0, 127.0f);
xSliderPWMDepth->setInverted(true);
xSliderPWMDepth->setCallback(this); xSliderPWMDepth->setCallback(this);
xSliderSubLevel = new ImageSlider(this, greenSlider); xSliderSubLevel = new ImageSlider(this, greenSlider);
xSliderSubLevel->setId(Chassis::pSubLevel); prepSlider(xSliderSubLevel, Chassis::pSubLevel, 517, 72);
xSliderSubLevel->setStartPos(517, 72);
xSliderSubLevel->setEndPos(517, 151);
xSliderSubLevel->setRange(0, 127.0f);
xSliderSubLevel->setInverted(true);
xSliderSubLevel->setCallback(this); xSliderSubLevel->setCallback(this);
xSliderNoiseLevel = new ImageSlider(this, greenSlider); xSliderNoiseLevel = new ImageSlider(this, greenSlider);
xSliderNoiseLevel->setId(Chassis::pNoiseLevel); prepSlider(xSliderNoiseLevel, Chassis::pNoiseLevel, 558, 72);
xSliderNoiseLevel->setStartPos(558, 72);
xSliderNoiseLevel->setEndPos(558, 151);
xSliderNoiseLevel->setRange(0, 127.0f);
xSliderNoiseLevel->setInverted(true);
xSliderNoiseLevel->setCallback(this); xSliderNoiseLevel->setCallback(this);
xSliderHPF = new ImageSlider(this, blueSlider); xSliderHPF = new ImageSlider(this, blueSlider);
xSliderHPF->setId(Chassis::pHPF); prepSlider(xSliderHPF, Chassis::pHPF, 618, 72);
xSliderHPF->setStartPos(618, 72);
xSliderHPF->setEndPos(618, 151);
xSliderHPF->setRange(0, 3.0f);
xSliderHPF->setStep(1);
xSliderHPF->setInverted(true);
xSliderHPF->setCallback(this); xSliderHPF->setCallback(this);
xSliderCutoff = new ImageSlider(this, blueSlider); xSliderCutoff = new ImageSlider(this, blueSlider);
xSliderCutoff->setId(Chassis::pCutoff); prepSlider(xSliderCutoff, Chassis::pCutoff, 21, 261);
xSliderCutoff->setStartPos(21, 261);
xSliderCutoff->setEndPos(21, 340);
xSliderCutoff->setRange(0, 127.0f);
xSliderCutoff->setInverted(true);
xSliderCutoff->setCallback(this); xSliderCutoff->setCallback(this);
xSliderRes = new ImageSlider(this, blueSlider); xSliderRes = new ImageSlider(this, blueSlider);
xSliderRes->setId(Chassis::pRes); prepSlider(xSliderRes, Chassis::pRes, 60, 261);
xSliderRes->setStartPos(60, 261);
xSliderRes->setEndPos(60, 340);
xSliderRes->setRange(0, 127.0f);
xSliderRes->setInverted(true);
xSliderRes->setCallback(this); xSliderRes->setCallback(this);
xSliderEnv = new ImageSlider(this, blueSlider); xSliderEnv = new ImageSlider(this, blueSlider);
xSliderEnv->setId(Chassis::pEnv); prepSlider(xSliderEnv, Chassis::pEnv, 144, 261);
xSliderEnv->setStartPos(144, 261);
xSliderEnv->setEndPos(144, 340);
xSliderEnv->setRange(0, 127.0f);
xSliderEnv->setInverted(true);
xSliderEnv->setCallback(this); xSliderEnv->setCallback(this);
xSliderLfo = new ImageSlider(this, blueSlider); xSliderLfo = new ImageSlider(this, blueSlider);
xSliderLfo->setId(Chassis::pLfo); prepSlider(xSliderLfo, Chassis::pLfo, 183, 261);
xSliderLfo->setStartPos(183, 261);
xSliderLfo->setEndPos(183, 340);
xSliderLfo->setRange(0, 127.0f);
xSliderLfo->setInverted(true);
xSliderLfo->setCallback(this); xSliderLfo->setCallback(this);
xSliderKyb = new ImageSlider(this, blueSlider); xSliderKyb = new ImageSlider(this, blueSlider);
xSliderKyb->setId(Chassis::pKyb); prepSlider(xSliderKyb, Chassis::pKyb, 222, 261);
xSliderKyb->setStartPos(222, 261);
xSliderKyb->setEndPos(222, 340);
xSliderKyb->setRange(0, 127.0f);
xSliderKyb->setInverted(true);
xSliderKyb->setCallback(this); xSliderKyb->setCallback(this);
xSliderVCALevel = new ImageSlider(this, whiteSlider); xSliderVCALevel = new ImageSlider(this, whiteSlider);
xSliderVCALevel->setId(Chassis::pVCALevel); prepSlider(xSliderVCALevel, Chassis::pVCALevel, 314, 261);
xSliderVCALevel->setStartPos(314, 261);
xSliderVCALevel->setEndPos(314, 340);
xSliderVCALevel->setRange(0, 127.0f);
xSliderVCALevel->setInverted(true);
xSliderVCALevel->setCallback(this); xSliderVCALevel->setCallback(this);
xSliderAtk = new ImageSlider(this, whiteSlider); xSliderAtk = new ImageSlider(this, whiteSlider);
xSliderAtk->setId(Chassis::pAtk); prepSlider(xSliderAtk, Chassis::pVCALevel, 375, 261);
xSliderAtk->setStartPos(375, 261);
xSliderAtk->setEndPos(375, 340);
xSliderAtk->setRange(0, 127.0f);
xSliderAtk->setInverted(true);
xSliderAtk->setCallback(this); xSliderAtk->setCallback(this);
xSliderDcy = new ImageSlider(this, whiteSlider); xSliderDcy = new ImageSlider(this, whiteSlider);
xSliderDcy->setId(Chassis::pDcy); prepSlider(xSliderDcy, Chassis::pDcy, 414, 261);
xSliderDcy->setStartPos(414, 261);
xSliderDcy->setEndPos(414, 340);
xSliderDcy->setRange(0, 127.0f);
xSliderDcy->setInverted(true);
xSliderDcy->setCallback(this); xSliderDcy->setCallback(this);
xSliderStn = new ImageSlider(this, whiteSlider); xSliderStn = new ImageSlider(this, whiteSlider);
xSliderStn->setId(Chassis::pStn); prepSlider(xSliderStn, Chassis::pStn, 454, 261);
xSliderStn->setStartPos(454, 261);
xSliderStn->setEndPos(454, 340);
xSliderStn->setRange(0, 127.0f);
xSliderStn->setInverted(true);
xSliderStn->setCallback(this); xSliderStn->setCallback(this);
xSliderRls = new ImageSlider(this, whiteSlider); xSliderRls = new ImageSlider(this, whiteSlider);
xSliderRls->setId(Chassis::pRls); prepSlider(xSliderRls, Chassis::pRls, 493, 261);
xSliderRls->setStartPos(493, 261);
xSliderRls->setEndPos(493, 340);
xSliderRls->setRange(0, 127.0f);
xSliderRls->setInverted(true);
xSliderRls->setCallback(this); xSliderRls->setCallback(this);
xBtn16ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB), xBtn16ft = new ImageButton(this, Image(Art::orngBtnUp, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB),
@ -172,8 +111,6 @@ DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundH
programLoaded(0); programLoaded(0);
} }
DistrhoUIchassis::~DistrhoUIchassis() { DistrhoUIchassis::~DistrhoUIchassis() {
printf("Called destructor for UI\n"); printf("Called destructor for UI\n");
} }
@ -257,9 +194,15 @@ void DistrhoUIchassis::parameterChanged(uint32_t index, float value) {
sw1 &= 0x9f; sw1 &= 0x9f;
// 60, 40, 00 // 60, 40, 00
switch ((int)value) { switch ((int)value) {
case 0: sw1 |= 0x60; break; case 0:
case 1: sw1 |= 0x40; break; sw1 |= 0x60;
case 2: sw1 |= 0x00; break; break;
case 1:
sw1 |= 0x40;
break;
case 2:
sw1 |= 0x00;
break;
} }
} }
} }
@ -280,10 +223,20 @@ void DistrhoUIchassis::imageButtonClicked(ImageButton *imgBtn, int) {
int id = imgBtn->getId(); int id = imgBtn->getId();
// printf("imagebutton %d\n", id); // printf("imagebutton %d\n", id);
switch (id) { switch (id) {
case Chassis::btn16: sw1 &= 0xf8; sw1 |= 0x01; break; case Chassis::btn16:
case Chassis::btn8: sw1 &= 0xf8; sw1 |= 0x02; break; sw1 &= 0xf8;
case Chassis::btn4: sw1 &= 0xf8; sw1 |= 0x04; break; sw1 |= 0x01;
default: break; break;
case Chassis::btn8:
sw1 &= 0xf8;
sw1 |= 0x02;
break;
case Chassis::btn4:
sw1 &= 0xf8;
sw1 |= 0x04;
break;
default:
break;
} }
} }