@@ -3802,8 +3802,8 @@ static OSStatus BlackHole_DoIOOperation(AudioServerPlugInDriverRef inDriver, Aud
3802
3802
else
3803
3803
{
3804
3804
// 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 );
3807
3807
3808
3808
// Finally we'll apply the output volume to the buffer.
3809
3809
vDSP_vsmul (ioMainBuffer , 1 , & gVolume_Master_Value , ioMainBuffer , 1 , inIOBufferFrameSize * kNumber_Of_Channels );
@@ -3819,8 +3819,9 @@ static OSStatus BlackHole_DoIOOperation(AudioServerPlugInDriverRef inDriver, Aud
3819
3819
lastOutputSampleTime = inIOCycleInfo -> mOutputTime .mSampleTime ;
3820
3820
isBufferClear = false;
3821
3821
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 );
3824
3825
3825
3826
}
3826
3827
0 commit comments