Hi Mathieu, It's only a sketch, actually fragments from flext code.
good luck, Thomas
---------------------------------------- As stated before, you need proxy objects which (actually their method) receive the messages for the non-left inlets.
This is a proxy object, just like a normal one
static t_class *px_class;
struct px_object { t_object obj; int index; // this holds the inlet index };
This is the class setup which defines the proxy class
px_class = class_new(gensym("flext_base
proxy"),NULL,NULL,sizeof(px_object),CLASS_PD|CLASS_NOINLET, A_NULL);
// bind a method (except any message) to the class class_addanything(px_class,px_method); // for other inlets
px_method looks like that... it's for anything messages.
void px_method(px_object *obj,t_symbol *s,int argc,t_atom *argv) { // in obj->index there's the number of the inlet! }
In the object setup function you construct the proxies for all non-left inlets (or for whatever inlet you like)
for(ix = 0; ix < inlets; ++ix) { // all inlets except the leftmost inlets[ix] = (px_object *)pd_new(px_class); inlets[ix]->index = ix; inlet_new(&x_obj->obj,&inlets[ix]->obj.ob_pd, 0,0); // 0,0 to accept
all types of messages
}