mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2025-01-13 05:13:38 +00:00
Reduce inlining of FIR configuration due to templating.
80 bytes!
This commit is contained in:
parent
359fb6f3c6
commit
e6f69c90f2
@ -657,6 +657,18 @@ buffer_s16_t FIR64AndDecimateBy2Real::execute(
|
|||||||
return { dst.p, src.count / 2, src.sampling_rate / 2 };
|
return { dst.p, src.count / 2, src.sampling_rate / 2 };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FIRAndDecimateComplex::configure(
|
||||||
|
const int16_t* const taps,
|
||||||
|
const size_t taps_count,
|
||||||
|
const size_t decimation_factor
|
||||||
|
) {
|
||||||
|
samples_ = std::make_unique<samples_t>(taps_count);
|
||||||
|
taps_reversed_ = std::make_unique<taps_t>(taps_count);
|
||||||
|
taps_count_ = taps_count;
|
||||||
|
decimation_factor_ = decimation_factor;
|
||||||
|
std::reverse_copy(&taps[0], &taps[taps_count], &taps_reversed_[0]);
|
||||||
|
}
|
||||||
|
|
||||||
buffer_c16_t FIRAndDecimateComplex::execute(
|
buffer_c16_t FIRAndDecimateComplex::execute(
|
||||||
const buffer_c16_t& src,
|
const buffer_c16_t& src,
|
||||||
const buffer_c16_t& dst
|
const buffer_c16_t& dst
|
||||||
|
@ -227,11 +227,7 @@ public:
|
|||||||
const T& taps,
|
const T& taps,
|
||||||
const size_t decimation_factor
|
const size_t decimation_factor
|
||||||
) {
|
) {
|
||||||
samples_ = std::make_unique<samples_t>(taps.size());
|
configure(taps.data(), taps.size(), decimation_factor);
|
||||||
taps_reversed_ = std::make_unique<taps_t>(taps.size());
|
|
||||||
taps_count_ = taps.size();
|
|
||||||
decimation_factor_ = decimation_factor;
|
|
||||||
std::reverse_copy(taps.cbegin(), taps.cend(), &taps_reversed_[0]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer_c16_t execute(
|
buffer_c16_t execute(
|
||||||
@ -246,6 +242,12 @@ private:
|
|||||||
std::unique_ptr<taps_t> taps_reversed_;
|
std::unique_ptr<taps_t> taps_reversed_;
|
||||||
size_t taps_count_;
|
size_t taps_count_;
|
||||||
size_t decimation_factor_;
|
size_t decimation_factor_;
|
||||||
|
|
||||||
|
void configure(
|
||||||
|
const int16_t* const taps,
|
||||||
|
const size_t taps_count,
|
||||||
|
const size_t decimation_factor
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
class DecimateBy2CIC4Real {
|
class DecimateBy2CIC4Real {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user