[PD-cvs] pd/src desire.c,1.1.2.217.2.149,1.1.2.217.2.150
Mathieu Bouchard
matju at users.sourceforge.net
Tue Jul 10 22:31:23 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19171
Modified Files:
Tag: desiredata
desire.c
Log Message:
cleanup
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.217.2.149
retrieving revision 1.1.2.217.2.150
diff -C2 -d -r1.1.2.217.2.149 -r1.1.2.217.2.150
*** desire.c 10 Jul 2007 19:35:11 -0000 1.1.2.217.2.149
--- desire.c 10 Jul 2007 20:31:18 -0000 1.1.2.217.2.150
***************
*** 387,391 ****
}
-
/* if there's an old one lying around free it here. This
happens if an abstraction is loaded but never gets as far
--- 387,390 ----
***************
*** 430,434 ****
}
! t_symbol *canvas_getcurrentdir () {return canvas_getenv(canvas_getcurrent())->dir;}
t_symbol *canvas_getdir(t_canvas *x) {return canvas_getenv( x)->dir;}
--- 429,433 ----
}
! t_symbol *canvas_getcurrentdir () {return canvas_getenv(canvas_getcurrent())->dir;}
t_symbol *canvas_getdir(t_canvas *x) {return canvas_getenv( x)->dir;}
***************
*** 532,536 ****
else if (argc==6) pd_scanargs(argc,argv,"iiiisi",&xloc,&yloc,&width,&height,&s,&vis);
/* (otherwise assume we're being created from the menu.) */
-
if (canvas_newdirectory->name[0]) {
static long dollarzero = 1000;
--- 531,534 ----
***************
*** 597,601 ****
int zz;
int menu = 0;
- char *str;
t_canvas *x = canvas_new2();
if (!*sym->name) {
--- 595,598 ----
***************
*** 604,608 ****
sym = gensym(buf);
menu = 1;
! } else if (!strncmp((str = sym->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 would be confusing. The "correct" way is to have "py1" be the value
--- 601,605 ----
sym = gensym(buf);
menu = 1;
! } else if (!strncmp(sym->name,"graph",5) && (zz = atoi(sym->name+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 would be confusing. The "correct" way is to have "py1" be the value
***************
*** 882,888 ****
t_canvas *z = canvas_getcurrent();
if (s == &s_) {
! char tabname[255];
! t_symbol *t = gensym("table");
! sprintf(tabname, "%s%d", t->name, tabcount++);
s = gensym(tabname);
}
--- 879,884 ----
t_canvas *z = canvas_getcurrent();
if (s == &s_) {
! char tabname[255];
! sprintf(tabname, "table%d", tabcount++);
s = gensym(tabname);
}
***************
*** 1861,1865 ****
static void garray_save(t_gobj *z, t_binbuf *b) {
- int style, filestyle;
t_garray *x = (t_garray *)z;
t_array *array = garray_getarray(x);
--- 1857,1860 ----
***************
*** 1874,1879 ****
return;
}
! style = (int)template_getfloat(scalartemplate, gensym("style"), x->scalar->v, 0);
! filestyle = (style == PLOTSTYLE_POINTS ? 1 : (style == PLOTSTYLE_POLY ? 0 : style));
binbuf_addv(b, "ttsisi;","#X","array", x->realname, array->n, &s_float, x->saveit+2*filestyle+8*x->hidename);
if (x->saveit) {
--- 1869,1874 ----
return;
}
! int style = (int)template_getfloat(scalartemplate, gensym("style"), x->scalar->v, 0);
! int filestyle = (style == PLOTSTYLE_POINTS ? 1 : (style == PLOTSTYLE_POLY ? 0 : style));
binbuf_addv(b, "ttsisi;","#X","array", x->realname, array->n, &s_float, x->saveit+2*filestyle+8*x->hidename);
if (x->saveit) {
***************
*** 1927,1931 ****
/* sum of Fourier components; called from routines below */
static void garray_dofo(t_garray *x, int npoints, float dcval, int nsin, t_float *vsin, int sineflag) {
! double phase, phaseincr, fj;
int yonset, i, j, elemsize;
t_array *array = garray_getarray_floatonly(x, &yonset, &elemsize);
--- 1922,1926 ----
/* sum of Fourier components; called from routines below */
static void garray_dofo(t_garray *x, int npoints, float dcval, int nsin, t_float *vsin, int sineflag) {
! double phase, fj;
int yonset, i, j, elemsize;
t_array *array = garray_getarray_floatonly(x, &yonset, &elemsize);
***************
*** 1935,1939 ****
post("%s: rounnding to %d points", array->templatesym->name, (npoints = (1<<ilog2(npoints))));
garray_resize(x, npoints + 3);
! phaseincr = 2. * 3.14159 / npoints;
for (i=0, phase = -phaseincr; i < array->n; i++, phase += phaseincr) {
double sum = dcval;
--- 1930,1934 ----
post("%s: rounnding to %d points", array->templatesym->name, (npoints = (1<<ilog2(npoints))));
garray_resize(x, npoints + 3);
! double phaseincr = 2. * 3.14159 / npoints;
for (i=0, phase = -phaseincr; i < array->n; i++, phase += phaseincr) {
double sum = dcval;
***************
*** 1946,1958 ****
static void garray_sinesum(t_garray *x, t_symbol *s, int argc, t_atom *argv) {
t_float *svec = (t_float *)getbytes(sizeof(t_float) * argc);
! int npoints;
! if (argc < 2) {
! pd_error(x,"sinesum: %s: need number of points and partial strengths", x->realname->name);
! return;
! }
! npoints = atom_getintarg(0,argc--,argv++);
! argv++, argc--;
! svec = (t_float *)getbytes(sizeof(t_float) * argc);
for (int i=0; i < argc; i++) svec[i] = atom_getfloatarg(i, argc, argv);
garray_dofo(x, npoints, 0, argc, svec, 1);
--- 1941,1948 ----
static void garray_sinesum(t_garray *x, t_symbol *s, int argc, t_atom *argv) {
+ if (argc < 2) {pd_error(x,"sinesum: %s: need number of points and partial strengths", x->realname->name); return;}
t_float *svec = (t_float *)getbytes(sizeof(t_float) * argc);
! int npoints = atom_getintarg(0,argc--,argv++);
! argv++, argc--; /* is it normal that this happens a second time? */
for (int i=0; i < argc; i++) svec[i] = atom_getfloatarg(i, argc, argv);
garray_dofo(x, npoints, 0, argc, svec, 1);
***************
*** 1960,1971 ****
}
static void garray_cosinesum(t_garray *x, t_symbol *s, int argc, t_atom *argv) {
t_float *svec = (t_float *)getbytes(sizeof(t_float) * argc);
! int npoints;
! if (argc < 2) {
! pd_error(x,"cosinesum: %s: need number of points and partial strengths", x->realname->name);
! return;
! }
! npoints = atom_getintarg(0,argc--,argv++);
! svec = (t_float *)getbytes(sizeof(t_float) * argc);
for (int i=0; i < argc; i++) svec[i] = atom_getfloatarg(i, argc, argv);
garray_dofo(x, npoints, 0, argc, svec, 0);
--- 1950,1956 ----
}
static void garray_cosinesum(t_garray *x, t_symbol *s, int argc, t_atom *argv) {
+ if (argc < 2) {pd_error(x,"cosinesum: %s: need number of points and partial strengths", x->realname->name); return;}
t_float *svec = (t_float *)getbytes(sizeof(t_float) * argc);
! int npoints = atom_getintarg(0,argc--,argv++);
for (int i=0; i < argc; i++) svec[i] = atom_getfloatarg(i, argc, argv);
garray_dofo(x, npoints, 0, argc, svec, 0);
***************
*** 2029,2033 ****
static void garray_read(t_garray *x, t_symbol *filename) {
- int nelem, filedesc, i;
FILE *fd;
char buf[MAXPDSTRING], *bufptr;
--- 2014,2017 ----
***************
*** 2035,2044 ****
t_array *array = garray_getarray_floatonly(x, &yonset, &elemsize);
TEMPLATE_FLOATY(x,array,)
! nelem = array->n;
! filedesc = canvas_open(canvas_getcanvas(x->canvas), filename->name, "", buf, &bufptr, MAXPDSTRING, 0);
if (filedesc<0 || !(fd = fdopen(filedesc, "r"))) {
pd_error(x,"%s: can't open", filename->name);
return;
}
for (i=0; i < nelem; i++) {
if (!fscanf(fd, "%f", (float *)(array->vec + elemsize*i) + yonset)) {
--- 2019,2029 ----
t_array *array = garray_getarray_floatonly(x, &yonset, &elemsize);
TEMPLATE_FLOATY(x,array,)
! int nelem = array->n;
! int filedesc = canvas_open(canvas_getcanvas(x->canvas), filename->name, "", buf, &bufptr, MAXPDSTRING, 0);
if (filedesc<0 || !(fd = fdopen(filedesc, "r"))) {
pd_error(x,"%s: can't open", filename->name);
return;
}
+ int i;
for (i=0; i < nelem; i++) {
if (!fscanf(fd, "%f", (float *)(array->vec + elemsize*i) + yonset)) {
***************
*** 2125,2131 ****
printf("canvas_add %p %p class=%s (non-t_text)\n",x,y,y->_class->name->name);
} else {
- char *buf; int bufn;
t_binbuf *bb = ((t_text *)y)->binbuf;
if (binbuf_getvec(bb)) {
binbuf_gettext(bb,&buf,&bufn);
printf("canvas_add %p %p [%.*s]\n",x,y,bufn,buf);
--- 2110,2116 ----
printf("canvas_add %p %p class=%s (non-t_text)\n",x,y,y->_class->name->name);
} else {
t_binbuf *bb = ((t_text *)y)->binbuf;
if (binbuf_getvec(bb)) {
+ char *buf; int bufn;
binbuf_gettext(bb,&buf,&bufn);
printf("canvas_add %p %p [%.*s]\n",x,y,bufn,buf);
***************
*** 2277,2318 ****
static void canvas_resortinlets(t_canvas *x) {
! int n=0, j, xmax, x1;
! t_gobj *y, **vec, **vp, **maxp;
canvas_each(y,x) if (y->_class==vinlet_class) n++;
if (n<2) return;
! vp = vec = (t_gobj **)getbytes(n*sizeof(*vec));
canvas_each(y,x) if (y->_class==vinlet_class) *vp++ = y;
for (int i=n; i--;) {
! t_inlet *ip;
! for (vp = vec, xmax = -0x7fffffff, maxp = 0, j=n; j--; vp++) {
if (!*vp) continue;
! x1 = ((t_text *)*vp)->x;
if (x1 > xmax) {xmax = x1; maxp = vp;}
}
if (!maxp) break;
y = *maxp; *maxp = 0;
! ip = vinlet_getit(y);
! obj_moveinletfirst(x,ip);
}
free(vec);
}
static void canvas_resortoutlets(t_canvas *x) {
! int n=0, j, xmax, x1;
! t_gobj *y, **vec, **vp, **maxp;
canvas_each(y,x) if (y->_class==voutlet_class) n++;
if (n<2) return;
! vp = vec = (t_gobj **)getbytes(n*sizeof(*vec));
canvas_each(y,x) if (y->_class==voutlet_class) *vp++ = y;
for (int i=n; i--;) {
! t_outlet *ip;
! for (vp = vec, xmax = -0x7fffffff, maxp = 0, j=n; j--; vp++) {
if (!*vp) continue;
! x1 = ((t_text *)*vp)->x;
if (x1 > xmax) {xmax = x1; maxp = vp;}
}
if (!maxp) break;
y = *maxp; *maxp = 0;
! ip = voutlet_getit(y);
! obj_moveoutletfirst(x,ip);
}
free(vec);
--- 2262,2299 ----
static void canvas_resortinlets(t_canvas *x) {
! int n=0, j, xmax = -0x7fffffff;
! t_gobj *y, **maxp;
canvas_each(y,x) if (y->_class==vinlet_class) n++;
if (n<2) return;
! t_gobj **vec = (t_gobj **)getbytes(n*sizeof(*vec)), **vp = vec;
canvas_each(y,x) if (y->_class==vinlet_class) *vp++ = y;
for (int i=n; i--;) {
! for (vp = vec, maxp = 0, j=n; j--; vp++) {
if (!*vp) continue;
! int x1 = ((t_text *)*vp)->x;
if (x1 > xmax) {xmax = x1; maxp = vp;}
}
if (!maxp) break;
y = *maxp; *maxp = 0;
! obj_moveinletfirst(x,vinlet_getit(y));
}
free(vec);
}
static void canvas_resortoutlets(t_canvas *x) {
! int n=0, j, xmax = -0x7fffffff;
! t_gobj *y, **maxp;
canvas_each(y,x) if (y->_class==voutlet_class) n++;
if (n<2) return;
! t_gobj **vec = (t_gobj **)getbytes(n*sizeof(*vec)), **vp = vec;
canvas_each(y,x) if (y->_class==voutlet_class) *vp++ = y;
for (int i=n; i--;) {
! for (vp = vec, maxp = 0, j=n; j--; vp++) {
if (!*vp) continue;
! int x1 = ((t_text *)*vp)->x;
if (x1 > xmax) {xmax = x1; maxp = vp;}
}
if (!maxp) break;
y = *maxp; *maxp = 0;
! obj_moveoutletfirst(x,voutlet_getit(y));
}
free(vec);
***************
*** 2589,2593 ****
} else if (t->vec[i].type == DT_LIST) {
while (1) {
! if (!canvas_readscalar(w->w_list, natoms, vec, p_nextmsg, 0)) break;
}
}
--- 2570,2574 ----
} else if (t->vec[i].type == DT_LIST) {
while (1) {
! if (!canvas_readscalar(w->w_canvas, natoms, vec, p_nextmsg, 0)) break;
}
}
***************
*** 2797,2801 ****
binbuf_addsemi(b);
} else if (t->vec[i].type == DT_LIST) {
! canvas_writelist(w->w_list->list, b);
binbuf_addsemi(b);
}
--- 2778,2782 ----
binbuf_addsemi(b);
} else if (t->vec[i].type == DT_LIST) {
! canvas_writelist(w->w_canvas->list, b);
binbuf_addsemi(b);
}
***************
*** 2826,2830 ****
canvas_addtemplatesforscalar(arraytemplatesym, (t_word *)&a->vec[elemsize*j], p_ntemplates, p_templatevec);
} else if (ds->type == DT_LIST)
! canvas_addtemplatesforlist(w->w_list->list, p_ntemplates, p_templatevec);
}
}
--- 2807,2811 ----
canvas_addtemplatesforscalar(arraytemplatesym, (t_word *)&a->vec[elemsize*j], p_ntemplates, p_templatevec);
} else if (ds->type == DT_LIST)
! canvas_addtemplatesforlist(w->w_canvas->list, p_ntemplates, p_templatevec);
}
}
***************
*** 3483,3487 ****
else if (type == DT_LIST) {
/* LATER test this and get it to work */
! wp->w_list = canvas_new(0,0,0,0);
}
}
--- 3464,3468 ----
else if (type == DT_LIST) {
/* LATER test this and get it to work */
! wp->w_canvas = canvas_new(0,0,0,0);
}
}
***************
*** 3509,3513 ****
for (int i=0; i<t->n; i++, dt++) {
if (dt->type == DT_ARRAY) pd_free(wp[i].w_array);
! else if (dt->type == DT_LIST) pd_free(wp[i].w_list);
}
}
--- 3490,3494 ----
for (int i=0; i<t->n; i++, dt++) {
if (dt->type == DT_ARRAY) pd_free(wp[i].w_array);
! else if (dt->type == DT_LIST) pd_free(wp[i].w_canvas);
}
}
***************
*** 3876,3880 ****
for (int i=0; i < scalartemplate->n; i++) {
t_dataslot *ds = scalartemplate->vec + i;
! if (ds->type == DT_LIST) template_conformcanvas(tfrom, tto, conformaction, x->v[i].w_list);
if (ds->type == DT_ARRAY) template_conformarray(tfrom, tto, conformaction, x->v[i].w_array);
}
--- 3857,3861 ----
for (int i=0; i < scalartemplate->n; i++) {
t_dataslot *ds = scalartemplate->vec + i;
! if (ds->type == DT_LIST) template_conformcanvas(tfrom, tto, conformaction, x->v[i].w_canvas);
if (ds->type == DT_ARRAY) template_conformarray(tfrom, tto, conformaction, x->v[i].w_array);
}
***************
*** 3907,3911 ****
for (int j=0; j < scalartemplate->n; j++) {
t_dataslot *ds = scalartemplate->vec + j;
! if (ds->type == DT_LIST) template_conformcanvas(tfrom, tto, conformaction, wp[j].w_list);
if (ds->type == DT_ARRAY) template_conformarray( tfrom, tto, conformaction, wp[j].w_array);
}
--- 3888,3892 ----
for (int j=0; j < scalartemplate->n; j++) {
t_dataslot *ds = scalartemplate->vec + j;
! if (ds->type == DT_LIST) template_conformcanvas(tfrom, tto, conformaction, wp[j].w_canvas);
if (ds->type == DT_ARRAY) template_conformarray( tfrom, tto, conformaction, wp[j].w_array);
}
***************
*** 3968,3974 ****
t_canvas *template_findcanvas(t_template *t) {
- t_gtemplate *gt;
if (!t) bug("template_findcanvas");
! if (!(gt = t->list)) return 0;
return gt->owner;
/* return ((t_canvas *)pd_findbyclass(t->sym, canvas_class)); */
--- 3949,3955 ----
t_canvas *template_findcanvas(t_template *t) {
if (!t) bug("template_findcanvas");
! t_gtemplate *gt = t->list;
! if (!gt) return 0;
return gt->owner;
/* return ((t_canvas *)pd_findbyclass(t->sym, canvas_class)); */
***************
*** 4125,4130 ****
of the field so we don't have to search for it every single time we draw the object.
*/
! /* note: there is also t_dataslot which plays a similar role.
! could they be merged someday? */
struct _slot {
--- 4106,4110 ----
of the field so we don't have to search for it every single time we draw the object.
*/
! /* note: there is also t_dataslot which plays a similar role. could they be merged someday? */
struct _slot {
More information about the Pd-cvs
mailing list