1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-02 08:59:28 +02:00

FillBuffers won't quit too early priming the RingBuffer for scrub

This commit is contained in:
Paul Licameli 2018-08-27 15:04:45 -04:00
parent ba52753ff7
commit e4e7a814c8

View File

@ -777,7 +777,17 @@ private:
}; };
struct Duration { struct Duration {
Duration (ScrubState &queue_) : queue(queue_) {} Duration (ScrubState &queue_) : queue(queue_)
{
do {
clockTime = ::wxGetLocalTimeMillis();
duration = static_cast<long long>(
queue.mRate *
(clockTime - queue.mLastScrubTimeMillis).ToDouble()
/ 1000.0
);
} while( duration <= 0 && (::wxMilliSleep(1), true) );
}
~Duration () ~Duration ()
{ {
if(!cancelled) if(!cancelled)
@ -787,10 +797,8 @@ private:
void Cancel() { cancelled = true; } void Cancel() { cancelled = true; }
ScrubState &queue; ScrubState &queue;
const wxLongLong clockTime { ::wxGetLocalTimeMillis() }; wxLongLong clockTime;
const sampleCount duration { static_cast<long long> sampleCount duration;
(queue.mRate * (clockTime - queue.mLastScrubTimeMillis).ToDouble() / 1000.0)
};
bool cancelled { false }; bool cancelled { false };
}; };