From 429ced0c475e3412a2081c1210b0080755c86f35 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 24 Apr 2022 17:56:05 +0200 Subject: [PATCH] add: two flags for ringbuffer --- ringbuffer.c | 5 +++++ ringbuffer.h | 3 +++ 2 files changed, 8 insertions(+) diff --git a/ringbuffer.c b/ringbuffer.c index e95fc4c..c90bbe2 100644 --- a/ringbuffer.c +++ b/ringbuffer.c @@ -4,6 +4,8 @@ void initRingbuffer(ringbuffer *buf, int size) { + buf->full = false; + buf->finish = false; buf->count = 0; buf->tail = 0; buf->head = 0; @@ -21,6 +23,7 @@ void addValue(ringbuffer *buf, int value) { if (buf->count >= buf->max) { buf->count = buf->max; + buf->full = true; buf->tail++; } @@ -37,6 +40,8 @@ void addValue(ringbuffer *buf, int value) int getValue(ringbuffer *buf) { + if (buf->full) + buf->full = false; if (buf->tail >= buf->max) buf->tail = 0; diff --git a/ringbuffer.h b/ringbuffer.h index f16e67b..39915a1 100644 --- a/ringbuffer.h +++ b/ringbuffer.h @@ -1,7 +1,10 @@ #ifndef RINGBUFFER_H #define RINGBUFFER_H +#include typedef struct { + bool full; + bool finish; int count; int tail; int head; -- 2.39.5