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