From cfcdec290160e6c20a2636f0fee9ad148e7336b6 Mon Sep 17 00:00:00 2001 From: Jonathan Wilkes <jon.w.wilkes@gmail.com> Date: Sat, 12 Aug 2017 18:46:55 -0400 Subject: [PATCH] fix harmgen interface to use proper A_GIMME args --- externals/sigpack/harmgen~.c | 44 +++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/externals/sigpack/harmgen~.c b/externals/sigpack/harmgen~.c index a33d71b41..6dca5cf37 100644 --- a/externals/sigpack/harmgen~.c +++ b/externals/sigpack/harmgen~.c @@ -35,30 +35,32 @@ typedef struct _harmgen_tilde float x_f; } t_harmgen_tilde; -static void *harmgen_tilde_new(t_floatarg mag1, t_floatarg mag2, t_floatarg mag3, t_floatarg mag4, t_floatarg mag5, t_floatarg mag6, t_floatarg mag7, t_floatarg mag8, t_floatarg mag9, t_floatarg mag10) +static void *harmgen_tilde_new(t_symbol *s, int argc, t_atom *argv) { + t_sample mag1 = 1, mag2 = 1, mag3 = 1, mag4 = 1, mag5 = 1, + mag6 = 1, mag7 = 1, mag8 = 1, mag9 = 1, mag10 = 1; t_harmgen_tilde *x = (t_harmgen_tilde *)pd_new(harmgen_tilde_class); x->x_f = 0; - if(mag1) x->x_mag1 = mag1; - else x->x_mag1 = 1; - if(mag2) x->x_mag2 = mag2; - else x->x_mag2 = 1; - if(mag3) x->x_mag3 = mag3; - else x->x_mag3 = 1; - if(mag4) x->x_mag4 = mag4; - else x->x_mag4 = 1; - if(mag5) x->x_mag5 = mag5; - else x->x_mag5 = 1; - if(mag6) x->x_mag6 = mag6; - else x->x_mag6 = 1; - if(mag7) x->x_mag7 = mag7; - else x->x_mag7 = 1; - if(mag8) x->x_mag8 = mag8; - else x->x_mag8 = 1; - if(mag9) x->x_mag9 = mag9; - else x->x_mag9 = 1; - if(mag10) x->x_mag10 = mag10; - else x->x_mag10 = 1; + if(argc > 0) mag1 = (t_sample)atom_getfloatarg(0, argc, argv); + x->x_mag1 = mag1 ? mag1 : 1; + if(argc > 1) mag2 = (t_sample)atom_getfloatarg(1, argc, argv); + x->x_mag2 = mag2 ? mag2 : 1; + if(argc > 2) mag3 = (t_sample)atom_getfloatarg(2, argc, argv); + x->x_mag3 = mag3 ? mag3 : 1; + if(argc > 3) mag4 = (t_sample)atom_getfloatarg(3, argc, argv); + x->x_mag4 = mag4 ? mag4 : 1; + if(argc > 4) mag5 = (t_sample)atom_getfloatarg(4, argc, argv); + x->x_mag5 = mag5 ? mag5 : 1; + if(argc > 5) mag6 = (t_sample)atom_getfloatarg(5, argc, argv); + x->x_mag6 = mag6 ? mag6 : 1; + if(argc > 6) mag7 = (t_sample)atom_getfloatarg(6, argc, argv); + x->x_mag7 = mag7 ? mag7 : 1; + if(argc > 7) mag8 = (t_sample)atom_getfloatarg(7, argc, argv); + x->x_mag8 = mag8 ? mag8 : 1; + if(argc > 8) mag9 = (t_sample)atom_getfloatarg(8, argc, argv); + x->x_mag9 = mag9 ? mag9 : 1; + if(argc > 9) mag10 = (t_sample)atom_getfloatarg(9, argc, argv); + x->x_mag10 = mag10 ? mag10 : 1; outlet_new(&x->x_obj, gensym("signal")); floatinlet_new(&x->x_obj, &x->x_mag1); floatinlet_new(&x->x_obj, &x->x_mag2); -- GitLab