diff options
-rw-r--r-- | gr-filter/grc/filter_pfb_decimator.xml | 3 | ||||
-rw-r--r-- | gr-filter/include/gnuradio/filter/pfb_decimator_ccf.h | 2 | ||||
-rw-r--r-- | gr-filter/lib/pfb_decimator_ccf_impl.cc | 7 | ||||
-rw-r--r-- | gr-filter/lib/pfb_decimator_ccf_impl.h | 2 | ||||
-rw-r--r-- | gr-filter/python/filter/pfb.py | 6 |
5 files changed, 17 insertions, 3 deletions
diff --git a/gr-filter/grc/filter_pfb_decimator.xml b/gr-filter/grc/filter_pfb_decimator.xml index 8ecf9b2d95..d57119636c 100644 --- a/gr-filter/grc/filter_pfb_decimator.xml +++ b/gr-filter/grc/filter_pfb_decimator.xml @@ -15,7 +15,8 @@ $channel, $atten) </make> - <callback>set_taps($taps)</callback> + <callback>set_taps($taps)</callback> + <callback>set_channel(int($channel))</callback> <param> <name>Decimation</name> <key>decim</key> diff --git a/gr-filter/include/gnuradio/filter/pfb_decimator_ccf.h b/gr-filter/include/gnuradio/filter/pfb_decimator_ccf.h index 822206889f..da4eb2bd34 100644 --- a/gr-filter/include/gnuradio/filter/pfb_decimator_ccf.h +++ b/gr-filter/include/gnuradio/filter/pfb_decimator_ccf.h @@ -120,7 +120,7 @@ namespace gr { */ virtual void print_taps() = 0; - //virtual void set_channel(unsigned int channel) = 0; + virtual void set_channel(const unsigned int channel) = 0; }; } /* namespace filter */ diff --git a/gr-filter/lib/pfb_decimator_ccf_impl.cc b/gr-filter/lib/pfb_decimator_ccf_impl.cc index a9e5138d18..feb36a5999 100644 --- a/gr-filter/lib/pfb_decimator_ccf_impl.cc +++ b/gr-filter/lib/pfb_decimator_ccf_impl.cc @@ -82,6 +82,13 @@ namespace gr { return polyphase_filterbank::taps(); } + void + pfb_decimator_ccf_impl::set_channel(const unsigned int chan) + { + gr::thread::scoped_lock guard(d_mutex); + d_chan = chan; + } + #define ROTATEFFT int diff --git a/gr-filter/lib/pfb_decimator_ccf_impl.h b/gr-filter/lib/pfb_decimator_ccf_impl.h index eeebc2c3a7..2df8a506f0 100644 --- a/gr-filter/lib/pfb_decimator_ccf_impl.h +++ b/gr-filter/lib/pfb_decimator_ccf_impl.h @@ -52,7 +52,7 @@ namespace gr { void set_taps(const std::vector<float> &taps); void print_taps(); std::vector<std::vector<float> > taps() const; - //void set_channel(unsigned int channel); + void set_channel(const unsigned int channel); int work(int noutput_items, gr_vector_const_void_star &input_items, diff --git a/gr-filter/python/filter/pfb.py b/gr-filter/python/filter/pfb.py index 52f598cc40..2ddf65962c 100644 --- a/gr-filter/python/filter/pfb.py +++ b/gr-filter/python/filter/pfb.py @@ -169,6 +169,12 @@ class decimator_ccf(gr.hier_block2): self.connect(self.pfb, self) + def set_taps(self, taps): + self.pfb.set_taps(taps) + + def set_channel(self, chan): + self.pfb.set_channel(chan) + class arb_resampler_ccf(gr.hier_block2): ''' |