static void *iem_send_kernel_new(void) { t_iem_send_kernel *x = (t_iem_send_kernel *)pd_new(iem_send_kernel_class); t_glist *glist = (t_glist *)canvas_getcurrent(); t_canvas *canvas=glist_getcanvas(glist); int ac=0; t_atom *av; canvas_setcurrent(canvas); canvas_getargs(&ac, &av); canvas_unsetcurrent(canvas); if(ac > 0) { if(IS_A_SYMBOL(av,0)) { x->x_sym = atom_getsymbol(av); } else if(IS_A_FLOAT(av,0)) { char str[100]; sprintf(str, "%g", atom_getfloat(av)); x->x_sym = gensym(str); } else x->x_sym = 0; } else x->x_sym = 0; return (x); }
void flext_obj::GetCanvasArgs(AtomList &args) const { #if FLEXT_SYS == FLEXT_SYS_PD int argc; t_atom *argv; canvas_getargs(&argc,&argv); args(argc,argv); #else #pragma message("Not implemented") args(0); #endif }
static void *dollarg_new(void) { t_dollarg *x = (t_dollarg *)pd_new(dollarg_class); t_glist *glist=(t_glist *)canvas_getcurrent(); t_canvas *canvas=glist_getcanvas(glist); int pargc; t_atom *pargv, *at; canvas_setcurrent(canvas); canvas_getargs(&pargc, &pargv); canvas_unsetcurrent(canvas); x->x_at = (t_atom *)getbytes(pargc*sizeof(t_atom)); x->x_ac = pargc; at = x->x_at; while(pargc--) *at++ = *pargv++; outlet_new(&x->x_obj, &s_list); x->x_outlet_ac = outlet_new(&x->x_obj, &s_float); return (x); }
static void canvasargs_bang(t_canvasargs *x) { int argc=0; t_atom*argv=0; t_binbuf*b=0; if(!x->x_canvas) return; b=x->x_canvas->gl_obj.te_binbuf; if(b) { argc=binbuf_getnatom(b)-1; argv=binbuf_getvec(b)+1; } else { canvas_setcurrent(x->x_canvas); canvas_getargs(&argc, &argv); canvas_unsetcurrent(x->x_canvas); } if(argv) outlet_list(x->x_obj.ob_outlet, &s_list, argc, argv); }
static void *iem_append_kernel_new(void) { t_iem_append_kernel *x = (t_iem_append_kernel *)pd_new(iem_append_kernel_class); t_glist *glist = (t_glist *)canvas_getcurrent(); t_canvas *canvas=glist_getcanvas(glist); int ac=0; t_atom *av; canvas_setcurrent(canvas); canvas_getargs(&ac, &av); canvas_unsetcurrent(canvas); x->x_type1 = A_NULL; x->x_sym1 = &s_list; x->x_size2 = 10; if(ac > 5) x->x_size2 = 2*ac; x->x_at2 = (t_atom *)getbytes(x->x_size2 * sizeof(t_atom)); x->x_size12 = x->x_size2 + 10; x->x_at12 = (t_atom *)getbytes(x->x_size12 * sizeof(t_atom)); x->x_ac1 = 0; x->x_inlet_select = 1; if(ac <= 0) { x->x_type2 = A_NULL; x->x_ac2 = 0; x->x_sym2 = &s_list; } else { if(IS_A_FLOAT(av, 0)) { if(ac == 1) iem_append_kernel_float(x, atom_getfloat(av)); else iem_append_kernel_list(x, &s_list, ac, av); } else if(IS_A_SYMBOL(av, 0)) { t_symbol *xsym=atom_getsymbol(av); if(xsym == gensym("symbol")) { if(ac > 1) iem_append_kernel_symbol(x, atom_getsymbol(av+1)); else iem_append_kernel_symbol(x, gensym("")); } else if(xsym == gensym("float")) { if(ac > 1) { if(IS_A_FLOAT(av, 1)) iem_append_kernel_float(x, atom_getfloat(av+1)); else iem_append_kernel_float(x, 0.0f); } else iem_append_kernel_float(x, 0.0f); } else if(xsym == gensym("list")) { iem_append_kernel_list(x, &s_list, ac-1, av+1); } else { iem_append_kernel_anything(x, xsym, ac-1, av+1); } } } outlet_new(&x->x_obj, &s_list); return (x); }