OpenWareLaboratory
CrossFadingCircularBuffer< T > Class Template Reference
Inheritance diagram for CrossFadingCircularBuffer< T >:
Collaboration diagram for CrossFadingCircularBuffer< T >:

Public Member Functions

void clear ()
 
 CrossFadingCircularBuffer ()
 
 CrossFadingCircularBuffer (T *data, size_t size, FloatArray buffer)
 
void delay (T *in, T *out, size_t len, int beginDelay, int endDelay)
 Write to buffer and read with a delay. More...
 
void delay (T *in, T *out, size_t len, int delay_samples)
 Write to buffer and read with a delay. More...
 
void delay (T *out, size_t len, int beginDelay, int endDelay)
 Read from buffer with a delay. More...
 
void delay (T *out, size_t len, int delay_samples)
 Read from buffer with a delay. More...
 
size_t getContiguousReadCapacity () const
 
size_t getContiguousWriteCapacity () const
 
T * getData ()
 
size_t getDelay () const
 Get the read index expressed as delay behind the write index. More...
 
size_t getReadCapacity () const
 
T * getReadHead ()
 
size_t getReadIndex ()
 
size_t getSize () const
 
size_t getWriteCapacity () const
 
T * getWriteHead ()
 
size_t getWriteIndex ()
 
bool isEmpty () const
 
bool isFull () const
 
void moveReadHead (int32_t samples)
 
void moveWriteHead (int32_t samples)
 
void overdub (T c)
 
void overdubAt (size_t index, T value)
 
read ()
 
void read (T *dst, size_t len)
 
readAt (size_t index)
 
void reset ()
 
void setAll (const T value)
 
void setData (T *data, size_t len)
 
void setDelay (int samples)
 Set the read index. More...
 
void setReadIndex (size_t pos)
 
void setWriteIndex (size_t pos)
 
void skipUntilLast (char c)
 
void write (T *source, size_t len)
 
void write (T c)
 
void writeAt (size_t index, T value)
 

Static Public Member Functions

static CircularBuffer< T > * create (size_t len)
 
static CrossFadingCircularBuffer< T > * create (size_t len, size_t blocksize)
 
static void destroy (CircularBuffer< T > *obj)
 
static void destroy (CrossFadingCircularBuffer< T > *obj)
 

Protected Attributes

FloatArray buffer
 
T * data
 
bool empty
 
size_t readpos
 
size_t size
 
size_t writepos
 

Detailed Description

template<typename T>
class CrossFadingCircularBuffer< T >

Definition at line 8 of file CrossFadingCircularBuffer.h.

Constructor & Destructor Documentation

◆ CrossFadingCircularBuffer() [1/2]

template<typename T >
CrossFadingCircularBuffer< T >::CrossFadingCircularBuffer ( )
inline

Definition at line 12 of file CrossFadingCircularBuffer.h.

◆ CrossFadingCircularBuffer() [2/2]

template<typename T >
CrossFadingCircularBuffer< T >::CrossFadingCircularBuffer ( T *  data,
size_t  size,
FloatArray  buffer 
)
inline

Definition at line 13 of file CrossFadingCircularBuffer.h.

Member Function Documentation

◆ clear()

void CircularBuffer< T , size_t >::clear ( )
inlineinherited

Definition at line 220 of file CircularBuffer.h.

◆ create() [1/2]

static CircularBuffer<T >* CircularBuffer< T , size_t >::create ( size_t  len)
inlinestaticinherited

Definition at line 224 of file CircularBuffer.h.

◆ create() [2/2]

template<typename T >
static CrossFadingCircularBuffer<T>* CrossFadingCircularBuffer< T >::create ( size_t  len,
size_t  blocksize 
)
inlinestatic

◆ delay() [1/4]

template<typename T >
void CrossFadingCircularBuffer< T >::delay ( T *  in,
T *  out,
size_t  len,
int  beginDelay,
int  endDelay 
)
inline

Write to buffer and read with a delay.

Definition at line 46 of file CrossFadingCircularBuffer.h.

References CrossFadingCircularBuffer< T >::delay(), and CircularBuffer< DataType, IndexType >::write().

◆ delay() [2/4]

template<typename T >
void CrossFadingCircularBuffer< T >::delay ( T *  in,
T *  out,
size_t  len,
int  delay_samples 
)
inline

Write to buffer and read with a delay.

Definition at line 25 of file CrossFadingCircularBuffer.h.

References CrossFadingCircularBuffer< T >::delay(), and CircularBuffer< DataType, IndexType >::write().

◆ delay() [3/4]

template<typename T >
void CrossFadingCircularBuffer< T >::delay ( T *  out,
size_t  len,
int  beginDelay,
int  endDelay 
)
inline

◆ delay() [4/4]

template<typename T >
void CrossFadingCircularBuffer< T >::delay ( T *  out,
size_t  len,
int  delay_samples 
)
inline

Read from buffer with a delay.

The output will be crossfaded between the previous delay time and the new one.

Definition at line 19 of file CrossFadingCircularBuffer.h.

Referenced by CrossFadingCircularBuffer< T >::delay(), and CrossFadingDelayProcessor::process().

◆ destroy() [1/2]

static void CircularBuffer< T , size_t >::destroy ( CircularBuffer< T > *  obj)
inlinestaticinherited

Definition at line 230 of file CircularBuffer.h.

◆ destroy() [2/2]

template<typename T >
static void CrossFadingCircularBuffer< T >::destroy ( CrossFadingCircularBuffer< T > *  obj)
inlinestatic

◆ getContiguousReadCapacity()

size_t CircularBuffer< T , size_t >::getContiguousReadCapacity ( ) const
inlineinherited

Definition at line 203 of file CircularBuffer.h.

◆ getContiguousWriteCapacity()

