diff options
author | Thomas Habets <thomas@habets.se> | 2019-12-21 17:06:57 +0000 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2020-01-02 23:43:00 +0100 |
commit | 0e9bdd3f496e37bbdb36750e3157a43c0446b224 (patch) | |
tree | 5960a6bfda99b3a0cf8043892e4d76d84648359d | |
parent | dbf75ac0cab2fa34285da46e1c0514abed44d4a5 (diff) |
gr-digital: Modernize C++
-rw-r--r-- | gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h | 2 | ||||
-rw-r--r-- | gr-digital/lib/fll_band_edge_cc_impl.cc | 4 | ||||
-rw-r--r-- | gr-digital/lib/pfb_clock_sync_ccf_impl.cc | 18 | ||||
-rw-r--r-- | gr-digital/lib/pfb_clock_sync_ccf_impl.h | 7 |
4 files changed, 11 insertions, 20 deletions
diff --git a/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h b/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h index e5f7d52295..ed6c083ff9 100644 --- a/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h +++ b/gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h @@ -202,7 +202,7 @@ public: virtual void set_taps(const std::vector<float>& taps, std::vector<std::vector<float>>& ourtaps, - std::vector<gr::filter::kernel::fir_filter_ccf*>& ourfilter) = 0; + std::vector<std::unique_ptr<gr::filter::kernel::fir_filter_ccf>>& ourfilter) = 0; /*! * Returns all of the taps of the matched filter diff --git a/gr-digital/lib/fll_band_edge_cc_impl.cc b/gr-digital/lib/fll_band_edge_cc_impl.cc index 8db653603a..ef05e59b08 100644 --- a/gr-digital/lib/fll_band_edge_cc_impl.cc +++ b/gr-digital/lib/fll_band_edge_cc_impl.cc @@ -174,8 +174,8 @@ void fll_band_edge_cc_impl::design_filter(float samps_per_sym, // Set the history to ensure enough input items for each filter set_history(filter_size + 1); - d_filter_upper = new gr::filter::kernel::fir_filter_with_buffer_ccc(d_taps_upper); - d_filter_lower = new gr::filter::kernel::fir_filter_with_buffer_ccc(d_taps_lower); + d_filter_upper.reset(new gr::filter::kernel::fir_filter_with_buffer_ccc(d_taps_upper)); + d_filter_lower.reset(new gr::filter::kernel::fir_filter_with_buffer_ccc(d_taps_lower)); } void fll_band_edge_cc_impl::print_taps() diff --git a/gr-digital/lib/pfb_clock_sync_ccf_impl.cc b/gr-digital/lib/pfb_clock_sync_ccf_impl.cc index 2485560aa2..3ad559ee84 100644 --- a/gr-digital/lib/pfb_clock_sync_ccf_impl.cc +++ b/gr-digital/lib/pfb_clock_sync_ccf_impl.cc @@ -93,14 +93,14 @@ pfb_clock_sync_ccf_impl::pfb_clock_sync_ccf_impl(double sps, d_rate_f = d_rate - (float)d_rate_i; d_filtnum = (int)floor(d_k); - d_filters = std::vector<kernel::fir_filter_ccf*>(d_nfilters); - d_diff_filters = std::vector<kernel::fir_filter_ccf*>(d_nfilters); + d_filters.resize(d_nfilters); + d_diff_filters.resize(d_nfilters); // Create an FIR filter for each channel and zero out the taps std::vector<float> vtaps(1, 0); for (int i = 0; i < d_nfilters; i++) { - d_filters[i] = new kernel::fir_filter_ccf(1, vtaps); - d_diff_filters[i] = new kernel::fir_filter_ccf(1, vtaps); + d_filters[i].reset(new kernel::fir_filter_ccf(1, vtaps)); + d_diff_filters[i].reset(new kernel::fir_filter_ccf(1, vtaps)); } // Now, actually set the filters' taps @@ -116,14 +116,6 @@ pfb_clock_sync_ccf_impl::pfb_clock_sync_ccf_impl(double sps, set_relative_rate((uint64_t)d_osps, (uint64_t)d_sps); } -pfb_clock_sync_ccf_impl::~pfb_clock_sync_ccf_impl() -{ - for (int i = 0; i < d_nfilters; i++) { - delete d_filters[i]; - delete d_diff_filters[i]; - } -} - bool pfb_clock_sync_ccf_impl::check_topology(int ninputs, int noutputs) { return noutputs == 1 || noutputs == 4; @@ -217,7 +209,7 @@ void pfb_clock_sync_ccf_impl::update_gains() void pfb_clock_sync_ccf_impl::set_taps(const std::vector<float>& newtaps, std::vector<std::vector<float>>& ourtaps, - std::vector<kernel::fir_filter_ccf*>& ourfilter) + std::vector<std::unique_ptr<kernel::fir_filter_ccf>>& ourfilter) { int i, j; diff --git a/gr-digital/lib/pfb_clock_sync_ccf_impl.h b/gr-digital/lib/pfb_clock_sync_ccf_impl.h index 93c689423b..2384123af8 100644 --- a/gr-digital/lib/pfb_clock_sync_ccf_impl.h +++ b/gr-digital/lib/pfb_clock_sync_ccf_impl.h @@ -42,8 +42,8 @@ private: int d_nfilters; int d_taps_per_filter; - std::vector<kernel::fir_filter_ccf*> d_filters; - std::vector<kernel::fir_filter_ccf*> d_diff_filters; + std::vector<std::unique_ptr<kernel::fir_filter_ccf>> d_filters; + std::vector<std::unique_ptr<kernel::fir_filter_ccf>> d_diff_filters; std::vector<std::vector<float>> d_taps; std::vector<std::vector<float>> d_dtaps; std::vector<float> d_updated_taps; @@ -71,7 +71,6 @@ public: float init_phase = 0, float max_rate_deviation = 1.5, int osps = 1); - ~pfb_clock_sync_ccf_impl(); void setup_rpc(); @@ -83,7 +82,7 @@ public: void set_taps(const std::vector<float>& taps, std::vector<std::vector<float>>& ourtaps, - std::vector<kernel::fir_filter_ccf*>& ourfilter); + std::vector<std::unique_ptr<kernel::fir_filter_ccf>>& ourfilter) override; std::vector<std::vector<float>> taps() const; std::vector<std::vector<float>> diff_taps() const; |