On Sat, 7 May 2011, Ahmet Kizilay wrote:
Hello, I want to write an external which creates the signal inlets dynamically depending on the number of arguments, just like the multiplex~ object from zexy. My question is about writing the dsp_add function. How do I set the arguments when I don't exactly know how many signals I will be handling?
For passing a variable number of args to dsp_add itself, use dsp_addv instead.
In any case, one of the fixed arguments has to be saying how many arguments there will be, or one of the variable arguments has to be telling it, or one of the arguments has to point to a struct that says it.
It's similar to how functions that depend on <stdarg.h> provide variable length lists of arguments. class_addmethod says "end of arguments" by passing A_NULL. printf's format strings have %-codes that tell you how many extra args there are. some functions in pd want format strings like "ffsfsffp;" to say two floats, one symbol, one float, etc., to announce the upcoming arguments in a function call. some other functions pass just an integer that says n arguments are upcoming, such as dsp_add itself.
(you know what I mean ?)
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC