summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-filter/grc/filter_pfb_decimator.xml3
-rw-r--r--gr-filter/include/gnuradio/filter/pfb_decimator_ccf.h2
-rw-r--r--gr-filter/lib/pfb_decimator_ccf_impl.cc7
-rw-r--r--gr-filter/lib/pfb_decimator_ccf_impl.h2
-rw-r--r--gr-filter/python/filter/pfb.py6
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):
'''