1 #include <stdlib.h> 2 #include "soundpipe.h" 3 sp_timer_create(sp_timer ** p)4int sp_timer_create(sp_timer **p) 5 { 6 *p = malloc(sizeof(sp_timer)); 7 return SP_OK; 8 } 9 sp_timer_destroy(sp_timer ** p)10int sp_timer_destroy(sp_timer **p) 11 { 12 free(*p); 13 return SP_OK; 14 } 15 sp_timer_init(sp_data * sp,sp_timer * p)16int sp_timer_init(sp_data *sp, sp_timer *p) 17 { 18 p->mode = 0; 19 p->pos = 0; 20 p->time = 0; 21 return SP_OK; 22 } 23 sp_timer_compute(sp_data * sp,sp_timer * p,SPFLOAT * in,SPFLOAT * out)24int sp_timer_compute(sp_data *sp, sp_timer *p, SPFLOAT *in, SPFLOAT *out) 25 { 26 if(*in != 0) { 27 if(p->mode == 0) { 28 p->pos = 0; 29 p->mode = 1; 30 } else if(p->mode == 1) { 31 p->time = (SPFLOAT) p->pos / sp->sr; 32 p->mode = 0; 33 } 34 } 35 36 if(p->mode == 1) { 37 p->pos++; 38 } 39 40 *out = p->time; 41 return SP_OK; 42 } 43