JackTrip
|
Same as RingBuffer, except that it uses the Wavetable mode for lost or late packets. More...
#include <RingBufferWavetable.h>
Public Member Functions | |
RingBufferWavetable (int SlotSize, int NumSlots) | |
The class constructor. More... | |
virtual | ~RingBufferWavetable () |
The class destructor. More... | |
![]() | |
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... | |
![]() | |
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 | |
![]() | |
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_t * | mRingBuffer |
8-bit array of data (1-byte) More... | |
int8_t * | mLastReadSlot |
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 |
Same as RingBuffer, except that it uses the Wavetable mode for lost or late packets.
|
inline |
The class constructor.
SlotSize | Size of one slot in bytes |
NumSlots | Number of slots |
|
inlinevirtual |
The class destructor.
|
inlineprotectedvirtual |
Sets the memory in the Read Slot when uderrun occurs. This loops as a wavetable in the last received packet.
ptrToReadSlot | Pointer to read slot from the RingBuffer |
Reimplemented from RingBuffer.