From 51cbe589f7cd74056be613587e82e8d3b3168e84 Mon Sep 17 00:00:00 2001 From: Tom Rondeau <trondeau@vt.edu> Date: Sat, 16 Mar 2013 23:34:34 -0400 Subject: blocks: moved nop, null source/sink, copy, vector_map to gr-blocks. --- gr-blocks/lib/copy_impl.cc | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'gr-blocks/lib/copy_impl.cc') diff --git a/gr-blocks/lib/copy_impl.cc b/gr-blocks/lib/copy_impl.cc index f489b03c0..929f22b7d 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 */ -- cgit v1.2.3