arduino-audio-tools
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RingBuffer< T > Class Template Reference

Implements a typed Ringbuffer. More...

#include <Buffers.h>

Inheritance diagram for RingBuffer< T >:
BaseBuffer< T >

Public Member Functions

 RingBuffer (int size)
 
virtual T * address ()
 returns the address of the start of the physical read buffer
 
virtual int available ()
 provides the number of entries that are available to read
 
virtual int availableForWrite ()
 provides the number of entries that are available to write
 
void clear ()
 same as reset
 
virtual int clearArray (int len)
 Removes the next len entries.
 
bool isEmpty ()
 
virtual bool isFull ()
 checks if the buffer is full
 
virtual float levelPercent ()
 Returns the level of the buffer in %.
 
virtual T peek ()
 peeks the actual entry from the buffer
 
virtual int peekArray (T *data, int n)
 
virtual T read ()
 reads a single value
 
virtual int readArray (T data[], int len)
 reads multiple values
 
int readFrames (T data[][2], int len)
 reads multiple values for array of 2 dimensional frames
 
template<int rows, int channels>
int readFrames (T(&data)[rows][channels])
 
virtual void reset ()
 clears the buffer
 
virtual void resize (int len)
 
virtual size_t size ()
 Returns the maximum capacity of the buffer.
 
virtual bool write (T data)
 write add an entry to the buffer
 
virtual int writeArray (const T data[], int len)
 Fills the buffer data.
 
virtual int writeArrayOverwrite (const T data[], int len)
 Fills the buffer data and overwrites the oldest data if the buffer is full.
 

Protected Member Functions

int nextIndex (int index)
 
void setWritePos (int pos)
 

Protected Attributes

Vector< T > _aucBuffer
 
int _iHead
 
int _iTail
 
int _numElems
 
int max_size = 0
 
friend NBuffer< T >
 

Detailed Description

template<typename T>
class audio_tools::RingBuffer< T >

Implements a typed Ringbuffer.

Template Parameters
T

The documentation for this class was generated from the following file: