@@ -3802,8 +3802,8 @@ static OSStatus BlackHole_DoIOOperation(AudioServerPlugInDriverRef inDriver, Aud
38023802 else
38033803 {
38043804 // Copy the buffers.
3805- memcpy ( ioMainBuffer , (( void * ) gRingBuffer ) + ringBufferFrameLocationStart * kNumber_Of_Channels * sizeof ( Float32 ), firstPartFrameSize * kNumber_Of_Channels * sizeof ( Float32 ) );
3806- memcpy ( ioMainBuffer + firstPartFrameSize * kNumber_Of_Channels * sizeof (Float32 ), gRingBuffer , secondPartFrameSize * kNumber_Of_Channels * sizeof ( Float32 ) );
3805+ cblas_scopy ( firstPartFrameSize * kNumber_Of_Channels , gRingBuffer + ringBufferFrameLocationStart * kNumber_Of_Channels , 1 , ioMainBuffer , 1 );
3806+ cblas_scopy ( secondPartFrameSize * kNumber_Of_Channels , gRingBuffer , 1 , (Float32 * ) ioMainBuffer + firstPartFrameSize * kNumber_Of_Channels , 1 );
38073807
38083808 // Finally we'll apply the output volume to the buffer.
38093809 vDSP_vsmul (ioMainBuffer , 1 , & gVolume_Master_Value , ioMainBuffer , 1 , inIOBufferFrameSize * kNumber_Of_Channels );
@@ -3819,8 +3819,9 @@ static OSStatus BlackHole_DoIOOperation(AudioServerPlugInDriverRef inDriver, Aud
38193819 lastOutputSampleTime = inIOCycleInfo -> mOutputTime .mSampleTime ;
38203820 isBufferClear = false;
38213821
3822- memcpy (((void * )gRingBuffer ) + ringBufferFrameLocationStart * kNumber_Of_Channels * sizeof (Float32 ), ioMainBuffer , firstPartFrameSize * kNumber_Of_Channels * sizeof (Float32 ));
3823- memcpy (gRingBuffer , ioMainBuffer + firstPartFrameSize * kNumber_Of_Channels * sizeof (Float32 ), secondPartFrameSize * kNumber_Of_Channels * sizeof (Float32 ));
3822+ // Copy the buffers.
3823+ cblas_scopy (firstPartFrameSize * kNumber_Of_Channels , ioMainBuffer , 1 , gRingBuffer + ringBufferFrameLocationStart * kNumber_Of_Channels , 1 );
3824+ cblas_scopy (secondPartFrameSize * kNumber_Of_Channels , (Float32 * )ioMainBuffer + firstPartFrameSize * kNumber_Of_Channels , 1 , gRingBuffer , 1 );
38243825
38253826 }
38263827
0 commit comments