summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Habets <thomas@habets.se>2019-12-21 17:06:57 +0000
committerMarcus Müller <marcus@hostalia.de>2020-01-02 23:43:00 +0100
commit0e9bdd3f496e37bbdb36750e3157a43c0446b224 (patch)
tree5960a6bfda99b3a0cf8043892e4d76d84648359d
parentdbf75ac0cab2fa34285da46e1c0514abed44d4a5 (diff)
gr-digital: Modernize C++
-rw-r--r--gr-digital/include/gnuradio/digital/pfb_clock_sync_ccf.h2
-rw-r--r--gr-digital/lib/fll_band_edge_cc_impl.cc4
-rw-r--r--gr-digital/lib/pfb_clock_sync_ccf_impl.cc18
-rw-r--r--gr-digital/lib/pfb_clock_sync_ccf_impl.h7
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;