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