diff options
| author | Gary Scavone <gary@music.mcgill.ca> | 2015-04-06 15:27:47 -0400 |
|---|---|---|
| committer | Gary Scavone <gary@music.mcgill.ca> | 2015-04-06 15:27:47 -0400 |
| commit | f3ef51b6d5b4da981b10c4805a3d82dfaa1fc67e (patch) | |
| tree | 3cd86cf863ca05ba7bf584cb1b13ba3a3333c3a1 /RtAudio.cpp | |
| parent | 661a34e77d2a34d4144e11c82715082eaf0fd4b3 (diff) | |
| parent | d58bf8ca75d5218cbb24c1ce02b1710429198c91 (diff) | |
Merge branch 'master' of https://github.com/guidefloripa/rtaudio into guidefloripa-master
Trying to merge OS-X closeStream() update.
Diffstat (limited to 'RtAudio.cpp')
| -rwxr-xr-x[-rw-r--r--] | RtAudio.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/RtAudio.cpp b/RtAudio.cpp index dfa992d..fab3897 100644..100755 --- a/RtAudio.cpp +++ b/RtAudio.cpp @@ -1406,6 +1406,19 @@ void RtApiCore :: closeStream( void ) CoreHandle *handle = (CoreHandle *) stream_.apiHandle;
if ( stream_.mode == OUTPUT || stream_.mode == DUPLEX ) {
+ if ( stream_.mode == OUTPUT || stream_.mode == DUPLEX ) {
+ if (handle) {
+ AudioObjectPropertyAddress property = { kAudioHardwarePropertyDevices,
+ kAudioObjectPropertyScopeGlobal,
+ kAudioObjectPropertyElementMaster };
+
+ property.mSelector = kAudioDeviceProcessorOverload;
+ property.mScope = kAudioObjectPropertyScopeGlobal;
+ if (AudioObjectRemovePropertyListener( handle->id[0], &property, xrunListener, (void *) handle ) != noErr) {
+ errorText_ = "RtApiCore::closeStream(): error removing property listener!";
+ error( RtAudioError::WARNING );
+ }
+ }
if ( stream_.state == STREAM_RUNNING )
AudioDeviceStop( handle->id[0], callbackHandler );
#if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 )
@@ -1417,6 +1430,18 @@ void RtApiCore :: closeStream( void ) }
if ( stream_.mode == INPUT || ( stream_.mode == DUPLEX && stream_.device[0] != stream_.device[1] ) ) {
+ if (handle) {
+ AudioObjectPropertyAddress property = { kAudioHardwarePropertyDevices,
+ kAudioObjectPropertyScopeGlobal,
+ kAudioObjectPropertyElementMaster };
+
+ property.mSelector = kAudioDeviceProcessorOverload;
+ property.mScope = kAudioObjectPropertyScopeGlobal;
+ if (AudioObjectRemovePropertyListener( handle->id[1], &property, xrunListener, (void *) handle ) != noErr) {
+ errorText_ = "RtApiCore::closeStream(): error removing property listener!";
+ error( RtAudioError::WARNING );
+ }
+ }
if ( stream_.state == STREAM_RUNNING )
AudioDeviceStop( handle->id[1], callbackHandler );
#if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 )
|
