static void grab_start(t_grab *x) { x->x_tograbbed = 0; x->x_bindelem = 0; if (x->x_target) { t_pd *proxy = x->x_target->s_thing; t_object *ob; if (proxy && bindlist_class) { if (*proxy == bindlist_class) { x->x_bindelem = ((t_bindlist *)proxy)->b_list; while (x->x_bindelem) { if (ob = pd_checkobject(x->x_bindelem->e_who)) { x->x_tograbbed = fragile_outlet_connections(ob->ob_outlet); return; } x->x_bindelem = x->x_bindelem->e_next; } } else if (ob = pd_checkobject(proxy)) x->x_tograbbed = fragile_outlet_connections(ob->ob_outlet); } } else x->x_tograbbed = fragile_outlet_connections(x->x_rightout); }
static void poltocar_dsp(t_poltocar *x, t_signal **sp) { if (fragile_outlet_connections(x->x_out2)) dsp_add(poltocar_perform, 5, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec); else dsp_add(poltocar_perform_noimag, 4, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); }
static void cartopol_dsp(t_cartopol *x, t_signal **sp) { if (fragile_outlet_connections(x->x_out2)) dsp_add(cartopol_perform, 5, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec); else dsp_add(cartopol_perform_nophase, 4, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); }
static t_pd *grab_next(t_grab *x) { nextremote: if (x->x_tograbbed) { int inno; x->x_tograbbed = fragile_outlet_nextconnection(x->x_tograbbed, &x->x_grabbed, &inno); if (x->x_grabbed) { if (inno) { if (x->x_target) loud_error((t_pd *)x, "right outlet must feed leftmost inlet"); else loud_error((t_pd *)x, "remote proxy must feed leftmost inlet"); } else { t_outlet *op; t_outlet *goutp; int goutno = x->x_noutlets; x->x_ngrabout = obj_noutlets(x->x_grabbed); if (goutno > x->x_ngrabout) goutno = x->x_ngrabout; while (goutno--) { x->x_grabcons[goutno] = obj_starttraverseoutlet(x->x_grabbed, &goutp, goutno); goutp->o_connections = obj_starttraverseoutlet((t_object *)x, &op, goutno); } return ((t_pd *)x->x_grabbed); } } } if (x->x_bindelem) while (x->x_bindelem = x->x_bindelem->e_next) { t_object *ob; if (ob = pd_checkobject(x->x_bindelem->e_who)) { x->x_tograbbed = fragile_outlet_connections(ob->ob_outlet); goto nextremote; } } return (0); }