Index: /experimental/components/Demodulator/src/Demodulator.cpp
===================================================================
--- /experimental/components/Demodulator/src/Demodulator.cpp	(revision 3994)
+++ /experimental/components/Demodulator/src/Demodulator.cpp	(revision 4005)
@@ -152,4 +152,8 @@
     unsigned int N_in(0), N_out(0);
 
+    unsigned int i;
+    char * b(NULL);
+    short * I(NULL), * Q(NULL);
+
     while( true ) {
         // Get data from port
@@ -161,6 +165,24 @@
 
         // Configure output data length
+        bits_out.length(N_out);
+
+        // Copy data
+        ///\todo Copying data is incredibly inefficient; need to initialize
+        /// CORBA array on buffer and vise versa
+        b = new char[N_out];
+        I = new short[N_in];
+        Q = new short[N_in];
+
+        for (i=0; i<N_in; i++) {
+            I[i] = (*I_in)[i];
+            Q[i] = (*Q_in)[i];
+        }
 
         // Signal processing goes here
+        DemodulateSequence(I, Q, N_in, b);
+
+        for (i=0; i<N_out; i++) {
+            bits_out[i] = b[i];
+        }
 
         dataIn_0->bufferEmptied();
@@ -168,4 +190,8 @@
     }
 
+    delete [] b;
+    delete [] I;
+    delete [] Q;
+
 }
 
