sdf
Dependencies: AvailableMemory mbed-rtos mbed
Diff: RingBuffer.cpp
- Revision:
- 0:1c8f2727e9f5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RingBuffer.cpp Thu Apr 03 22:56:32 2014 +0000 @@ -0,0 +1,35 @@ +#include "RingBuffer.h" + +void RingBuffer::insert(int sample){ + if((end+1)%bufSize==start){ + start=(start+1)%bufSize; + cur=start; + count--; + } + buf[end]=sample; + end=(end+1)%bufSize; + count++; +} + +int RingBuffer::next(){ + int ret=buf[cur]; + cur=(cur+1)%bufSize; + if ((cur >= end) && (count < bufSize)) cur = start; + return ret; +} + +void RingBuffer::dump(FILE *fp)const{ + if(!fp){ + int i=start; + while(i!=end){ + printf("%d\r\n", buf[i]); + i=(i+1)%bufSize; + } + }else{ + int i=start; + while(i!=end){ + fprintf(fp, "%d\r\n", buf[i]); + i=(i+1)%bufSize; + } + } +} \ No newline at end of file