diff --git a/include/aspl/Device.hpp b/include/aspl/Device.hpp index 5efebf8..cd1469e 100644 --- a/include/aspl/Device.hpp +++ b/include/aspl/Device.hpp @@ -1223,6 +1223,7 @@ class Device : public Object std::atomic latency_; std::atomic safetyOffset_; std::atomic zeroTimeStampPeriod_; + const bool zeroTimeStampPeriodBasedOffSampleRate_; std::atomic nominalSampleRate_; std::atomic startCount_ = 0; diff --git a/src/Device.cpp b/src/Device.cpp index 3ac6fdb..a92b570 100644 --- a/src/Device.cpp +++ b/src/Device.cpp @@ -26,6 +26,7 @@ Device::Device(std::shared_ptr context, const DeviceParameters& p , safetyOffset_(params.SafetyOffset) , zeroTimeStampPeriod_( params_.ZeroTimeStampPeriod ? params_.ZeroTimeStampPeriod : params_.SampleRate) + , zeroTimeStampPeriodBasedOffSampleRate_(!params_.ZeroTimeStampPeriod) , nominalSampleRate_(params.SampleRate) , preferredChannelsForStereo_({1, 2}) { @@ -162,6 +163,11 @@ OSStatus Device::SetNominalSampleRateImpl(Float64 rate) { nominalSampleRate_ = rate; + if(zeroTimeStampPeriodBasedOffSampleRate_) + { + SetZeroTimeStampPeriodImpl(rate); + } + return kAudioHardwareNoError; }