template whole oversampler class
This commit is contained in:
@@ -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
|
||||||
Reference in New Issue
Block a user