#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
\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