JackTrip
Public Member Functions | Protected Member Functions | List of all members
RingBufferWavetable Class Reference

Same as RingBuffer, except that it uses the Wavetable mode for lost or late packets. More...

#include <RingBufferWavetable.h>

Inheritance diagram for RingBufferWavetable:
Inheritance graph
[legend]
Collaboration diagram for RingBufferWavetable:
Collaboration graph
[legend]

Public Member Functions

 RingBufferWavetable (int SlotSize, int NumSlots)
 The class constructor. More...
 
virtual ~RingBufferWavetable ()
 The class destructor. More...
 
- Public Member Functions inherited from RingBuffer
 RingBuffer (int SlotSize, int NumSlots)
 The class constructor. More...
 
virtual ~RingBuffer ()
 The class destructor. More...
 
void insertSlotBlocking (const int8_t *ptrToSlot)
 Insert a slot into the RingBuffer from ptrToSlot. This method will block until there's space in the buffer. More...
 
void readSlotBlocking (int8_t *ptrToReadSlot)
 Read a slot from the RingBuffer into ptrToReadSlot. This method will block until there's space in the buffer. More...
 
virtual bool insertSlotNonBlocking (const int8_t *ptrToSlot, int len, int lostLen)
 Same as insertSlotBlocking but non-blocking (asynchronous) More...
 
virtual void readSlotNonBlocking (int8_t *ptrToReadSlot)
 Same as readSlotBlocking but non-blocking (asynchronous) More...
 
virtual void readBroadcastSlot (int8_t *ptrToReadSlot)
 
virtual bool getStats (IOStat *stat, bool reset)
 

Protected Member Functions

virtual void setUnderrunReadSlot (int8_t *ptrToReadSlot)
 Sets the memory in the Read Slot when uderrun occurs. This loops as a wavetable in the last received packet. More...
 
- Protected Member Functions inherited from RingBuffer
virtual void setMemoryInReadSlotWithLastReadSlot (int8_t *ptrToReadSlot)
 Uses the last read slot to set the memory in the Read Slot. More...
 
void underrunReset ()
 Resets the ring buffer for reads under-runs non-blocking. More...
 
void overflowReset ()
 Resets the ring buffer for writes over-flows non-blocking. More...
 
void debugDump () const
 Helper method to debug, prints member variables to terminal. More...
 
void updateReadStats ()
 

Additional Inherited Members

- Protected Attributes inherited from RingBuffer
int mSlotSize
 The size of one slot in byes. More...
 
int mNumSlots
 Number of Slots. More...
 
int mTotalSize
 Total size of the mRingBuffer = mSlotSize*mNumSlotss. More...
 
uint32_t mReadPosition
 Read Positions in the RingBuffer (Tail) More...
 
uint32_t mWritePosition
 Write Position in the RingBuffer (Head) More...
 
int mFullSlots
 Number of used (full) slots, in slot-size. More...
 
int8_tmRingBuffer
 8-bit array of data (1-byte) More...
 
int8_tmLastReadSlot
 Last slot read. More...
 
QMutex mMutex
 Mutex to protect read and write operations. More...
 
QWaitCondition mBufferIsNotFull
 Buffer not full condition to monitor threads. More...
 
QWaitCondition mBufferIsNotEmpty
 Buffer not empty condition to monitor threads. More...
 
int mStatUnit
 
uint32_t mUnderruns
 
uint32_t mOverflows
 
int32_t mSkewRaw
 
double mLevelCur
 
double mLevelDownRate
 
int32_t mLevel
 
uint32_t mBufDecOverflow
 
uint32_t mBufDecPktLoss
 
uint32_t mBufIncUnderrun
 
uint32_t mBufIncCompensate
 
uint32_t mReadsNew
 
uint32_t mUnderrunsNew
 
int32_t mSkew0
 
int32_t mBroadcastSkew
 
int32_t mBroadcastDelta
 

Detailed Description

Same as RingBuffer, except that it uses the Wavetable mode for lost or late packets.

Constructor & Destructor Documentation

◆ RingBufferWavetable()

RingBufferWavetable::RingBufferWavetable ( int  SlotSize,
int  NumSlots 
)
inline

The class constructor.

Parameters
SlotSizeSize of one slot in bytes
NumSlotsNumber of slots

◆ ~RingBufferWavetable()

virtual RingBufferWavetable::~RingBufferWavetable ( )
inlinevirtual

The class destructor.

Member Function Documentation

◆ setUnderrunReadSlot()

virtual void RingBufferWavetable::setUnderrunReadSlot ( int8_t ptrToReadSlot)
inlineprotectedvirtual

Sets the memory in the Read Slot when uderrun occurs. This loops as a wavetable in the last received packet.

Parameters
ptrToReadSlotPointer to read slot from the RingBuffer

Reimplemented from RingBuffer.


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