summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/general
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-07-05 22:01:45 -0400
committerTom Rondeau <trondeau@vt.edu>2012-07-05 22:01:45 -0400
commit9aabbe0601919c9fecd46e4e418e5c94183fca45 (patch)
tree6a0a096e0288ac2744829005af3672ba8365ba8c /gnuradio-core/src/lib/general
parentefa0fc2b4071949939db75454f2464174f701445 (diff)
core: adding ability to change and reset skiphead parameters.
Diffstat (limited to 'gnuradio-core/src/lib/general')
-rw-r--r--gnuradio-core/src/lib/general/gr_skiphead.cc25
-rw-r--r--gnuradio-core/src/lib/general/gr_skiphead.h20
-rw-r--r--gnuradio-core/src/lib/general/gr_skiphead.i13
3 files changed, 54 insertions, 4 deletions
diff --git a/gnuradio-core/src/lib/general/gr_skiphead.cc b/gnuradio-core/src/lib/general/gr_skiphead.cc
index c887376e45..e9dad8fab8 100644
--- a/gnuradio-core/src/lib/general/gr_skiphead.cc
+++ b/gnuradio-core/src/lib/general/gr_skiphead.cc
@@ -41,6 +41,31 @@ gr_make_skiphead (size_t itemsize, uint64_t nitems_to_skip)
return gnuradio::get_initial_sptr(new gr_skiphead (itemsize, nitems_to_skip));
}
+void
+gr_skiphead::set_nitems_to_skip(uint64_t nitems_to_skip)
+{
+ d_nitems_to_skip = nitems_to_skip;
+ reset();
+}
+
+uint64_t
+gr_skiphead::nitems_to_skip() const
+{
+ return d_nitems_to_skip;
+}
+
+uint64_t
+gr_skiphead::nitems_skiped() const
+{
+ return d_nitems;
+}
+
+void
+gr_skiphead::reset()
+{
+ d_nitems = 0;
+}
+
int
gr_skiphead::general_work(int noutput_items,
gr_vector_int &ninput_items_ignored,
diff --git a/gnuradio-core/src/lib/general/gr_skiphead.h b/gnuradio-core/src/lib/general/gr_skiphead.h
index 899b40f27a..710530ff4c 100644
--- a/gnuradio-core/src/lib/general/gr_skiphead.h
+++ b/gnuradio-core/src/lib/general/gr_skiphead.h
@@ -51,6 +51,26 @@ class GR_CORE_API gr_skiphead : public gr_block
public:
+ /*!
+ * \brief Sets number of items to skip; resets current skip count to 0.
+ */
+ void set_nitems_to_skip(uint64_t nitems_to_skip);
+
+ /*!
+ * \brief Gets the number of items to skip.
+ */
+ uint64_t nitems_to_skip() const;
+
+ /*!
+ * \brief Gets the number of items already skipped.
+ */
+ uint64_t nitems_skiped() const;
+
+ /*!
+ * \brief Resets number of items skipped to 0.
+ */
+ void reset();
+
int general_work(int noutput_items,
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
diff --git a/gnuradio-core/src/lib/general/gr_skiphead.i b/gnuradio-core/src/lib/general/gr_skiphead.i
index 3246db9702..8ab23a77a6 100644
--- a/gnuradio-core/src/lib/general/gr_skiphead.i
+++ b/gnuradio-core/src/lib/general/gr_skiphead.i
@@ -22,9 +22,14 @@
GR_SWIG_BLOCK_MAGIC(gr,skiphead);
-gr_skiphead_sptr gr_make_skiphead (size_t itemsize, uint64_t nitems_to_skip);
+gr_skiphead_sptr gr_make_skiphead(size_t itemsize,
+ uint64_t nitems_to_skip);
-class gr_skiphead : public gr_block {
- friend gr_skiphead_sptr gr_make_skiphead (size_t itemsize, uint64_t nitems_to_skip);
- gr_skiphead (size_t itemsize, uint64_t nitems_to_skip);
+class gr_skiphead : public gr_block
+{
+public:
+ void set_nitems_to_skip(uint64_t nitems_to_skip);
+ uint64_t nitems_to_skip() const;
+ uint64_t nitems_skiped() const;
+ void reset();
};