aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/coreaudio.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-03-29 23:48:36 -0700
committerChris Robinson <[email protected]>2016-03-29 23:48:36 -0700
commitd6163fe570e09a6fa65ef1f11eba3d6bcbd3aa9f (patch)
treecb3294fad1b8111f253eeac06115a660142394b6 /Alc/backends/coreaudio.c
parent2ccc1d1d8a6ecc5c025e99518038fcc7a001d949 (diff)
Convert remaining ringbuffers to the lockless variant
Diffstat (limited to 'Alc/backends/coreaudio.c')
-rw-r--r--Alc/backends/coreaudio.c22
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;
}