void sendAUEvent (const AudioUnitEventType type, const int index) throw()
 {
     if (AUEventListenerNotify != 0)
     {
         auEvent.mEventType = type;
         auEvent.mArgument.mParameter.mParameterID = (AudioUnitParameterID) index;
         AUEventListenerNotify (0, 0, &auEvent);
     }
 }
Пример #2
0
void ResonatorNote::SendNoteNotification (AudioUnitEventType inEventType, UInt32 inParamID)
{
	AudioUnitEvent event;
	event.mEventType = inEventType;
	event.mArgument.mParameter.mAudioUnit = GetAudioUnit()->GetComponentInstance();
	event.mArgument.mParameter.mParameterID = inParamID;
	event.mArgument.mParameter.mScope = kAudioUnitScope_Global;
	event.mArgument.mParameter.mElement = 0;
	
	AUEventListenerNotify(NULL, NULL, &event);
}
Пример #3
0
//-----------------------------------------------------------------------------
void C700::ParameterSetFunc(int paramID, float value, void* userData)
{
    C700	*This = reinterpret_cast<C700*> (userData);
    This->Globals()->SetParameter(paramID, value);
    AudioUnitEvent auEvent;
    auEvent.mEventType = kAudioUnitEvent_ParameterValueChange;
    auEvent.mArgument.mParameter.mAudioUnit = (AudioUnit)This->GetComponentInstance();
    auEvent.mArgument.mParameter.mScope = kAudioUnitScope_Global;
    auEvent.mArgument.mParameter.mParameterID = paramID;
    auEvent.mArgument.mParameter.mElement = 0;
    AUEventListenerNotify(NULL, NULL, &auEvent);
    This->mParameterHasChanged[paramID] = true;
}
bool CAAUMIDIMapManager::FindParameterMapEventMatch(	UInt8			inStatus,
														UInt8			inChannel,
														UInt8			inData1,
														UInt8			inData2,
														UInt32			inBufferOffset,
														AUBase&			inAUBase)
{
	bool ret_value = false;

	if (inStatus == 0x90 && !inData2)
		inStatus = 0x80 | inChannel;
	
	//used to test for midi matches once map is made
	CAAUMIDIMap tempMap;
	tempMap.mStatus = inStatus | inChannel;
	tempMap.mData1 = inData1;
	
	CompareMIDIMap compareObj;

	AudioUnitEvent event;
	event.mEventType = kAudioUnitEvent_ParameterValueChange;
	event.mArgument.mParameter.mAudioUnit = inAUBase.GetComponentInstance();
	
	ParameterMaps::iterator lower_iter = 
	std::lower_bound(mParameterMaps.begin(), mParameterMaps.end(), tempMap, compareObj);
	
	while (lower_iter < mParameterMaps.end()) 
	{
		CAAUMIDIMap & map = (*lower_iter);
		if (compareObj.Finish(map, tempMap)) 
			break;
		
		Float32 value;
		if (map.MIDI_Matches(inChannel, inData1, inData2, value))
		{	
			inAUBase.SetParameter ( map.mParameterID, map.mScope, map.mElement, 
									map.ParamValueFromMIDILinear(value), inBufferOffset);

			event.mArgument.mParameter.mParameterID = map.mParameterID;
			event.mArgument.mParameter.mScope = map.mScope;
			event.mArgument.mParameter.mElement = map.mElement;
			
			AUEventListenerNotify(NULL, NULL, &event);
			ret_value = true;
		}
		++lower_iter;
	}
	return ret_value;
}
/*! @method TellListener */
void	AUCarbonViewBase::TellListener (const CAAUParameter &auvp, AudioUnitCarbonViewEventID event, void *evpar)
{
#if !__LP64__
	if (mEventListener)
		(*mEventListener)(mEventListenerUserData, mComponentInstance, &auvp, event, evpar);
#endif

	AudioUnitEvent	auEvent;
	auEvent.mArgument.mParameter = auvp;
	if (event == kAudioUnitCarbonViewEvent_MouseDownInControl) {
		auEvent.mEventType = kAudioUnitEvent_BeginParameterChangeGesture;
	} else {
		auEvent.mEventType = kAudioUnitEvent_EndParameterChangeGesture;
	}
	AUEventListenerNotify(mParameterListener, this, &auEvent);									
}