diff options
author | Tim O'Shea <tim.oshea753@gmail.com> | 2014-05-08 09:32:53 -0400 |
---|---|---|
committer | Tim O'Shea <tim.oshea753@gmail.com> | 2014-05-08 13:35:45 -0400 |
commit | eb4602a727bcb9874ebd7666438fb3eebb244e8b (patch) | |
tree | 030386d9a404a5a80aca4d4c5c7b02986d6c575c /gr-blocks/lib/complex_to_interleaved_short_impl.cc | |
parent | 8c97b7c379952c010c84cf8ae8a97fbfaac83bfd (diff) |
blocks: add vector output option param to complex_to_interleaved_short to match interleaved_short_to_complex
Diffstat (limited to 'gr-blocks/lib/complex_to_interleaved_short_impl.cc')
-rw-r--r-- | gr-blocks/lib/complex_to_interleaved_short_impl.cc | 18 |
1 files changed, 10 insertions, 8 deletions
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; |