diff options
author | Chris Robinson <[email protected]> | 2016-03-29 23:48:36 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2016-03-29 23:48:36 -0700 |
commit | d6163fe570e09a6fa65ef1f11eba3d6bcbd3aa9f (patch) | |
tree | cb3294fad1b8111f253eeac06115a660142394b6 /Alc/backends/coreaudio.c | |
parent | 2ccc1d1d8a6ecc5c025e99518038fcc7a001d949 (diff) |
Convert remaining ringbuffers to the lockless variant
Diffstat (limited to 'Alc/backends/coreaudio.c')
-rw-r--r-- | Alc/backends/coreaudio.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/Alc/backends/coreaudio.c b/Alc/backends/coreaudio.c index d9264217..4907f362 100644 --- a/Alc/backends/coreaudio.c +++ b/Alc/backends/coreaudio.c @@ -45,7 +45,7 @@ typedef struct { AudioBufferList *bufferList; // Buffer for data coming from the input device ALCvoid *resampleBuffer; // Buffer for returned RingBuffer data when resampling - RingBuffer *ring; + ll_ringbuffer_t *ring; } ca_data; static const ALCchar ca_device[] = "CoreAudio Default"; @@ -102,7 +102,7 @@ static OSStatus ca_capture_conversion_callback(AudioConverterRef inAudioConverte ca_data *data = (ca_data*)device->ExtraData; // Read from the ring buffer and store temporarily in a large buffer - ReadRingBuffer(data->ring, data->resampleBuffer, (ALsizei)(*ioNumberDataPackets)); + ll_ringbuffer_read(data->ring, data->resampleBuffer, *ioNumberDataPackets); // Set the input data ioData->mNumberBuffers = 1; @@ -130,7 +130,7 @@ static OSStatus ca_capture_callback(void *inRefCon, AudioUnitRenderActionFlags * return err; } - WriteRingBuffer(data->ring, data->bufferList->mBuffers[0].mData, inNumberFrames); + ll_ringbuffer_write(data->ring, data->bufferList->mBuffers[0].mData, inNumberFrames); return noErr; } @@ -586,16 +586,19 @@ static ALCenum ca_open_capture(ALCdevice *device, const ALCchar *deviceName) if(data->bufferList == NULL) goto error; - data->ring = CreateRingBuffer(data->frameSize, (device->UpdateSize * data->sampleRateRatio) * device->NumUpdates); - if(data->ring == NULL) - goto error; + data->ring = ll_ringbuffer_create( + device->UpdateSize*data->sampleRateRatio*device->NumUpdates + 1, + data->frameSize + ); + if(!data->ring) goto error; al_string_copy_cstr(&device->DeviceName, deviceName); return ALC_NO_ERROR; error: - DestroyRingBuffer(data->ring); + ll_ringbuffer_free(data->ring); + data->ring = NULL; free(data->resampleBuffer); destroy_buffer_list(data->bufferList); @@ -614,7 +617,8 @@ static void ca_close_capture(ALCdevice *device) { ca_data *data = (ca_data*)device->ExtraData; - DestroyRingBuffer(data->ring); + ll_ringbuffer_free(data->ring); + data->ring = NULL; free(data->resampleBuffer); destroy_buffer_list(data->bufferList); @@ -676,7 +680,7 @@ static ALCenum ca_capture_samples(ALCdevice *device, ALCvoid *buffer, ALCuint sa static ALCuint ca_available_samples(ALCdevice *device) { ca_data *data = device->ExtraData; - return RingBufferSize(data->ring) / data->sampleRateRatio; + return ll_ringbuffer_read_space(data->ring) / data->sampleRateRatio; } |