AUEventListenerCreate/Property Listeners
AUEventListenerCreate/Property Listeners
- Subject: AUEventListenerCreate/Property Listeners
- From: Art Gillespie <email@hidden>
- Date: Mon, 26 Nov 2007 22:19:27 -0700
I'm having trouble with property listeners created with the
AUEventListenerCreate/AUEventListenerAddEventType not being removed
from my AU. In my view's CreateUI I have the following:
//-----
CFRunLoopRef runLoop =
(CFRunLoopRef)GetCFRunLoopFromEventLoop(GetCurrentEventLoop());
OSStatus err = AUEventListenerCreate ( MyEventListener, this,
runLoop, kCFRunLoopCommonModes, 0.05, 0.05,
&mAUEventListener );
AudioUnitEvent auEvent;
auEvent.mEventType = kAudioUnitEvent_PropertyChange;
auEvent.mArgument.mProperty.mAudioUnit = mEditAudioUnit;
auEvent.mArgument.mProperty.mPropertyID =
kGFProperty_MessageQueueNext;
auEvent.mArgument.mProperty.mScope = kAudioUnitScope_Global;
auEvent.mArgument.mProperty.mElement = 0;
err = AUEventListenerAddEventType ( mAUEventListener, this,
&auEvent );
//------
I notice this causes my AU's AddPropertyListener() to be called.
AULab also adds two Property Listeners, so that once my AU's view is
visible, my AU's mPropertyListeners.size() is 3.
I have the following code in my view's dtor:
//------
if ( mAUEventListener )
{
AudioUnitEvent auEvent;
auEvent.mEventType = kAudioUnitEvent_PropertyChange;
auEvent.mArgument.mProperty.mAudioUnit = mEditAudioUnit;
auEvent.mArgument.mProperty.mPropertyID =
kGFProperty_MessageQueueNext;
auEvent.mArgument.mProperty.mScope = kAudioUnitScope_Global;
auEvent.mArgument.mProperty.mElement = 0;
OSStatus err = AUEventListenerRemoveEventType ( mAUEventListener,
this, &auEvent );
err = AUListenerDispose(mAUEventListener);
mAUEventListener = NULL;
}
//------
I'd expect that this would cause my AU's RemovePropertyListener() to
be called but it never is. When I re-open the AU's view, I see that
my AU's mPropertyListeners.size() is 6. If I call PropertyChanged()
from my AU at this point, it crashes, presumably because it has
references to listeners that no longer exist. As far as I can tell,
this only happens on 10.5+.
I'm using CoreAudio SDK 1.4.3 with XCode 3 compiling against the 10.4
SDK and I'm seeing this behavior in AULab on 10.5.1. Any ideas? Am I
disposing of the listener incorrectly?
Thanks,
Art
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden