Index: trunk/ArchTOIPipe/Kernel/cgt.cc
===================================================================
--- trunk/ArchTOIPipe/Kernel/cgt.cc	(revision 2036)
+++ trunk/ArchTOIPipe/Kernel/cgt.cc	(revision 2037)
@@ -11,4 +11,5 @@
 
 #include "cgt.h"
+#include <typeinfo>
 #include "toiseqbuff.h"
 #include "toisegment.h"
@@ -108,5 +109,7 @@
   //  for(it = lesProcs.begin(); it != lesProcs.end(); it++) { 
   for(int i=0; i< lesProcs.size(); i++) {
-    os << " >> Proc Id= " << i << " @ " << hex << lesProcs[i] << dec << endl;
+    os << " >> Proc Id= " << i << " @ " << hex << lesProcs[i] << dec ;
+    string ctyp = typeid(*lesProcs[i]).name();
+    os << " Type= " << ctyp << endl;
     if (prstat) lesProcs[i]->PrintStatus(os);
   }
@@ -115,5 +118,5 @@
 void CGT::ListTOIs(::ostream& os, bool prstat)
 {
-  os << " --- CGT::ListTOIs() , NbProcs=" << lesTuyaux.size();
+  os << " --- CGT::ListTOIs() , NbTOIs=" << lesTuyaux.size();
   if ( fgSegmented ) os << " Default TOI: TOISegmented " << endl;
   else os << " Default TOI: TOISeqBuffered " << endl;
@@ -121,5 +124,8 @@
     os << " >> TOI " << lesTuyaux[i].toi->getName() << " Connecting Procs (Id): " 
        << lesTuyaux[i].pr1id << " <---> " << lesTuyaux[i].pr2id << endl;
-    if (prstat) lesTuyaux[i].toi->PrintStatus(os);    
+    if (prstat > 1)  lesTuyaux[i].toi->PrintStatus(os);    
+    else if (prstat == 1)  
+      os << " PutCountWait= " << lesTuyaux[i].toi->getCountWaitPut() 
+	 << " GetCountWait= " << lesTuyaux[i].toi->getCountWaitGet() << endl;
   }  
 }
Index: trunk/ArchTOIPipe/Processors/nooppr.cc
===================================================================
--- trunk/ArchTOIPipe/Processors/nooppr.cc	(revision 2036)
+++ trunk/ArchTOIPipe/Processors/nooppr.cc	(revision 2037)
@@ -3,5 +3,5 @@
 //                               Christophe Magneville
 //                               Reza Ansari
-// $Id: nooppr.cc,v 1.10 2002-05-13 13:11:32 ansari Exp $
+// $Id: nooppr.cc,v 1.11 2002-05-31 08:10:58 ansari Exp $
 
 #include <typeinfo>
@@ -16,4 +16,5 @@
   if (wsz < 1) wsz = 1;
   wsize = wsz;
+  delay2 = false;
   totnscount = 0;
 }
@@ -25,5 +26,7 @@
   os << "\n ------------------------------------------------------ \n" 
      << " NoOpProcessor::PrintStatus() - WindowSize=" 
-     << WSize() << endl; 
+     << WSize();
+  if (delay2) os << " Delay in2 ---> out2 " << endl;
+  else os << endl;
   os << " Total number of processed samples= " << ProcessedSampleCount()
      << endl;
