Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29756
Modified Files: Tag: devel_0_39 desire.c Log Message: more renaming of fields in t_fielddesc
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.156 retrieving revision 1.1.2.157 diff -C2 -d -r1.1.2.156 -r1.1.2.157 *** desire.c 7 Sep 2006 01:01:59 -0000 1.1.2.156 --- desire.c 7 Sep 2006 01:10:16 -0000 1.1.2.157 *************** *** 2864,2875 **** proportional-style GOP. In this case we do a coordinate transformation. */ static int text_xpix(t_text *x, t_glist *glist) { if (glist->havewindow || !glist->isgraph) return x->te_xpix; if (glist->goprect) return glist->gl_obj.te_xpix + x->te_xpix - glist->xmargin; ! return glist_xtopixels(glist, glist->gl_x1 + (glist->gl_x2 - glist->gl_x1) * x->te_xpix / (glist->screenx2 - glist->screenx1)); } static int text_ypix(t_text *x, t_glist *glist) { if (glist->havewindow || !glist->isgraph) return x->te_ypix; if (glist->goprect) return glist->gl_obj.te_ypix + x->te_ypix - glist->ymargin; ! return glist_ytopixels(glist, glist->gl_y1 + (glist->gl_y2 - glist->gl_y1) * x->te_ypix / (glist->screeny2 - glist->screeny1)); }
--- 2864,2877 ---- proportional-style GOP. In this case we do a coordinate transformation. */ static int text_xpix(t_text *x, t_glist *glist) { + float width = glist->gl_x2-glist->gl_x1; if (glist->havewindow || !glist->isgraph) return x->te_xpix; if (glist->goprect) return glist->gl_obj.te_xpix + x->te_xpix - glist->xmargin; ! return glist_xtopixels(glist, glist->gl_x1 + width * x->te_xpix / (glist->screenx2-glist->screenx1)); } static int text_ypix(t_text *x, t_glist *glist) { + float height = glist->gl_y2-glist->gl_y1; if (glist->havewindow || !glist->isgraph) return x->te_ypix; if (glist->goprect) return glist->gl_obj.te_ypix + x->te_ypix - glist->ymargin; ! return glist_ytopixels(glist, glist->gl_y1 + height* x->te_ypix / (glist->screeny2-glist->screeny1)); }
*************** *** 2932,2936 **** g = x->list; if (g && !g->g_next && g->g_pd == garray_class) { ! int ymin = (y1 < y2 ? y1 : y2); t_symbol *s = garray_getname((t_garray *)g); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor sw\ --- 2934,2938 ---- g = x->list; if (g && !g->g_next && g->g_pd == garray_class) { ! int ymin = y1<y2 ? y1 : y2; t_symbol *s = garray_getname((t_garray *)g); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor sw\ *************** *** 2981,2995 **** for (i = 0; i < x->nxlabels; i++) sys_vgui(".x%lx.c create text %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", ! (long)glist_getcanvas(x), ! (int)glist_xtopixels(x, atof(x->xlabel[i]->s_name)), ! (int)glist_ytopixels(x, x->xlabely), x->xlabel[i]->s_name, ! glist_getfont(x), tag); /* draw y labels */ for (i = 0; i < x->nylabels; i++) sys_vgui(".x%lx.c create text %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", ! (long)glist_getcanvas(x), ! (int)glist_xtopixels(x, x->ylabelx), ! (int)glist_ytopixels(x, atof(x->ylabel[i]->s_name)), ! x->ylabel[i]->s_name, glist_getfont(x), tag); /* draw contents of graph as glist */ --- 2983,2993 ---- for (i = 0; i < x->nxlabels; i++) sys_vgui(".x%lx.c create text %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", ! (long)glist_getcanvas(x), (int)glist_xtopixels(x, atof(x->xlabel[i]->s_name)), ! (int)glist_ytopixels(x, x->xlabely), x->xlabel[i]->s_name, glist_getfont(x), tag); /* draw y labels */ for (i = 0; i < x->nylabels; i++) sys_vgui(".x%lx.c create text %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", ! (long)glist_getcanvas(x), (int)glist_xtopixels(x, x->ylabelx), ! (int)glist_ytopixels(x, atof(x->ylabel[i]->s_name)), x->ylabel[i]->s_name, glist_getfont(x), tag); /* draw contents of graph as glist */ *************** *** 4935,4945 ****
struct _fielddesc { ! char fd_type; /* LATER consider removing this? */ ! char fd_var; union { ! t_float fd_float; /* the field is a constant float */ ! t_symbol *fd_symbol; /* the field is a constant symbol */ ! t_symbol *fd_varsym; /* the field is variable and this is the name */ ! } fd_un; float min,max; float scrmin,scrmax; /* min and max screen values */ --- 4933,4943 ----
struct _fielddesc { ! char type; /* LATER consider removing this? */ ! char var; union { ! t_float f; /* the field is a constant float */ ! t_symbol *s; /* the field is a constant symbol */ ! t_symbol *varsym; /* the field is variable and this is the name */ ! } u; float min,max; float scrmin,scrmax; /* min and max screen values */ *************** *** 4948,4956 ****
static void fielddesc_setfloat_const(t_fielddesc *fd, float f) { ! fd->fd_type = A_FLOAT; fd->fd_var = 0; fd->fd_un.fd_float = f; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } static void fielddesc_setsymbol_const(t_fielddesc *fd, t_symbol *s) { ! fd->fd_type = A_SYMBOL; fd->fd_var = 0; fd->fd_un.fd_symbol = s; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } --- 4946,4954 ----
static void fielddesc_setfloat_const(t_fielddesc *fd, float f) { ! fd->type = A_FLOAT; fd->var = 0; fd->u.f = f; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } static void fielddesc_setsymbol_const(t_fielddesc *fd, t_symbol *s) { ! fd->type = A_SYMBOL; fd->var = 0; fd->u.s = s; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } *************** *** 4958,4965 **** static void fielddesc_setfloat_var(t_fielddesc *fd, t_symbol *s) { char *s1, *s2, *s3, strbuf[MAXPDSTRING]; ! fd->fd_type = A_FLOAT; ! fd->fd_var = 1; if (!(s1 = strchr(s->s_name, '(')) || !(s2 = strchr(s->s_name, ')')) || s1>s2) { ! fd->fd_un.fd_varsym = s; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } else { --- 4956,4963 ---- static void fielddesc_setfloat_var(t_fielddesc *fd, t_symbol *s) { char *s1, *s2, *s3, strbuf[MAXPDSTRING]; ! fd->type = A_FLOAT; ! fd->var = 1; if (!(s1 = strchr(s->s_name, '(')) || !(s2 = strchr(s->s_name, ')')) || s1>s2) { ! fd->u.varsym = s; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } else { *************** *** 4969,4973 **** strncpy(strbuf, s->s_name, cpy); strbuf[cpy] = 0; ! fd->fd_un.fd_varsym = gensym(strbuf); got = sscanf(s1, "(%f:%f)(%f:%f)(%f)", &fd->min, &fd->max, &fd->scrmin, &fd->scrmax, &fd->quantum); if (got < 2) goto fail; --- 4967,4971 ---- strncpy(strbuf, s->s_name, cpy); strbuf[cpy] = 0; ! fd->u.varsym = gensym(strbuf); got = sscanf(s1, "(%f:%f)(%f:%f)(%f)", &fd->min, &fd->max, &fd->scrmin, &fd->scrmax, &fd->quantum); if (got < 2) goto fail; *************** *** 5001,5007 **** if (argc <= 0) fielddesc_setsymbol_const(fd, &s_); else if (argv->a_type == A_SYMBOL) { ! fd->fd_type = A_SYMBOL; ! fd->fd_var = 1; ! fd->fd_un.fd_varsym = argv->a_w.w_symbol; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } --- 4999,5005 ---- if (argc <= 0) fielddesc_setsymbol_const(fd, &s_); else if (argv->a_type == A_SYMBOL) { ! fd->type = A_SYMBOL; ! fd->var = 1; ! fd->u.varsym = argv->a_w.w_symbol; fd->min = fd->max = fd->scrmin = fd->scrmax = fd->quantum = 0; } *************** *** 5012,5018 **** if (argc <= 0) fielddesc_setfloat_const(fd, 0); else if (argv->a_type == A_SYMBOL) { ! fd->fd_type = A_ARRAY; ! fd->fd_var = 1; ! fd->fd_un.fd_varsym = argv->a_w.w_symbol; } else fielddesc_setfloat_const(fd, argv->a_w.w_float); } --- 5010,5016 ---- if (argc <= 0) fielddesc_setfloat_const(fd, 0); else if (argv->a_type == A_SYMBOL) { ! fd->type = A_ARRAY; ! fd->var = 1; ! fd->u.varsym = argv->a_w.w_symbol; } else fielddesc_setfloat_const(fd, argv->a_w.w_float); } *************** *** 5021,5027 **** the above are setting up the fielddesc itself. */ static t_float fielddesc_getfloat(t_fielddesc *f, t_template *template, t_word *wp, int loud) { ! if (f->fd_type!=A_FLOAT) {if (loud) error("symbolic data field used as number"); return 0;} ! if (f->fd_var) return template_getfloat(template, f->fd_un.fd_varsym, wp, loud); ! return f->fd_un.fd_float; }
--- 5019,5025 ---- the above are setting up the fielddesc itself. */ static t_float fielddesc_getfloat(t_fielddesc *f, t_template *template, t_word *wp, int loud) { ! if (f->type!=A_FLOAT) {if (loud) error("symbolic data field used as number"); return 0;} ! if (f->var) return template_getfloat(template, f->u.varsym, wp, loud); ! return f->u.f; }
*************** *** 5034,5051 **** extreme = f->scrmin<f->scrmax ? f->scrmin : f->scrmax; if (coord<extreme) coord = extreme; extreme = f->scrmin>f->scrmax ? f->scrmin : f->scrmax; if (coord>extreme) coord = extreme; ! return (coord); }
/* read a variable via fielddesc and convert to screen coordinate */ t_float fielddesc_getcoord(t_fielddesc *f, t_template *template, t_word *wp, int loud) { ! if (f->fd_type!=A_FLOAT) {if (loud) error("symbolic data field used as number"); return 0;} ! if (f->fd_var) return fielddesc_cvttocoord(f, template_getfloat(template, f->fd_un.fd_varsym, wp, loud)); ! return f->fd_un.fd_float; }
static t_symbol *fielddesc_getsymbol(t_fielddesc *f, t_template *template, t_word *wp, int loud) { ! if (f->fd_type!=A_SYMBOL) {if (loud) error("numeric data field used as symbol"); return &s_;} ! if (f->fd_var) return template_getsymbol(template, f->fd_un.fd_varsym, wp, loud); ! return f->fd_un.fd_symbol; }
--- 5032,5049 ---- extreme = f->scrmin<f->scrmax ? f->scrmin : f->scrmax; if (coord<extreme) coord = extreme; extreme = f->scrmin>f->scrmax ? f->scrmin : f->scrmax; if (coord>extreme) coord = extreme; ! return coord; }
/* read a variable via fielddesc and convert to screen coordinate */ t_float fielddesc_getcoord(t_fielddesc *f, t_template *template, t_word *wp, int loud) { ! if (f->type!=A_FLOAT) {if (loud) error("symbolic data field used as number"); return 0;} ! if (f->var) return fielddesc_cvttocoord(f, template_getfloat(template, f->u.varsym, wp, loud)); ! return f->u.f; }
static t_symbol *fielddesc_getsymbol(t_fielddesc *f, t_template *template, t_word *wp, int loud) { ! if (f->type!=A_SYMBOL) {if (loud) error("numeric data field used as symbol"); return &s_;} ! if (f->var) return template_getsymbol(template, f->u.varsym, wp, loud); ! return f->u.s; }
*************** *** 5066,5072 ****
void fielddesc_setcoord(t_fielddesc *f, t_template *template, t_word *wp, float coord, int loud) { ! if (f->fd_type == A_FLOAT && f->fd_var) { float val = fielddesc_cvtfromcoord(f, coord); ! template_setfloat(template, f->fd_un.fd_varsym, wp, val, loud); } else { if (loud) error("attempt to set constant or symbolic data field to a number"); --- 5064,5070 ----
void fielddesc_setcoord(t_fielddesc *f, t_template *template, t_word *wp, float coord, int loud) { ! if (f->type == A_FLOAT && f->var) { float val = fielddesc_cvtfromcoord(f, coord); ! template_setfloat(template, f->u.varsym, wp, val, loud); } else { if (loud) error("attempt to set constant or symbolic data field to a number"); *************** *** 5136,5144 **** 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); --- 5134,5142 ---- void curve_float(t_curve *x, t_floatarg f) { int viswas; ! if (x->vis.type != A_FLOAT || x->vis.var) { pd_error(x, "global vis/invis for a template with variable visibility"); return; } ! viswas = (x->vis.u.f != 0); if ((f != 0 && viswas) || (f == 0 && !viswas)) return; canvas_redrawallfortemplatecanvas(x->canvas, 2); *************** *** 5265,5272 **** curve_motion_xcumulative += dx; curve_motion_ycumulative += dy; ! if (f[0].fd_var && dx!=0) fielddesc_setcoord(f, curve_motion_template, curve_motion_wp, curve_motion_xbase + curve_motion_xcumulative * curve_motion_xper, 1); ! if (f[1].fd_var && dy!=0) fielddesc_setcoord(f+1, curve_motion_template, curve_motion_wp, curve_motion_ybase + curve_motion_ycumulative * curve_motion_yper, 1); --- 5263,5270 ---- curve_motion_xcumulative += dx; curve_motion_ycumulative += dy; ! if (f[0].var && dx!=0) fielddesc_setcoord(f, curve_motion_template, curve_motion_wp, curve_motion_xbase + curve_motion_xcumulative * curve_motion_xper, 1); ! if (f[1].var && dy!=0) fielddesc_setcoord(f+1, curve_motion_template, curve_motion_wp, curve_motion_ybase + curve_motion_ycumulative * curve_motion_yper, 1); *************** *** 5289,5293 **** int yval = fielddesc_getcoord(f+1, template, data, 0), yloc = glist_ytopixels(glist, basey + yval); int xerr = xloc - xpix, yerr = yloc - ypix; ! if (!f->fd_var && !(f+1)->fd_var) continue; if (xerr < 0) xerr = -xerr; if (yerr < 0) yerr = -yerr; --- 5287,5291 ---- int yval = fielddesc_getcoord(f+1, template, data, 0), yloc = glist_ytopixels(glist, basey + yval); int xerr = xloc - xpix, yerr = yloc - ypix; ! if (!f->var && !(f+1)->var) continue; if (xerr < 0) xerr = -xerr; if (yerr < 0) yerr = -yerr; *************** *** 5395,5403 **** 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); --- 5393,5401 ---- void plot_float(t_plot *x, t_floatarg f) { int viswas; ! if (x->vis.type != A_FLOAT || x->vis.var) { pd_error(x, "global vis/invis for a template with variable visibility"); return; } ! viswas = x->vis.u.f != 0; if ((f != 0 && viswas) || (f == 0 && !viswas)) return; canvas_redrawallfortemplatecanvas(x->canvas, 2); *************** *** 5419,5432 ****
/* 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; } --- 5417,5430 ----
/* find the data and verify it's an array */ ! if (x->data.type != A_ARRAY || !x->data.var) { error("plot: needs an array field"); return -1; } ! if (!template_find_field(ownertemplate, x->data.u.varsym, &arrayonset, &type, &elemtemplatesym)) { ! error("plot: %s: no such field", x->data.u.varsym->s_name); return -1; } if (type != DT_ARRAY) { ! error("plot: %s: not an array", x->data.u.varsym->s_name); return -1; } *************** *** 5469,5477 **** } elemsize = elemtemplate->t_n * sizeof(t_word); ! if (yfielddesc && yfielddesc->fd_var) varname = yfielddesc->fd_un.fd_varsym; else varname = gensym("y"); if (!template_find_field(elemtemplate,varname,&yonset,&type,&dummy) || type!=DT_FLOAT) yonset=-1; ! if (xfielddesc && xfielddesc->fd_var) varname = xfielddesc->fd_un.fd_varsym; else varname = gensym("x"); if (!template_find_field(elemtemplate,varname,&xonset,&type,&dummy) || type!=DT_FLOAT) xonset=-1; ! if (wfielddesc && wfielddesc->fd_var) varname = wfielddesc->fd_un.fd_varsym; else varname = gensym("w"); if (!template_find_field(elemtemplate,varname,&wonset,&type,&dummy) || type!=DT_FLOAT) wonset=-1;
--- 5467,5475 ---- } elemsize = elemtemplate->t_n * sizeof(t_word); ! if (yfielddesc && yfielddesc->var) varname = yfielddesc->u.varsym; else varname = gensym("y"); if (!template_find_field(elemtemplate,varname,&yonset,&type,&dummy) || type!=DT_FLOAT) yonset=-1; ! if (xfielddesc && xfielddesc->var) varname = xfielddesc->u.varsym; else varname = gensym("x"); if (!template_find_field(elemtemplate,varname,&xonset,&type,&dummy) || type!=DT_FLOAT) xonset=-1; ! if (wfielddesc && wfielddesc->var) varname = wfielddesc->u.varsym; else varname = gensym("w"); if (!template_find_field(elemtemplate,varname,&wonset,&type,&dummy) || type!=DT_FLOAT) wonset=-1;
*************** *** 5800,5808 **** 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); --- 5798,5806 ---- void drawnumber_float(t_drawnumber *x, t_floatarg f) { int viswas; ! if (x->vis.type != A_FLOAT || x->vis.var) { pd_error(x, "global vis/invis for a template with variable visibility"); return; } ! viswas = (x->vis.u.f != 0); if ((f != 0 && viswas) || (f == 0 && !viswas)) return; canvas_redrawallfortemplatecanvas(x->canvas, 2); *************** *** 5888,5892 **** drawnumber_motion_ycumulative -= dy; template_setfloat(drawnumber_motion_template, ! f->fd_un.fd_varsym, drawnumber_motion_wp, drawnumber_motion_ycumulative, 1); if (drawnumber_motion_scalar) scalar_redraw(drawnumber_motion_scalar, drawnumber_motion_glist); if (drawnumber_motion_array) array_redraw(drawnumber_motion_array, drawnumber_motion_glist); --- 5886,5890 ---- drawnumber_motion_ycumulative -= dy; template_setfloat(drawnumber_motion_template, ! f->u.varsym, drawnumber_motion_wp, drawnumber_motion_ycumulative, 1); if (drawnumber_motion_scalar) scalar_redraw(drawnumber_motion_scalar, drawnumber_motion_glist); if (drawnumber_motion_array) array_redraw(drawnumber_motion_array, drawnumber_motion_glist); *************** *** 5899,5903 **** 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; --- 5897,5901 ---- drawnumber_getrect(z, glist, data, template, basex, basey, &x1, &y1, &x2, &y2); if (xpix >= x1 && xpix <= x2 && ypix >= y1 && ypix <= y2 ! && x->value.var && fielddesc_getfloat(&x->vis, template, data, 0)) { if (doit) { drawnumber_motion_glist = glist;