aboutsummaryrefslogtreecommitdiff
path: root/src/dirac~.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dirac~.c')
-rw-r--r--src/dirac~.c23
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)