In the linked code, they're basically making another class of type t_proxy:
typedef struct _proxy {
t_pd l_pd;
// if you want to maintain a pointer to your main class,
// if not, besure to change the 'init' function
void *yourclass;
} t_proxy;
This struct is declared as a member of the main class's struct:
typedef struct _yourclass {
t_object x_obj;
t_proxy pxy;
} t_yourclass;
and the new inlet is created in the "new" method of the main class (yourclass_new) but with the destination pointing to the proxy rather than the main class. This is done via:
inlet_new(&x -> x_obj, &x -> pxy.l_pd, 0, 0);
with no selectors passed. However, this only makes a control inlet.
Trying out:
inlet_new(&x -> x_obj, &x -> pxy.l_pd, &s_signal, &s_signal);
makes a signal inlet, but it seems like the signal values are only accessible via the main class's dsp/perform methods and not via the dsp/perform methods i tried to make for proxy (I call CLASS_MAINSIGNALIN in both the setup of the main class and the proxy class). That's not a huge deal, but I also declared a float method within proxy's setup via class_addfloat(proxy_class, (t_method)proxy_post); where proxy_post just posts to the pd window whenever it receives a float and this method only seems to be called when I declare the inlet the first way with no selectors (when it's a control inlet) and not the second way passing the signal selectors (making it a signal inlet). In the second way, the float just acts like a substitute for a signal (which is what I don't want).
My main goal is to have a second signal inlet that can also accept floats not as a substitute for a signal but calls a separate method. Any ideas? Thanks!
Derek