[PD-cvs] pd/src desire.c,1.1.2.166,1.1.2.167
Mathieu Bouchard
matju at users.sourceforge.net
Thu Sep 7 12:18:55 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1756
Modified Files:
Tag: devel_0_39
desire.c
Log Message:
.
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.166
retrieving revision 1.1.2.167
diff -C2 -d -r1.1.2.166 -r1.1.2.167
*** desire.c 7 Sep 2006 09:22:52 -0000 1.1.2.166
--- desire.c 7 Sep 2006 10:18:51 -0000 1.1.2.167
***************
*** 62,65 ****
--- 62,67 ----
for (linetraverser_start(&TRAV,GLIST); (WIRE=linetraverser_next(&TRAV)); )
+ static void postatom2(const char *s, int argc, t_atom *argv);
+
//--------------------------------------------------------------------------
// t_appendix: an extension to t_gobj made by matju so that
***************
*** 6726,6754 ****
/* 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;
--- 6728,6743 ----
/* message back from dialog window */
! static void gatom_reload(t_gatom *x, t_symbol *sel, int argc, t_atom *argv) {
! int width; t_float wherelabel;
! t_symbol *rcv,*snd;
! postatom2("meuh: ",argc,argv);
! if (!pd_scanargs(argc,argv,"ifffaaa",&width,&x->min,&x->max,&wherelabel,&x->label,&rcv,&snd)) return;
! x->label = gatom_unescapit(x->label);
! rcv = gatom_unescapit(rcv);
! snd = gatom_unescapit(snd);
! if (x->min>=x->max) x->min=x->max=0;
! CLAMP(width,1,80);
x->a_text.te_width = width;
x->wherelabel = (int)wherelabel&3;
if (*x->rcv->s_name) pd_unbind((t_pd *)x, canvas_realizedollar(x->glist, x->rcv));
x->rcv = rcv;
***************
*** 6757,6798 ****
x->expanded_to = canvas_realizedollar(x->glist, x->snd);
gobj_changed(x,0);
}
void canvas_atom(t_glist *gl, t_atomtype type, t_symbol *s, int argc, t_atom *argv) {
t_gatom *x = (t_gatom *)pd_new(gatom_class);
! x->a_text.te_width = 0; /* don't know it yet. */
! x->a_text.te_type = T_ATOM;
! x->a_text.te_binbuf = binbuf_new();
x->glist = gl;
- x->atom.a_type = type;
x->min = x->max = 0;
x->wherelabel = 0;
x->label = x->rcv = x->snd = x->expanded_to = &s_;
! if (type == A_FLOAT) {
! x->a_text.te_width = 5;
! SETFLOAT(&x->atom, 0);
! } else {
! x->a_text.te_width = 10;
! SETSYMBOL(&x->atom, &s_symbol);
! }
! binbuf_add(x->a_text.te_binbuf, 1, &x->atom);
! x->a_text.te_xpix = atom_getfloatarg(0, argc, argv);
! x->a_text.te_ypix = atom_getfloatarg(1, argc, argv);
! if (argc >= 2) {
! float width;
! char wherelabel;
! if(pd_scanargs(argc-2,argv+2,"fffafaa",&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);
! x->snd = gatom_unescapit(x->snd);
! if (*x->rcv->s_name) pd_bind(&x->a_text.te_pd, canvas_realizedollar(x->glist, x->rcv));
! x->expanded_to = canvas_realizedollar(x->glist, x->snd);
! }
! if (x->rcv == &s_) inlet_new(&x->a_text, &x->a_text.te_pd, 0, 0);
! if (x->snd == &s_) outlet_new(&x->a_text, x->atom.a_type == A_FLOAT ? &s_float: &s_symbol);
! glist_add(gl, &x->a_text.te_g);
}
--- 6746,6770 ----
x->expanded_to = canvas_realizedollar(x->glist, x->snd);
gobj_changed(x,0);
+ printf("gatom_reload: %p %p %p\n",x->label,x->rcv,x->snd);
}
void canvas_atom(t_glist *gl, t_atomtype type, t_symbol *s, int argc, t_atom *argv) {
t_gatom *x = (t_gatom *)pd_new(gatom_class);
! t_text *t = (t_text *)x;
! if (type == A_FLOAT) {x->a_text.te_width = 5; SETFLOAT(&x->atom, 0);}
! else {x->a_text.te_width = 10; SETSYMBOL(&x->atom, &s_symbol);}
! t->te_type = T_ATOM;
x->glist = gl;
x->min = x->max = 0;
x->wherelabel = 0;
x->label = x->rcv = x->snd = x->expanded_to = &s_;
! t->te_binbuf = binbuf_new();
! binbuf_add(t->te_binbuf, 1, &x->atom);
! t->te_xpix = atom_getfloatarg(0, argc, argv);
! t->te_ypix = atom_getfloatarg(1, argc, argv);
! inlet_new(t, (t_pd *)x, 0, 0);
! outlet_new(t, type == A_FLOAT ? &s_float: &s_symbol);
! if (argc >= 2) gatom_reload(x,&s_,argc-2,argv+2);
! glist_add(gl, (t_gobj *)x);
}
***************
*** 6831,6836 ****
t_symbol *sel = t==A_SYMBOL? gensym("symbolatom") : gensym("floatatom");
binbuf_addv(b, "ssii", gensym("#X"), sel, (t_int)x->te_xpix, (t_int)x->te_ypix);
! binbuf_addv(b, "ifffsss", (t_int)x->te_width, g->min, g->max, 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);
--- 6803,6809 ----
t_symbol *sel = t==A_SYMBOL? gensym("symbolatom") : gensym("floatatom");
binbuf_addv(b, "ssii", gensym("#X"), sel, (t_int)x->te_xpix, (t_int)x->te_ypix);
! /* incredibly weird stuff happens if doing binbuf_addv "ifffsss". know why? */
! binbuf_addv(b, "ifff", (t_int)x->te_width, g->min, g->max, g->wherelabel);
! binbuf_addv(b, "sss", 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);
***************
*** 6965,6969 ****
class_addsymbol(c, gatom_symbol);
class_addmethod3(c, gatom_set, "set","*");
! class_addmethod3(c, gatom_param, "param","*");
}
--- 6938,6942 ----
class_addsymbol(c, gatom_symbol);
class_addmethod3(c, gatom_set, "set","*");
! class_addmethod3(c, gatom_reload, "reload","*");
}
***************
*** 8276,8279 ****
--- 8249,8261 ----
}
+ static void postatom2(const char *s, int argc, t_atom *argv) {
+ char buf[MAXPDSTRING]; int i;
+ //FILE *f = stderr;
+ FILE *f = stdout;
+ fprintf(f,"%s",s);
+ for (i=0; i<argc; i++) {atom_string(argv+i,buf,MAXPDSTRING); fprintf(f,"%s ",buf);}
+ fprintf(f,"\n");
+ }
+
/* what's the point? */
void postfloat(float f) {t_atom a; SETFLOAT(&a, f); postatom(1, &a);}
More information about the Pd-cvs
mailing list