Minor documentation cleanups.
[pub/USBasp.git] / Projects / XPLAINBridge / Lib / LightweightRingBuff.h
index 16e890c..8026cef 100644 (file)
                #include <stdbool.h>\r
 \r
        /* Defines: */\r
-               /** Size of each ring buffer, in bytes */\r
+               /** Size of each ring buffer, in bytes. */\r
                #define BUFFER_SIZE      128\r
                \r
-               /** Type of data to store into the buffer */\r
+               /** Type of data to store into the buffer. */\r
                #define RingBuff_Data_t  uint8_t\r
 \r
        /* Type Defines: */\r
                        RingBuff_Data_t  Buffer[BUFFER_SIZE];\r
                        RingBuff_Data_t* In;\r
                        RingBuff_Data_t* Out;\r
+                       uint8_t          Count;\r
                } RingBuff_t;\r
        \r
        /* Inline Functions: */\r
                static inline void RingBuffer_InitBuffer(RingBuff_t* const Buffer)\r
                {\r
                        Buffer->In  = Buffer->Buffer;\r
-                       Buffer->Out = Buffer->Buffer;           \r
+                       Buffer->Out = Buffer->Buffer;\r
+                       Buffer->Count = 0;\r
                }\r
                \r
                static inline void RingBuffer_Insert(RingBuff_t* const Buffer, RingBuff_Data_t Data)\r
@@ -68,6 +70,8 @@
                \r
                        if (++Buffer->In == &Buffer->Buffer[BUFFER_SIZE])\r
                          Buffer->In = Buffer->Buffer;\r
+                         \r
+                       Buffer->Count++;\r
                }\r
 \r
                static inline RingBuff_Data_t RingBuffer_Remove(RingBuff_t* const Buffer)\r
                        if (++Buffer->Out == &Buffer->Buffer[BUFFER_SIZE])\r
                          Buffer->Out = Buffer->Buffer;\r
                          \r
-                       return Data;\r
-               }\r
+                       Buffer->Count--;\r
 \r
-               static inline bool RingBuffer_Empty(RingBuff_t* const Buffer)\r
-               {\r
-                       return (Buffer->In == Buffer->Out);\r
+                       return Data;\r
                }\r
 \r
 #endif\r