Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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"));
}
Esempio n. 5
0
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);
}
Esempio n. 6
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);
        }
    }
}
Esempio n. 7
0
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);
}
Esempio n. 8
0
File: param.c Progetto: Angeldude/pd
// 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));
	}
}
Esempio n. 9
0
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");
}