[PD-cvs] pd/src desire.c, 1.1.2.161, 1.1.2.162 desire.h, 1.1.2.30, 1.1.2.31
Mathieu Bouchard
matju at users.sourceforge.net
Thu Sep 7 07:14:58 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20394
Modified Files:
Tag: devel_0_39
desire.c desire.h
Log Message:
cleanup in text_save. cleanup in t_gatom code. more use of the macro glists_each (note the plural. that's the one that iterates the
canvas_list)
Index: desire.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v
retrieving revision 1.1.2.30
retrieving revision 1.1.2.31
diff -C2 -d -r1.1.2.30 -r1.1.2.31
*** desire.h 7 Sep 2006 01:54:53 -0000 1.1.2.30
--- desire.h 7 Sep 2006 05:14:56 -0000 1.1.2.31
***************
*** 249,264 ****
EXTERN void word_free(t_word *wp, t_template *tmpl);
EXTERN void scalar_redraw(t_scalar *x, t_glist *glist);
- EXTERN int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap, t_symbol *elemtemplatesym,
- float linewidth, float xloc, float xinc, float yloc, float scalarvis,
- t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
- int xpix, int ypix, int shift, int alt, int dbl, int doit);
- EXTERN void array_getcoordinate(t_glist *glist, char *elem, int xonset, int yonset, int wonset, int indx,
- float basex, float basey, float xinc,
- t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
- float *xp, float *yp, float *wp);
- EXTERN int array_getfields(t_symbol *elemtemplatesym, t_canvas **elemtemplatecanvasp,
- t_template **elemtemplatep, int *elemsizep,
- t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
- int *xonsetp, int *yonsetp, int *wonsetp);
EXTERN t_template *template_new(t_symbol *sym, int argc, t_atom *argv);
EXTERN void template_free(t_template *x);
--- 249,252 ----
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.161
retrieving revision 1.1.2.162
diff -C2 -d -r1.1.2.161 -r1.1.2.162
*** desire.c 7 Sep 2006 01:54:52 -0000 1.1.2.161
--- desire.c 7 Sep 2006 05:14:55 -0000 1.1.2.162
***************
*** 1099,1105 ****
/* public interface for above. */
void canvas_redrawallfortemplate(t_template *template, int action) {
! t_canvas *x;
! /* find all root canvases */
! for (x = canvas_list; x; x = x->gl_next) glist_redrawall(x, action);
}
--- 1099,1103 ----
/* public interface for above. */
void canvas_redrawallfortemplate(t_template *template, int action) {
! t_canvas *x; glists_each(x,canvas_list) glist_redrawall(x, action);
}
***************
*** 1219,1227 ****
}
- /* call canvas_doreload on everyone */
void canvas_reload(t_symbol *name, t_symbol *dir, t_gobj *except) {
! t_canvas *x;
! /* find all root canvases */
! for (x = canvas_list; x; x = x->gl_next) glist_doreload(x, name, dir, except);
}
--- 1217,1222 ----
}
void canvas_reload(t_symbol *name, t_symbol *dir, t_gobj *except) {
! t_canvas *x; glists_each(x,canvas_list) glist_doreload(x, name, dir, except);
}
***************
*** 1411,1419 ****
void canvas_finderror(void *error_object) {
! t_canvas *x;
! /* find all root canvases */
! for (x = canvas_list; x; x = x->gl_next) {
! if (glist_dofinderror(x, error_object)) return;
! }
post("... sorry, I couldn't find the source of that error.");
}
--- 1406,1410 ----
void canvas_finderror(void *error_object) {
! t_canvas *x; glists_each(x,canvas_list) if (glist_dofinderror(x, error_object)) return;
post("... sorry, I couldn't find the source of that error.");
}
***************
*** 1452,1456 ****
glist_getindex(x, &t.to->ob_g), t.inlet);
}
- //binbuf_print(x->connectbuf);
}
--- 1443,1446 ----
***************
*** 1892,1896 ****
/* routine to get screen coordinates of a point in an array */
! void array_getcoordinate(t_glist *glist, char *elem, int xonset, int yonset, int wonset, int indx,
float basex, float basey, float xinc,
t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
--- 1882,1886 ----
/* routine to get screen coordinates of a point in an array */
! static void array_getcoordinate(t_glist *glist, char *elem, int xonset, int yonset, int wonset, int indx,
float basex, float basey, float xinc,
t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
***************
*** 1999,2002 ****
--- 1989,1997 ----
int shift, int alt, int dbl, int doit);
+ static int array_getfields(t_symbol *elemtemplatesym, t_canvas **elemtemplatecanvasp,
+ t_template **elemtemplatep, int *elemsizep,
+ t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
+ int *xonsetp, int *yonsetp, int *wonsetp);
+
/* try clicking on an element of the array as a scalar (if clicking
on the trace of the array failed) */
***************
*** 4713,4718 ****
post("conforming template '%s' to new structure", tfrom->sym->s_name);
for (i = 0; i < nto; i++) post("... %d", conformaction[i]);
! for (gl = canvas_list; gl; gl = gl->gl_next)
! template_conformglist(tfrom, tto, gl, conformaction);
}
freebytes(conformaction, sizeof(int) * nto);
--- 4708,4712 ----
post("conforming template '%s' to new structure", tfrom->sym->s_name);
for (i = 0; i < nto; i++) post("... %d", conformaction[i]);
! glists_each(gl,canvas_list) template_conformglist(tfrom, tto, gl, conformaction);
}
freebytes(conformaction, sizeof(int) * nto);
***************
*** 5430,5434 ****
/* get everything else you could possibly need about a plot,
either for plot's own purposes or for plotting a "garray" */
! int array_getfields(t_symbol *elemtemplatesym, t_canvas **elemtemplatecanvasp,
t_template **elemtemplatep, int *elemsizep,
t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
--- 5424,5428 ----
/* get everything else you could possibly need about a plot,
either for plot's own purposes or for plotting a "garray" */
! static int array_getfields(t_symbol *elemtemplatesym, t_canvas **elemtemplatecanvasp,
t_template **elemtemplatep, int *elemsizep,
t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
***************
*** 6983,7007 ****
}
static void message_addcomma(t_message *x) {
! t_atom a;
! SETCOMMA(&a);
binbuf_add(x->m_text.te_binbuf, 1, &a);
gobj_changed(x->glist,0);
}
-
- static void message_addsemi(t_message *x) {message_add(x,0,0,0);}
-
static void message_adddollar(t_message *x, t_floatarg f) {
! t_atom a;
! int n = f;
! if (n<0) n=0;
! SETDOLLAR(&a, n);
binbuf_add(x->m_text.te_binbuf, 1, &a);
gobj_changed(x->glist,0);
}
-
static void message_adddollsym(t_message *x, t_symbol *s) {
! t_atom a;
! SETDOLLSYM(&a, s);
binbuf_add(x->m_text.te_binbuf, 1, &a);
gobj_changed(x->glist,0);
--- 6977,6994 ----
}
+ static void message_addsemi(t_message *x) {message_add(x,0,0,0);}
+
static void message_addcomma(t_message *x) {
! t_atom a; SETCOMMA(&a);
binbuf_add(x->m_text.te_binbuf, 1, &a);
gobj_changed(x->glist,0);
}
static void message_adddollar(t_message *x, t_floatarg f) {
! t_atom a; SETDOLLAR(&a, f<0?0:f);
binbuf_add(x->m_text.te_binbuf, 1, &a);
gobj_changed(x->glist,0);
}
static void message_adddollsym(t_message *x, t_symbol *s) {
! t_atom a; SETDOLLSYM(&a, s);
binbuf_add(x->m_text.te_binbuf, 1, &a);
gobj_changed(x->glist,0);
***************
*** 7042,7049 ****
t_float max,min;
t_symbol *label; /* symbol to show as label next to box */
! t_symbol *a_symfrom;/* "receive" name -- bind ourselvs to this */
! t_symbol *a_symto; /* "send" name -- send to this on output */
char wherelabel; /* 0-3 for left, right, above, below */
! t_symbol *expanded_to; /* a_symto after $0, $1, ... expansion */
} t_gatom;
--- 7029,7036 ----
t_float max,min;
t_symbol *label; /* symbol to show as label next to box */
! t_symbol *rcv;
! t_symbol *snd;
char wherelabel; /* 0-3 for left, right, above, below */
! t_symbol *expanded_to; /* snd after $0, $1, ... expansion */
} t_gatom;
***************
*** 7089,7099 ****
if (o) outlet_float(o, x->atom.a_w.w_float);
if (*s->s_name && s->s_thing) {
! if (x->a_symto == x->a_symfrom) goto err;
pd_float(s->s_thing, x->atom.a_w.w_float);
}
} else if (x->atom.a_type == A_SYMBOL) {
if (o) outlet_symbol(o, x->atom.a_w.w_symbol);
! if (*x->a_symto->s_name && s->s_thing) {
! if (x->a_symto == x->a_symfrom) goto err;
pd_symbol(s->s_thing, x->atom.a_w.w_symbol);
}
--- 7076,7086 ----
if (o) outlet_float(o, x->atom.a_w.w_float);
if (*s->s_name && s->s_thing) {
! if (x->snd == x->rcv) goto err;
pd_float(s->s_thing, x->atom.a_w.w_float);
}
} else if (x->atom.a_type == A_SYMBOL) {
if (o) outlet_symbol(o, x->atom.a_w.w_symbol);
! if (*s->s_name && s->s_thing) {
! if (x->snd == x->rcv) goto err;
pd_symbol(s->s_thing, x->atom.a_w.w_symbol);
}
***************
*** 7102,7106 ****
err:
pd_error(x, "%s: atom with same send/receive name (infinite loop)",
! x->a_symto->s_name);
}
--- 7089,7093 ----
err:
pd_error(x, "%s: atom with same send/receive name (infinite loop)",
! x->snd->s_name);
}
***************
*** 7112,7146 ****
/* message back from dialog window */
static void gatom_param(t_gatom *x, t_symbol *sel, int argc, t_atom *argv) {
! t_float width = atom_getfloatarg(0, argc, argv);
! t_float draglo = atom_getfloatarg(1, argc, argv);
! t_float draghi = atom_getfloatarg(2, argc, argv);
! t_symbol *label = gatom_unescapit(atom_getsymbolarg(3, argc, argv));
! t_float wherelabel = atom_getfloatarg(4, argc, argv);
! t_symbol *symfrom = gatom_unescapit(atom_getsymbolarg(5, argc, argv));
! t_symbol *symto = gatom_unescapit(atom_getsymbolarg(6, argc, argv));
t_text *t = (t_text *)x;
!
! if (!*symfrom->s_name && *x->a_symfrom->s_name) inlet_new(t, (t_pd *)t, 0, 0);
! else if (*symfrom->s_name && !*x->a_symfrom->s_name && t->te_inlet) {
canvas_deletelinesforio(x->glist, t, t->te_inlet, 0);
inlet_free(t->te_inlet);
}
! if (!*symto->s_name && *x->a_symto->s_name) outlet_new(&x->a_text, 0);
! else if (*symto->s_name && !*x->a_symto->s_name && t->te_outlet) {
canvas_deletelinesforio(x->glist, t, 0, t->te_outlet);
outlet_free(t->te_outlet);
}
! if (draglo >= draghi) draglo = draghi = 0;
! x->min = draglo;
! x->max = draghi;
if (width < 0) width = 4; else if (width > 80) width = 80;
x->a_text.te_width = width;
x->wherelabel = ((int)wherelabel & 3);
x->label = label;
! if (*x->a_symfrom->s_name) pd_unbind((t_pd *)x, canvas_realizedollar(x->glist, x->a_symfrom));
! x->a_symfrom = symfrom;
! if (*x->a_symfrom->s_name) pd_bind( (t_pd *)x, canvas_realizedollar(x->glist, x->a_symfrom));
! x->a_symto = symto;
! x->expanded_to = canvas_realizedollar(x->glist, x->a_symto);
gobj_changed(x,0);
}
--- 7099,7131 ----
/* message back from dialog window */
static void gatom_param(t_gatom *x, t_symbol *sel, int argc, t_atom *argv) {
! t_float width,min,max,wherelabel;
! t_symbol *label,*rcv,*snd;
t_text *t = (t_text *)x;
! pd_scanargs(argc,argv,"fffsfss",&width,&min,&max,&label,&wherelabel,&rcv,&snd);
! label = gatom_unescapit(label);
! rcv = gatom_unescapit(rcv);
! snd = gatom_unescapit(snd);
! if (!*rcv->s_name && *x->rcv->s_name) inlet_new(t, (t_pd *)t, 0, 0);
! else if (*rcv->s_name && !*x->rcv->s_name && t->te_inlet) {
canvas_deletelinesforio(x->glist, t, t->te_inlet, 0);
inlet_free(t->te_inlet);
}
! if (!*snd->s_name && *x->snd->s_name) outlet_new(&x->a_text, 0);
! else if (*snd->s_name && !*x->snd->s_name && t->te_outlet) {
canvas_deletelinesforio(x->glist, t, 0, t->te_outlet);
outlet_free(t->te_outlet);
}
! if (min>=max) min=max=0;
! x->min=min;
! x->max=max;
if (width < 0) width = 4; else if (width > 80) width = 80;
x->a_text.te_width = width;
x->wherelabel = ((int)wherelabel & 3);
x->label = label;
! if (*x->rcv->s_name) pd_unbind((t_pd *)x, canvas_realizedollar(x->glist, x->rcv));
! x->rcv = rcv;
! if (*x->rcv->s_name) pd_bind( (t_pd *)x, canvas_realizedollar(x->glist, x->rcv));
! x->snd = snd;
! x->expanded_to = canvas_realizedollar(x->glist, x->snd);
gobj_changed(x,0);
}
***************
*** 7155,7164 ****
x->atom.a_type = type;
x->toggle = 1;
! x->min = 0;
! x->max = 0;
x->wherelabel = 0;
x->label = &s_;
! x->a_symfrom = &s_;
! x->a_symto = x->expanded_to = &s_;
if (type == A_FLOAT) {
x->atom.a_w.w_float = 0;
--- 7140,7148 ----
x->atom.a_type = type;
x->toggle = 1;
! x->min = x->max = 0;
x->wherelabel = 0;
x->label = &s_;
! x->rcv = &s_;
! x->snd = x->expanded_to = &s_;
if (type == A_FLOAT) {
x->atom.a_w.w_float = 0;
***************
*** 7172,7195 ****
binbuf_add(x->a_text.te_binbuf, 1, &at);
if (argc > 1) {
! /* create from file. x, y, width, low-range, high-range, flags,
! label, receive-name, send-name */
x->a_text.te_xpix = atom_getfloatarg(0, argc, argv);
x->a_text.te_ypix = atom_getfloatarg(1, argc, argv);
! x->a_text.te_width = atom_getintarg(2, argc, argv);
! /* sanity check because some very old patches have trash in this
! field... remove this in 2003 or so: */
! if (x->a_text.te_width < 0 || x->a_text.te_width > 500) x->a_text.te_width = 4;
! x->min = atom_getfloatarg(3, argc, argv);
! x->max = atom_getfloatarg(4, argc, argv);
! x->wherelabel = (((int)atom_getfloatarg(5, argc, argv)) & 3);
! x->label = gatom_unescapit(atom_getsymbolarg(6, argc, argv));
! x->a_symfrom = gatom_unescapit(atom_getsymbolarg(7, argc, argv));
! if (*x->a_symfrom->s_name)
! pd_bind(&x->a_text.te_pd, canvas_realizedollar(x->glist, x->a_symfrom));
!
! x->a_symto = gatom_unescapit(atom_getsymbolarg(8, argc, argv));
! x->expanded_to = canvas_realizedollar(x->glist, x->a_symto);
! if (x->a_symto == &s_) outlet_new(&x->a_text, x->atom.a_type == A_FLOAT ? &s_float: &s_symbol);
! if (x->a_symfrom == &s_) inlet_new(&x->a_text, &x->a_text.te_pd, 0, 0);
glist_add(gl, &x->a_text.te_g);
} else {
--- 7156,7173 ----
binbuf_add(x->a_text.te_binbuf, 1, &at);
if (argc > 1) {
! float width;
! char wherelabel;
x->a_text.te_xpix = atom_getfloatarg(0, argc, argv);
x->a_text.te_ypix = atom_getfloatarg(1, argc, argv);
! pd_scanargs(argc-2,argv+2,"fffsfss",&width,&x->min,&x->max,&x->label,&wherelabel,&x->rcv,&x->snd);
! x->a_text.te_width = (width<0||width>500) ? 4 : width;
! x->wherelabel = wherelabel&3;
! x->label = gatom_unescapit(x->label);
! x->rcv = gatom_unescapit(x->rcv);
! if (*x->rcv->s_name) pd_bind(&x->a_text.te_pd, canvas_realizedollar(x->glist, x->rcv));
! x->snd = gatom_unescapit(x->snd);
! x->expanded_to = canvas_realizedollar(x->glist, x->snd);
! if (x->snd == &s_) outlet_new(&x->a_text, x->atom.a_type == A_FLOAT ? &s_float: &s_symbol);
! if (x->rcv == &s_) inlet_new(&x->a_text, &x->a_text.te_pd, 0, 0);
glist_add(gl, &x->a_text.te_g);
} else {
***************
*** 7210,7236 ****
static void gatom_free(t_gatom *x) {
! if (*x->a_symfrom->s_name) pd_unbind((t_pd *)x, canvas_realizedollar(x->glist, x->a_symfrom));
gfxstub_deleteforkey(x);
}
! static void text_vis(t_gobj *z, t_glist *glist, int vis) {
! t_text *x = (t_text *)z;
! gobj_changed(x,0);
}
void text_save(t_gobj *z, t_binbuf *b) {
t_text *x = (t_text *)z;
if (x->te_type == T_OBJECT) {
if (zgetfn(&x->te_pd, gensym("saveto")) &&
! !((pd_class(&x->te_pd) == canvas_class) &&
! (canvas_isabstraction((t_canvas *)x)
! || canvas_istable((t_canvas *)x))))
! {
mess1(&x->te_pd, gensym("saveto"), b);
! binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"),
! (t_int)x->te_xpix, (t_int)x->te_ypix);
} else {
! binbuf_addv(b, "ssii", gensym("#X"), gensym("obj"),
! (t_int)x->te_xpix, (t_int)x->te_ypix);
}
if (x->te_binbuf) {
--- 7188,7209 ----
static void gatom_free(t_gatom *x) {
! if (*x->rcv->s_name) pd_unbind((t_pd *)x, canvas_realizedollar(x->glist, x->rcv));
gfxstub_deleteforkey(x);
}
! void canvas_saverestoreto(t_canvas *x, t_binbuf *b) {
!
}
void text_save(t_gobj *z, t_binbuf *b) {
t_text *x = (t_text *)z;
+ t_canvas *c = (t_canvas *)z; /* in case it is */
if (x->te_type == T_OBJECT) {
if (zgetfn(&x->te_pd, gensym("saveto")) &&
! !(pd_class(&x->te_pd)==canvas_class && (canvas_isabstraction(c) || canvas_istable(c)))) {
mess1(&x->te_pd, gensym("saveto"), b);
! binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"), (t_int)x->te_xpix, (t_int)x->te_ypix);
} else {
! binbuf_addv(b, "ssii", gensym("#X"), gensym("obj"), (t_int)x->te_xpix, (t_int)x->te_ypix);
}
if (x->te_binbuf) {
***************
*** 7239,7268 ****
bug("binbuf missing at #X restore !!!");
}
- binbuf_addv(b, ";");
} else if (x->te_type == T_MESSAGE) {
! binbuf_addv(b, "ssii", gensym("#X"), gensym("msg"),
! (t_int)x->te_xpix, (t_int)x->te_ypix);
binbuf_addbinbuf(b, x->te_binbuf);
- binbuf_addv(b, ";");
} else if (x->te_type == T_ATOM) {
! t_atomtype t = ((t_gatom *)x)->atom.a_type;
! t_symbol *sel = (t == A_SYMBOL ? gensym("symbolatom") :
! (t == A_FLOAT ? gensym("floatatom") : gensym("intatom")));
! t_symbol *label = gatom_escapit(((t_gatom *)x)->label);
! t_symbol *symfrom = gatom_escapit(((t_gatom *)x)->a_symfrom);
! t_symbol *symto = gatom_escapit(((t_gatom *)x)->a_symto);
! binbuf_addv(b, "ssiiifffsss", gensym("#X"), sel,
! (t_int)x->te_xpix, (t_int)x->te_ypix, (t_int)x->te_width,
! (double)((t_gatom *)x)->min,
! (double)((t_gatom *)x)->max,
! (double)((t_gatom *)x)->wherelabel,
! label, symfrom, symto);
! binbuf_addv(b, ";");
! } else {
! binbuf_addv(b, "ssii", gensym("#X"), gensym("text"),
! (t_int)x->te_xpix, (t_int)x->te_ypix);
binbuf_addbinbuf(b, x->te_binbuf);
- binbuf_addv(b, ";");
}
appendix_save(z,b);
}
--- 7212,7230 ----
bug("binbuf missing at #X restore !!!");
}
} else if (x->te_type == T_MESSAGE) {
! binbuf_addv(b, "ssii", gensym("#X"), gensym("msg"), (t_int)x->te_xpix, (t_int)x->te_ypix);
binbuf_addbinbuf(b, x->te_binbuf);
} else if (x->te_type == T_ATOM) {
! t_gatom *g;
! t_atomtype t = g->atom.a_type;
! t_symbol *sel = t==A_SYMBOL? gensym("symbolatom") : gensym("floatatom");
! binbuf_addv(b, "ssiiifffsss", gensym("#X"), sel, (t_int)x->te_xpix, (t_int)x->te_ypix,
! (t_int)x->te_width, (double)g->min, (double)g->max, (double)g->wherelabel,
! gatom_escapit(g->label), gatom_escapit(g->rcv), gatom_escapit(g->snd));
! } else { /* comment */
! binbuf_addv(b, "ssii", gensym("#X"), gensym("text"), (t_int)x->te_xpix, (t_int)x->te_ypix);
binbuf_addbinbuf(b, x->te_binbuf);
}
+ binbuf_addv(b, ";");
appendix_save(z,b);
}
***************
*** 7274,7281 ****
t_atom *vec1, *vec2;
binbuf_text(b, buf, bufsize);
! natom1 = binbuf_getnatom(x->te_binbuf);
! vec1 = binbuf_getvec(x->te_binbuf);
! natom2 = binbuf_getnatom(b);
! vec2 = binbuf_getvec(b);
/* special case: if pd args change just pass the message on. */
if (natom1 >= 1 && natom2 >= 1 &&
--- 7236,7241 ----
t_atom *vec1, *vec2;
binbuf_text(b, buf, bufsize);
! natom1 = binbuf_getnatom(x->te_binbuf); vec1 = binbuf_getvec(x->te_binbuf);
! natom2 = binbuf_getnatom(b); vec2 = binbuf_getvec(b);
/* special case: if pd args change just pass the message on. */
if (natom1 >= 1 && natom2 >= 1 &&
***************
*** 7427,7440 ****
t_symbol *rcv = canvas_realizedollar(x->glist, s);
if (rcv==s_empty) rcv=0;
! if(rcv) {
! if(rcv!=x->rcv) {
! if(x->rcv) pd_unbind((t_pd *)x, x->rcv);
! x->rcv = rcv;
! pd_bind((t_pd *)x, x->rcv);
! }
! } else if(!rcv && x->rcv) {
! pd_unbind((t_pd *)x, x->rcv);
! x->rcv = rcv;
! }
gobj_changed(x,"rcv");
}
--- 7387,7394 ----
t_symbol *rcv = canvas_realizedollar(x->glist, s);
if (rcv==s_empty) rcv=0;
! if (rcv==x->rcv) return;
! if(x->rcv) pd_unbind((t_pd *)x, x->rcv);
! x->rcv = rcv;
! if(rcv) pd_bind((t_pd *)x, x->rcv);
gobj_changed(x,"rcv");
}
***************
*** 7605,7609 ****
char *s;
t_text *x = (t_text *)self;
- #if 1
if (c==canvas_class) {
/* just the "#N canvas" line, not the contents */
--- 7559,7562 ----
***************
*** 7621,7649 ****
c->c_savefn(self,b);
}
- #endif
- #if 0
- /* adapted from text_save. sorry */
- if (x->te_type == T_OBJECT && zgetfn(&x->te_pd, gensym("saveto")) &&
- !((pd_class(&x->te_pd) == canvas_class) &&
- (canvas_isabstraction((t_canvas *)x)
- || canvas_istable((t_canvas *)x)))) {
- mess1(&x->te_pd, gensym("saveto"), b);
- binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"),
- (t_int)x->te_xpix, (t_int)x->te_ypix);
- if (x->te_binbuf) {
- binbuf_addbinbuf(b, x->te_binbuf);
- } else {
- bug("binbuf missing at #X restore !!!");
- }
- binbuf_addv(b, ";");
- } else {
- c->c_savefn(self,b);
- }
- #endif
-
binbuf_gettext(b,&s,&n);
if (s[n-1]=='\n') n--;
! sys_vgui("update_object x%lx {%.*s} %d %d\n",
! (long)self,n,s,
obj_ninlets((t_text *)self),
obj_noutlets((t_text *)self));
--- 7574,7580 ----
c->c_savefn(self,b);
}
binbuf_gettext(b,&s,&n);
if (s[n-1]=='\n') n--;
! sys_vgui("update_object x%lx {%.*s} %d %d\n",(long)self,n,s,
obj_ninlets((t_text *)self),
obj_noutlets((t_text *)self));
***************
*** 7893,7898 ****
}
! static void toggle_float(t_toggle *x, t_floatarg f) {toggle_set(x, f); if(iemgui_forward(x)) toggle_action(x);}
! static void toggle_fout (t_toggle *x, t_floatarg f) {toggle_set(x, f); toggle_action(x);}
static void toggle_loadbang(t_toggle *x) {if(iemgui_loadbang(x)) toggle_fout(x, (float)x->on);}
--- 7824,7829 ----
}
! static void toggle_float(t_toggle *x, t_floatarg f) {toggle_set(x,f);if(iemgui_forward(x)) toggle_action(x);}
! static void toggle_fout (t_toggle *x, t_floatarg f) {toggle_set(x,f); toggle_action(x);}
static void toggle_loadbang(t_toggle *x) {if(iemgui_loadbang(x)) toggle_fout(x, (float)x->on);}
***************
*** 8003,8008 ****
if (isdial) {
/* compatibility with earlier "hdial" behavior */
! if(x->change && i!=x->on_old && (!forwardonly || iemgui_forward(x)))
! radio_send2(x,x->on_old,0.0);
x->on_old = x->on;
x->on = i;
--- 7934,7938 ----
if (isdial) {
/* compatibility with earlier "hdial" behavior */
! if(x->change && i!=x->on_old && (!forwardonly || iemgui_forward(x))) radio_send2(x,x->on_old,0.0);
x->on_old = x->on;
x->on = i;
***************
*** 8076,8080 ****
CLAMP(x->on,0,x->number-1);
x->on_old = x->on = x->isa&1 ? x->on : 0;
! outlet_new(&x->obj, &s_list);
radio_reload(x,0,argc,argv);
return x;
--- 8006,8010 ----
CLAMP(x->on,0,x->number-1);
x->on_old = x->on = x->isa&1 ? x->on : 0;
! outlet_new((t_text *)x, &s_list);
radio_reload(x,0,argc,argv);
return x;
***************
*** 8177,8191 ****
static void slider_log(t_slider *x) {x->is_log=1; slider_check_minmax(x);}
static void slider_steady(t_slider *x, t_floatarg f) {x->steady = !!f;}
! static void slider_float(t_slider *x, t_floatarg f)
! {slider_set(x, f); if(iemgui_forward(x)) slider_bang(x);}
! static void slider_loadbang(t_slider *x)
! {if(iemgui_loadbang(x)) slider_bang(x);}
static int slider_pickle(t_slider *x, t_foo *foo) {
return pd_pickle(foo, "iiddbiaaaiiiiccci;b",
! &x->w,&x->h,&x->min,&x->max,&x->is_log,&x->isa,
! &x->snd,&x->rcv,&x->lab,
! &x->ldx,&x->ldy,&x->font_style,&x->fontsize,
! &x->bcol,&x->fcol,&x->lcol,&x->val,&x->steady);
}
--- 8107,8117 ----
static void slider_log(t_slider *x) {x->is_log=1; slider_check_minmax(x);}
static void slider_steady(t_slider *x, t_floatarg f) {x->steady = !!f;}
! static void slider_float(t_slider *x, t_floatarg f) {slider_set(x,f);if(iemgui_forward(x))slider_bang(x);}
! static void slider_loadbang(t_slider *x) {if(iemgui_loadbang(x)) slider_bang(x);}
static int slider_pickle(t_slider *x, t_foo *foo) {
return pd_pickle(foo, "iiddbiaaaiiiiccci;b",
! &x->w,&x->h,&x->min,&x->max,&x->is_log,&x->isa,&x->snd,&x->rcv,&x->lab,
! &x->ldx,&x->ldy,&x->font_style,&x->fontsize,&x->bcol,&x->fcol,&x->lcol,&x->val,&x->steady);
}
***************
*** 8217,8221 ****
x->max=(double)(IEM_SL_DEFAULTSIZE-1);
if (isvert(x)) x->h=IEM_SL_DEFAULTSIZE; else x->w=IEM_SL_DEFAULTSIZE;
! outlet_new(&x->obj, &s_float);
slider_reload(x,0,argc,argv);
return x;
--- 8143,8147 ----
x->max=(double)(IEM_SL_DEFAULTSIZE-1);
if (isvert(x)) x->h=IEM_SL_DEFAULTSIZE; else x->w=IEM_SL_DEFAULTSIZE;
! outlet_new((t_text *)x, &s_float);
slider_reload(x,0,argc,argv);
return x;
***************
*** 8272,8281 ****
static void nbbang(t_nbx *x) {
outlet_float(x->obj.ob_outlet, x->val);
! if(x->snd && x->snd->s_thing)
! pd_float(x->snd->s_thing, x->val);
}
! static void nbset(t_nbx *x, t_floatarg f)
! {x->val=f; nbclip(x); gobj_changed(x,0);}
static void nblog_height(t_nbx *x, t_floatarg lh) {
--- 8198,8206 ----
static void nbbang(t_nbx *x) {
outlet_float(x->obj.ob_outlet, x->val);
! if(x->snd && x->snd->s_thing) pd_float(x->snd->s_thing, x->val);
}
! static void nbset(t_nbx *x, t_floatarg f) {x->val=f; nbclip(x); gobj_changed(x,0);}
! static void nbfloat(t_nbx *x, t_floatarg f) {nbset(x, f); if(iemgui_forward(x)) nbbang(x);}
static void nblog_height(t_nbx *x, t_floatarg lh) {
***************
*** 8284,8290 ****
}
- static void nbfloat(t_nbx *x, t_floatarg f)
- {nbset(x, f); if(iemgui_forward(x)) nbbang(x);}
-
static void nbsize(t_nbx *x, t_symbol *s, int ac, t_atom *av) {
x->w = MAX(1,(int)atom_getintarg(0, ac, av));
--- 8209,8212 ----
***************
*** 8445,8450 ****
static void *vu_new(t_symbol *s, int argc, t_atom *argv) {
t_vu *x = (t_vu *)iemgui_new(vu_class);
! x->out_rms = outlet_new(&x->obj, &s_float);
! x->out_peak = outlet_new(&x->obj, &s_float);
x->h=IEM_VU_STEPS*3;
x->scale = 1;
--- 8367,8372 ----
static void *vu_new(t_symbol *s, int argc, t_atom *argv) {
t_vu *x = (t_vu *)iemgui_new(vu_class);
! x->out_rms = outlet_new((t_text *)x, &s_float);
! x->out_peak = outlet_new((t_text *)x, &s_float);
x->h=IEM_VU_STEPS*3;
x->scale = 1;
***************
*** 8452,8456 ****
x->fp = x->fr = -101.0;
vu_check_height(x, x->h);
! inlet_new(&x->obj, &x->obj.ob_pd, &s_float, gensym("ft1"));
vu_reload(x,0,argc,argv);
return x;
--- 8374,8378 ----
x->fp = x->fr = -101.0;
vu_check_height(x, x->h);
! inlet_new((t_text *)x, (t_pd *)x, &s_float, gensym("ft1"));
vu_reload(x,0,argc,argv);
return x;
***************
*** 8475,8480 ****
static void cnv_get_pos(t_cnv *x) {
if(x->snd && x->snd->s_thing) {
! x->at[0].a_w.w_float = text_xpix(&x->obj, x->glist);
! x->at[1].a_w.w_float = text_ypix(&x->obj, x->glist);
pd_list(x->snd->s_thing, &s_list, 2, x->at);
}
--- 8397,8402 ----
static void cnv_get_pos(t_cnv *x) {
if(x->snd && x->snd->s_thing) {
! x->at[0].a_w.w_float = text_xpix((t_text *)x, x->glist);
! x->at[1].a_w.w_float = text_ypix((t_text *)x, x->glist);
pd_list(x->snd->s_thing, &s_list, 2, x->at);
}
***************
*** 8860,8864 ****
}
- void canvas_menuclose(t_canvas *x, t_floatarg fforce);
/* properly close all open root canvases */
void glob_closeall(void *dummy, t_floatarg fforce) {
--- 8782,8785 ----
More information about the Pd-cvs
mailing list