diff options
Diffstat (limited to 'src/dirac~.c')
-rw-r--r-- | src/dirac~.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/dirac~.c b/src/dirac~.c index 90d9dbb..7aae46d 100644 --- a/src/dirac~.c +++ b/src/dirac~.c @@ -74,15 +74,6 @@ static t_int *dirac_perform(t_int *w) return (w+4); } - -static t_int *dirac_perf8(t_int *w) -{ - t_dirac *x = (t_dirac *)(w[1]); - t_sample *out = (t_sample *)(w[2]); - int n = (int)(w[3]); - - t_int do_it = x->do_it; - #ifndef __WIN32__ /* LATER: investigate the occurence of zero_perf8() */ /* it seems, like pd has the symbol zero_perf8(), @@ -90,11 +81,21 @@ static t_int *dirac_perf8(t_int *w) * so linux can use it, but w32 not * have to tell miller about that */ - zero_perf8(w+1); +t_int *zero_perf8(t_int *w); #else - zero_perform(w+1); +/* on w32 we have no access to this hidden function anyhow... */ +# define zero_perf8 zero_perform #endif +static t_int *dirac_perf8(t_int *w) +{ + t_dirac *x = (t_dirac *)(w[1]); + t_sample *out = (t_sample *)(w[2]); + int n = (int)(w[3]); + + t_int do_it = x->do_it; + zero_perf8(w+1); + if (do_it >= n) x->do_it -= n; else if(do_it >= 0) |