]> gitweb.hhaalo.de Git - ringbuffer.git/commitdiff
add: two flags for ringbuffer
authorBastian Dehn <hhaalo@arcor.de>
Sun, 24 Apr 2022 15:56:05 +0000 (17:56 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 24 Apr 2022 15:56:05 +0000 (17:56 +0200)
ringbuffer.c
ringbuffer.h

index e95fc4c8e2a09c52320170e016ec3afc17f42e7a..c90bbe2ce41dbde08948a18fa376f51e5c9966d5 100644 (file)
@@ -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;
index f16e67b3a72cae248d57b52581aa05bfb90a67dc..39915a14fd7b955325459b5028032c13c9f2382f 100644 (file)
@@ -1,7 +1,10 @@
 #ifndef RINGBUFFER_H
 #define RINGBUFFER_H
+#include <stdbool.h>
 
 typedef struct {
+       bool full;
+       bool finish;
        int count;
        int tail;
        int head;