arduino-audio-tools
Loading...
Searching...
No Matches
RingBuffer< T > Class Template Referenceabstract

Implements a typed Ringbuffer. More...

#include <CodecOpusOgg.h>

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

Public Member Functions

 RingBuffer (int size, Allocator &allocator=DefaultAllocator)
 RingBuffer (int size, Allocator &allocator=DefaultAllocator)
virtual T * address () override
 returns the address of the start of the physical read buffer
virtual T * address () override
 returns the address of the start of the physical read buffer
virtual int available () override
 provides the number of entries that are available to read
virtual int available () override
 provides the number of entries that are available to read
virtual int availableForWrite () override
 provides the number of entries that are available to write
virtual int availableForWrite () override
 provides the number of entries that are available to write
virtual int bufferCountEmpty ()
 Provides the number of entries that are available to write: -1 does not apply.
virtual int bufferCountFilled ()
 Provides the number of entries that are available to read: -1 does not apply.
void clear ()
 same as reset
virtual int clearArray (int len)
 Removes the next len entries.
virtual void flush ()
virtual float freePercent ()
 Returns the free space of the buffer in %.
bool isEmpty ()
bool isEmpty ()
virtual bool isFull () override
 checks if the buffer is full
virtual bool isFull () override
 checks if the buffer is full
virtual float levelPercent ()
 Returns the level of the buffer in %.
virtual bool peek (uint8_t &result)=0
 peeks the actual entry from the buffer
bool peek (T &result) override
bool peek (T &result) override
virtual int peekArray (T *data, int n)
virtual int peekArray (T *data, int n)
virtual bool read (uint8_t &result)=0
 reads a single value
bool read (T &result) override
bool read (T &result) override
virtual int readArray (uint8_t data[], int len)
 reads multiple values
virtual int readArray (T data[], int len) override
virtual int readArray (T data[], int len) override
virtual void reset () override
 clears the buffer
virtual void reset () override
 clears the buffer
virtual bool resize (size_t len)
 Resizes the buffer if supported: returns false if not supported.
virtual bool resize (size_t len)
 Resizes the buffer if supported: returns false if not supported.
virtual size_t size () override
 Returns the maximum capacity of the buffer.
virtual size_t size () override
 Returns the maximum capacity of the buffer.
virtual bool write (uint8_t data)=0
 write add an entry to the buffer
virtual bool write (T data) override
virtual bool write (T data) override
virtual int writeArray (const uint8_t data[], int len)
 Fills the buffer data.
virtual int writeArray (const T data[], int len) override
virtual int writeArray (const T data[], int len) override
virtual int writeArrayOverwrite (const uint8_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)
int nextIndex (int index)

Protected Attributes

Allocator & _allocator
Vector< T > _aucBuffer {_allocator}
int _iHead
int _iTail
int _numElems
int max_size = 0

Detailed Description

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

Implements a typed Ringbuffer.

Template Parameters
T

Constructor & Destructor Documentation

◆ RingBuffer() [1/2]

template<typename T = uint8_t>
RingBuffer ( int size,
Allocator & allocator = DefaultAllocator )
inline

◆ RingBuffer() [2/2]

template<typename T = uint8_t>
RingBuffer ( int size,
Allocator & allocator = DefaultAllocator )
inline

Member Function Documentation

◆ address() [1/2]

template<typename T = uint8_t>
virtual T * address ( )
inlineoverridevirtual

returns the address of the start of the physical read buffer

Implements BaseBuffer< uint8_t >.

◆ address() [2/2]

template<typename T = uint8_t>
virtual T * address ( )
inlineoverridevirtual

returns the address of the start of the physical read buffer

Implements BaseBuffer< uint8_t >.

◆ available() [1/2]

template<typename T = uint8_t>
virtual int available ( )
inlineoverridevirtual

provides the number of entries that are available to read

Implements BaseBuffer< uint8_t >.

◆ available() [2/2]

template<typename T = uint8_t>
virtual int available ( )
inlineoverridevirtual

provides the number of entries that are available to read

Implements BaseBuffer< uint8_t >.

◆ availableForWrite() [1/2]

template<typename T = uint8_t>
virtual int availableForWrite ( )
inlineoverridevirtual

provides the number of entries that are available to write

Implements BaseBuffer< uint8_t >.

◆ availableForWrite() [2/2]

template<typename T = uint8_t>
virtual int availableForWrite ( )
inlineoverridevirtual

provides the number of entries that are available to write

Implements BaseBuffer< uint8_t >.

◆ bufferCountEmpty()

virtual int bufferCountEmpty ( )
inlinevirtualinherited

Provides the number of entries that are available to write: -1 does not apply.

Reimplemented in NBuffer< T >, NBuffer< T >, NBuffer< uint8_t >, NBuffer< T >, SynchronizedNBufferRTOST< uint8_t >, and SynchronizedNBufferZephyrT< uint8_t >.

◆ bufferCountFilled()

virtual int bufferCountFilled ( )
inlinevirtualinherited

Provides the number of entries that are available to read: -1 does not apply.

Reimplemented in NBuffer< T >, NBuffer< T >, NBuffer< uint8_t >, NBuffer< T >, SynchronizedNBufferRTOST< uint8_t >, and SynchronizedNBufferZephyrT< uint8_t >.

◆ clear()

void clear ( )
inlineinherited

same as reset

◆ clearArray()

virtual int clearArray ( int len)
inlinevirtualinherited

Removes the next len entries.

Reimplemented in SingleBuffer< T >, SingleBuffer< T >, SingleBuffer< uint8_t >, and SingleBuffer< T >.

