This commit is contained in:
twinaphex 2020-07-31 14:49:30 +02:00
parent 1f1571425a
commit c19ea3e8ab
1 changed files with 16 additions and 16 deletions

View File

@ -31,8 +31,8 @@ typedef struct ringbuffer
float *buffer; float *buffer;
size_t cap; size_t cap;
atomic_int len; atomic_int len;
size_t writePtr; size_t write_ptr;
size_t readPtr; size_t read_ptr;
} ringbuffer_t; } ringbuffer_t;
typedef ringbuffer_t * ringbuffer_h; typedef ringbuffer_t * ringbuffer_h;
@ -44,7 +44,7 @@ static inline size_t rb_len(ringbuffer_h r)
static inline size_t rb_cap(ringbuffer_h r) static inline size_t rb_cap(ringbuffer_h r)
{ {
return (r->readPtr + r->cap - r->writePtr) % r->cap; return (r->read_ptr + r->cap - r->write_ptr) % r->cap;
} }
static inline size_t rb_avail(ringbuffer_h r) static inline size_t rb_avail(ringbuffer_h r)
@ -54,17 +54,17 @@ static inline size_t rb_avail(ringbuffer_h r)
static inline void rb_advance_write(ringbuffer_h r) static inline void rb_advance_write(ringbuffer_h r)
{ {
r->writePtr = (r->writePtr + 1) % r->cap; r->write_ptr = (r->write_ptr + 1) % r->cap;
} }
static inline void rb_advance_write_n(ringbuffer_h r, size_t n) static inline void rb_advance_write_n(ringbuffer_h r, size_t n)
{ {
r->writePtr = (r->writePtr + n) % r->cap; r->write_ptr = (r->write_ptr + n) % r->cap;
} }
static inline void rb_advance_read(ringbuffer_h r) static inline void rb_advance_read(ringbuffer_h r)
{ {
r->readPtr = (r->readPtr + 1) % r->cap; r->read_ptr = (r->read_ptr + 1) % r->cap;
} }
static inline void rb_len_add(ringbuffer_h r, int n) static inline void rb_len_add(ringbuffer_h r, int n)
@ -79,11 +79,11 @@ static inline void rb_len_sub(ringbuffer_h r, int n)
static void rb_init(ringbuffer_h r, size_t cap) static void rb_init(ringbuffer_h r, size_t cap)
{ {
r->buffer = malloc(cap * sizeof(float)); r->buffer = malloc(cap * sizeof(float));
r->cap = cap; r->cap = cap;
atomic_init(&r->len, 0); atomic_init(&r->len, 0);
r->writePtr = 0; r->write_ptr = 0;
r->readPtr = 0; r->read_ptr = 0;
} }
static void rb_free(ringbuffer_h r) static void rb_free(ringbuffer_h r)
@ -102,13 +102,13 @@ static void rb_write_data(ringbuffer_h r, const float *data, size_t len)
size_t first_write = n; size_t first_write = n;
size_t rest_write = 0; size_t rest_write = 0;
if (r->writePtr + n > r->cap) if (r->write_ptr + n > r->cap)
{ {
first_write = r->cap - r->writePtr; first_write = r->cap - r->write_ptr;
rest_write = n - first_write; rest_write = n - first_write;
} }
memcpy(r->buffer + r->writePtr, data, first_write*sizeof(float)); memcpy(r->buffer + r->write_ptr, data, first_write*sizeof(float));
memcpy(r->buffer, data + first_write, rest_write*sizeof(float)); memcpy(r->buffer, data + first_write, rest_write*sizeof(float));
rb_advance_write_n(r, n); rb_advance_write_n(r, n);
@ -126,9 +126,9 @@ static void rb_read_data(ringbuffer_h r,
int i = 0; int i = 0;
for (; i < n/2; i++) for (; i < n/2; i++)
{ {
d0[i] = r->buffer[r->readPtr]; d0[i] = r->buffer[r->read_ptr];
rb_advance_read(r); rb_advance_read(r);
d1[i] = r->buffer[r->readPtr]; d1[i] = r->buffer[r->read_ptr];
rb_advance_read(r); rb_advance_read(r);
} }