diff options
author | Tom Rondeau <trondeau@vt.edu> | 2013-03-16 23:34:34 -0400 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-03-16 23:52:20 -0400 |
commit | 51cbe589f7cd74056be613587e82e8d3b3168e84 (patch) | |
tree | 22d22d0919e52147286ce888343724c9529d8dcd /gr-blocks/lib/copy_impl.cc | |
parent | a792bb88f3c3caa347506503de973aafaf78e0af (diff) |
blocks: moved nop, null source/sink, copy, vector_map to gr-blocks.
Diffstat (limited to 'gr-blocks/lib/copy_impl.cc')
-rw-r--r-- | gr-blocks/lib/copy_impl.cc | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/gr-blocks/lib/copy_impl.cc b/gr-blocks/lib/copy_impl.cc index f489b03c0c..929f22b7d3 100644 --- a/gr-blocks/lib/copy_impl.cc +++ b/gr-blocks/lib/copy_impl.cc @@ -40,8 +40,8 @@ namespace gr { copy_impl::copy_impl(size_t itemsize) : gr_block("copy", - gr_make_io_signature(1, 1, itemsize), - gr_make_io_signature(1, 1, itemsize)), + gr_make_io_signature(1, -1, itemsize), + gr_make_io_signature(1, -1, itemsize)), d_itemsize(itemsize), d_enabled(true) { @@ -51,6 +51,14 @@ namespace gr { { } + void + copy_impl::forecast(int noutput_items, gr_vector_int &ninput_items_required) + { + unsigned ninputs = ninput_items_required.size(); + for (unsigned i = 0; i < ninputs; i++) + ninput_items_required[i] = noutput_items; + } + bool copy_impl::check_topology(int ninputs, int noutputs) { @@ -63,19 +71,20 @@ namespace gr { gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { - const uint8_t *in = (const uint8_t*)input_items[0]; - uint8_t *out = (uint8_t*)output_items[0]; - - int n = std::min<int>(ninput_items[0], noutput_items); - int j = 0; + const uint8_t **in = (const uint8_t**)&input_items[0]; + uint8_t **out = (uint8_t**)&output_items[0]; + int n = 0; if(d_enabled) { - memcpy(out, in, n*d_itemsize); - j = n; + int ninputs = input_items.size(); + for(int i = 0; i < ninputs; i++) { + memcpy(out[i], in[i], noutput_items*d_itemsize); + } + n = noutput_items; } - consume_each(n); - return j; + consume_each(noutput_items); + return n; } } /* namespace blocks */ |