◆ flush()

virtual void flush ( )
inlinevirtualinherited

Submit any partially-filled write buffer so the reader can access it. Only meaningful for NBuffer-style block pools; no-op for ring buffers.

Reimplemented in NBuffer< T >, NBuffer< T >, NBuffer< uint8_t >, and NBuffer< T >.

◆ freePercent()

virtual float freePercent ( )
inlinevirtualinherited

Returns the free space of the buffer in %.

◆ isEmpty() [1/2]

template<typename T = uint8_t>
bool isEmpty ( )
inline

◆ isEmpty() [2/2]

template<typename T = uint8_t>
bool isEmpty ( )
inline

◆ isFull() [1/2]

template<typename T = uint8_t>
virtual bool isFull ( )
inlineoverridevirtual

checks if the buffer is full

Reimplemented from BaseBuffer< uint8_t >.

◆ isFull() [2/2]

template<typename T = uint8_t>
virtual bool isFull ( )
inlineoverridevirtual

checks if the buffer is full

Reimplemented from BaseBuffer< uint8_t >.

◆ levelPercent()

virtual float levelPercent ( )
inlinevirtualinherited

Returns the level of the buffer in %.

Reimplemented in AdaptiveResamplingBuffer.

◆ nextIndex() [1/2]

template<typename T = uint8_t>
int nextIndex ( int index)
inlineprotected

◆ nextIndex() [2/2]

template<typename T = uint8_t>
int nextIndex ( int index)
inlineprotected

◆ peek() [1/3]

virtual bool peek ( uint8_t & result)
pure virtualinherited

◆ peek() [2/3]

template<typename T = uint8_t>
bool peek ( T & result)
inlineoverride

◆ peek() [3/3]

template<typename T = uint8_t>
bool peek ( T & result)
inlineoverride

◆ peekArray() [1/2]

template<typename T = uint8_t>
virtual int peekArray ( T * data,
int n )
inlinevirtual

◆ peekArray() [2/2]

template<typename T = uint8_t>
virtual int peekArray ( T * data,
int n )
inlinevirtual

◆ read() [1/3]

virtual bool read ( uint8_t & result)
pure virtualinherited

◆ read() [2/3]

template<typename T = uint8_t>
bool read ( T & result)
inlineoverride

◆ read() [3/3]

template<typename T = uint8_t>
bool read ( T & result)
inlineoverride

◆ readArray() [1/3]

virtual int readArray ( uint8_t data[],
int len )
inlinevirtualinherited

◆ readArray() [2/3]

template<typename T = uint8_t>
virtual int readArray ( T data[],
int len )
inlineoverridevirtual

◆ readArray() [3/3]

template<typename T = uint8_t>
virtual int readArray ( T data[],
int len )
inlineoverridevirtual

◆ reset() [1/2]

template<typename T = uint8_t>
virtual void reset ( )
inlineoverridevirtual

clears the buffer

Implements BaseBuffer< uint8_t >.

◆ reset() [2/2]

template<typename T = uint8_t>
virtual void reset ( )
inlineoverridevirtual

clears the buffer

Implements BaseBuffer< uint8_t >.

◆ resize() [1/2]

template<typename T = uint8_t>
virtual bool resize ( size_t bytes)
inlinevirtual

Resizes the buffer if supported: returns false if not supported.

Reimplemented from BaseBuffer< uint8_t >.

◆ resize() [2/2]

template<typename T = uint8_t>
virtual bool resize ( size_t bytes)
inlinevirtual

Resizes the buffer if supported: returns false if not supported.

Reimplemented from BaseBuffer< uint8_t >.

◆ size() [1/2]

template<typename T = uint8_t>
virtual size_t size ( )
inlineoverridevirtual

Returns the maximum capacity of the buffer.

Implements BaseBuffer< uint8_t >.

◆ size() [2/2]

template<typename T = uint8_t>
virtual size_t size ( )
inlineoverridevirtual

Returns the maximum capacity of the buffer.

Implements BaseBuffer< uint8_t >.

◆ write() [1/3]

virtual bool write ( uint8_t data)
pure virtualinherited

◆ write() [2/3]

template<typename T = uint8_t>
virtual bool write ( T data)
inlineoverridevirtual

◆ write() [3/3]

template<typename T = uint8_t>
virtual bool write ( T data)
inlineoverridevirtual

◆ writeArray() [1/3]

virtual int writeArray ( const uint8_t data[],
int len )
inlinevirtualinherited

◆ writeArray() [2/3]

template<typename T = uint8_t>
virtual int writeArray ( const T data[],
int len )
inlineoverridevirtual

◆ writeArray() [3/3]

template<typename T = uint8_t>
virtual int writeArray ( const T data[],
int len )
inlineoverridevirtual

◆ writeArrayOverwrite()

virtual int writeArrayOverwrite ( const uint8_t data[],
int len )
inlinevirtualinherited

Fills the buffer data and overwrites the oldest data if the buffer is full.

Member Data Documentation

◆ _allocator

template<typename T = uint8_t>
Allocator & _allocator
protected

◆ _aucBuffer

template<typename T = uint8_t>
Vector< T > _aucBuffer {_allocator}
protected

◆ _iHead

template<typename T = uint8_t>
int _iHead
protected

◆ _iTail

template<typename T = uint8_t>
int _iTail
protected

◆ _numElems

template<typename T = uint8_t>
int _numElems
protected

◆ max_size

template<typename T = uint8_t>
int max_size = 0
protected

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