1 #include "soundpipe.h"
2 #include "md5.h"
3 #include "tap.h"
4 #include "test.h"
5 
6 typedef struct {
7     sp_drip *drip;
8     sp_dust *trig;
9     sp_revsc *rev;
10 } UserData;
11 
t_drip(sp_test * tst,sp_data * sp,const char * hash)12 int t_drip(sp_test *tst, sp_data *sp, const char *hash)
13 {
14     uint32_t n;
15     int fail = 0;
16     SPFLOAT trig, rev1, rev2, drip;
17     UserData ud;
18 
19     sp_revsc_create(&ud.rev);
20     sp_drip_create(&ud.drip);
21     sp_dust_create(&ud.trig);
22 
23     sp_dust_init(sp, ud.trig);
24     sp_drip_init(sp, ud.drip, 0.09);
25     ud.drip->amp = 0.3;
26     sp_revsc_init(sp, ud.rev);
27     ud.rev->feedback = 0.9;
28 
29     for(n = 0; n < tst->size; n++) {
30         sp_dust_compute(sp, ud.trig, NULL, &trig);
31         sp_drip_compute(sp, ud.drip, &trig, &drip);
32         sp_revsc_compute(sp, ud.rev, &drip, &drip, &rev1, &rev2);
33         sp_test_add_sample(tst, drip + rev1 * 0.05);
34     }
35 
36     fail = sp_test_verify(tst, hash);
37 
38     sp_drip_destroy(&ud.drip);
39     sp_dust_destroy(&ud.trig);
40     sp_revsc_destroy(&ud.rev);
41 
42     if(fail) return SP_NOT_OK;
43     else return SP_OK;
44 }
45