source: Sophya/trunk/ArchTOIPipe/Processors/toidelay.cc@ 2281

Last change on this file since 2281 was 2187, checked in by aubourg, 23 years ago

Vivien, limites processors et connect

File size: 1.1 KB
Line 
1// ArchTOIPipe (C) CEA/DAPNIA/SPP IN2P3/LAL
2// Eric Aubourg
3// Christophe Magneville
4// Reza Ansari
5// $Id: toidelay.cc,v 1.1 2002-09-09 15:33:15 aubourg Exp $
6
7#include "toimanager.h"
8#include "toidelay.h"
9
10TOIDelay::TOIDelay(int n) {
11 delay = n;
12 nskip = ndrop = 0;
13}
14
15void TOIDelay::init() {
16 declareInput("signal");
17 declareOutput("signal");
18 upExtra = delay + ndrop;
19 lowExtra = nskip;
20}
21
22#define BUFSZ 4096
23
24void TOIDelay::run() {
25 int snb = getMinIn()+nskip;
26 int sne = getMaxIn()-ndrop;
27
28
29 if(snb>sne) {
30 cout<<"TOIDelay::run() - Bad sample interval"<<snb<<" , "<<sne<<endl;
31 throw ParmError("TOIDelay::run() - Bad sample interval");
32 }
33
34 cout << "TOIDelay delay="<<delay<< " sn : " << snb << " - " << sne << endl;
35
36 double* buf = new double[BUFSZ];
37
38 int sn = snb;
39 while (sn <= sne) {
40 int sn2 = sn + BUFSZ - 1;
41 if (sn2>sne) sn2=sne;
42 int nsamp = sn2-sn+1;
43 getData(0, sn+delay, nsamp, buf);
44 putData(0, sn, nsamp, buf);
45 sn += nsamp;
46 }
47}
Note: See TracBrowser for help on using the repository browser.