[PD] writing dsp externals for variable number of inlets

Mathieu Bouchard matju at artengine.ca
Sat May 7 23:24:58 CEST 2011


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


More information about the Pd-list mailing list