Skip to content

Commit

Permalink
Fix incorrect parameter id <-> index conversion when hosting AUs
Browse files Browse the repository at this point in the history
  • Loading branch information
hogliux committed Jul 8, 2016
1 parent 41ab0d9 commit 572868f
Showing 1 changed file with 22 additions and 11 deletions.
Expand Up @@ -1080,28 +1080,39 @@ void addPropertyChangeListener (AudioUnitPropertyID type) const

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:
Expand Down

0 comments on commit 572868f

Please sign in to comment.