Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22719
Modified Files:
Tag: devel_0_39
desire.c desire.h
Log Message:
more removal of prefixes: t_drawnumber t_curve t_plot ...
Index: desire.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v
retrieving revision 1.1.2.27
retrieving revision 1.1.2.28
diff -C2 -d -r1.1.2.27 -r1.1.2.28
*** desire.h 7 Sep 2006 00:38:15 -0000 1.1.2.27
--- desire.h 7 Sep 2006 00:52:18 -0000 1.1.2.28
***************
*** 169,174 ****
typedef struct _linetraverser {
t_canvas *canvas;
! t_object *from; int tr_nout; int outlet; t_outlet *outletp;
! t_object *to; int tr_nin; int inlet; t_inlet *inletp;
t_outconnect *next;
int nextoutno;
--- 169,174 ----
typedef struct _linetraverser {
t_canvas *canvas;
! t_object *from; int nout; int outlet; t_outlet *outletp;
! t_object *to; int nin; int inlet; t_inlet *inletp;
t_outconnect *next;
int nextoutno;
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.154
retrieving revision 1.1.2.155
diff -C2 -d -r1.1.2.154 -r1.1.2.155
*** desire.c 7 Sep 2006 00:38:14 -0000 1.1.2.154
--- desire.c 7 Sep 2006 00:52:17 -0000 1.1.2.155
***************
*** 414,418 ****
t->canvas = x;
t->next = 0;
! t->nextoutno = t->tr_nout = 0;
}
--- 414,418 ----
t->canvas = x;
t->next = 0;
! t->nextoutno = t->nout = 0;
}
***************
*** 422,426 ****
while (!rval) {
outno = t->nextoutno;
! while (outno == t->tr_nout) {
t_gobj *y;
t_object *ob = 0;
--- 422,426 ----
while (!rval) {
outno = t->nextoutno;
! while (outno == t->nout) {
t_gobj *y;
t_object *ob = 0;
***************
*** 430,434 ****
if (!ob) return 0;
t->from = ob;
! t->tr_nout = obj_noutlets(ob);
outno = 0;
}
--- 430,434 ----
if (!ob) return 0;
t->from = ob;
! t->nout = obj_noutlets(ob);
outno = 0;
}
***************
*** 438,443 ****
}
t->next = obj_nexttraverseoutlet(rval, &t->to, &t->inletp, &t->inlet);
! t->tr_nin = obj_ninlets(t->to);
! if (!t->tr_nin) bug("linetraverser_next");
return rval;
}
--- 438,443 ----
}
t->next = obj_nexttraverseoutlet(rval, &t->to, &t->inletp, &t->inlet);
! t->nin = obj_ninlets(t->to);
! if (!t->nin) bug("linetraverser_next");
return rval;
}
***************
*** 501,506 ****
x->owner = owner;
x->name = *s->s_name ? s : canvas_newfilename ? canvas_newfilename : gensym("Pd");
! if (strcmp(x->name->s_name, "Pd"))
! pd_bind((t_pd *)x, canvas_makebindsym(x->name));
x->loading = 1;
x->goprect = 0; /* no GOP rectangle unless it's turned on later */
--- 501,505 ----
x->owner = owner;
x->name = *s->s_name ? s : canvas_newfilename ? canvas_newfilename : gensym("Pd");
! if (strcmp(x->name->s_name, "Pd")) pd_bind((t_pd *)x, canvas_makebindsym(x->name));
x->loading = 1;
x->goprect = 0; /* no GOP rectangle unless it's turned on later */
***************
*** 523,528 ****
static void canvas_coords(t_glist *x, t_symbol *s, int argc, t_atom *argv) {
! pd_scanargs(argc,argv,"iiiiii;",&x->gl_x1,&x->gl_y1,&x->gl_x2,&x->gl_y2,
! &x->pixwidth,&x->pixheight);
if (argc <= 7) canvas_setgraph(x, atom_getintarg(6, argc, argv), 1);
else {
--- 522,526 ----
static void canvas_coords(t_glist *x, t_symbol *s, int argc, t_atom *argv) {
! pd_scanargs(argc,argv,"iiiiii;",&x->gl_x1,&x->gl_y1,&x->gl_x2,&x->gl_y2,&x->pixwidth,&x->pixheight);
if (argc <= 7) canvas_setgraph(x, atom_getintarg(6, argc, argv), 1);
else {
***************
*** 553,560 ****
sym = gensym(buf);
menu = 1;
! }
! else if (!strncmp((str = sym->s_name), "graph", 5)
! && (zz = atoi(str + 5)) > gcount)
! gcount = zz;
/* in 0.34 and earlier, the pixel rectangle and the y bounds were
reversed; this would behave the same, except that the dialog window
--- 551,555 ----
sym = gensym(buf);
menu = 1;
! } else if (!strncmp((str = sym->s_name), "graph", 5) && (zz = atoi(str + 5)) > gcount) gcount = zz;
/* in 0.34 and earlier, the pixel rectangle and the y bounds were
reversed; this would behave the same, except that the dialog window
***************
*** 600,614 ****
int heightwas = y2 - y1;
if (x->screenx1 == x1 && x->screeny1 == y1 &&
! x->screenx2 == x2 && x->screeny2 == y2)
! return;
! x->screenx1 = x1;
! x->screeny1 = y1;
! x->screenx2 = x2;
! x->screeny2 = y2;
if (!x->isgraph && (x->gl_y2 < x->gl_y1)) {
! /* if it's flipped so that y grows upward,
! fix so that zero is bottom edge and redraw. This is
! only appropriate if we're a regular "text" object on the
! parent. */
float diff = x->gl_y1 - x->gl_y2;
x->gl_y1 = heightwas * diff;
--- 595,604 ----
int heightwas = y2 - y1;
if (x->screenx1 == x1 && x->screeny1 == y1 &&
! x->screenx2 == x2 && x->screeny2 == y2) return;
! x->screenx1 = x1; x->screeny1 = y1;
! x->screenx2 = x2; x->screeny2 = y2;
if (!x->isgraph && (x->gl_y2 < x->gl_y1)) {
! /* if it's flipped so that y grows upward, fix so that zero is bottom edge and redraw.
! This is only appropriate if we're a regular "text" object on the parent. */
float diff = x->gl_y1 - x->gl_y2;
x->gl_y1 = heightwas * diff;
***************
*** 3690,3694 ****
typedef struct _vinlet {
t_object x_obj;
! t_canvas *x_canvas;
t_inlet *x_inlet;
int x_bufsize;
--- 3680,3684 ----
typedef struct _vinlet {
t_object x_obj;
! t_canvas *canvas;
t_inlet *x_inlet;
int x_bufsize;
***************
*** 3706,3711 ****
static void *vinlet_new(t_symbol *s) {
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
! x->x_canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->x_canvas, &x->x_obj.ob_pd, 0, s);
x->x_bufsize = 0;
x->x_buf = 0;
--- 3696,3701 ----
static void *vinlet_new(t_symbol *s) {
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
! x->canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->canvas, &x->x_obj.ob_pd, 0, s);
x->x_bufsize = 0;
x->x_buf = 0;
***************
*** 3728,3732 ****
static void vinlet_free(t_vinlet *x) {
! canvas_rminlet(x->x_canvas, x->x_inlet);
resample_free(&x->x_updown);
}
--- 3718,3722 ----
static void vinlet_free(t_vinlet *x) {
! canvas_rminlet(x->canvas, x->x_inlet);
resample_free(&x->x_updown);
}
***************
*** 3882,3887 ****
static void *vinlet_newsig(t_symbol *s) {
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
! x->x_canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->x_canvas, &x->x_obj.ob_pd, &s_signal,s);
x->x_endbuf = x->x_buf = (t_float *)getalignedbytes(0);
x->x_bufsize = 0;
--- 3872,3877 ----
static void *vinlet_newsig(t_symbol *s) {
t_vinlet *x = (t_vinlet *)pd_new(vinlet_class);
! x->canvas = canvas_getcurrent();
! x->x_inlet = canvas_addinlet(x->canvas, &x->x_obj.ob_pd, &s_signal,s);
x->x_endbuf = x->x_buf = (t_float *)getalignedbytes(0);
x->x_bufsize = 0;
***************
*** 3926,3930 ****
typedef struct _voutlet {
t_object x_obj;
! t_canvas *x_canvas;
t_outlet *x_parentoutlet;
int x_bufsize;
--- 3916,3920 ----
typedef struct _voutlet {
t_object x_obj;
! t_canvas *canvas;
t_outlet *x_parentoutlet;
int x_bufsize;
***************
*** 3946,3951 ****
static void *voutlet_new(t_symbol *s) {
t_voutlet *x = (t_voutlet *)pd_new(voutlet_class);
! x->x_canvas = canvas_getcurrent();
! x->x_parentoutlet = canvas_addoutlet(x->x_canvas, &x->x_obj.ob_pd, 0);
inlet_new(&x->x_obj, &x->x_obj.ob_pd, 0, 0);
x->x_bufsize = 0;
--- 3936,3941 ----
static void *voutlet_new(t_symbol *s) {
t_voutlet *x = (t_voutlet *)pd_new(voutlet_class);
! x->canvas = canvas_getcurrent();
! x->x_parentoutlet = canvas_addoutlet(x->canvas, &x->x_obj.ob_pd, 0);
inlet_new(&x->x_obj, &x->x_obj.ob_pd, 0, 0);
x->x_bufsize = 0;
***************
*** 3968,3972 ****
static void voutlet_free(t_voutlet *x) {
! canvas_rmoutlet(x->x_canvas, x->x_parentoutlet);
resample_free(&x->x_updown);
}
--- 3958,3962 ----
static void voutlet_free(t_voutlet *x) {
! canvas_rmoutlet(x->canvas, x->x_parentoutlet);
resample_free(&x->x_updown);
}
***************
*** 4136,4141 ****
static void *voutlet_newsig(t_symbol *s) {
t_voutlet *x = (t_voutlet *)pd_new(voutlet_class);
! x->x_canvas = canvas_getcurrent();
! x->x_parentoutlet = canvas_addoutlet(x->x_canvas, &x->x_obj.ob_pd, &s_signal);
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
x->x_endbuf = x->x_buf = (t_float *)getalignedbytes(0);
--- 4126,4131 ----
static void *voutlet_newsig(t_symbol *s) {
t_voutlet *x = (t_voutlet *)pd_new(voutlet_class);
! x->canvas = canvas_getcurrent();
! x->x_parentoutlet = canvas_addoutlet(x->canvas, &x->x_obj.ob_pd, &s_signal);
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
x->x_endbuf = x->x_buf = (t_float *)getalignedbytes(0);
***************
*** 5111,5122 ****
typedef struct _curve {
t_object x_obj;
! int x_flags; /* CLOSED and/or BEZ */
! t_fielddesc x_fillcolor;
! t_fielddesc x_outlinecolor;
! t_fielddesc x_width;
! t_fielddesc x_vis;
! int x_npoints;
! t_fielddesc *x_vec;
! t_canvas *x_canvas;
} t_curve;
--- 5101,5112 ----
typedef struct _curve {
t_object x_obj;
! int flags; /* CLOSED and/or BEZ */
! t_fielddesc fillcolor;
! t_fielddesc outlinecolor;
! t_fielddesc width;
! t_fielddesc vis;
! int npoints;
! t_fielddesc *vec;
! t_canvas *canvas;
} t_curve;
***************
*** 5127,5131 ****
int nxy, i;
t_fielddesc *fd;
! x->x_canvas = canvas_getcurrent();
if (classname[0] == 'f') {
classname += 6;
--- 5117,5121 ----
int nxy, i;
t_fielddesc *fd;
! x->canvas = canvas_getcurrent();
if (classname[0] == 'f') {
classname += 6;
***************
*** 5134,5155 ****
else classname += 4;
if (classname[0] == 'c') flags |= BEZ;
! x->x_flags = flags;
! fielddesc_setfloat_const(&x->x_vis, 1);
while (1) {
t_symbol *firstarg = atom_getsymbolarg(0, argc, argv);
if (!strcmp(firstarg->s_name, "-v") && argc > 1) {
! fielddesc_setfloatarg(&x->x_vis, 1, argv+1);
argc -= 2; argv += 2;
} else break;
}
! if ((flags & CLOSED) && argc) fielddesc_setfloatarg(&x->x_fillcolor, argc--, argv++); else fielddesc_setfloat_const(&x->x_fillcolor, 0);
! if (argc) fielddesc_setfloatarg(&x->x_outlinecolor, argc--, argv++); else fielddesc_setfloat_const(&x->x_outlinecolor, 0);
! if (argc) fielddesc_setfloatarg(&x->x_width, argc--, argv++); else fielddesc_setfloat_const(&x->x_width, 1);
if (argc < 0) argc = 0;
! nxy = (argc + (argc & 1));
! x->x_npoints = (nxy>>1);
! x->x_vec = (t_fielddesc *)t_getbytes(nxy * sizeof(t_fielddesc));
! for (i = 0, fd = x->x_vec; i < argc; i++, fd++, argv++)
! fielddesc_setfloatarg(fd, 1, argv);
if (argc & 1) fielddesc_setfloat_const(fd, 0);
return x;
--- 5124,5148 ----
else classname += 4;
if (classname[0] == 'c') flags |= BEZ;
! x->flags = flags;
! fielddesc_setfloat_const(&x->vis, 1);
while (1) {
t_symbol *firstarg = atom_getsymbolarg(0, argc, argv);
if (!strcmp(firstarg->s_name, "-v") && argc > 1) {
! fielddesc_setfloatarg(&x->vis, 1, argv+1);
argc -= 2; argv += 2;
} else break;
}
!
! if (flags&CLOSED&&argc) fielddesc_setfloatarg(&x->fillcolor, argc--,argv++);
! else fielddesc_setfloat_const(&x->fillcolor, 0);
! if (argc) fielddesc_setfloatarg(&x->outlinecolor,argc--,argv++);
! else fielddesc_setfloat_const(&x->outlinecolor,0);
! if (argc) fielddesc_setfloatarg(&x->width, argc--,argv++);
! else fielddesc_setfloat_const(&x->width, 1);
if (argc < 0) argc = 0;
! nxy = argc + (argc&1);
! x->npoints = (nxy>>1);
! x->vec = (t_fielddesc *)t_getbytes(nxy * sizeof(t_fielddesc));
! for (i = 0, fd = x->vec; i < argc; i++, fd++, argv++) fielddesc_setfloatarg(fd, 1, argv);
if (argc & 1) fielddesc_setfloat_const(fd, 0);
return x;
***************
*** 5158,5170 ****
void curve_float(t_curve *x, t_floatarg f) {
int viswas;
! if (x->x_vis.fd_type != A_FLOAT || x->x_vis.fd_var) {
pd_error(x, "global vis/invis for a template with variable visibility");
return;
}
! viswas = (x->x_vis.fd_un.fd_float != 0);
if ((f != 0 && viswas) || (f == 0 && !viswas)) return;
! canvas_redrawallfortemplatecanvas(x->x_canvas, 2);
! fielddesc_setfloat_const(&x->x_vis, (f != 0));
! canvas_redrawallfortemplatecanvas(x->x_canvas, 1);
}
--- 5151,5163 ----
void curve_float(t_curve *x, t_floatarg f) {
int viswas;
! if (x->vis.fd_type != A_FLOAT || x->vis.fd_var) {
pd_error(x, "global vis/invis for a template with variable visibility");
return;
}
! viswas = (x->vis.fd_un.fd_float != 0);
if ((f != 0 && viswas) || (f == 0 && !viswas)) return;
! canvas_redrawallfortemplatecanvas(x->canvas, 2);
! fielddesc_setfloat_const(&x->vis, (f != 0));
! canvas_redrawallfortemplatecanvas(x->canvas, 1);
}
***************
*** 5175,5187 ****
int *xp1, int *yp1, int *xp2, int *yp2) {
t_curve *x = (t_curve *)z;
! int i, n = x->x_npoints;
! t_fielddesc *f = x->x_vec;
int x1 = 0x7fffffff, x2 = -0x7fffffff, y1 = 0x7fffffff, y2 = -0x7fffffff;
! if (!fielddesc_getfloat(&x->x_vis, template, data, 0)) {
*xp1 = *yp1 = 0x7fffffff;
*xp2 = *yp2 = -0x7fffffff;
return;
}
! for (i = 0, f = x->x_vec; i < n; i++, f += 2) {
int xloc = glist_xtopixels(glist, basex + fielddesc_getcoord(f , template, data, 0));
int yloc = glist_ytopixels(glist, basey + fielddesc_getcoord(f+1, template, data, 0));
--- 5168,5180 ----
int *xp1, int *yp1, int *xp2, int *yp2) {
t_curve *x = (t_curve *)z;
! int i, n = x->npoints;
! t_fielddesc *f = x->vec;
int x1 = 0x7fffffff, x2 = -0x7fffffff, y1 = 0x7fffffff, y2 = -0x7fffffff;
! if (!fielddesc_getfloat(&x->vis, template, data, 0)) {
*xp1 = *yp1 = 0x7fffffff;
*xp2 = *yp2 = -0x7fffffff;
return;
}
! for (i = 0, f = x->vec; i < n; i++, f += 2) {
int xloc = glist_xtopixels(glist, basex + fielddesc_getcoord(f , template, data, 0));
int yloc = glist_ytopixels(glist, basey + fielddesc_getcoord(f+1, template, data, 0));
***************
*** 5202,5210 ****
}
- static void curve_select(t_gobj *z, t_glist *glist,
- t_word *data, t_template *template, float basex, float basey, int state) {
- /* fill in later */
- }
-
static void curve_activate(t_gobj *z, t_glist *glist,
t_word *data, t_template *template, float basex, float basey, int state) {
--- 5195,5198 ----
***************
*** 5232,5242 ****
float basex, float basey, int vis) {
t_curve *x = (t_curve *)z;
! int i, n = x->x_npoints;
! t_fielddesc *f = x->x_vec;
! if (!fielddesc_getfloat(&x->x_vis, template, data, 0)) return;
if (vis) {
if (n > 1) {
! int flags = x->x_flags;
! float width = fielddesc_getfloat(&x->x_width, template, data, 1);
char outline[20], fill[20];
int pix[200];
--- 5220,5230 ----
float basex, float basey, int vis) {
t_curve *x = (t_curve *)z;
! int i, n = x->npoints;
! t_fielddesc *f = x->vec;
! if (!fielddesc_getfloat(&x->vis, template, data, 0)) return;
if (vis) {
if (n > 1) {
! int flags = x->flags;
! float width = fielddesc_getfloat(&x->width, template, data, 1);
char outline[20], fill[20];
int pix[200];
***************
*** 5246,5250 ****
interspersed with it. Only show up to 100 points so we don't
have to allocate memory here. */
! for (i = 0, f = x->x_vec; i < n; i++, f += 2) {
pix[2*i] = glist_xtopixels(glist,
basex + fielddesc_getcoord(f, template, data, 1));
--- 5234,5238 ----
interspersed with it. Only show up to 100 points so we don't
have to allocate memory here. */
! for (i = 0, f = x->vec; i < n; i++, f += 2) {
pix[2*i] = glist_xtopixels(glist,
basex + fielddesc_getcoord(f, template, data, 1));
***************
*** 5253,5259 ****
}
if (width < 1) width = 1;
! numbertocolor(fielddesc_getfloat(&x->x_outlinecolor, template, data, 1), outline);
if (flags & CLOSED) {
! numbertocolor(fielddesc_getfloat(&x->x_fillcolor, template, data, 1), fill);
sys_vgui(".x%lx.c create polygon\\\n", (long)glist_getcanvas(glist));
} else sys_vgui(".x%lx.c create line\\\n", (long)glist_getcanvas(glist));
--- 5241,5247 ----
}
if (width < 1) width = 1;
! numbertocolor(fielddesc_getfloat(&x->outlinecolor, template, data, 1), outline);
if (flags & CLOSED) {
! numbertocolor(fielddesc_getfloat(&x->fillcolor, template, data, 1), fill);
sys_vgui(".x%lx.c create polygon\\\n", (long)glist_getcanvas(glist));
} else sys_vgui(".x%lx.c create line\\\n", (long)glist_getcanvas(glist));
***************
*** 5283,5293 ****
static t_template *curve_motion_template;
! /* LATER protect against the template changing or the scalar disappearing
! probably by attaching a gpointer here ... */
#if 0
static void curve_motion(void *z, t_floatarg dx, t_floatarg dy) {
t_curve *x = (t_curve *)z;
! t_fielddesc *f = x->x_vec + curve_motion_field;
curve_motion_xcumulative += dx;
curve_motion_ycumulative += dy;
--- 5271,5281 ----
static t_template *curve_motion_template;
! /* LATER protect against the template changing or the scalar disappearing
! probably by attaching a gpointer here ... */
#if 0
static void curve_motion(void *z, t_floatarg dx, t_floatarg dy) {
t_curve *x = (t_curve *)z;
! t_fielddesc *f = x->vec + curve_motion_field;
curve_motion_xcumulative += dx;
curve_motion_ycumulative += dy;
***************
*** 5307,5316 ****
float basex, float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit) {
t_curve *x = (t_curve *)z;
! int i, n = x->x_npoints;
int bestn = -1;
int besterror = 0x7fffffff;
t_fielddesc *f;
! if (!fielddesc_getfloat(&x->x_vis, template, data, 0)) return 0;
! for (i = 0, f = x->x_vec; i < n; i++, f += 2) {
int xval = fielddesc_getcoord(f, template, data, 0), xloc = glist_xtopixels(glist, basex + xval);
int yval = fielddesc_getcoord(f+1, template, data, 0), yloc = glist_ytopixels(glist, basey + yval);
--- 5295,5304 ----
float basex, float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit) {
t_curve *x = (t_curve *)z;
! int i, n = x->npoints;
int bestn = -1;
int besterror = 0x7fffffff;
t_fielddesc *f;
! if (!fielddesc_getfloat(&x->vis, template, data, 0)) return 0;
! for (i = 0, f = x->vec; i < n; i++, f += 2) {
int xval = fielddesc_getcoord(f, template, data, 0), xloc = glist_xtopixels(glist, basex + xval);
int yval = fielddesc_getcoord(f+1, template, data, 0), yloc = glist_ytopixels(glist, basey + yval);
***************
*** 5344,5358 ****
}
! t_parentwidgetbehavior curve_widgetbehavior = {
! curve_getrect,
! curve_displace,
! curve_select,
! curve_activate,
! curve_vis,
! curve_click,
! };
static void curve_free(t_curve *x) {
! t_freebytes(x->x_vec, 2 * x->x_npoints * sizeof(*x->x_vec));
}
--- 5332,5339 ----
}
! t_parentwidgetbehavior curve_widgetbehavior = {curve_getrect,curve_displace,0,0,curve_vis,curve_click};
static void curve_free(t_curve *x) {
! t_freebytes(x->vec, 2 * x->npoints * sizeof(*x->vec));
}
***************
*** 5374,5390 ****
typedef struct _plot {
t_object x_obj;
! t_canvas *x_canvas;
! t_fielddesc x_outlinecolor;
! t_fielddesc x_width;
! t_fielddesc x_xloc;
! t_fielddesc x_yloc;
! t_fielddesc x_xinc;
! t_fielddesc x_style;
! t_fielddesc x_data;
! t_fielddesc x_xpoints;
! t_fielddesc x_ypoints;
! t_fielddesc x_wpoints;
! t_fielddesc x_vis; /* visible */
! t_fielddesc x_scalarvis; /* true if drawing the scalar at each point */
} t_plot;
--- 5355,5369 ----
typedef struct _plot {
t_object x_obj;
! t_canvas *canvas;
! t_fielddesc outlinecolor;
! t_fielddesc width;
! t_fielddesc xloc, yloc;
! t_fielddesc xinc;
! t_fielddesc style;
! t_fielddesc data;
! t_fielddesc xpoints, ypoints;
! t_fielddesc wpoints;
! t_fielddesc vis; /* visible */
! t_fielddesc scalarvis; /* true if drawing the scalar at each point */
} t_plot;
***************
*** 5392,5401 ****
t_plot *x = (t_plot *)pd_new(plot_class);
int defstyle = PLOTSTYLE_POLY;
! x->x_canvas = canvas_getcurrent();
! fielddesc_setfloat_var(&x->x_xpoints, gensym("x"));
! fielddesc_setfloat_var(&x->x_ypoints, gensym("y"));
! fielddesc_setfloat_var(&x->x_wpoints, gensym("w"));
! fielddesc_setfloat_const(&x->x_vis, 1);
! fielddesc_setfloat_const(&x->x_scalarvis, 1);
while (1) {
t_symbol *firstarg = atom_getsymbolarg(0, argc, argv);
--- 5371,5380 ----
t_plot *x = (t_plot *)pd_new(plot_class);
int defstyle = PLOTSTYLE_POLY;
! x->canvas = canvas_getcurrent();
! fielddesc_setfloat_var(&x->xpoints, gensym("x"));
! fielddesc_setfloat_var(&x->ypoints, gensym("y"));
! fielddesc_setfloat_var(&x->wpoints, gensym("w"));
! fielddesc_setfloat_const(&x->vis, 1);
! fielddesc_setfloat_const(&x->scalarvis, 1);
while (1) {
t_symbol *firstarg = atom_getsymbolarg(0, argc, argv);
***************
*** 5405,5429 ****
argc--, argv++;
}
! else if (!strcmp(f,"-v") &&argc>1) {fielddesc_setfloatarg(&x->x_vis, 1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-vs")&&argc>1) {fielddesc_setfloatarg(&x->x_scalarvis,1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-x") &&argc>1) {fielddesc_setfloatarg(&x->x_xpoints, 1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-y") &&argc>1) {fielddesc_setfloatarg(&x->x_ypoints, 1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-w") &&argc>1) {fielddesc_setfloatarg(&x->x_wpoints, 1,argv+1);argc-=2;argv+=2;}
else break;
}
! if (argc) fielddesc_setarrayarg( &x->x_data, argc--, argv++);
! else fielddesc_setfloat_const(&x->x_data, 1);
! if (argc) fielddesc_setfloatarg( &x->x_outlinecolor, argc--, argv++);
! else fielddesc_setfloat_const(&x->x_outlinecolor, 0);
! if (argc) fielddesc_setfloatarg( &x->x_width, argc--, argv++);
! else fielddesc_setfloat_const(&x->x_width, 1);
! if (argc) fielddesc_setfloatarg( &x->x_xloc, argc--, argv++);
! else fielddesc_setfloat_const(&x->x_xloc, 1);
! if (argc) fielddesc_setfloatarg( &x->x_yloc, argc--, argv++);
! else fielddesc_setfloat_const(&x->x_yloc, 1);
! if (argc) fielddesc_setfloatarg( &x->x_xinc, argc--, argv++);
! else fielddesc_setfloat_const(&x->x_xinc, 1);
! if (argc) fielddesc_setfloatarg( &x->x_style, argc--, argv++);
! else fielddesc_setfloat_const(&x->x_style, defstyle);
return x;
}
--- 5384,5408 ----
argc--, argv++;
}
! else if (!strcmp(f,"-v") &&argc>1) {fielddesc_setfloatarg(&x->vis, 1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-vs")&&argc>1) {fielddesc_setfloatarg(&x->scalarvis,1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-x") &&argc>1) {fielddesc_setfloatarg(&x->xpoints, 1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-y") &&argc>1) {fielddesc_setfloatarg(&x->ypoints, 1,argv+1);argc-=2;argv+=2;}
! else if (!strcmp(f,"-w") &&argc>1) {fielddesc_setfloatarg(&x->wpoints, 1,argv+1);argc-=2;argv+=2;}
else break;
}
! if (argc) fielddesc_setarrayarg( &x->data, argc--, argv++);
! else fielddesc_setfloat_const(&x->data, 1);
! if (argc) fielddesc_setfloatarg( &x->outlinecolor, argc--, argv++);
! else fielddesc_setfloat_const(&x->outlinecolor, 0);
! if (argc) fielddesc_setfloatarg( &x->width, argc--, argv++);
! else fielddesc_setfloat_const(&x->width, 1);
! if (argc) fielddesc_setfloatarg( &x->xloc, argc--, argv++);
! else fielddesc_setfloat_const(&x->xloc, 1);
! if (argc) fielddesc_setfloatarg( &x->yloc, argc--, argv++);
! else fielddesc_setfloat_const(&x->yloc, 1);
! if (argc) fielddesc_setfloatarg( &x->xinc, argc--, argv++);
! else fielddesc_setfloat_const(&x->xinc, 1);
! if (argc) fielddesc_setfloatarg( &x->style, argc--, argv++);
! else fielddesc_setfloat_const(&x->style, defstyle);
return x;
}
***************
*** 5431,5443 ****
void plot_float(t_plot *x, t_floatarg f) {
int viswas;
! if (x->x_vis.fd_type != A_FLOAT || x->x_vis.fd_var) {
pd_error(x, "global vis/invis for a template with variable visibility");
return;
}
! viswas = x->x_vis.fd_un.fd_float != 0;
if ((f != 0 && viswas) || (f == 0 && !viswas)) return;
! canvas_redrawallfortemplatecanvas(x->x_canvas, 2);
! fielddesc_setfloat_const(&x->x_vis, (f != 0));
! canvas_redrawallfortemplatecanvas(x->x_canvas, 1);
}
--- 5410,5422 ----
void plot_float(t_plot *x, t_floatarg f) {
int viswas;
! if (x->vis.fd_type != A_FLOAT || x->vis.fd_var) {
pd_error(x, "global vis/invis for a template with variable visibility");
return;
}
! viswas = x->vis.fd_un.fd_float != 0;
if ((f != 0 && viswas) || (f == 0 && !viswas)) return;
! canvas_redrawallfortemplatecanvas(x->canvas, 2);
! fielddesc_setfloat_const(&x->vis, (f != 0));
! canvas_redrawallfortemplatecanvas(x->canvas, 1);
}
***************
*** 5455,5484 ****
/* find the data and verify it's an array */
! if (x->x_data.fd_type != A_ARRAY || !x->x_data.fd_var) {
error("plot: needs an array field");
return -1;
}
! if (!template_find_field(ownertemplate, x->x_data.fd_un.fd_varsym,
&arrayonset, &type, &elemtemplatesym)) {
! error("plot: %s: no such field", x->x_data.fd_un.fd_varsym->s_name);
return -1;
}
if (type != DT_ARRAY) {
! error("plot: %s: not an array", x->x_data.fd_un.fd_varsym->s_name);
return -1;
}
array = *(t_array **)(((char *)data) + arrayonset);
! *linewidthp = fielddesc_getfloat(&x->x_width, ownertemplate, data, 1);
! *xlocp = fielddesc_getfloat(&x->x_xloc, ownertemplate, data, 1);
! *xincp = fielddesc_getfloat(&x->x_xinc, ownertemplate, data, 1);
! *ylocp = fielddesc_getfloat(&x->x_yloc, ownertemplate, data, 1);
! *stylep = fielddesc_getfloat(&x->x_style, ownertemplate, data, 1);
! *visp = fielddesc_getfloat(&x->x_vis, ownertemplate, data, 1);
! *scalarvisp = fielddesc_getfloat(&x->x_scalarvis, ownertemplate, data, 1);
*elemtemplatesymp = elemtemplatesym;
*arrayp = array;
! *xfield = &x->x_xpoints;
! *yfield = &x->x_ypoints;
! *wfield = &x->x_wpoints;
return 0;
}
--- 5434,5463 ----
/* find the data and verify it's an array */
! if (x->data.fd_type != A_ARRAY || !x->data.fd_var) {
error("plot: needs an array field");
return -1;
}
! if (!template_find_field(ownertemplate, x->data.fd_un.fd_varsym,
&arrayonset, &type, &elemtemplatesym)) {
! error("plot: %s: no such field", x->data.fd_un.fd_varsym->s_name);
return -1;
}
if (type != DT_ARRAY) {
! error("plot: %s: not an array", x->data.fd_un.fd_varsym->s_name);
return -1;
}
array = *(t_array **)(((char *)data) + arrayonset);
! *linewidthp = fielddesc_getfloat(&x->width, ownertemplate, data, 1);
! *xlocp = fielddesc_getfloat(&x->xloc, ownertemplate, data, 1);
! *xincp = fielddesc_getfloat(&x->xinc, ownertemplate, data, 1);
! *ylocp = fielddesc_getfloat(&x->yloc, ownertemplate, data, 1);
! *stylep = fielddesc_getfloat(&x->style, ownertemplate, data, 1);
! *visp = fielddesc_getfloat(&x->vis, ownertemplate, data, 1);
! *scalarvisp = fielddesc_getfloat(&x->scalarvis, ownertemplate, data, 1);
*elemtemplatesymp = elemtemplatesym;
*arrayp = array;
! *xfield = &x->xpoints;
! *yfield = &x->ypoints;
! *wfield = &x->wpoints;
return 0;
}
***************
*** 5643,5647 ****
int ixpix = 0;
/* draw the trace */
! numbertocolor(fielddesc_getfloat(&x->x_outlinecolor, template, data, 1), outline);
if (wonset >= 0) {
/* found "w" field which controls linewidth. The trace is
--- 5622,5626 ----
int ixpix = 0;
/* draw the trace */
! numbertocolor(fielddesc_getfloat(&x->outlinecolor, template, data, 1), outline);
if (wonset >= 0) {
/* found "w" field which controls linewidth. The trace is
***************
*** 5798,5809 ****
typedef struct _drawnumber {
t_object x_obj;
! t_fielddesc x_value;
! t_fielddesc x_xloc;
! t_fielddesc x_yloc;
! t_fielddesc x_color;
! t_fielddesc x_vis;
! t_symbol *x_label;
! int x_flags;
! t_canvas *x_canvas;
} t_drawnumber;
--- 5777,5788 ----
typedef struct _drawnumber {
t_object x_obj;
! t_fielddesc value;
! t_fielddesc xloc;
! t_fielddesc yloc;
! t_fielddesc color;
! t_fielddesc vis;
! t_symbol *label;
! int flags;
! t_canvas *canvas;
} t_drawnumber;
***************
*** 5813,5837 ****
int flags = 0;
if (classname[4] == 's') flags |= DRAW_SYMBOL;
! x->x_flags = flags;
! fielddesc_setfloat_const(&x->x_vis, 1);
! x->x_canvas = canvas_getcurrent();
while (1) {
t_symbol *firstarg = atom_getsymbolarg(0, argc, argv);
if (!strcmp(firstarg->s_name, "-v") && argc > 1) {
! fielddesc_setfloatarg(&x->x_vis, 1, argv+1);
argc -= 2; argv += 2;
} else break;
}
if (flags & DRAW_SYMBOL) {
! if (argc) fielddesc_setsymbolarg( &x->x_value,argc--,argv++);
! else fielddesc_setsymbol_const(&x->x_value,&s_);
} else {
! if (argc) fielddesc_setfloatarg( &x->x_value,argc--,argv++);
! else fielddesc_setfloat_const( &x->x_value, 0);
}
! if (argc) fielddesc_setfloatarg(&x->x_xloc, argc--,argv++); else fielddesc_setfloat_const(&x->x_xloc, 0);
! if (argc) fielddesc_setfloatarg(&x->x_yloc, argc--,argv++); else fielddesc_setfloat_const(&x->x_yloc, 0);
! if (argc) fielddesc_setfloatarg(&x->x_color,argc--,argv++); else fielddesc_setfloat_const(&x->x_color, 1);
! if (argc) x->x_label = atom_getsymbolarg(0, argc, argv); else x->x_label = &s_;
return x;
}
--- 5792,5816 ----
int flags = 0;
if (classname[4] == 's') flags |= DRAW_SYMBOL;
! x->flags = flags;
! fielddesc_setfloat_const(&x->vis, 1);
! x->canvas = canvas_getcurrent();
while (1) {
t_symbol *firstarg = atom_getsymbolarg(0, argc, argv);
if (!strcmp(firstarg->s_name, "-v") && argc > 1) {
! fielddesc_setfloatarg(&x->vis, 1, argv+1);
argc -= 2; argv += 2;
} else break;
}
if (flags & DRAW_SYMBOL) {
! if (argc) fielddesc_setsymbolarg( &x->value,argc--,argv++);
! else fielddesc_setsymbol_const(&x->value,&s_);
} else {
! if (argc) fielddesc_setfloatarg( &x->value,argc--,argv++);
! else fielddesc_setfloat_const( &x->value, 0);
}
! if (argc) fielddesc_setfloatarg(&x->xloc, argc--,argv++); else fielddesc_setfloat_const(&x->xloc, 0);
! if (argc) fielddesc_setfloatarg(&x->yloc, argc--,argv++); else fielddesc_setfloat_const(&x->yloc, 0);
! if (argc) fielddesc_setfloatarg(&x->color,argc--,argv++); else fielddesc_setfloat_const(&x->color, 1);
! if (argc) x->label = atom_getsymbolarg(0, argc, argv); else x->label = &s_;
return x;
}
***************
*** 5839,5851 ****
void drawnumber_float(t_drawnumber *x, t_floatarg f) {
int viswas;
! if (x->x_vis.fd_type != A_FLOAT || x->x_vis.fd_var) {
pd_error(x, "global vis/invis for a template with variable visibility");
return;
}
! viswas = (x->x_vis.fd_un.fd_float != 0);
if ((f != 0 && viswas) || (f == 0 && !viswas)) return;
! canvas_redrawallfortemplatecanvas(x->x_canvas, 2);
! fielddesc_setfloat_const(&x->x_vis, f!=0);
! canvas_redrawallfortemplatecanvas(x->x_canvas, 1);
}
--- 5818,5830 ----
void drawnumber_float(t_drawnumber *x, t_floatarg f) {
int viswas;
! if (x->vis.fd_type != A_FLOAT || x->vis.fd_var) {
pd_error(x, "global vis/invis for a template with variable visibility");
return;
}
! viswas = (x->vis.fd_un.fd_float != 0);
if ((f != 0 && viswas) || (f == 0 && !viswas)) return;
! canvas_redrawallfortemplatecanvas(x->canvas, 2);
! fielddesc_setfloat_const(&x->vis, f!=0);
! canvas_redrawallfortemplatecanvas(x->canvas, 1);
}
***************
*** 5855,5859 ****
static void drawnumber_sprintf(t_drawnumber *x, char *buf, t_atom *ap) {
int nchars;
! strncpy(buf, x->x_label->s_name, DRAWNUMBER_BUFSIZE);
buf[DRAWNUMBER_BUFSIZE - 1] = 0;
nchars = strlen(buf);
--- 5834,5838 ----
static void drawnumber_sprintf(t_drawnumber *x, char *buf, t_atom *ap) {
int nchars;
! strncpy(buf, x->label->s_name, DRAWNUMBER_BUFSIZE);
buf[DRAWNUMBER_BUFSIZE - 1] = 0;
nchars = strlen(buf);
***************
*** 5867,5880 ****
int xloc, yloc;
char buf[DRAWNUMBER_BUFSIZE];
! if (!fielddesc_getfloat(&x->x_vis, template, data, 0)) {
*xp1 = *yp1 = 0x7fffffff;
*xp2 = *yp2 = -0x7fffffff;
return;
}
! xloc = glist_xtopixels(glist, basex + fielddesc_getcoord(&x->x_xloc, template, data, 0));
! yloc = glist_ytopixels(glist, basey + fielddesc_getcoord(&x->x_yloc, template, data, 0));
! if (x->x_flags & DRAW_SYMBOL)
! SETSYMBOL(&at, fielddesc_getsymbol(&x->x_value, template, data, 0));
! else SETFLOAT(&at, fielddesc_getfloat(&x->x_value, template, data, 0));
drawnumber_sprintf(x, buf, &at);
*xp1 = xloc;
--- 5846,5859 ----
int xloc, yloc;
char buf[DRAWNUMBER_BUFSIZE];
! if (!fielddesc_getfloat(&x->vis, template, data, 0)) {
*xp1 = *yp1 = 0x7fffffff;
*xp2 = *yp2 = -0x7fffffff;
return;
}
! xloc = glist_xtopixels(glist, basex + fielddesc_getcoord(&x->xloc, template, data, 0));
! yloc = glist_ytopixels(glist, basey + fielddesc_getcoord(&x->yloc, template, data, 0));
! if (x->flags & DRAW_SYMBOL)
! SETSYMBOL(&at, fielddesc_getsymbol(&x->value, template, data, 0));
! else SETFLOAT(&at, fielddesc_getfloat(&x->value, template, data, 0));
drawnumber_sprintf(x, buf, &at);
*xp1 = xloc;
***************
*** 5892,5905 ****
float basex, float basey, int vis) {
t_drawnumber *x = (t_drawnumber *)z;
! if (!fielddesc_getfloat(&x->x_vis, template, data, 0)) return;
if (vis) {
t_atom at;
! int xloc = glist_xtopixels(glist, basex + fielddesc_getcoord(&x->x_xloc, template, data, 0));
! int yloc = glist_ytopixels(glist, basey + fielddesc_getcoord(&x->x_yloc, template, data, 0));
char colorstring[20], buf[DRAWNUMBER_BUFSIZE];
! numbertocolor(fielddesc_getfloat(&x->x_color, template, data, 1), colorstring);
! if (x->x_flags & DRAW_SYMBOL)
! SETSYMBOL(&at, fielddesc_getsymbol(&x->x_value, template, data, 0));
! else SETFLOAT(&at, fielddesc_getfloat( &x->x_value, template, data, 0));
drawnumber_sprintf(x, buf, &at);
sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}",
--- 5871,5884 ----
float basex, float basey, int vis) {
t_drawnumber *x = (t_drawnumber *)z;
! if (!fielddesc_getfloat(&x->vis, template, data, 0)) return;
if (vis) {
t_atom at;
! int xloc = glist_xtopixels(glist, basex + fielddesc_getcoord(&x->xloc, template, data, 0));
! int yloc = glist_ytopixels(glist, basey + fielddesc_getcoord(&x->yloc, template, data, 0));
char colorstring[20], buf[DRAWNUMBER_BUFSIZE];
! numbertocolor(fielddesc_getfloat(&x->color, template, data, 1), colorstring);
! if (x->flags & DRAW_SYMBOL)
! SETSYMBOL(&at, fielddesc_getsymbol(&x->value, template, data, 0));
! else SETFLOAT(&at, fielddesc_getfloat( &x->value, template, data, 0));
drawnumber_sprintf(x, buf, &at);
sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}",
***************
*** 5924,5928 ****
static void drawnumber_motion(void *z, t_floatarg dx, t_floatarg dy) {
t_drawnumber *x = (t_drawnumber *)z;
! t_fielddesc *f = &x->x_value;
drawnumber_motion_ycumulative -= dy;
template_setfloat(drawnumber_motion_template,
--- 5903,5907 ----
static void drawnumber_motion(void *z, t_floatarg dx, t_floatarg dy) {
t_drawnumber *x = (t_drawnumber *)z;
! t_fielddesc *f = &x->value;
drawnumber_motion_ycumulative -= dy;
template_setfloat(drawnumber_motion_template,
***************
*** 5938,5942 ****
drawnumber_getrect(z, glist, data, template, basex, basey, &x1, &y1, &x2, &y2);
if (xpix >= x1 && xpix <= x2 && ypix >= y1 && ypix <= y2
! && x->x_value.fd_var && fielddesc_getfloat(&x->x_vis, template, data, 0)) {
if (doit) {
drawnumber_motion_glist = glist;
--- 5917,5921 ----
drawnumber_getrect(z, glist, data, template, basex, basey, &x1, &y1, &x2, &y2);
if (xpix >= x1 && xpix <= x2 && ypix >= y1 && ypix <= y2
! && x->value.fd_var && fielddesc_getfloat(&x->vis, template, data, 0)) {
if (doit) {
drawnumber_motion_glist = glist;
***************
*** 5945,5949 ****
drawnumber_motion_scalar = sc;
drawnumber_motion_array = ap;
! drawnumber_motion_ycumulative = fielddesc_getfloat(&x->x_value, template, data, 0);
/* glist_grab(glist, z, drawnumber_motion, 0, xpix, ypix); */
}
--- 5924,5928 ----
drawnumber_motion_scalar = sc;
drawnumber_motion_array = ap;
! drawnumber_motion_ycumulative = fielddesc_getfloat(&x->value, template, data, 0);
/* glist_grab(glist, z, drawnumber_motion, 0, xpix, ypix); */
}