From 7efb7d2f0fa8bab3a4a7748832c8b3cf6a879791 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Mon, 13 Jan 2020 12:11:34 +0100 Subject: [PATCH] moved template argument RATE to constructor argument rate --- resampler.hh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/resampler.hh b/resampler.hh index 7998e9f..52761de 100644 --- a/resampler.hh +++ b/resampler.hh @@ -13,19 +13,20 @@ Copyright 2018 Ahmet Inan namespace DSP { -template +template class Resampler { typedef DSP::UniformNaturalCubicSpline spline_type; spline_type lpf; + TYPE rate; public: - Resampler(TYPE cutoff, TYPE alpha) + Resampler(TYPE rate, TYPE cutoff, TYPE alpha) : rate(rate) { TYPE tmp[TAPS * OVER]; DSP::Kaiser window(alpha); for (int n = 0; n < TAPS * OVER; ++n) { TYPE x = TYPE(n) / TYPE(OVER) - TYPE(TAPS - 1) / TYPE(2); - TYPE y = TYPE(2) * cutoff / TYPE(RATE) * sinc(TYPE(2) * cutoff / TYPE(RATE) * x); + TYPE y = TYPE(2) * cutoff / rate * sinc(TYPE(2) * cutoff / rate * x); tmp[n] = y * window(n, TAPS * OVER); } lpf = spline_type(tmp, 0, 1.0 / OVER); @@ -33,8 +34,8 @@ public: template void operator ()(IO *output, IO *input, TYPE diff, int samples, int stride = 1) { - TYPE ratio = (RATE + diff) / RATE; - TYPE recip = RATE / (RATE + diff); + TYPE ratio = (rate + diff) / rate; + TYPE recip = rate / (rate + diff); for (int i = 0; i < samples - TAPS; ++i) { IO sum = 0; int s0 = nearbyint(i * ratio);