48class SincResampler final :
public Resampler
54 static constexpr int RINGSIZE = 2048;
56#ifdef RUNTIME_DISPATCH
58 using convolve_func_t =
auto (*)(
const int32_t*,
const int16_t*,
int) -> int32_t;
60 convolve_func_t simd_convolve;
75 const int cyclesPerSample;
79 int32_t outputValue = 0;
81 int32_t sample[RINGSIZE * 2];
84 int32_t fir(
int subcycle);
87 SincResampler(
const SincResampler&) =
delete;
88 SincResampler& operator=(
const SincResampler&) =
delete;
108 double clockFrequency,
109 double samplingFrequency,
110 double highestAccurateFrequency);
111 ~SincResampler()
override;
115 int32_t output()
const override {
return outputValue; }
117 void reset()
override;