On Sun, 3 Dec 2006, Charles Henry wrote:

I can't remember how to pass multiple arguments to an external. I need to pass any number of float arguments. I think it goes something like void external_tilde_new(float *f_args, float num_args)
I've been searching thru the cvs repo to see if I can find an example,
but I haven't found one yet.  Any suggestions?

you need to instruct class_new or class_addcreator what your argument list is going to look like. If you have one float arg, end it like "A_FLOAT,0)" but if you have two, then end it like "A_FLOAT,A_FLOAT,0)". However, if you have a large number or variable number of them, do it like "A_GIMME,0)" and use a method signature like:

t_pd *blah_new(t_symbol classname, int argc, t_atom *argv)

but then you have to check the type of each atom and extract its content (convert a float atom to a float, or a symbol atom to a symbol).

 _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada
_______________________________________________
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to