static void odisplay_save(t_gobj *z, t_binbuf *b) { t_odisplay *x = (t_odisplay *)z; t_opd_textbox *t = x->textbox; binbuf_addv(b, "ssiisii", gensym("#X"),gensym("obj"),(t_int)x->ob.te_xpix, (t_int)x->ob.te_ypix, gensym("o.display"), t->width, t->height); binbuf_addsemi(b); }
static int import_obj(t_port *x, char *name) { int ndx = (x->x_inmess[1].a_w.w_symbol == gensym("user") ? 3 : 2); binbuf_addv(x->x_outbb, "ssff", gensym("#X"), gensym("obj"), port_getx(x, ndx), port_gety(x, ndx + 1)); import_addclassname(x, name, &x->x_inmess[ndx == 2 ? 6 : 2]); binbuf_addsemi(x->x_outbb); x->x_nobj++; return (PORT_NEXT); }
void array_define_save(t_gobj *z, t_binbuf *bb) { t_glist *x = (t_glist *)z; t_glist *gl = (x->gl_list ? pd_checkglist(&x->gl_list->g_pd) : 0); binbuf_addv(bb, "ssff", &s__X, gensym("obj"), (float)x->gl_obj.te_xpix, (float)x->gl_obj.te_ypix); binbuf_addbinbuf(bb, x->gl_obj.ob_binbuf); binbuf_addsemi(bb); garray_savecontentsto((t_garray *)gl->gl_list, bb); obj_saveformat(&x->gl_obj, bb); }
void hammerembed_save(t_gobj *master, t_binbuf *bb) { t_hammerfile *f = hammerfile_getproxy((t_pd *)master); t_text *t = (t_text *)master; binbuf_addv(bb, "ssii", &s__X, gensym("obj"), (int)t->te_xpix, (int)t->te_ypix); binbuf_addbinbuf(bb, t->te_binbuf); binbuf_addsemi(bb); if (f && f->f_embedfn) (*f->f_embedfn)(f->f_master, bb, ps__C); binbuf_addv(bb, "ss;", ps__C, gensym("restore")); }
static int import_emadd(t_port *x, t_symbol *state, int ac, t_atom *av) { if (import_emcheck(x, state)) { t_atom at; SETSYMBOL(&at, gensym("#C")); binbuf_add(x->x_embb, 1, &at); binbuf_add(x->x_embb, ac, av); binbuf_addsemi(x->x_embb); return (1); } else return (0); }
static void funbuff_embedhook(t_pd *z, t_binbuf *bb, t_symbol *bindsym) { t_funbuff *x = (t_funbuff *)z; if (x->x_embedflag) { t_hammernode *np; binbuf_addv(bb, "ssi;", bindsym, gensym("embed"), 1); if (np = x->x_tree.t_first) { binbuf_addv(bb, "ss", bindsym, gensym("set")); for (; np; np = np->n_next) binbuf_addv(bb, "if", np->n_key, HAMMERNODE_GETFLOAT(np)); binbuf_addsemi(bb); } } }
static int imaction_P6_coll(t_port *x, char *arg) { t_symbol *collname = port_getsymbol(x, 7); binbuf_addv(x->x_outbb, "ssffs", gensym("#X"), gensym("obj"), port_getx(x, 2), port_gety(x, 3), portps_coll); if (collname != &s_) { t_atom at; SETSYMBOL(&at, collname); binbuf_add(x->x_outbb, 1, &at); } binbuf_addsemi(x->x_outbb); import_emflush(x, portps_coll, collname); x->x_nobj++; return (PORT_NEXT); }
// SPECIAL PARAM SAVE FUNCTION static void paramClass_save(t_paramClass *x, t_binbuf* bb,int f) { //post("save:%i",f); // f = -1 for the main save file // f => 0 if it is a preset if ( f >= 0 && x->nopresets) return; //Put my data in binbuf if ((x->selector != &s_bang)) { int ac = x->ac + 2; t_atom *av = getbytes(ac*sizeof(*av)); tof_copy_atoms(x->av,av+2,x->ac); SETSYMBOL(av, x->param->path); SETSYMBOL(av+1, x->selector); binbuf_add(bb, ac, av); binbuf_addsemi(bb); freebytes(av, ac*sizeof(*av)); } }
static void plusproxy_qlist_symbol(t_plusproxy_qlist *pp, t_symbol *s) { t_plustot_qlist *x = pp->pp_master; Tcl_Interp *interp = 0; if (plustag_isvalid(s, 0)) { t_plustin *tin; Tcl_Obj *ob; if ((tin = plustag_tobtin(s, PLUSBOB_OWNER)) && (ob = plustob_getvalue((t_plustob *)s))) { t_binbuf *bb; if (bb = plustot_qlist_usurp(x)) { int nlists; Tcl_Obj **lists; interp = plustin_getinterp(tin); if (Tcl_ListObjGetElements(interp, ob, &nlists, &lists) == TCL_OK) { int lc; Tcl_Obj **lp; binbuf_clear(bb); for (lc = 0, lp = lists; lc < nlists; lc++, lp++) { int natoms; Tcl_Obj **atoms; if (Tcl_ListObjGetElements(interp, *lp, &natoms, &atoms) == TCL_OK) { int ac; Tcl_Obj **ap; for (ac = 0, ap = atoms; ac < natoms; ac++, ap++) { double d; int len; char *ptr; Tcl_IncrRefCount(*ap); if (Tcl_GetDoubleFromObj(interp, *ap, &d) == TCL_OK) { t_atom at; SETFLOAT(&at, (float)d); binbuf_add(bb, 1, &at); } else if ((ptr = Tcl_GetStringFromObj(*ap, &len)) && len) { t_atom at; if (ptr[len - 1]) { char buf[MAXPDSTRING]; if (len > MAXPDSTRING - 1) len = MAXPDSTRING - 1; strncpy(buf, ptr, len); buf[len] = 0; ptr = buf; } SETSYMBOL(&at, gensym(ptr)); binbuf_add(bb, 1, &at); } /* FIXME else */ Tcl_DecrRefCount(*ap); } binbuf_addsemi(bb); } else { binbuf_clear(bb); goto notalist; } } } else goto notalist; } } } return; notalist: if (interp) plusloud_tclerror((t_pd *)x, interp, "not a list"); }