Files
iot_skeleton/esp32/main/ringbuf.cpp

22 lines
461 B
C++

#include "ringbuf.h"
void ringbuf_init(ringbuf_t *rb) {
rb->head = 0;
for (int i = 0; i < RINGBUF_SIZE; i++) {
rb->values[i] = 0;
}
}
void ringbuf_push(ringbuf_t *rb, int v) {
rb->values[rb->head] = v;
rb->head = (rb->head + 1) % RINGBUF_SIZE;
}
void ringbuf_copy(const ringbuf_t *rb, int *out) {
int idx = rb->head;
for (int i = 0; i < RINGBUF_SIZE; i++) {
out[i] = rb->values[(idx + i) % RINGBUF_SIZE];
}
}