#pragma once
#include <chrono>
namespace ableton
{
namespace util
{
struct SampleTiming
{
double sampleAtTime(std::chrono::microseconds time) const
{
using namespace std::chrono;
return duration_cast<duration<double>>(time - mBufferBegin).count() * mSampleRate;
}
std::chrono::microseconds timeAtSample(const double sample) const
{
using namespace std::chrono;
return mBufferBegin
+ duration_cast<microseconds>(duration<double>{sample / mSampleRate});
}
std::chrono::microseconds mBufferBegin;
double mSampleRate;
};
} }