decouple sliders and parameters
This commit is contained in:
parent
7607c71dad
commit
a54929c2b3
|
@ -31,25 +31,25 @@
|
||||||
#define DISTRHO_PLUGIN_HAS_UI 1
|
#define DISTRHO_PLUGIN_HAS_UI 1
|
||||||
|
|
||||||
enum Parameters {
|
enum Parameters {
|
||||||
pLFORate,
|
pLfoRate,
|
||||||
pLFODelay,
|
pLfoDelay,
|
||||||
|
|
||||||
pVCORange,
|
pVcoRange,
|
||||||
pLFODepth,
|
pLfoDepth,
|
||||||
pPWMDepth,
|
pPwmDepth,
|
||||||
pSqr,
|
pSqr,
|
||||||
pSaw,
|
pSaw,
|
||||||
pSubLevel,
|
pSubLevel,
|
||||||
pNoiseLevel,
|
pNoiseLevel,
|
||||||
|
|
||||||
pHPF,
|
pHpf,
|
||||||
pCutoff,
|
pCutoff,
|
||||||
pRes,
|
pRes,
|
||||||
pEnv,
|
pEnv,
|
||||||
pLfo,
|
pLfo,
|
||||||
pKyb,
|
pKyb,
|
||||||
|
|
||||||
pVCALevel,
|
pVcaLevel,
|
||||||
|
|
||||||
pAtk,
|
pAtk,
|
||||||
pDcy,
|
pDcy,
|
||||||
|
|
|
@ -25,20 +25,20 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
||||||
parameter.ranges.def = 0.0f;
|
parameter.ranges.def = 0.0f;
|
||||||
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case pLFORate:
|
case pLfoRate:
|
||||||
parameter.name = "LFO Rate";
|
parameter.name = "LFO Rate";
|
||||||
parameter.symbol = "ch_lforate";
|
parameter.symbol = "ch_lforate";
|
||||||
parameter.midiCC = 3;
|
parameter.midiCC = 3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pLFODelay:
|
case pLfoDelay:
|
||||||
parameter.hints = kParameterIsAutomatable;
|
parameter.hints = kParameterIsAutomatable;
|
||||||
parameter.name = "LFO Delay";
|
parameter.name = "LFO Delay";
|
||||||
parameter.symbol = "ch_lfodelay";
|
parameter.symbol = "ch_lfodelay";
|
||||||
parameter.midiCC = 9;
|
parameter.midiCC = 9;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pVCORange:
|
case pVcoRange:
|
||||||
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
||||||
parameter.name = "Range";
|
parameter.name = "Range";
|
||||||
parameter.symbol = "ch_vcorange";
|
parameter.symbol = "ch_vcorange";
|
||||||
|
@ -58,14 +58,14 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pLFODepth:
|
case pLfoDepth:
|
||||||
parameter.hints = kParameterIsAutomatable;
|
parameter.hints = kParameterIsAutomatable;
|
||||||
parameter.name = "LFO";
|
parameter.name = "LFO";
|
||||||
parameter.symbol = "ch_lfo";
|
parameter.symbol = "ch_lfo";
|
||||||
parameter.midiCC = 13;
|
parameter.midiCC = 13;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pPWMDepth:
|
case pPwmDepth:
|
||||||
parameter.hints = kParameterIsAutomatable;
|
parameter.hints = kParameterIsAutomatable;
|
||||||
parameter.name = "PWM";
|
parameter.name = "PWM";
|
||||||
parameter.symbol = "ch_pwm";
|
parameter.symbol = "ch_pwm";
|
||||||
|
@ -122,7 +122,7 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
||||||
parameter.midiCC = 19;
|
parameter.midiCC = 19;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pHPF:
|
case pHpf:
|
||||||
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
parameter.hints = kParameterIsAutomatable | kParameterIsInteger;
|
||||||
parameter.name = "HPF";
|
parameter.name = "HPF";
|
||||||
parameter.symbol = "ch_hpf";
|
parameter.symbol = "ch_hpf";
|
||||||
|
@ -230,7 +230,7 @@ void Chassis::initParameter(uint32_t index, Parameter& parameter) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
case pVCALevel:
|
case pVcaLevel:
|
||||||
parameter.hints = kParameterIsAutomatable;
|
parameter.hints = kParameterIsAutomatable;
|
||||||
parameter.name = "VCA Level";
|
parameter.name = "VCA Level";
|
||||||
parameter.symbol = "ch_vcalevel";
|
parameter.symbol = "ch_vcalevel";
|
||||||
|
@ -277,17 +277,17 @@ void Chassis::setParameterValue(uint32_t index, float value) {
|
||||||
if (value > 127.0f) value = 127.0f;
|
if (value > 127.0f) value = 127.0f;
|
||||||
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case pLFORate:
|
case pLfoRate:
|
||||||
patchRam.lfoRate = value;
|
patchRam.lfoRate = value;
|
||||||
break;
|
break;
|
||||||
case pLFODelay:
|
case pLfoDelay:
|
||||||
patchRam.lfoDelay = value;
|
patchRam.lfoDelay = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pLFODepth:
|
case pLfoDepth:
|
||||||
patchRam.vcoLfo = value;
|
patchRam.vcoLfo = value;
|
||||||
break;
|
break;
|
||||||
case pPWMDepth:
|
case pPwmDepth:
|
||||||
patchRam.pwmLfo = value / 1.27;
|
patchRam.pwmLfo = value / 1.27;
|
||||||
break;
|
break;
|
||||||
case pSubLevel:
|
case pSubLevel:
|
||||||
|
@ -313,7 +313,7 @@ void Chassis::setParameterValue(uint32_t index, float value) {
|
||||||
patchRam.vcfKey = value;
|
patchRam.vcfKey = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pVCALevel:
|
case pVcaLevel:
|
||||||
patchRam.vca = value;
|
patchRam.vca = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ void Chassis::setParameterValue(uint32_t index, float value) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// switch 1 params
|
// switch 1 params
|
||||||
case pVCORange: // bits 0-2 of switch 1
|
case pVcoRange: // bits 0-2 of switch 1
|
||||||
// doesn't look great in Carla because of odd behaviour with small integer knobs
|
// doesn't look great in Carla because of odd behaviour with small integer knobs
|
||||||
patchRam.switch1 &= 0xf8;
|
patchRam.switch1 &= 0xf8;
|
||||||
patchRam.switch1 |= (1 << (int)(value - 1));
|
patchRam.switch1 |= (1 << (int)(value - 1));
|
||||||
|
@ -380,7 +380,7 @@ void Chassis::setParameterValue(uint32_t index, float value) {
|
||||||
patchRam.switch2 |= (value >= 0.5) << 2;
|
patchRam.switch2 |= (value >= 0.5) << 2;
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
case pHPF: // bits 3-4 of switch 2
|
case pHpf: // bits 3-4 of switch 2
|
||||||
// doesn't look great in Carla because of odd behaviour with small integer knobs
|
// doesn't look great in Carla because of odd behaviour with small integer knobs
|
||||||
if (value > 3) value = 3;
|
if (value > 3) value = 3;
|
||||||
patchRam.switch2 &= 0xe7;
|
patchRam.switch2 &= 0xe7;
|
||||||
|
@ -396,14 +396,14 @@ void Chassis::setParameterValue(uint32_t index, float value) {
|
||||||
|
|
||||||
float Chassis::getParameterValue(uint32_t index) const {
|
float Chassis::getParameterValue(uint32_t index) const {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case pLFORate:
|
case pLfoRate:
|
||||||
return patchRam.lfoRate;
|
return patchRam.lfoRate;
|
||||||
break;
|
break;
|
||||||
case pLFODelay:
|
case pLfoDelay:
|
||||||
return patchRam.lfoDelay;
|
return patchRam.lfoDelay;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pVCORange:
|
case pVcoRange:
|
||||||
// FIXME this needs to be better generally
|
// FIXME this needs to be better generally
|
||||||
switch (patchRam.switch1 & 0x07) {
|
switch (patchRam.switch1 & 0x07) {
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -417,10 +417,10 @@ float Chassis::getParameterValue(uint32_t index) const {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case pLFODepth:
|
case pLfoDepth:
|
||||||
return patchRam.vcoLfo;
|
return patchRam.vcoLfo;
|
||||||
break;
|
break;
|
||||||
case pPWMDepth:
|
case pPwmDepth:
|
||||||
return patchRam.pwmLfo * 1.27f;
|
return patchRam.pwmLfo * 1.27f;
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
|
@ -440,7 +440,7 @@ float Chassis::getParameterValue(uint32_t index) const {
|
||||||
case pNoiseLevel:
|
case pNoiseLevel:
|
||||||
return patchRam.noise;
|
return patchRam.noise;
|
||||||
break;
|
break;
|
||||||
case pHPF:
|
case pHpf:
|
||||||
return 3 - ((patchRam.switch2 & 0x18) >> 3);
|
return 3 - ((patchRam.switch2 & 0x18) >> 3);
|
||||||
break;
|
break;
|
||||||
case pCutoff:
|
case pCutoff:
|
||||||
|
@ -479,7 +479,7 @@ float Chassis::getParameterValue(uint32_t index) const {
|
||||||
case paramEnvGate:
|
case paramEnvGate:
|
||||||
return (patchRam.switch2 & 0x04) != 0;
|
return (patchRam.switch2 & 0x04) != 0;
|
||||||
*/
|
*/
|
||||||
case pVCALevel:
|
case pVcaLevel:
|
||||||
return patchRam.vca;
|
return patchRam.vca;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
182
plugin/ui.cpp
182
plugin/ui.cpp
|
@ -7,7 +7,9 @@ START_NAMESPACE_DISTRHO
|
||||||
|
|
||||||
namespace Art = Artwork;
|
namespace Art = Artwork;
|
||||||
|
|
||||||
void prepSlider(ImageSlider* s, uint id, int x, int y) {
|
//void prepSlider(ImageSlider* s, uint id, int x, int y) {
|
||||||
|
void DistrhoUIchassis::prepSlider( uint id, int x, int y) {
|
||||||
|
ImageSlider* s = slider[id];
|
||||||
s->setId(id);
|
s->setId(id);
|
||||||
s->setStartPos(x, y);
|
s->setStartPos(x, y);
|
||||||
s->setEndPos(x, y + 79); // 80px high
|
s->setEndPos(x, y + 79); // 80px high
|
||||||
|
@ -25,74 +27,77 @@ DistrhoUIchassis::DistrhoUIchassis() : UI(Art::backgroundWidth, Art::backgroundH
|
||||||
Image blueSlider(Art::blueData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA);
|
Image blueSlider(Art::blueData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA);
|
||||||
Image whiteSlider(Art::whiteData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA);
|
Image whiteSlider(Art::whiteData, Art::sliderWidth, Art::sliderHeight, kImageFormatRGBA);
|
||||||
|
|
||||||
xSliderLFORate = new ImageSlider(this, orangeSlider);
|
slider[sLfoRate] = new ImageSlider(this, orangeSlider);
|
||||||
prepSlider(xSliderLFORate, pLFORate, 50, 72);
|
prepSlider(sLfoRate, 50, 72);
|
||||||
xSliderLFORate->setCallback(this);
|
slider[sLfoRate]->setCallback(this);
|
||||||
|
|
||||||
xSliderLFODelay = new ImageSlider(this, orangeSlider);
|
slider[sLfoDelay] = new ImageSlider(this, orangeSlider);
|
||||||
prepSlider(xSliderLFODelay, pLFODelay, 90, 72);
|
prepSlider(sLfoDelay, 90, 72);
|
||||||
xSliderLFODelay->setCallback(this);
|
slider[sLfoDelay]->setCallback(this);
|
||||||
|
|
||||||
xSliderLFODepth = new ImageSlider(this, greenSlider);
|
slider[sLfoDepth] = new ImageSlider(this, greenSlider);
|
||||||
prepSlider(xSliderLFODepth, pLFODepth, 292, 72);
|
prepSlider(sLfoDepth, 292, 72);
|
||||||
xSliderLFODepth->setCallback(this);
|
slider[sLfoDepth]->setCallback(this);
|
||||||
|
|
||||||
xSliderPWMDepth = new ImageSlider(this, greenSlider);
|
slider[sPwmDepth] = new ImageSlider(this, greenSlider);
|
||||||
prepSlider(xSliderPWMDepth, pPWMDepth, 331, 72);
|
prepSlider(sPwmDepth, 331, 72);
|
||||||
xSliderPWMDepth->setCallback(this);
|
slider[sPwmDepth]->setCallback(this);
|
||||||
|
|
||||||
xSliderSubLevel = new ImageSlider(this, greenSlider);
|
slider[sSubLevel] = new ImageSlider(this, greenSlider);
|
||||||
prepSlider(xSliderSubLevel, pSubLevel, 517, 72);
|
prepSlider(sSubLevel, 517, 72);
|
||||||
xSliderSubLevel->setCallback(this);
|
slider[sSubLevel]->setCallback(this);
|
||||||
|
|
||||||
xSliderNoiseLevel = new ImageSlider(this, greenSlider);
|
slider[sNoiseLevel] = new ImageSlider(this, greenSlider);
|
||||||
prepSlider(xSliderNoiseLevel, pNoiseLevel, 558, 72);
|
prepSlider(sNoiseLevel, 558, 72);
|
||||||
xSliderNoiseLevel->setCallback(this);
|
slider[sNoiseLevel]->setCallback(this);
|
||||||
|
|
||||||
// FIXME - put the stops back in
|
// HPF slider is treated specially as it is part of the switches
|
||||||
xSliderHPF = new ImageSlider(this, blueSlider);
|
slider[sHpf] = new ImageSlider(this, blueSlider);
|
||||||
prepSlider(xSliderHPF, pHPF, 618, 72);
|
prepSlider(sHpf, 618, 72);
|
||||||
xSliderHPF->setCallback(this);
|
slider[sHpf]->setRange(0, 3);
|
||||||
|
slider[sHpf]->setStep(1);
|
||||||
|
slider[sHpf]->setCallback(this);
|
||||||
|
|
||||||
xSliderCutoff = new ImageSlider(this, blueSlider);
|
slider[sCutoff] = new ImageSlider(this, blueSlider);
|
||||||
prepSlider(xSliderCutoff, pCutoff, 21, 261);
|
prepSlider(sCutoff, 21, 261);
|
||||||
xSliderCutoff->setCallback(this);
|
slider[sCutoff]->setCallback(this);
|
||||||
|
|
||||||
xSliderRes = new ImageSlider(this, blueSlider);
|
slider[sRes] = new ImageSlider(this, blueSlider);
|
||||||
prepSlider(xSliderRes, pRes, 60, 261);
|
prepSlider(sRes, 60, 261);
|
||||||
xSliderRes->setCallback(this);
|
slider[sRes]->setCallback(this);
|
||||||
|
|
||||||
xSliderEnv = new ImageSlider(this, blueSlider);
|
slider[sEnv] = new ImageSlider(this, blueSlider);
|
||||||
prepSlider(xSliderEnv, pEnv, 144, 261);
|
prepSlider(sEnv, 144, 261);
|
||||||
xSliderEnv->setCallback(this);
|
slider[sEnv]->setCallback(this);
|
||||||
|
|
||||||
xSliderLfo = new ImageSlider(this, blueSlider);
|
slider[sLfo] = new ImageSlider(this, blueSlider);
|
||||||
prepSlider(xSliderLfo, pLfo, 183, 261);
|
prepSlider(sLfo, 183, 261);
|
||||||
xSliderLfo->setCallback(this);
|
slider[sLfo]->setCallback(this);
|
||||||
|
|
||||||
xSliderKyb = new ImageSlider(this, blueSlider);
|
slider[sKyb] = new ImageSlider(this, blueSlider);
|
||||||
prepSlider(xSliderKyb, pKyb, 222, 261);
|
prepSlider(sKyb, 222, 261);
|
||||||
xSliderKyb->setCallback(this);
|
slider[sKyb]->setCallback(this);
|
||||||
|
|
||||||
xSliderVCALevel = new ImageSlider(this, whiteSlider);
|
slider[sVcaLevel] = new ImageSlider(this, whiteSlider);
|
||||||
prepSlider(xSliderVCALevel, pVCALevel, 314, 261);
|
prepSlider(sVcaLevel, 314, 261);
|
||||||
xSliderVCALevel->setCallback(this);
|
slider[sVcaLevel]->setCallback(this);
|
||||||
|
|
||||||
xSliderAtk = new ImageSlider(this, whiteSlider);
|
slider[sAtk] = new ImageSlider(this, whiteSlider);
|
||||||
prepSlider(xSliderAtk, pVCALevel, 375, 261);
|
prepSlider(sAtk, 375, 261);
|
||||||
xSliderAtk->setCallback(this);
|
slider[sAtk]->setCallback(this);
|
||||||
|
|
||||||
xSliderDcy = new ImageSlider(this, whiteSlider);
|
|
||||||
prepSlider(xSliderDcy, pDcy, 414, 261);
|
|
||||||
xSliderDcy->setCallback(this);
|
|
||||||
|
|
||||||
xSliderStn = new ImageSlider(this, whiteSlider);
|
slider[sDcy] = new ImageSlider(this, whiteSlider);
|
||||||
prepSlider(xSliderStn, pStn, 454, 261);
|
prepSlider(sDcy, 414, 261);
|
||||||
xSliderStn->setCallback(this);
|
slider[sDcy]->setCallback(this);
|
||||||
|
|
||||||
xSliderRls = new ImageSlider(this, whiteSlider);
|
slider[sStn] = new ImageSlider(this, whiteSlider);
|
||||||
prepSlider(xSliderRls, pRls, 493, 261);
|
prepSlider(sStn, 454, 261);
|
||||||
xSliderRls->setCallback(this);
|
slider[sStn]->setCallback(this);
|
||||||
|
|
||||||
|
slider[sRls] = new ImageSlider(this, whiteSlider);
|
||||||
|
prepSlider(sRls, 493, 261);
|
||||||
|
slider[sRls]->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),
|
||||||
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
Image(Art::orngBtnDn, Art::orngBtnWidth, Art::orngBtnHeight, kImageFormatRGB));
|
||||||
|
@ -118,63 +123,64 @@ DistrhoUIchassis::~DistrhoUIchassis() {
|
||||||
|
|
||||||
void DistrhoUIchassis::programLoaded(uint32_t index) {
|
void DistrhoUIchassis::programLoaded(uint32_t index) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case pLFORate:
|
case sLfoRate:
|
||||||
xSliderLFORate->setValue(0.5);
|
// slider[pLFORate->setValue(0.5);
|
||||||
break;
|
break;
|
||||||
case pLFODelay:
|
case sLfoDelay:
|
||||||
xSliderLFODelay->setValue(0.5);
|
// slider[pLFODelay->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 pLFORate:
|
case sLfoRate:
|
||||||
xSliderLFORate->setValue(value);
|
slider[pLFORate->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pLFODelay:
|
case sLfoDelay:
|
||||||
xSliderLFODelay->setValue(value);
|
slider[pLFODelay->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pLFODepth:
|
case sLfoDepth:
|
||||||
xSliderLFODepth->setValue(value);
|
slider[pLFODepth->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pPWMDepth:
|
case pPWMDepth:
|
||||||
xSliderPWMDepth->setValue(value);
|
slider[pPWMDepth->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pSubLevel:
|
case sSubLevel:
|
||||||
xSliderSubLevel->setValue(value);
|
slider[sSubLevel->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pNoiseLevel:
|
case sNoiseLevel:
|
||||||
xSliderNoiseLevel->setValue(value);
|
slider[sNoiseLevel->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pHPF:
|
case sHpf:
|
||||||
xSliderHPF->setValue(value);
|
slider[sHpf->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pCutoff:
|
case sCutoff:
|
||||||
xSliderCutoff->setValue(value);
|
slider[sCutoff->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pRes:
|
case sRes:
|
||||||
xSliderRes->setValue(value);
|
slider[sRes->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pEnv:
|
case sEnv:
|
||||||
xSliderEnv->setValue(value);
|
slider[sEnv->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pLfo:
|
case sLfo:
|
||||||
xSliderLfo->setValue(value);
|
slider[sLfo->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pKyb:
|
case sKyb:
|
||||||
xSliderKyb->setValue(value);
|
slider[sKyb->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pAtk:
|
case sAtk:
|
||||||
xSliderAtk->setValue(value);
|
slider[sAtk->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pDcy:
|
case sDcy:
|
||||||
xSliderDcy->setValue(value);
|
slider[sDcy->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pStn:
|
case sStn:
|
||||||
xSliderStn->setValue(value);
|
slider[sStn->setValue(value);
|
||||||
break;
|
break;
|
||||||
case pRls:
|
case pRls:
|
||||||
xSliderRls->setValue(value);
|
slider[pRls->setValue(value);
|
||||||
break;
|
break;
|
||||||
// now the switches
|
// now the switches
|
||||||
case pVCORange:
|
case pVCORange:
|
||||||
|
@ -206,6 +212,7 @@ void DistrhoUIchassis::parameterChanged(uint32_t index, float value) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void DistrhoUIchassis::imageSliderDragStarted(ImageSlider* slider) {
|
void DistrhoUIchassis::imageSliderDragStarted(ImageSlider* slider) {
|
||||||
|
@ -218,6 +225,7 @@ void DistrhoUIchassis::imageSliderDragFinished(ImageSlider* slider) {
|
||||||
|
|
||||||
void DistrhoUIchassis::imageSliderValueChanged(ImageSlider* slider, float value) {
|
void DistrhoUIchassis::imageSliderValueChanged(ImageSlider* slider, float value) {
|
||||||
setParameterValue(slider->getId(), value);
|
setParameterValue(slider->getId(), value);
|
||||||
|
printf("slider %d changed to %f\n",slider->getId(), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DistrhoUIchassis::imageButtonClicked(ImageButton* imgBtn, int) {
|
void DistrhoUIchassis::imageButtonClicked(ImageButton* imgBtn, int) {
|
||||||
|
|
|
@ -23,16 +23,42 @@ class DistrhoUIchassis : public UI,
|
||||||
void imageSliderDragFinished(ImageSlider* slider) override;
|
void imageSliderDragFinished(ImageSlider* slider) override;
|
||||||
void imageSliderValueChanged(ImageSlider* slider, float value) override;
|
void imageSliderValueChanged(ImageSlider* slider, float value) override;
|
||||||
|
|
||||||
void imageButtonClicked(ImageButton *imageButton, int button) override;
|
void imageButtonClicked(ImageButton *imageButton, int button) override;
|
||||||
|
|
||||||
private:
|
void prepSlider( uint id, int x, int y);
|
||||||
|
enum {
|
||||||
|
sLfoRate,
|
||||||
|
sLfoDelay,
|
||||||
|
|
||||||
|
sLfoDepth,
|
||||||
|
sPwmDepth,
|
||||||
|
sSubLevel,
|
||||||
|
sNoiseLevel,
|
||||||
|
|
||||||
|
sCutoff,
|
||||||
|
sRes,
|
||||||
|
sEnv,
|
||||||
|
sLfo,
|
||||||
|
sKyb,
|
||||||
|
|
||||||
|
sVcaLevel,
|
||||||
|
|
||||||
|
sAtk,
|
||||||
|
sDcy,
|
||||||
|
sStn,
|
||||||
|
sRls,
|
||||||
|
sHpf
|
||||||
|
};
|
||||||
|
private:
|
||||||
Image fImgBackground;
|
Image fImgBackground;
|
||||||
Image fImgLedOn;
|
Image fImgLedOn;
|
||||||
ScopedPointer<ImageSlider>
|
ScopedPointer<ImageSlider> slider[17];
|
||||||
|
/*
|
||||||
xSliderLFORate, xSliderLFODelay,
|
xSliderLFORate, xSliderLFODelay,
|
||||||
xSliderLFODepth, xSliderPWMDepth, xSliderSubLevel, xSliderNoiseLevel,
|
xSliderLFODepth, xSliderPWMDepth, xSliderSubLevel, xSliderNoiseLevel,
|
||||||
xSliderHPF, xSliderCutoff, xSliderRes, xSliderEnv, xSliderLfo, xSliderKyb,
|
xSliderHPF, xSliderCutoff, xSliderRes, xSliderEnv, xSliderLfo, xSliderKyb,
|
||||||
xSliderVCALevel, xSliderAtk, xSliderDcy, xSliderStn, xSliderRls;
|
xSliderVCALevel, xSliderAtk, xSliderDcy, xSliderStn, xSliderRls;
|
||||||
|
*/
|
||||||
ScopedPointer<ImageButton> xBtn16ft, xBtn8ft, xBtn4ft;
|
ScopedPointer<ImageButton> xBtn16ft, xBtn8ft, xBtn4ft;
|
||||||
|
|
||||||
uint8_t sw1 = 0, sw2 = 0;
|
uint8_t sw1 = 0, sw2 = 0;
|
||||||
|
@ -42,4 +68,4 @@ class DistrhoUIchassis : public UI,
|
||||||
|
|
||||||
END_NAMESPACE_DISTRHO
|
END_NAMESPACE_DISTRHO
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue