Correct JackFrameTimer::ResetFrameTime for new Fons DLL model.
This commit is contained in:
parent
43990aee85
commit
85b14bd45d
|
@ -97,7 +97,7 @@ void JackEngineControl::ResetRollingUsecs()
|
|||
|
||||
void JackEngineControl::NotifyXRun(jack_time_t callback_usecs, float delayed_usecs)
|
||||
{
|
||||
ResetFrameTime(callback_usecs); // Is this still necessary? SL 03/21/2012
|
||||
ResetFrameTime(callback_usecs);
|
||||
fXrunDelayedUsecs = delayed_usecs;
|
||||
if (delayed_usecs > fMaxDelayedUsecs) {
|
||||
fMaxDelayedUsecs = delayed_usecs;
|
||||
|
|
|
@ -162,7 +162,7 @@ struct SERVER_EXPORT JackEngineControl : public JackShmMem
|
|||
|
||||
void ResetFrameTime(jack_time_t callback_usecs)
|
||||
{
|
||||
fFrameTimer.ResetFrameTime(fSampleRate, callback_usecs, fPeriodUsecs);
|
||||
fFrameTimer.ResetFrameTime(callback_usecs);
|
||||
}
|
||||
|
||||
void ReadFrameTime(JackTimer* timer)
|
||||
|
|
|
@ -122,15 +122,12 @@ void JackFrameTimer::IncFrameTime(jack_nframes_t buffer_size, jack_time_t callba
|
|||
IncFrameTimeAux(buffer_size, callback_usecs, period_usecs);
|
||||
}
|
||||
|
||||
void JackFrameTimer::ResetFrameTime(jack_nframes_t frames_rate, jack_time_t callback_usecs, jack_time_t period_usecs)
|
||||
void JackFrameTimer::ResetFrameTime(jack_time_t callback_usecs)
|
||||
{
|
||||
if (!fFirstWakeUp) { // ResetFrameTime may be called by a xrun/delayed wakeup on the first cycle
|
||||
JackTimer* timer = WriteNextStateStart();
|
||||
jack_nframes_t period_size_guess = (jack_nframes_t)(frames_rate * ((timer->fNextWakeUp - timer->fCurrentWakeup) / 1000000.0));
|
||||
timer->fFrames += ((callback_usecs - timer->fNextWakeUp) / period_size_guess) * period_size_guess;
|
||||
timer->fCurrentWakeup = callback_usecs;
|
||||
timer->fCurrentCallback = callback_usecs;
|
||||
timer->fNextWakeUp = callback_usecs + period_usecs;
|
||||
WriteNextStateStop();
|
||||
TrySwitchState(); // always succeed since there is only one writer
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ class SERVER_EXPORT JackFrameTimer : public JackAtomicState<JackTimer>
|
|||
{}
|
||||
|
||||
void InitFrameTime();
|
||||
void ResetFrameTime(jack_nframes_t frames_rate, jack_time_t callback_usecs, jack_time_t period_usecs);
|
||||
void ResetFrameTime(jack_time_t callback_usecs);
|
||||
void IncFrameTime(jack_nframes_t buffer_size, jack_time_t callback_usecs, jack_time_t period_usecs);
|
||||
void ReadFrameTime(JackTimer* timer);
|
||||
|
||||
|
|
Loading…
Reference in New Issue