| @@ -1080,28 +1080,39 @@ private: | |||||
| void eventCallback (const AudioUnitEvent& event, AudioUnitParameterValue newValue) | 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) | switch (event.mEventType) | ||||
| { | { | ||||
| case kAudioUnitEvent_ParameterValueChange: | 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; | break; | ||||
| case kAudioUnitEvent_BeginParameterChangeGesture: | case kAudioUnitEvent_BeginParameterChangeGesture: | ||||
| beginParameterChangeGesture ((int) event.mArgument.mParameter.mParameterID); | |||||
| beginParameterChangeGesture (paramIndex); | |||||
| break; | break; | ||||
| case kAudioUnitEvent_EndParameterChangeGesture: | case kAudioUnitEvent_EndParameterChangeGesture: | ||||
| endParameterChangeGesture ((int) event.mArgument.mParameter.mParameterID); | |||||
| endParameterChangeGesture (paramIndex); | |||||
| break; | break; | ||||
| default: | default: | ||||