slider updates work again

This commit is contained in:
Gordon JC Pearce 2025-02-16 22:14:12 +00:00
parent a54929c2b3
commit 71a9f5b03d
1 changed files with 66 additions and 66 deletions

View File

@ -7,7 +7,6 @@ START_NAMESPACE_DISTRHO
namespace Art = Artwork; namespace Art = Artwork;
//void prepSlider(ImageSlider* s, uint id, int x, int y) {
void DistrhoUIchassis::prepSlider( uint id, int x, int y) { void DistrhoUIchassis::prepSlider( uint id, int x, int y) {
ImageSlider* s = slider[id]; ImageSlider* s = slider[id];
s->setId(id); s->setId(id);
@ -123,67 +122,18 @@ DistrhoUIchassis::~DistrhoUIchassis() {
void DistrhoUIchassis::programLoaded(uint32_t index) { void DistrhoUIchassis::programLoaded(uint32_t index) {
switch (index) { switch (index) {
case sLfoRate: case pLfoRate:
// slider[pLFORate->setValue(0.5); // slider[sLfo.Rate->setValue(0.5);
break; break;
case sLfoDelay: case pLfoDelay:
// slider[pLFODelay->setValue(0.5); // slider[sLfo.Delay->setValue(0.5);
break; break;
} }
} }
void DistrhoUIchassis::parameterChanged(uint32_t index, float value) { void DistrhoUIchassis::parameterChanged(uint32_t index, float value) {
#if 0
switch (index) { switch (index) {
case sLfoRate: // the switches are generally oddities
slider[pLFORate->setValue(value); case pVcoRange:
break;
case sLfoDelay:
slider[pLFODelay->setValue(value);
break;
case sLfoDepth:
slider[pLFODepth->setValue(value);
break;
case pPWMDepth:
slider[pPWMDepth->setValue(value);
break;
case sSubLevel:
slider[sSubLevel->setValue(value);
break;
case sNoiseLevel:
slider[sNoiseLevel->setValue(value);
break;
case sHpf:
slider[sHpf->setValue(value);
break;
case sCutoff:
slider[sCutoff->setValue(value);
break;
case sRes:
slider[sRes->setValue(value);
break;
case sEnv:
slider[sEnv->setValue(value);
break;
case sLfo:
slider[sLfo->setValue(value);
break;
case sKyb:
slider[sKyb->setValue(value);
break;
case sAtk:
slider[sAtk->setValue(value);
break;
case sDcy:
slider[sDcy->setValue(value);
break;
case sStn:
slider[sStn->setValue(value);
break;
case pRls:
slider[pRls->setValue(value);
break;
// now the switches
case pVCORange:
sw1 &= 0xf8; // mask sw1 &= 0xf8; // mask
if (value > 2) value = 2; if (value > 2) value = 2;
sw1 |= (1 << (int)value); sw1 |= (1 << (int)value);
@ -210,22 +160,72 @@ void DistrhoUIchassis::parameterChanged(uint32_t index, float value) {
case 2: case 2:
sw1 |= 0x00; sw1 |= 0x00;
break; break;
};
break;
case pLfoRate:
slider[sLfoRate]->setValue(value);
break;
case pLfoDelay:
slider[sLfoDelay]->setValue(value);
break;
case pLfoDepth:
slider[sLfoDepth]->setValue(value);
break;
case pPwmDepth:
slider[sPwmDepth]->setValue(value);
break;
case pSubLevel:
slider[sSubLevel]->setValue(value);
break;
case pNoiseLevel:
slider[sNoiseLevel]->setValue(value);
break;
case pHpf:
slider[sHpf]->setValue(value);
break;
case pCutoff:
slider[sCutoff]->setValue(value);
break;
case pRes:
slider[sRes]->setValue(value);
break;
case pEnv:
slider[sEnv]->setValue(value);
break;
case pLfo:
slider[sLfo]->setValue(value);
break;
case pKyb:
slider[sKyb]->setValue(value);
break;
case pAtk:
slider[sAtk]->setValue(value);
break;
case pDcy:
slider[sDcy]->setValue(value);
break;
case pStn:
slider[sStn]->setValue(value);
break;
case pRls:
slider[sRls]->setValue(value);
break;
// now the switches
} }
} }
#endif
}
void DistrhoUIchassis::imageSliderDragStarted(ImageSlider* slider) { void DistrhoUIchassis::imageSliderDragStarted(ImageSlider* s) {
editParameter(slider->getId(), true); editParameter(s->getId(), true);
} }
void DistrhoUIchassis::imageSliderDragFinished(ImageSlider* slider) { void DistrhoUIchassis::imageSliderDragFinished(ImageSlider* s) {
editParameter(slider->getId(), false); editParameter(s->getId(), false);
} }
void DistrhoUIchassis::imageSliderValueChanged(ImageSlider* slider, float value) { void DistrhoUIchassis::imageSliderValueChanged(ImageSlider* s, float value) {
setParameterValue(slider->getId(), value); setParameterValue(s->getId(), value);
printf("slider %d changed to %f\n",slider->getId(), value); printf("slider %d changed to %f\n",s->getId(), value);
} }
void DistrhoUIchassis::imageButtonClicked(ImageButton* imgBtn, int) { void DistrhoUIchassis::imageButtonClicked(ImageButton* imgBtn, int) {