| @@ -1479,14 +1479,15 @@ void RtApiCore :: closeStream( void ) | |||
| error( RtAudioError::WARNING ); | |||
| } | |||
| } | |||
| if ( stream_.state == STREAM_RUNNING ) | |||
| AudioDeviceStop( handle->id[0], callbackHandler ); | |||
| if ( stream_.state == STREAM_RUNNING ) { | |||
| #if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) | |||
| AudioDeviceDestroyIOProcID( handle->id[0], handle->procId[0] ); | |||
| #else | |||
| // deprecated in favor of AudioDeviceDestroyIOProcID() | |||
| AudioDeviceRemoveIOProc( handle->id[0], callbackHandler ); | |||
| AudioDeviceStop( handle->id[0], handle->procId[0] ); | |||
| AudioDeviceDestroyIOProcID( handle->id[0], handle->procId[0] ); | |||
| #else // deprecated behaviour | |||
| AudioDeviceStop( handle->id[0], callbackHandler ); | |||
| AudioDeviceRemoveIOProc( handle->id[0], callbackHandler ); | |||
| #endif | |||
| } | |||
| } | |||
| if ( stream_.mode == INPUT || ( stream_.mode == DUPLEX && stream_.device[0] != stream_.device[1] ) ) { | |||
| @@ -1502,14 +1503,15 @@ void RtApiCore :: closeStream( void ) | |||
| error( RtAudioError::WARNING ); | |||
| } | |||
| } | |||
| if ( stream_.state == STREAM_RUNNING ) | |||
| AudioDeviceStop( handle->id[1], callbackHandler ); | |||
| if ( stream_.state == STREAM_RUNNING ) { | |||
| #if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) | |||
| AudioDeviceDestroyIOProcID( handle->id[1], handle->procId[1] ); | |||
| #else | |||
| // deprecated in favor of AudioDeviceDestroyIOProcID() | |||
| AudioDeviceRemoveIOProc( handle->id[1], callbackHandler ); | |||
| AudioDeviceStop( handle->id[1], handle->procId[1] ); | |||
| AudioDeviceDestroyIOProcID( handle->id[1], handle->procId[1] ); | |||
| #else // deprecated behaviour | |||
| AudioDeviceStop( handle->id[1], callbackHandler ); | |||
| AudioDeviceRemoveIOProc( handle->id[1], callbackHandler ); | |||
| #endif | |||
| } | |||
| } | |||
| for ( int i=0; i<2; i++ ) { | |||
| @@ -1542,15 +1544,19 @@ void RtApiCore :: startStream( void ) | |||
| return; | |||
| } | |||
| #if defined( HAVE_GETTIMEOFDAY ) | |||
| #if defined( HAVE_GETTIMEOFDAY ) | |||
| gettimeofday( &stream_.lastTickTimestamp, NULL ); | |||
| #endif | |||
| #endif | |||
| OSStatus result = noErr; | |||
| CoreHandle *handle = (CoreHandle *) stream_.apiHandle; | |||
| if ( stream_.mode == OUTPUT || stream_.mode == DUPLEX ) { | |||
| #if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) | |||
| result = AudioDeviceStart( handle->id[0], handle->procId[0] ); | |||
| #else // deprecated behaviour | |||
| result = AudioDeviceStart( handle->id[0], callbackHandler ); | |||
| #endif | |||
| if ( result != noErr ) { | |||
| errorStream_ << "RtApiCore::startStream: system error (" << getErrorCode( result ) << ") starting callback procedure on device (" << stream_.device[0] << ")."; | |||
| errorText_ = errorStream_.str(); | |||
| @@ -1561,7 +1567,11 @@ void RtApiCore :: startStream( void ) | |||
| if ( stream_.mode == INPUT || | |||
| ( stream_.mode == DUPLEX && stream_.device[0] != stream_.device[1] ) ) { | |||
| #if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) | |||
| result = AudioDeviceStart( handle->id[1], handle->procId[1] ); | |||
| #else // deprecated behaviour | |||
| result = AudioDeviceStart( handle->id[1], callbackHandler ); | |||
| #endif | |||
| if ( result != noErr ) { | |||
| errorStream_ << "RtApiCore::startStream: system error starting input callback procedure on device (" << stream_.device[1] << ")."; | |||
| errorText_ = errorStream_.str(); | |||
| @@ -1596,7 +1606,11 @@ void RtApiCore :: stopStream( void ) | |||
| pthread_cond_wait( &handle->condition, &stream_.mutex ); // block until signaled | |||
| } | |||
| #if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) | |||
| result = AudioDeviceStop( handle->id[0], handle->procId[0] ); | |||
| #else // deprecated behaviour | |||
| result = AudioDeviceStop( handle->id[0], callbackHandler ); | |||
| #endif | |||
| if ( result != noErr ) { | |||
| errorStream_ << "RtApiCore::stopStream: system error (" << getErrorCode( result ) << ") stopping callback procedure on device (" << stream_.device[0] << ")."; | |||
| errorText_ = errorStream_.str(); | |||
| @@ -1606,7 +1620,11 @@ void RtApiCore :: stopStream( void ) | |||
| if ( stream_.mode == INPUT || ( stream_.mode == DUPLEX && stream_.device[0] != stream_.device[1] ) ) { | |||
| #if defined( MAC_OS_X_VERSION_10_5 ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) | |||
| result = AudioDeviceStop( handle->id[0], handle->procId[1] ); | |||
| #else // deprecated behaviour | |||
| result = AudioDeviceStop( handle->id[1], callbackHandler ); | |||
| #endif | |||
| if ( result != noErr ) { | |||
| errorStream_ << "RtApiCore::stopStream: system error (" << getErrorCode( result ) << ") stopping input callback procedure on device (" << stream_.device[1] << ")."; | |||
| errorText_ = errorStream_.str(); | |||