diff --git a/common/JackAudioDriver.cpp b/common/JackAudioDriver.cpp index c98f0dc7..c95cca0c 100644 --- a/common/JackAudioDriver.cpp +++ b/common/JackAudioDriver.cpp @@ -30,7 +30,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #include "JackPort.h" #include "JackGraphManager.h" #include "JackEngine.h" -#include "JackTools.h" #include namespace Jack @@ -50,20 +49,18 @@ int JackAudioDriver::SetBufferSize(jack_nframes_t buffer_size) { fEngineControl->fBufferSize = buffer_size; fGraphManager->SetBufferSize(buffer_size); - float new_val = 1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize; // in microsec - if (JackTools::EqualFloat(2.f * fEngineControl->fPeriodUsecs, fEngineControl->fTimeOutUsecs)) // -t (timeout) was not used, see JackDriver::Open... - fEngineControl->fTimeOutUsecs = jack_time_t(2.f * new_val); - fEngineControl->fPeriodUsecs = jack_time_t(new_val); + fEngineControl->fPeriodUsecs = jack_time_t(1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize); // in microsec + if (!fEngineControl->fTimeOut) + fEngineControl->fTimeOutUsecs = jack_time_t(2.f * fEngineControl->fPeriodUsecs); return 0; } int JackAudioDriver::SetSampleRate(jack_nframes_t sample_rate) { fEngineControl->fSampleRate = sample_rate; - float new_val = 1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize; // in microsec - if (JackTools::EqualFloat(2.f * fEngineControl->fPeriodUsecs, fEngineControl->fTimeOutUsecs)) // -t (timeout) was not used, see JackDriver::Open... - fEngineControl->fTimeOutUsecs = jack_time_t(2.f * new_val); - fEngineControl->fPeriodUsecs = jack_time_t(new_val); + fEngineControl->fPeriodUsecs = jack_time_t(1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize); // in microsec + if (!fEngineControl->fTimeOut) + fEngineControl->fTimeOutUsecs = jack_time_t(2.f * fEngineControl->fPeriodUsecs); return 0; } diff --git a/common/JackDriver.cpp b/common/JackDriver.cpp index 4d39846c..8cbd120b 100644 --- a/common/JackDriver.cpp +++ b/common/JackDriver.cpp @@ -117,7 +117,7 @@ int JackDriver::Open(jack_nframes_t nframes, strcpy(fPlaybackDriverName, playback_driver_name); fEngineControl->fPeriodUsecs = jack_time_t(1000000.f / fEngineControl->fSampleRate * fEngineControl->fBufferSize); // in microsec - if (fEngineControl->fTimeOutUsecs == 0) /* if zero [-t (timeout) was not used], use 2 period size */ + if (!fEngineControl->fTimeOut) fEngineControl->fTimeOutUsecs = jack_time_t(2.f * fEngineControl->fPeriodUsecs); fGraphManager->SetBufferSize(nframes); diff --git a/common/JackEngineControl.h b/common/JackEngineControl.h index 90f01ac3..139bd728 100644 --- a/common/JackEngineControl.h +++ b/common/JackEngineControl.h @@ -73,6 +73,7 @@ struct JackEngineControl : public JackShmMem bool fTemporary; jack_time_t fPeriodUsecs; jack_time_t fTimeOutUsecs; + bool fTimeOut; bool fRealTime; int32_t fPriority; char fServerName[64]; @@ -106,6 +107,7 @@ struct JackEngineControl : public JackShmMem { fSyncMode = sync; fTemporary = temporary; + fTimeOut = (timeout > 0); fTimeOutUsecs = timeout * 1000; fRealTime = rt; fPriority = priority; diff --git a/common/JackTools.h b/common/JackTools.h index efc1ccf3..b126d48b 100644 --- a/common/JackTools.h +++ b/common/JackTools.h @@ -42,12 +42,7 @@ namespace Jack static void CleanupFiles(const char* server_name); static int GetTmpdir(); static void RewriteName(const char* name, char* new_name); - - static bool inline EqualFloat(float a, float b) - { - return (fabs(a - b) < 0.00001f); - } - + }; }