Changeset 2037 in Sophya for trunk/ArchTOIPipe/Processors


Ignore:
Timestamp:
May 31, 2002, 10:10:58 AM (23 years ago)
Author:
ansari
Message:

Amelioration NoOpProcessor et mesovh2.cc pour investigation pb kill sur magique - Reza 31/5/2002

Location:
trunk/ArchTOIPipe/Processors
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ArchTOIPipe/Processors/nooppr.cc

    r1994 r2037  
    33//                               Christophe Magneville
    44//                               Reza Ansari
    5 // $Id: nooppr.cc,v 1.10 2002-05-13 13:11:32 ansari Exp $
     5// $Id: nooppr.cc,v 1.11 2002-05-31 08:10:58 ansari Exp $
    66
    77#include <typeinfo>
     
    1616  if (wsz < 1) wsz = 1;
    1717  wsize = wsz;
     18  delay2 = false;
    1819  totnscount = 0;
    1920}
     
    2526  os << "\n ------------------------------------------------------ \n"
    2627     << " NoOpProcessor::PrintStatus() - WindowSize="
    27      << WSize() << endl;
     28     << WSize();
     29  if (delay2) os << " Delay in2 ---> out2 " << endl;
     30  else os << endl;
    2831  os << " Total number of processed samples= " << ProcessedSampleCount()
    2932     << endl;
     
    9194      }
    9295      if (fgin2 || fgout2) {
    93         vin2 = new double[wsize];
    94         vfg2 = new uint_8[wsize];
    95         for(i=0; i<wsize; i++) {
     96        int wsz2 = wsize;
     97        if (delay2) wsz2 *= 2;
     98        vin2 = new double[wsz2];
     99        vfg2 = new uint_8[wsz2];
     100        for(i=0; i<wsz2; i++) {
    96101          vin2[i] = defval; vfg2[i] = defflag;
    97102        }       
     
    100105      // Boucle sur les sampleNum
    101106      // 1er partie, on traite par paquets de wsize
     107      int kd2 = 0;
     108      int lastk2in = 0;
    102109      for(k=snb;k<=sne-wsize+1;k+=wsize) {
    103110        if (fgin)
    104111          getData(0, k, wsize, vin, vfg);
    105         if (fgin2)
    106           getData(1, k, wsize, vin2, vfg2);
    107         totnbblock++;
     112        if (fgin2) {
     113          kd2 = (delay2) ? (kd2+1)%2 : 0;
     114          getData(1, k, wsize, vin2+kd2*wsize, vfg2+kd2*wsize);
     115          lastk2in = k;
     116        }
    108117        if (fgout)
    109118          putData(0, k, wsize, vin, vfg);
    110         if (fgout2) 
    111           putData(1, k, wsize, vin2, vfg2);
     119        if (fgout2 && (!delay2 || totnbblock > 1)) { 
     120          int kd2o = (delay2) ? (kd2+1)%2 : 0;
     121          int nextk2o = (delay2) ? lastk2in-wsize : lastk2in;
     122          putData(1, nextk2o, wsize, vin2+kd2o*wsize, vfg2+kd2o*wsize);
     123        }
    112124        klast+=wsize;
    113125        totnscount+=wsize;
    114126        totnbblock++;
     127      }
     128      if (fgout2 && delay2) {
     129        int kd2o = (kd2+1)%2;
     130        putData(1, lastk2in, wsize, vin2+kd2o*wsize, vfg2+kd2o*wsize);
     131       
    115132      }
    116133    }
  • trunk/ArchTOIPipe/Processors/nooppr.h

    r2033 r2037  
    55//                               Christophe Magneville
    66//                               Reza Ansari
    7 // $Id: nooppr.h,v 1.7 2002-05-30 20:44:31 ansari Exp $
     7// $Id: nooppr.h,v 1.8 2002-05-31 08:10:58 ansari Exp $
    88
    99
     
    2424  inline int    WSize() const { return wsize; }
    2525  inline void   SetWSize(int wsz)  { if (wsz > 1)  wsize =  wsz; }
     26  inline void   SetDelay2(bool fg) { delay2 = fg; }
    2627  inline int_8  ProcessedSampleCount() const { return totnscount; }
    2728
     
    3940
    4041  bool acceptnoinput;
     42  bool delay2;
    4143  double defval;
    4244  long defflag;
Note: See TracChangeset for help on using the changeset viewer.