Audacity  2.2.0
AudioIO::ScrubQueue Struct Reference

Classes

struct  Duration
 
struct  Entry
 

Public Member Functions

 ScrubQueue (double t0, double t1, wxLongLong startClockMillis, double rate, long maxDebt, const ScrubbingOptions &options)
 
 ~ScrubQueue ()
 
double LastTimeInQueue () const
 
void Nudge ()
 
bool Producer (double end, const ScrubbingOptions &options)
 
void Transformer (sampleCount &startSample, sampleCount &endSample, sampleCount &duration, Maybe< wxMutexLocker > &cleanup)
 
double Consumer (unsigned long frames)
 

Private Types

enum  { Size = 10 }
 

Private Attributes

Entry mEntries [Size]
 
unsigned mTrailingIdx
 
unsigned mMiddleIdx
 
unsigned mLeadingIdx
 
const double mRate
 
wxLongLong mLastScrubTimeMillis
 
wxLongLong mLastTransformerTimeMillis { -1LL }
 
sampleCount mCredit { 0 }
 
sampleCount mDebt { 0 }
 
const long mMaxDebt
 
wxMutex mUpdating
 
wxCondition mAvailable { mUpdating }
 
bool mNudged { false }
 

Member Enumeration Documentation

anonymous enum
private
Enumerator
Size 

Constructor & Destructor Documentation

AudioIO::ScrubQueue::ScrubQueue ( double  t0,
double  t1,
wxLongLong  startClockMillis,
double  rate,
long  maxDebt,
const ScrubbingOptions options 
)
inline
AudioIO::ScrubQueue::~ScrubQueue ( )
inline

Member Function Documentation

double AudioIO::ScrubQueue::LastTimeInQueue ( ) const
inline
void AudioIO::ScrubQueue::Nudge ( )
inline

References mAvailable, mNudged, and mUpdating.

void AudioIO::ScrubQueue::Transformer ( sampleCount &  startSample,
sampleCount &  endSample,
sampleCount &  duration,
Maybe< wxMutexLocker > &  cleanup 
)
inline

Member Data Documentation

wxCondition AudioIO::ScrubQueue::mAvailable { mUpdating }
mutableprivate

Referenced by Nudge(), Producer(), and Transformer().

sampleCount AudioIO::ScrubQueue::mCredit { 0 }
private

Referenced by Transformer().

sampleCount AudioIO::ScrubQueue::mDebt { 0 }
private

Referenced by Transformer().

Entry AudioIO::ScrubQueue::mEntries[Size]
private
wxLongLong AudioIO::ScrubQueue::mLastScrubTimeMillis
private
wxLongLong AudioIO::ScrubQueue::mLastTransformerTimeMillis { -1LL }
private

Referenced by Transformer().

unsigned AudioIO::ScrubQueue::mLeadingIdx
private
const long AudioIO::ScrubQueue::mMaxDebt
private

Referenced by Transformer().

unsigned AudioIO::ScrubQueue::mMiddleIdx
private

Referenced by Consumer(), and Transformer().

bool AudioIO::ScrubQueue::mNudged { false }
private

Referenced by Nudge(), and Transformer().

const double AudioIO::ScrubQueue::mRate
private
unsigned AudioIO::ScrubQueue::mTrailingIdx
private

Referenced by Consumer(), and Producer().

wxMutex AudioIO::ScrubQueue::mUpdating
mutableprivate

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