size_t CircularBuffer< T , size_t >::getContiguousWriteCapacity ( ) const
inlineinherited

Definition at line 196 of file CircularBuffer.h.

◆ getData()

T * CircularBuffer< T , size_t >::getData ( )
inlineinherited

Definition at line 32 of file CircularBuffer.h.

◆ getDelay()

size_t CircularBuffer< T , size_t >::getDelay ( ) const
inlineinherited

Get the read index expressed as delay behind the write index.

Definition at line 175 of file CircularBuffer.h.

◆ getReadCapacity()

size_t CircularBuffer< T , size_t >::getReadCapacity ( ) const
inlineinherited

Definition at line 188 of file CircularBuffer.h.

◆ getReadHead()

T * CircularBuffer< T , size_t >::getReadHead ( )
inlineinherited

Definition at line 155 of file CircularBuffer.h.

◆ getReadIndex()

size_t CircularBuffer< T , size_t >::getReadIndex ( )
inlineinherited

Definition at line 147 of file CircularBuffer.h.

◆ getSize()

size_t CircularBuffer< T , size_t >::getSize ( ) const
inlineinherited

Definition at line 28 of file CircularBuffer.h.

◆ getWriteCapacity()

size_t CircularBuffer< T , size_t >::getWriteCapacity ( ) const
inlineinherited

Definition at line 192 of file CircularBuffer.h.

◆ getWriteHead()

T * CircularBuffer< T , size_t >::getWriteHead ( )
inlineinherited

Definition at line 137 of file CircularBuffer.h.

◆ getWriteIndex()

size_t CircularBuffer< T , size_t >::getWriteIndex ( )
inlineinherited

Definition at line 129 of file CircularBuffer.h.

◆ isEmpty()

bool CircularBuffer< T , size_t >::isEmpty ( ) const
inlineinherited

Definition at line 36 of file CircularBuffer.h.

◆ isFull()

bool CircularBuffer< T , size_t >::isFull ( ) const
inlineinherited

Definition at line 40 of file CircularBuffer.h.

◆ moveReadHead()

void CircularBuffer< T , size_t >::moveReadHead ( int32_t  samples)
inlineinherited

Definition at line 159 of file CircularBuffer.h.

◆ moveWriteHead()

void CircularBuffer< T , size_t >::moveWriteHead ( int32_t  samples)
inlineinherited

Definition at line 141 of file CircularBuffer.h.

◆ overdub()

void CircularBuffer< T , size_t >::overdub ( c)
inlineinherited

Definition at line 71 of file CircularBuffer.h.

◆ overdubAt()

void CircularBuffer< T , size_t >::overdubAt ( size_t  index,
value 
)
inlineinherited

Definition at line 78 of file CircularBuffer.h.

◆ read() [1/2]

T CircularBuffer< T , size_t >::read ( )
inlineinherited

Definition at line 82 of file CircularBuffer.h.

◆ read() [2/2]

void CircularBuffer< T , size_t >::read ( T *  dst,
size_t  len 
)
inlineinherited

Definition at line 91 of file CircularBuffer.h.

◆ readAt()

T CircularBuffer< T , size_t >::readAt ( size_t  index)
inlineinherited

Definition at line 106 of file CircularBuffer.h.

◆ reset()

void CircularBuffer< T , size_t >::reset ( )
inlineinherited

Definition at line 215 of file CircularBuffer.h.

◆ setAll()

void CircularBuffer< T , size_t >::setAll ( const T  value)
inlineinherited

Definition at line 210 of file CircularBuffer.h.

◆ setData()

void CircularBuffer< T , size_t >::setData ( T *  data,
size_t  len 
)
inlineinherited

Definition at line 23 of file CircularBuffer.h.

◆ setDelay()

void CircularBuffer< T , size_t >::setDelay ( int  samples)
inlineinherited

Set the read index.

Parameters
samplesbehind the write index.

Definition at line 168 of file CircularBuffer.h.

◆ setReadIndex()

void CircularBuffer< T , size_t >::setReadIndex ( size_t  pos)
inlineinherited

Definition at line 151 of file CircularBuffer.h.

◆ setWriteIndex()

void CircularBuffer< T , size_t >::setWriteIndex ( size_t  pos)
inlineinherited

Definition at line 133 of file CircularBuffer.h.

◆ skipUntilLast()

void CircularBuffer< T , size_t >::skipUntilLast ( char  c)
inlineinherited

Definition at line 110 of file CircularBuffer.h.

◆ write() [1/2]

void CircularBuffer< T , size_t >::write ( T *  source,
size_t  len 
)
inlineinherited

Definition at line 52 of file CircularBuffer.h.

◆ write() [2/2]

void CircularBuffer< T , size_t >::write ( c)
inlineinherited

Definition at line 44 of file CircularBuffer.h.

◆ writeAt()

void CircularBuffer< T , size_t >::writeAt ( size_t  index,
value 
)
inlineinherited

Definition at line 67 of file CircularBuffer.h.

Field Documentation

◆ buffer

template<typename T >
FloatArray CrossFadingCircularBuffer< T >::buffer
protected

◆ data

T * CircularBuffer< T , size_t >::data
protectedinherited

Definition at line 14 of file CircularBuffer.h.

◆ empty

bool CircularBuffer< T , size_t >::empty
protectedinherited

Definition at line 18 of file CircularBuffer.h.

◆ readpos

size_t CircularBuffer< T , size_t >::readpos
protectedinherited

Definition at line 17 of file CircularBuffer.h.

◆ size

size_t CircularBuffer< T , size_t >::size
protectedinherited

Definition at line 15 of file CircularBuffer.h.

◆ writepos

size_t CircularBuffer< T , size_t >::writepos
protectedinherited

Definition at line 16 of file CircularBuffer.h.


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