summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/complex_to_interleaved_short_impl.cc
diff options
context:
space:
mode:
authorTim O'Shea <tim.oshea753@gmail.com>2014-05-08 09:32:53 -0400
committerTim O'Shea <tim.oshea753@gmail.com>2014-05-08 13:35:45 -0400
commiteb4602a727bcb9874ebd7666438fb3eebb244e8b (patch)
tree030386d9a404a5a80aca4d4c5c7b02986d6c575c /gr-blocks/lib/complex_to_interleaved_short_impl.cc
parent8c97b7c379952c010c84cf8ae8a97fbfaac83bfd (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.cc18
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;