template whole oversampler class

This commit is contained in:
2024-06-26 19:45:56 +02:00
parent 99368e6869
commit deabea6cbf

View File

@@ -7,6 +7,7 @@
namespace trnr { namespace trnr {
template<typename sample>
class oversampler { class oversampler {
public: public:
oversampler() oversampler()
@@ -31,8 +32,7 @@ public:
ratio = _ratio; ratio = _ratio;
} }
template<typename sample> sample** upsample(sample** _inputs, int _blocksize)
float** upsample(sample** _inputs, int _blocksize)
{ {
num_samples = _blocksize; num_samples = _blocksize;
required_blocksize = _blocksize * ratio; required_blocksize = _blocksize * ratio;
@@ -74,7 +74,6 @@ public:
return ptrs; return ptrs;
} }
template<typename sample>
void downsample(sample** _outputs) void downsample(sample** _outputs)
{ {
if (ratio > 1) { if (ratio > 1) {
@@ -103,7 +102,7 @@ private:
chebyshev lowpass_out1 {samplerate, 20000}; chebyshev lowpass_out1 {samplerate, 20000};
chebyshev lowpass_out2 {samplerate, 20000}; chebyshev lowpass_out2 {samplerate, 20000};
std::array<std::vector<float>, 2> buffer; std::array<std::vector<sample>, 2> buffer;
float** ptrs = new float*[2]; sample** ptrs = new sample*[2];
}; };
} // namespace trnr } // namespace trnr