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

File:
1 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    }
Note: See TracChangeset for help on using the changeset viewer.