diff options
author | jwl <willcode4@gmail.com> | 2014-09-07 20:03:56 -0400 |
---|---|---|
committer | jwl <willcode4@gmail.com> | 2014-09-07 20:03:56 -0400 |
commit | c687f249a6208450e295a6dd1671e57747a84cbe (patch) | |
tree | 1b45fa676151c1f51af291317e025a4eb6a7c411 | |
parent | 01deede32858ef9e2fe4cc937f3245b5b0e6d7c9 (diff) |
Add vector support to abs block. Remove unused num_inputs from xml.
-rw-r--r-- | gr-blocks/grc/blocks_abs_xx.xml | 19 | ||||
-rw-r--r-- | gr-blocks/include/gnuradio/blocks/abs_XX.h.t | 2 | ||||
-rw-r--r-- | gr-blocks/lib/abs_XX_impl.cc.t | 13 | ||||
-rw-r--r-- | gr-blocks/lib/abs_XX_impl.h.t | 5 |
4 files changed, 21 insertions, 18 deletions
diff --git a/gr-blocks/grc/blocks_abs_xx.xml b/gr-blocks/grc/blocks_abs_xx.xml index 65ef97ddff..77298716c8 100644 --- a/gr-blocks/grc/blocks_abs_xx.xml +++ b/gr-blocks/grc/blocks_abs_xx.xml @@ -8,7 +8,13 @@ <name>Abs</name> <key>blocks_abs_xx</key> <import>from gnuradio import blocks</import> - <make>blocks.abs_$(type.fcn)()</make> + <make>blocks.abs_$(type.fcn)($vlen)</make> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> <param> <name>IO Type</name> <key>type</key> @@ -29,21 +35,14 @@ <opt>fcn:ff</opt> </option> </param> - <param> - <name>Num Inputs</name> - <key>num_inputs</key> - <value>1</value> - <type>int</type> - </param> - <check>$num_inputs >= 1</check> <sink> <name>in</name> <type>$type</type> - <nports>$num_inputs</nports> + <vlen>$vlen</vlen> </sink> <source> <name>out</name> <type>$type</type> - <nports>$num_inputs</nports> + <vlen>$vlen</vlen> </source> </block> diff --git a/gr-blocks/include/gnuradio/blocks/abs_XX.h.t b/gr-blocks/include/gnuradio/blocks/abs_XX.h.t index f8688edcd3..541716296f 100644 --- a/gr-blocks/include/gnuradio/blocks/abs_XX.h.t +++ b/gr-blocks/include/gnuradio/blocks/abs_XX.h.t @@ -49,7 +49,7 @@ namespace gr { /*! * \brief Create an instance of @NAME@ */ - static sptr make(); + static sptr make(size_t vlen=1); }; } /* namespace blocks */ diff --git a/gr-blocks/lib/abs_XX_impl.cc.t b/gr-blocks/lib/abs_XX_impl.cc.t index 6bb9f149fd..195d8dff3d 100644 --- a/gr-blocks/lib/abs_XX_impl.cc.t +++ b/gr-blocks/lib/abs_XX_impl.cc.t @@ -32,15 +32,16 @@ namespace gr { namespace blocks { - @NAME@::sptr @NAME@::make() + @NAME@::sptr @NAME@::make(size_t vlen) { - return gnuradio::get_initial_sptr(new @NAME_IMPL@()); + return gnuradio::get_initial_sptr(new @NAME_IMPL@(vlen)); } - @NAME_IMPL@::@NAME_IMPL@() + @NAME_IMPL@::@NAME_IMPL@(size_t vlen) : sync_block ("@NAME@", - io_signature::make (1, 1, sizeof (@I_TYPE@)), - io_signature::make (1, 1, sizeof (@O_TYPE@))) + io_signature::make (1, 1, sizeof (@I_TYPE@)*vlen), + io_signature::make (1, 1, sizeof (@O_TYPE@)*vlen)), + d_vlen(vlen) { } @@ -52,7 +53,7 @@ namespace gr { @I_TYPE@ *iptr = (@I_TYPE@ *) input_items[0]; @O_TYPE@ *optr = (@O_TYPE@ *) output_items[0]; - for(int i=0; i<noutput_items; i++) { + for(size_t i=0; i<noutput_items*d_vlen; i++) { @I_TYPE@ val = iptr[i]; optr[i] = ((val < ((@I_TYPE@)0)) ? -val : val); } diff --git a/gr-blocks/lib/abs_XX_impl.h.t b/gr-blocks/lib/abs_XX_impl.h.t index b31ef5fb31..fa96c84073 100644 --- a/gr-blocks/lib/abs_XX_impl.h.t +++ b/gr-blocks/lib/abs_XX_impl.h.t @@ -32,8 +32,11 @@ namespace gr { class BLOCKS_API @NAME_IMPL@ : public @NAME@ { + private: + size_t d_vlen; + public: - @NAME_IMPL@(); + @NAME_IMPL@(size_t vlen); int work(int noutput_items, gr_vector_const_void_star &input_items, |