Skip to content

Commit

Permalink
JuceOPL: Fix GUI not updating on parameter changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Windfisch authored and falkTX committed May 2, 2022
1 parent 9f93a19 commit 5907a18
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions ports-legacy/juce-opl/source/PluginProcessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -453,15 +453,15 @@ void AdlibBlasterAudioProcessor::setIntParameter (String name, int value)
int i = paramIdxByName[name];
IntFloatParameter* p = (IntFloatParameter*)params[i];
p->setParameterValue(value);
setParameter(i, p->getParameter());
setParameterNotifyingHost(i, p->getParameter());
}

void AdlibBlasterAudioProcessor::setEnumParameter (String name, int index)
{
int i = paramIdxByName[name];
EnumFloatParameter* p = (EnumFloatParameter*)params[i];
p->setParameterIndex(index);
setParameter(i, p->getParameter());
setParameterNotifyingHost(i, p->getParameter());
}

int AdlibBlasterAudioProcessor::getIntParameter (String name)
Expand All @@ -487,6 +487,7 @@ bool AdlibBlasterAudioProcessor::getBoolParameter(String name)
void AdlibBlasterAudioProcessor::setParameter (int index, float newValue)
{
FloatParameter* p = params[index];
bool changed = p->getParameter() != newValue;
p->setParameter(newValue);
String name = p->getName();
int osc = 2; // Carrier
Expand Down Expand Up @@ -530,6 +531,10 @@ void AdlibBlasterAudioProcessor::setParameter (int index, float newValue)
} else if (name.startsWith("Percussion")) {
Opl->SetPercussionMode(((EnumFloatParameter*)p)->getParameterIndex() > 0);
}

if (changed) {
updateGuiIfPresent();
}
}

void AdlibBlasterAudioProcessor::loadInstrumentFromFile(String filename)
Expand Down Expand Up @@ -684,7 +689,7 @@ void AdlibBlasterAudioProcessor::setCurrentProgram (int index)
i_program = index;
std::vector<float> &v_params = programs[getProgramName(index)];
for (unsigned int i = 0; i < params.size() && i < v_params.size(); i++) {
setParameter(i, v_params[i]);
setParameterNotifyingHost(i, v_params[i]);
}
updateGuiIfPresent();
}
Expand Down Expand Up @@ -891,7 +896,7 @@ void AdlibBlasterAudioProcessor::setStateInformation (const void* data, int size
var param = v[stringToIdentifier(getParameterName(i))];

if (!param.isVoid())
setParameter(i, param);
setParameterNotifyingHost(i, param);
}

updateGuiIfPresent();
Expand All @@ -903,7 +908,7 @@ void AdlibBlasterAudioProcessor::setStateInformation (const void* data, int size
const int parametersToLoad = std::min<int>(sizeInBytes / sizeof(float), getNumParameters());

for (int i = 0; i < parametersToLoad; i++) {
setParameter(i, fdata[i]);
setParameterNotifyingHost(i, fdata[i]);
}
}

Expand Down

0 comments on commit 5907a18

Please sign in to comment.