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:
parent
ba52753ff7
commit
e4e7a814c8
@ -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 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user