1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-22 01:34:21 +00:00

Fix incorrect parameter id <-> index conversion when hosting AUs

This commit is contained in:
hogliux 2016-07-08 09:03:50 +01:00
parent 3ff5ed0f44
commit a050e0700b

View file

@ -1080,28 +1080,39 @@ private:
void eventCallback (const AudioUnitEvent& event, AudioUnitParameterValue newValue)
{
int paramIndex = -1;
if (event.mEventType == kAudioUnitEvent_ParameterValueChange
|| event.mEventType == kAudioUnitEvent_BeginParameterChangeGesture
|| event.mEventType == kAudioUnitEvent_EndParameterChangeGesture)
{
for (paramIndex = 0; paramIndex < parameters.size(); ++paramIndex)
{
const ParamInfo& p = *parameters.getUnchecked(paramIndex);
if (p.paramID == event.mArgument.mParameter.mParameterID)
break;
}
if (! isPositiveAndBelow (paramIndex, parameters.size()))
return;
}
switch (event.mEventType)
{
case kAudioUnitEvent_ParameterValueChange:
for (int i = 0; i < parameters.size(); ++i)
{
const ParamInfo& p = *parameters.getUnchecked(i);
if (p.paramID == event.mArgument.mParameter.mParameterID)
{
sendParamChangeMessageToListeners (i, (newValue - p.minValue) / (p.maxValue - p.minValue));
break;
}
const ParamInfo& p = *parameters.getUnchecked(paramIndex);
sendParamChangeMessageToListeners (paramIndex, (newValue - p.minValue) / (p.maxValue - p.minValue));
}
break;
case kAudioUnitEvent_BeginParameterChangeGesture:
beginParameterChangeGesture ((int) event.mArgument.mParameter.mParameterID);
beginParameterChangeGesture (paramIndex);
break;
case kAudioUnitEvent_EndParameterChangeGesture:
endParameterChangeGesture ((int) event.mArgument.mParameter.mParameterID);
endParameterChangeGesture (paramIndex);
break;
default: