From eb4602a727bcb9874ebd7666438fb3eebb244e8b Mon Sep 17 00:00:00 2001 From: Tim O'Shea <tim.oshea753@gmail.com> Date: Thu, 8 May 2014 09:32:53 -0400 Subject: blocks: add vector output option param to complex_to_interleaved_short to match interleaved_short_to_complex --- gr-blocks/lib/complex_to_interleaved_short_impl.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'gr-blocks/lib/complex_to_interleaved_short_impl.cc') diff --git a/gr-blocks/lib/complex_to_interleaved_short_impl.cc b/gr-blocks/lib/complex_to_interleaved_short_impl.cc index 87146364bc..7b8ac90c8b 100644 --- a/gr-blocks/lib/complex_to_interleaved_short_impl.cc +++ b/gr-blocks/lib/complex_to_interleaved_short_impl.cc @@ -30,16 +30,17 @@ namespace gr { namespace blocks { - complex_to_interleaved_short::sptr complex_to_interleaved_short::make() + complex_to_interleaved_short::sptr complex_to_interleaved_short::make(bool vector) { - return gnuradio::get_initial_sptr(new complex_to_interleaved_short_impl()); + return gnuradio::get_initial_sptr(new complex_to_interleaved_short_impl(vector)); } - complex_to_interleaved_short_impl::complex_to_interleaved_short_impl() + complex_to_interleaved_short_impl::complex_to_interleaved_short_impl(bool vector) : sync_interpolator("complex_to_interleaved_short", io_signature::make (1, 1, sizeof(gr_complex)), - io_signature::make (1, 1, sizeof(short)), - 2) + io_signature::make (1, 1, vector?2*sizeof(short):sizeof(short)), + vector?1:2), + d_vector(vector) { } @@ -51,9 +52,10 @@ namespace gr { const gr_complex *in = (const gr_complex *) input_items[0]; short *out = (short *) output_items[0]; - for (int i = 0; i < noutput_items/2; i++){ - *out++ = (short) lrintf(in[i].real()); // FIXME saturate? - *out++ = (short) lrintf(in[i].imag()); + int npairs = (d_vector?noutput_items:noutput_items/2); + for (int i = 0; i < npairs; i++){ + *out++ = (short) lrintf(in[i].real()); // FIXME saturate? + *out++ = (short) lrintf(in[i].imag()); } return noutput_items; -- cgit v1.2.3