float AudioParamTimeline::valuesForTimeRange(double startTime, double endTime, float defaultValue, float* values, unsigned numberOfValues, double sampleRate, double controlRate) { // We can't contend the lock in the realtime audio thread. std::unique_lock<Lock> lock(m_eventsMutex, std::try_to_lock); if (!lock.owns_lock()) { if (values) { for (unsigned i = 0; i < numberOfValues; ++i) values[i] = defaultValue; } return defaultValue; } float value = valuesForTimeRangeImpl(startTime, endTime, defaultValue, values, numberOfValues, sampleRate, controlRate); return value; }
float AudioParamTimeline::valuesForTimeRange( double startTime, double endTime, float defaultValue, float* values, unsigned numberOfValues, double sampleRate, double controlRate) { // We can't contend the lock in the realtime audio thread. MutexTryLocker tryLocker(m_eventsLock); if (!tryLocker.locked()) { if (values) { for (unsigned i = 0; i < numberOfValues; ++i) values[i] = defaultValue; } return defaultValue; } return valuesForTimeRangeImpl(startTime, endTime, defaultValue, values, numberOfValues, sampleRate, controlRate); }