20 lines
420 B
C
20 lines
420 B
C
#ifndef RINGBUFFER_H
|
|
#define RINGBUFFER_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdatomic.h>
|
|
|
|
typedef struct {
|
|
atomic_size_t head;
|
|
atomic_size_t tail;
|
|
size_t capacity;
|
|
float *buf;
|
|
} RingBuf;
|
|
|
|
int ring_init(RingBuf *r, size_t capacity);
|
|
void ring_destroy(RingBuf *r);
|
|
size_t ring_write(RingBuf *r, const float *data, size_t count);
|
|
size_t ring_read(RingBuf *r, float *data, size_t count);
|
|
|
|
#endif
|