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