1 #include "soundpipe.h"
2 #include "md5.h"
3 #include "tap.h"
4 #include "test.h"
5 
6 typedef struct {
7     sp_fog *fog;
8     sp_ftbl *wav;
9     sp_ftbl *win;
10     sp_phasor *phs;
11 } UserData;
12 
t_fog(sp_test * tst,sp_data * sp,const char * hash)13 int t_fog(sp_test *tst, sp_data *sp, const char *hash)
14 {
15     uint32_t n;
16     int fail = 0;
17     SPFLOAT phs = 0, fog = 0;
18 
19     sp_srand(sp, 1234567);
20     UserData ud;
21 
22     sp_ftbl_loadfile(sp, &ud.wav, SAMPDIR "oneart.wav");
23     sp_ftbl_create(sp, &ud.win, 1024);
24     sp_fog_create(&ud.fog);
25     sp_phasor_create(&ud.phs);
26 
27     sp_gen_composite(sp, ud.win, "0.5 0.5 270 0.5");
28 
29     sp_fog_init(sp, ud.fog, ud.wav, ud.win, 100, 0);
30     ud.fog->trans = 0.9;
31 
32     sp_phasor_init(sp, ud.phs, 0);
33     ud.phs->freq = 0.3 / ((SPFLOAT)ud.wav->size / sp->sr);
34 
35     for(n = 0; n < tst->size; n++) {
36         phs = 0;
37         fog = 0;
38         sp_phasor_compute(sp, ud.phs, NULL, &phs);
39         ud.fog->spd = phs;
40         sp_fog_compute(sp, ud.fog, NULL, &fog);
41         sp_test_add_sample(tst, fog);
42     }
43 
44     fail = sp_test_verify(tst, hash);
45 
46     sp_fog_destroy(&ud.fog);
47     sp_ftbl_destroy(&ud.wav);
48     sp_ftbl_destroy(&ud.win);
49     sp_phasor_destroy(&ud.phs);
50 
51 
52     if(fail) return SP_NOT_OK;
53     else return SP_OK;
54 }
55