diff --git a/plugin/ui.cpp b/plugin/ui.cpp index 204dd2a..9a9c619 100644 --- a/plugin/ui.cpp +++ b/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,91 @@ 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); 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 +190,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 +219,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; } }