diff options
| author | Gary Scavone <gary@music.mcgill.ca> | 2019-04-05 15:47:28 -0400 |
|---|---|---|
| committer | Gary Scavone <gary@music.mcgill.ca> | 2019-04-19 15:11:35 -0400 |
| commit | 3619a028768e5f689aeaa49838f5216914d9163c (patch) | |
| tree | ecd075867c48d8e1f3dc33d3bb773c55eed30d10 /RtAudio.cpp | |
| parent | f385740a2797800d005534443467592fded18a5a (diff) | |
Updates to playsaw.cpp and testall.cpp for new behaviour
Diffstat (limited to 'RtAudio.cpp')
| -rw-r--r-- | RtAudio.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/RtAudio.cpp b/RtAudio.cpp index f930114..fd8380b 100644 --- a/RtAudio.cpp +++ b/RtAudio.cpp @@ -1439,9 +1439,9 @@ bool RtApiCore :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne // Setup a listener to detect a possible device disconnect. property.mSelector = kAudioDevicePropertyDeviceIsAlive; - property.mScope = kAudioObjectPropertyScopeGlobal; result = AudioObjectAddPropertyListener( id , &property, disconnectListener, (void *) &stream_.callbackInfo ); if ( result != noErr ) { + AudioObjectRemovePropertyListener( id, &property, xrunListener, (void *) handle ); errorStream_ << "RtApiCore::probeDeviceOpen: system error setting disconnect listener for device (" << device << ")."; errorText_ = errorStream_.str(); goto error; @@ -1489,9 +1489,13 @@ void RtApiCore :: closeStream( void ) kAudioObjectPropertyElementMaster }; property.mSelector = kAudioDeviceProcessorOverload; - property.mScope = kAudioObjectPropertyScopeGlobal; if (AudioObjectRemovePropertyListener( handle->id[0], &property, xrunListener, (void *) handle ) != noErr) { - errorText_ = "RtApiCore::closeStream(): error removing property listener!"; + errorText_ = "RtApiCore::closeStream(): error removing xrun property listener!"; + error( RtAudioError::WARNING ); + } + property.mSelector = kAudioDevicePropertyDeviceIsAlive; + if (AudioObjectRemovePropertyListener( handle->id[0], &property, disconnectListener, (void *) &stream_.callbackInfo ) != noErr) { + errorText_ = "RtApiCore::closeStream(): error removing disconnect property listener!"; error( RtAudioError::WARNING ); } } @@ -1512,9 +1516,13 @@ void RtApiCore :: closeStream( void ) kAudioObjectPropertyElementMaster }; property.mSelector = kAudioDeviceProcessorOverload; - property.mScope = kAudioObjectPropertyScopeGlobal; if (AudioObjectRemovePropertyListener( handle->id[1], &property, xrunListener, (void *) handle ) != noErr) { - errorText_ = "RtApiCore::closeStream(): error removing property listener!"; + errorText_ = "RtApiCore::closeStream(): error removing xrun property listener!"; + error( RtAudioError::WARNING ); + } + property.mSelector = kAudioDevicePropertyDeviceIsAlive; + if (AudioObjectRemovePropertyListener( handle->id[1], &property, disconnectListener, (void *) &stream_.callbackInfo ) != noErr) { + errorText_ = "RtApiCore::closeStream(): error removing disconnect property listener!"; error( RtAudioError::WARNING ); } } |
