summaryrefslogtreecommitdiff
path: root/RtAudio.cpp
diff options
context:
space:
mode:
authorGary Scavone <gary@music.mcgill.ca>2019-04-05 15:47:28 -0400
committerGary Scavone <gary@music.mcgill.ca>2019-04-19 15:11:35 -0400
commit3619a028768e5f689aeaa49838f5216914d9163c (patch)
treeecd075867c48d8e1f3dc33d3bb773c55eed30d10 /RtAudio.cpp
parentf385740a2797800d005534443467592fded18a5a (diff)
Updates to playsaw.cpp and testall.cpp for new behaviour
Diffstat (limited to 'RtAudio.cpp')
-rw-r--r--RtAudio.cpp18
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 );
}
}