20-apr-2005 NvE Id of owning device added to the output of AliSignal::Data().
[u/mrichter/AliRoot.git] / RALICE / icepack / iceconvert / rdmc_WF.c
1
2 /******** implements functions for the WF structure *********/
3
4 #include <string.h>
5 #include <stdlib.h>
6
7 #include "rdmc.h"
8
9
10 void rdmc_init_WF(waveform *wf){
11   wf->id = wf->om = wf->ch = wf->pa = RDMC_NA ;
12   wf->ndigi   = 0;
13   wf->t_start = wf->t_bin = 0.;
14   wf->baseline =   RDMC_WF_BASELINE_NA ;
15   wf->digi=NULL;
16 }
17
18 void rdmc_clear_WF(waveform *wf){
19
20   rdmc_free_WF(wf);
21   rdmc_init_WF(wf);
22 }
23
24
25 void rdmc_free_WF(waveform *wf){
26
27   if (wf->digi !=NULL) free(wf->digi);
28     wf->ndigi=0;
29     wf->digi=NULL;
30 }
31
32
33
34 /****************************************************************************
35  * copies the waveform *in to *out by overwriting.
36  * If in == out, nothing is done.
37  ****************************************************************************/
38 void rdmc_cp_WF(waveform *ou, waveform *in)
39 {
40  if ((in == NULL) || (ou == NULL) || (in == ou))
41     return;
42
43   memcpy(ou, in, sizeof(waveform));
44
45   if (ou->ndigi > 0){
46
47     ou->digi = malloc(in->ndigi*sizeof(float));
48
49     if (!(ou->digi)){
50       ou->ndigi = 0;
51     } else {
52        memcpy(ou->digi, in->digi, in->ndigi*sizeof(float));
53     }
54   }
55
56 } /* rdmc_cp_WF() */