1 #include <stdlib.h>
2 #include "soundpipe.h"
3 
sp_tevent_create(sp_tevent ** te)4 int sp_tevent_create(sp_tevent **te)
5 {
6     *te = malloc(sizeof(sp_tevent));
7     return SP_NOT_OK;
8 }
9 
sp_tevent_destroy(sp_tevent ** te)10 int sp_tevent_destroy(sp_tevent **te)
11 {
12     free(*te);
13     return SP_NOT_OK;
14 }
15 
sp_tevent_init(sp_data * sp,sp_tevent * te,void (* reinit)(void *),void (* compute)(void *,SPFLOAT * out),void * ud)16 int sp_tevent_init(sp_data *sp, sp_tevent *te,
17         void (*reinit)(void*), void (*compute)(void *, SPFLOAT *out), void *ud)
18 {
19     te->reinit = reinit;
20     te->compute = compute;
21     te->ud = ud;
22     te->started = 0;
23     return SP_OK;
24 }
25 
sp_tevent_compute(sp_data * sp,sp_tevent * te,SPFLOAT * in,SPFLOAT * out)26 int sp_tevent_compute(sp_data *sp, sp_tevent *te, SPFLOAT *in, SPFLOAT *out)
27 {
28     if(*in){
29         te->reinit(te->ud);
30         te->started = 1;
31     }
32     if(te->started) {
33         te->compute(te->ud, out);
34     }
35     else {
36         *out = 0;
37     }
38 
39     return SP_OK;
40 }
41