summaryrefslogtreecommitdiff
path: root/gr-digital/lib/interpolating_resampler.h
diff options
context:
space:
mode:
authorThomas Habets <thomas@habets.se>2020-08-12 10:39:58 +0100
committerMartin Braun <martin@gnuradio.org>2020-08-14 04:08:48 -0700
commitb5fb4c2eb54164ab57750878fd185b8170823711 (patch)
tree949ead8fecf27397ac0dc1cc7446bcc662fc20cb /gr-digital/lib/interpolating_resampler.h
parent4e5d2835741d85438b9149f3afc8c84eece239c3 (diff)
digital/interpolating_resampler: Remove manual memory management
Diffstat (limited to 'gr-digital/lib/interpolating_resampler.h')
-rw-r--r--gr-digital/lib/interpolating_resampler.h27
1 files changed, 14 insertions, 13 deletions
diff --git a/gr-digital/lib/interpolating_resampler.h b/gr-digital/lib/interpolating_resampler.h
index ca32bf2963..2c64667ebc 100644
--- a/gr-digital/lib/interpolating_resampler.h
+++ b/gr-digital/lib/interpolating_resampler.h
@@ -17,6 +17,7 @@
#include <gnuradio/filter/mmse_interp_differentiator_cc.h>
#include <gnuradio/filter/mmse_interp_differentiator_ff.h>
#include <gnuradio/gr_complex.h>
+#include <memory>
#include <vector>
namespace gr {
@@ -116,7 +117,7 @@ private:
protected:
interpolating_resampler(enum ir_type type, bool derivative = false);
- bool d_derivative;
+ const bool d_derivative;
float d_phase;
float d_phase_wrapped;
@@ -296,8 +297,8 @@ public:
gr_complex differentiate(const gr_complex input[], float mu) const;
private:
- filter::mmse_fir_interpolator_cc* d_interp;
- filter::mmse_interp_differentiator_cc* d_interp_diff;
+ filter::mmse_fir_interpolator_cc d_interp;
+ std::unique_ptr<filter::mmse_interp_differentiator_cc> d_interp_diff;
};
/*!
@@ -344,8 +345,8 @@ public:
float differentiate(const float input[], float mu) const;
private:
- filter::mmse_fir_interpolator_ff* d_interp;
- filter::mmse_interp_differentiator_ff* d_interp_diff;
+ filter::mmse_fir_interpolator_ff d_interp;
+ std::unique_ptr<filter::mmse_interp_differentiator_ff> d_interp_diff;
};
/*************************************************************************/
@@ -399,8 +400,8 @@ public:
private:
int d_nfilters;
- std::vector<filter::kernel::fir_filter_ccf*> d_filters;
- std::vector<filter::kernel::fir_filter_ccf*> d_diff_filters;
+ std::vector<filter::kernel::fir_filter_ccf> d_filters;
+ std::vector<filter::kernel::fir_filter_ccf> d_diff_filters;
};
/*!
@@ -452,8 +453,8 @@ public:
private:
int d_nfilters;
- std::vector<filter::kernel::fir_filter_fff*> d_filters;
- std::vector<filter::kernel::fir_filter_fff*> d_diff_filters;
+ std::vector<filter::kernel::fir_filter_fff> d_filters;
+ std::vector<filter::kernel::fir_filter_fff> d_diff_filters;
};
/*************************************************************************/
@@ -510,8 +511,8 @@ public:
private:
int d_nfilters;
const unsigned int d_taps_per_filter;
- std::vector<filter::kernel::fir_filter_ccf*> d_filters;
- std::vector<filter::kernel::fir_filter_ccf*> d_diff_filters;
+ std::vector<filter::kernel::fir_filter_ccf> d_filters;
+ std::vector<filter::kernel::fir_filter_ccf> d_diff_filters;
std::vector<std::vector<float>> d_taps;
std::vector<std::vector<float>> d_diff_taps;
@@ -569,8 +570,8 @@ public:
private:
int d_nfilters;
const unsigned int d_taps_per_filter;
- std::vector<filter::kernel::fir_filter_fff*> d_filters;
- std::vector<filter::kernel::fir_filter_fff*> d_diff_filters;
+ std::vector<filter::kernel::fir_filter_fff> d_filters;
+ std::vector<filter::kernel::fir_filter_fff> d_diff_filters;
std::vector<std::vector<float>> d_taps;
std::vector<std::vector<float>> d_diff_taps;