@@ -91,7 +94,9 @@
       }
       if (fgin2 || fgout2) {
-	vin2 = new double[wsize];
-	vfg2 = new uint_8[wsize];
-	for(i=0; i<wsize; i++) { 
+	int wsz2 = wsize;
+	if (delay2) wsz2 *= 2;
+	vin2 = new double[wsz2];
+	vfg2 = new uint_8[wsz2];
+	for(i=0; i<wsz2; i++) { 
 	  vin2[i] = defval; vfg2[i] = defflag;
 	}	
@@ -100,17 +105,29 @@
       // Boucle sur les sampleNum
       // 1er partie, on traite par paquets de wsize
+      int kd2 = 0;
+      int lastk2in = 0;
       for(k=snb;k<=sne-wsize+1;k+=wsize) {
 	if (fgin) 
 	  getData(0, k, wsize, vin, vfg);
-	if (fgin2)
-	  getData(1, k, wsize, vin2, vfg2);
-	totnbblock++;
+	if (fgin2) {
+	  kd2 = (delay2) ? (kd2+1)%2 : 0;
+	  getData(1, k, wsize, vin2+kd2*wsize, vfg2+kd2*wsize);
+	  lastk2in = k;
+	}
 	if (fgout) 
 	  putData(0, k, wsize, vin, vfg);
-	if (fgout2)  
-	  putData(1, k, wsize, vin2, vfg2);
+	if (fgout2 && (!delay2 || totnbblock > 1)) {  
+	  int kd2o = (delay2) ? (kd2+1)%2 : 0;
+	  int nextk2o = (delay2) ? lastk2in-wsize : lastk2in;
+	  putData(1, nextk2o, wsize, vin2+kd2o*wsize, vfg2+kd2o*wsize);
+	}
 	klast+=wsize;
 	totnscount+=wsize;
 	totnbblock++;
+      }
+      if (fgout2 && delay2) {
+	int kd2o = (kd2+1)%2;
+	putData(1, lastk2in, wsize, vin2+kd2o*wsize, vfg2+kd2o*wsize);
+	
       }
     }
Index: trunk/ArchTOIPipe/Processors/nooppr.h
===================================================================
--- trunk/ArchTOIPipe/Processors/nooppr.h	(revision 2036)
+++ trunk/ArchTOIPipe/Processors/nooppr.h	(revision 2037)
@@ -5,5 +5,5 @@
 //                               Christophe Magneville
 //                               Reza Ansari
-// $Id: nooppr.h,v 1.7 2002-05-30 20:44:31 ansari Exp $
+// $Id: nooppr.h,v 1.8 2002-05-31 08:10:58 ansari Exp $
 
 
@@ -24,4 +24,5 @@
   inline int	WSize() const { return wsize; }
   inline void	SetWSize(int wsz)  { if (wsz > 1)  wsize =  wsz; }
+  inline void   SetDelay2(bool fg) { delay2 = fg; }
   inline int_8	ProcessedSampleCount() const { return totnscount; }
 
@@ -39,4 +40,5 @@
 
   bool acceptnoinput;
+  bool delay2;
   double defval;
   long defflag;
Index: trunk/ArchTOIPipe/TestPipes/mesovh2.cc
===================================================================
--- trunk/ArchTOIPipe/TestPipes/mesovh2.cc	(revision 2036)
+++ trunk/ArchTOIPipe/TestPipes/mesovh2.cc	(revision 2037)
@@ -3,5 +3,5 @@
 //                               Christophe Magneville
 //                               Reza Ansari
-// $Id: mesovh2.cc,v 1.3 2002-05-30 20:44:31 ansari Exp $
+// $Id: mesovh2.cc,v 1.4 2002-05-31 08:10:58 ansari Exp $
 /*   mesure de performance de l'architecture
 
@@ -32,5 +32,5 @@
   else {
     cout << "\n Usage : mesovh2 [-dbg] [-start snb] [-end sne] \n" 
-	 << "         [-intoi name] [-wtoi sz] [-wnoop sz] \n"
+	 << "         [-intoi name] [-wtoi sz] [-wnoop sz] [-delay2] \n"
 	 << "         [-bipro sz2] [-tripro sz2,sz3] [-quadpro sz2,sz3,sz4] \n"
 	 << "         [-pentapro sz2,sz3,sz4,sz5] [-hexapro sz2,sz3,sz4,sz5,sz6] \n"
@@ -43,4 +43,5 @@
 	 << "   -wtoi sz : sets TOISeqBuff/TOISegmented buffer size (def= 1024)\n"
 	 << "   -wnoop sz : sets NoOpProcessor window size \n"
+	 << "   -delay2 : Delay NoOpProcessor in2 --> out2 \n"
 	 << "   -bipro sz2: chain 2 processors sz2= NoOpProcessor 2 window size\n"
 	 << "   -tripro -quadpro -pentapro -hexapro ... chain 3-6 processors \n"
@@ -68,4 +69,5 @@
   int wtoi = 1024;
   int wnoop = 0;
+  bool fgdelay2 = false;
   int keepfft = 0;
   int nmax = 10;
@@ -134,4 +136,5 @@
       intoi2 = arg[ia+1]; ia++;
     }    
+    else if (strcmp(arg[ia],"-delay2") == 0)  fgdelay2 = true;
     else if (strcmp(arg[ia],"-dbg") == 0)  dbglev = 1;
     else if (strcmp(arg[ia],"-dbg2") == 0)  dbglev = 2;
@@ -170,4 +173,8 @@
       noop[k].SetWSize(proc_wsz[k]);
       cout << "> NoOpProcessor noop[" << k << "]  created WSz=" << proc_wsz[k] << endl;
+      if (fgdelay2) {
+	cout << "  Setting noop[" << k << "].SetDelay2( true ) " << endl;
+	noop[k].SetDelay2( true );
+      }
     }
     
@@ -200,4 +207,5 @@
     }
     
+    plombier.ListTOIs(cout, 1);
 
     mgr->joinAll();
