37class ZeroOrderResampler final :
public Resampler
43 int32_t cachedSample = 0;
46 const int cyclesPerSample;
51 int32_t outputValue = 0;
54 ZeroOrderResampler(
double clockFrequency,
double samplingFrequency) :
55 cyclesPerSample(
static_cast<int>(clockFrequency / samplingFrequency * 1024.))
58 bool input(
int sample)
override
62 if (unlikely(sampleOffset < 1024))
64 outputValue = cachedSample + (sampleOffset * (sample - cachedSample) >> 10);
66 sampleOffset += cyclesPerSample;
71 cachedSample = sample;
76 int32_t output()
const override {
return outputValue; }