Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17598
Modified Files: Tag: devel_0_39 desire.c desire.h m_pd.h Log Message: even more PD_PLUSPLUS_FACE
Index: m_pd.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v retrieving revision 1.4.4.11.2.32 retrieving revision 1.4.4.11.2.33 diff -C2 -d -r1.4.4.11.2.32 -r1.4.4.11.2.33 *** m_pd.h 28 Nov 2006 02:53:33 -0000 1.4.4.11.2.32 --- m_pd.h 28 Nov 2006 03:53:32 -0000 1.4.4.11.2.33 *************** *** 75,80 **** EXTERN_STRUCT _clock; #define t_clock struct _clock - EXTERN_STRUCT _outconnect; - #define t_outconnect struct _outconnect EXTERN_STRUCT _glist; #define t_glist struct _glist --- 75,78 ---- *************** *** 227,230 **** --- 225,238 ----
#ifdef PD_PLUSPLUS_FACE + typedef struct _outconnect : _gobj { + struct _outconnect *oc_next; + t_pd *oc_to; + } t_outconnect; + #else + EXTERN_STRUCT _outconnect; + #define t_outconnect struct _outconnect + #endif + + #ifdef PD_PLUSPLUS_FACE typedef struct _scalar : t_gobj { #else *************** *** 410,416 **** EXTERN void gobj_subscribe (t_gobj *self, t_gobj *observer); EXTERN void gobj_unsubscribe (t_gobj *self, t_gobj *observer); ! EXTERN void gobj_changed (void /*t_gobj*/ *self, const char *k); ! EXTERN void gobj_changed2 (void /*t_gobj*/ *self, int argc, t_atom *argv); ! EXTERN void gobj_changed3 (void /*t_gobj*/ *self, t_gobj *origin, int argc, t_atom *argv); #endif
--- 418,424 ---- EXTERN void gobj_subscribe (t_gobj *self, t_gobj *observer); EXTERN void gobj_unsubscribe (t_gobj *self, t_gobj *observer); ! EXTERN void gobj_changed (t_gobj *self, const char *k); ! EXTERN void gobj_changed2 (t_gobj *self, int argc, t_atom *argv); ! EXTERN void gobj_changed3 (t_gobj *self, t_gobj *origin, int argc, t_atom *argv); #endif
Index: desire.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v retrieving revision 1.1.2.46 retrieving revision 1.1.2.47 diff -C2 -d -r1.1.2.46 -r1.1.2.47 *** desire.h 28 Nov 2006 03:12:57 -0000 1.1.2.46 --- desire.h 28 Nov 2006 03:53:32 -0000 1.1.2.47 *************** *** 203,207 **** } t_template;
! struct _array { int n; /* number of elements */ int elemsize; /* size in bytes; LATER get this from template */ --- 203,208 ---- } t_template;
! /* this is not really a gui object, but it needs to be observable. */ ! struct _array : t_gobj { int n; /* number of elements */ int elemsize; /* size in bytes; LATER get this from template */
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.210 retrieving revision 1.1.2.211 diff -C2 -d -r1.1.2.210 -r1.1.2.211 *** desire.c 28 Nov 2006 02:53:33 -0000 1.1.2.210 --- desire.c 28 Nov 2006 03:53:30 -0000 1.1.2.211 *************** *** 83,93 **** t_symbol *s_empty, *s_pd, *s_Pd;
- #define pd_free(a) pd_free((t_pd *)(a)) - #define pd_bind(a,b) pd_bind((t_pd *)(a),b) - #define pd_unbind(a,b) pd_unbind((t_pd *)(a),b) - #define pd_checkobject(a) pd_checkobject((t_pd *)(a)) - #define pd_pushsym(a) pd_pushsym((t_pd *)(a)) - #define pd_popsym(a) pd_popsym((t_pd *)(a)) - //-------------------------------------------------------------------------- // t_appendix: an extension to t_gobj made by matju so that --- 83,86 ---- *************** *** 162,167 ****
// if !k then suppose all of the object might have changed. ! void gobj_changed (void *self_, const char *k) { ! t_gobj *self = (t_gobj *)self_; int dirty = k ? (1<<class_getfieldindex(self->_class,k)) : -1; t_atom argv[1]; --- 155,159 ----
// if !k then suppose all of the object might have changed. ! void gobj_changed (t_gobj *self, const char *k) { int dirty = k ? (1<<class_getfieldindex(self->_class,k)) : -1; t_atom argv[1]; *************** *** 172,182 **** // if only a float is sent, it's a bitset of at most 25 elements // else it may mean whatever else... ! void gobj_changed2 (void *self_, int argc, t_atom *argv) { ! t_gobj *self = (t_gobj *)self_; gobj_changed3(self,self,argc,argv); }
! void gobj_changed3 (void *self_, t_gobj *origin, int argc, t_atom *argv) { ! t_gobj *self = (t_gobj *)self_; t_appendix *d = self->g_adix; //printf("gobj_changed3 self=%lx origin=%lx\n",(long)self,(long)origin); --- 164,172 ---- // if only a float is sent, it's a bitset of at most 25 elements // else it may mean whatever else... ! void gobj_changed2 (t_gobj *self, int argc, t_atom *argv) { gobj_changed3(self,self,argc,argv); }
! void gobj_changed3 (t_gobj *self, t_gobj *origin, int argc, t_atom *argv) { t_appendix *d = self->g_adix; //printf("gobj_changed3 self=%lx origin=%lx\n",(long)self,(long)origin); *************** *** 206,215 **** }
! void queue_put (t_queue *self, void *stuff) { #ifdef DEBUG_QUEUE char *buf; int bufn; t_binbuf *b = ((t_text *)stuff)->te_binbuf; if (b) {char *buf; int bufn; binbuf_gettext(b,&buf,&bufn); printf("queue_put [%.*s]\n",bufn,buf);} ! else {printf("queue_put (%s)\n",(*(t_pd*)stuff)->c_name->s_name);} #endif if (self->len==QUEUE_SIZE) {bug("queue full"); return;} --- 196,205 ---- }
! void queue_put (t_queue *self, t_pd *stuff) { #ifdef DEBUG_QUEUE char *buf; int bufn; t_binbuf *b = ((t_text *)stuff)->te_binbuf; if (b) {char *buf; int bufn; binbuf_gettext(b,&buf,&bufn); printf("queue_put [%.*s]\n",bufn,buf);} ! else {printf("queue_put (%s)\n",stuff->_class->c_name->s_name);} #endif if (self->len==QUEUE_SIZE) {bug("queue full"); return;} *************** *** 347,351 **** canvas_list = x; if (x->havewindow || x->willvis) { ! gobj_subscribe((t_gobj *)x,(t_gobj *)manager); gobj_changed(x,0); } --- 337,341 ---- canvas_list = x; if (x->havewindow || x->willvis) { ! gobj_subscribe(x,manager); gobj_changed(x,0); } *************** *** 489,493 **** x->ylabel = (t_symbol **)getbytes(0); if (hack) { /* only manage this canvas if it's not one of the 3 invisible builtin canvases */ ! gobj_subscribe((t_gobj *)x,(t_gobj *)manager); gobj_changed(x,0); } --- 479,483 ---- x->ylabel = (t_symbol **)getbytes(0); if (hack) { /* only manage this canvas if it's not one of the 3 invisible builtin canvases */ ! gobj_subscribe(x,manager); gobj_changed(x,0); } *************** *** 552,556 **** x->connectbuf = binbuf_new(); sprintf(buf, ".x%lx", (long)x); ! x->guiconnect = guiconnect_new((t_pd *)x, gensym(buf)); return x; } --- 542,546 ---- x->connectbuf = binbuf_new(); sprintf(buf, ".x%lx", (long)x); ! x->guiconnect = guiconnect_new(x,gensym(buf)); return x; } *************** *** 680,686 **** if (x->isgraph && x->goprect) canvas_drawredrect(x, 1); /*perdu*/ } ! if (f==0 && canvas_isvisible(x)) { ! gobj_unsubscribe((t_gobj *)x,(t_gobj *)manager); ! } x->mapped = (unsigned)f; } --- 670,674 ---- if (x->isgraph && x->goprect) canvas_drawredrect(x, 1); /*perdu*/ } ! if (f==0 && canvas_isvisible(x)) gobj_unsubscribe(x,manager); x->mapped = (unsigned)f; } *************** *** 812,819 **** static void canvas_loadbangabstractions(t_canvas *x) { canvas_each(y,x) if (y->_class == canvas_class) { ! if (canvas_isabstraction((t_canvas *)y)) ! canvas_loadbang((t_canvas *)y); ! else ! canvas_loadbangabstractions((t_canvas *)y); } } --- 800,805 ---- static void canvas_loadbangabstractions(t_canvas *x) { canvas_each(y,x) if (y->_class == canvas_class) { ! t_canvas *z = (t_canvas *)y; ! if (canvas_isabstraction(z)) canvas_loadbang(z); else canvas_loadbangabstractions(z); } } *************** *** 821,826 **** void canvas_loadbangsubpatches(t_canvas *x) { t_symbol *s = gensym("loadbang"); ! canvas_each(y,x) if (y->_class == canvas_class) ! if (!canvas_isabstraction((t_canvas *)y)) canvas_loadbangsubpatches((t_canvas *)y); canvas_each(y,x) if ((y->_class != canvas_class) && zgetfn(y,s)) pd_vmess(y,s,""); } --- 807,814 ---- void canvas_loadbangsubpatches(t_canvas *x) { t_symbol *s = gensym("loadbang"); ! canvas_each(y,x) if (y->_class == canvas_class) { ! t_canvas *z = (t_canvas *)y; ! if (!canvas_isabstraction(z)) canvas_loadbangsubpatches(z); ! } canvas_each(y,x) if ((y->_class != canvas_class) && zgetfn(y,s)) pd_vmess(y,s,""); } *************** *** 831,839 **** }
! /* When you ask a canvas its size the result is 2 pixels more than what ! you gave it to open it; perhaps there's a 1-pixel border all around it ! or something. Anyway, we just add the 2 pixels back here; seems we ! have to do this for linux but not MSW; not sure about MacOS. */ ! #ifdef MSW #define HORIZBORDER 0 --- 819,826 ---- }
! /* When you ask a canvas its size the result is 2 pixels more than what ! you gave it to open it; perhaps there's a 1-pixel border all around it ! or something. Anyway, we just add the 2 pixels back here; seems we ! have to do this for linux but not MSW; not sure about MacOS. */ #ifdef MSW #define HORIZBORDER 0 *************** *** 855,859 **** /* called by m_class.c */ extern "C" void canvas_popabstraction(t_canvas *x) { ! newest = (t_pd *)x; pd_popsym(x); x->loading = 0; --- 842,846 ---- /* called by m_class.c */ extern "C" void canvas_popabstraction(t_canvas *x) { ! newest = x; pd_popsym(x); x->loading = 0; *************** *** 1153,1157 **** }
! /* recursively check for abstractions to reload as result of a save. Don't reload the one we just saved ("except") though. */ /* LATER try to do the same trick for externs. */ --- 1140,1144 ---- }
! /* recursively check for abstractions to reload as result of a save. Don't reload the one we just saved ("except") though. */ /* LATER try to do the same trick for externs. */ *************** *** 1159,1178 **** int i=0, nobj = canvas_getindex(gl, 0); /* number of objects */ for (t_gobj *g = gl->list; g && i < nobj; i++) { ! if (g != except && g->_class == canvas_class && canvas_isabstraction((t_canvas *)g) && ! ((t_canvas *)g)->name == name && canvas_getdir((t_canvas *)g) == dir) ! { ! /* we're going to remake the object, so "g" will go stale. Get its index here, ! and afterward restore g. Also, the replacement will be at the end of the list, ! so we don't do g = g->g_next in this case. */ ! int j = canvas_getindex(gl, g); ! int hadwindow = gl->havewindow; ! if (!hadwindow) canvas_vis(canvas_getcanvas(gl), 1); ! g = canvas_nth(gl, j); ! if (!hadwindow) canvas_vis(canvas_getcanvas(gl), 0); ! } else { ! if (g != except && g->_class == canvas_class) ! canvas_doreload((t_canvas *)g, name, dir, except); ! g = g->g_next; ! } } } --- 1146,1165 ---- int i=0, nobj = canvas_getindex(gl, 0); /* number of objects */ for (t_gobj *g = gl->list; g && i < nobj; i++) { ! if (g != except && g->_class == canvas_class) { ! t_canvas *c = (t_canvas *)g; ! if (canvas_isabstraction(c) && c->name==name && canvas_getdir(c) == dir) { ! /* we're going to remake the object, so "g" will go stale. Get its index here, ! and afterward restore g. Also, the replacement will be at the end of the list, ! so we don't do g = g->g_next in this case. */ ! int j = canvas_getindex(gl, g); ! int hadwindow = gl->havewindow; ! if (!hadwindow) canvas_vis(canvas_getcanvas(gl), 1); ! g = canvas_nth(gl, j); ! if (!hadwindow) canvas_vis(canvas_getcanvas(gl), 0); ! continue; ! } ! canvas_doreload(c,name,dir,except); ! } ! g = g->g_next; } } *************** *** 1272,1276 **** canvas_find_index1 = myindex1; canvas_find_index2 = myindex2; ! vmess((t_pd *)x, gensym("menu-open"), ""); return 1; } --- 1259,1263 ---- canvas_find_index1 = myindex1; canvas_find_index2 = myindex2; ! vmess(x,gensym("menu-open"),""); return 1; } *************** *** 1325,1329 **** static int canvas_dofinderror(t_canvas *gl, void *error_object) { canvas_each(g,gl) { ! if ((void *)g == error_object) { /* got it... now show it. */ canvas_vis(canvas_getcanvas(gl), 1); --- 1312,1316 ---- static int canvas_dofinderror(t_canvas *gl, void *error_object) { canvas_each(g,gl) { ! if (g==error_object) { /* got it... now show it. */ canvas_vis(canvas_getcanvas(gl), 1); *************** *** 1397,1401 **** gobj_changed(x,0); if (!(oc = obj_connect(from,outlet,to,inlet))) goto bad; ! newest = (t_pd *)oc; return; bad: --- 1384,1388 ---- gobj_changed(x,0); if (!(oc = obj_connect(from,outlet,to,inlet))) goto bad; ! newest = oc; return; bad: *************** *** 1463,1467 **** t_array *a2 = array; while (STUB(a2)->gs_which == GP_ARRAY) a2 = STUB(a2)->gs_un.gs_array; ! array_resize(array, n); gobj_changed(array,0); } --- 1450,1454 ---- t_array *a2 = array; while (STUB(a2)->gs_which == GP_ARRAY) a2 = STUB(a2)->gs_un.gs_array; ! array_resize(array,n); gobj_changed(array,0); } *************** *** 1583,1587 **** t_canvas *gl = x->canvas; if (gl->list == x && !x->g_next) { ! vmess((t_pd *)gl, gensym("bounds"), "ffff", 0., gl->y1, (double)(style == PLOTSTYLE_POINTS || n == 1 ? n : n-1), gl->y2); /* close any dialogs that might have the wrong info now... */ --- 1570,1574 ---- t_canvas *gl = x->canvas; if (gl->list == x && !x->g_next) { ! vmess(gl,gensym("bounds"),"ffff",0.,gl->y1, (double)(style == PLOTSTYLE_POINTS || n == 1 ? n : n-1), gl->y2); /* close any dialogs that might have the wrong info now... */ *************** *** 1708,1712 **** x->listviewing = 1; sprintf(cmdbuf, "pdtk_array_listview_new %%s %s %d\n", x->realname->s_name, 0); ! gfxstub_new((t_pd *)x, x, cmdbuf); for (int i=0; i < ARRAYPAGESIZE && i < a->n; i++) { yval = *(float *)(a->vec + elemsize*i + yonset); --- 1695,1699 ---- x->listviewing = 1; sprintf(cmdbuf, "pdtk_array_listview_new %%s %s %d\n", x->realname->s_name, 0); ! gfxstub_new(x,x,cmdbuf); for (int i=0; i < ARRAYPAGESIZE && i < a->n; i++) { yval = *(float *)(a->vec + elemsize*i + yonset); *************** *** 2130,2142 ****
static void garray_bounds(t_garray *x, t_floatarg x1, t_floatarg y1, t_floatarg x2, t_floatarg y2) ! {vmess((t_pd *)x->canvas, gensym("bounds"), "ffff", x1, y1, x2, y2);} static void garray_xticks(t_garray *x, t_floatarg point, t_floatarg inc, t_floatarg f) ! {vmess((t_pd *)x->canvas, gensym("xticks"), "fff", point, inc, f);} static void garray_yticks(t_garray *x, t_floatarg point, t_floatarg inc, t_floatarg f) ! {vmess((t_pd *)x->canvas, gensym("yticks"), "fff", point, inc, f);} static void garray_xlabel(t_garray *x, t_symbol *s, int argc, t_atom *argv) ! {typedmess((t_pd *)x->canvas, s, argc, argv);} static void garray_ylabel(t_garray *x, t_symbol *s, int argc, t_atom *argv) ! {typedmess((t_pd *)x->canvas, s, argc, argv);}
static void garray_rename(t_garray *x, t_symbol *s) { --- 2117,2129 ----
static void garray_bounds(t_garray *x, t_floatarg x1, t_floatarg y1, t_floatarg x2, t_floatarg y2) ! {vmess(x->canvas, gensym("bounds"), "ffff", x1, y1, x2, y2);} static void garray_xticks(t_garray *x, t_floatarg point, t_floatarg inc, t_floatarg f) ! {vmess(x->canvas, gensym("xticks"), "fff", point, inc, f);} static void garray_yticks(t_garray *x, t_floatarg point, t_floatarg inc, t_floatarg f) ! {vmess(x->canvas, gensym("yticks"), "fff", point, inc, f);} static void garray_xlabel(t_garray *x, t_symbol *s, int argc, t_atom *argv) ! {typedmess(x->canvas, s, argc, argv);} static void garray_ylabel(t_garray *x, t_symbol *s, int argc, t_atom *argv) ! {typedmess(x->canvas, s, argc, argv);}
static void garray_rename(t_garray *x, t_symbol *s) { *************** *** 2265,2269 **** #endif
! gobj_subscribe(y,(t_gobj *)x);
/* delay first uploading of object (DesireData <= 2006.08.19) */ --- 2252,2256 ---- #endif
! gobj_subscribe(y,x);
/* delay first uploading of object (DesireData <= 2006.08.19) */ *************** *** 3170,3174 **** int to = canvas_getindex(x,t.to); binbuf_addv(b, "ssiiii;", gensym("#X"), gensym("connect"), from, t.outlet, to, t.inlet); ! appendix_save((t_gobj *)oc,b); } canvas_savecoordsto(x,b); --- 3157,3161 ---- int to = canvas_getindex(x,t.to); binbuf_addv(b, "ssiiii;", gensym("#X"), gensym("connect"), from, t.outlet, to, t.inlet); ! appendix_save(oc,b); } canvas_savecoordsto(x,b); *************** *** 5452,5456 **** } if (argc && argv->a_type == A_SYMBOL) ! pd_typedmess((t_pd *)canvas_getcanvas(canvas), argv->a_w.w_symbol, argc-1, argv+1); else pd_error(x, "send-window: no message?"); } --- 5439,5443 ---- } if (argc && argv->a_type == A_SYMBOL) ! pd_typedmess(canvas_getcanvas(canvas), argv->a_w.w_symbol, argc-1, argv+1); else pd_error(x, "send-window: no message?"); } *************** *** 5577,5582 **** else sp->w.w_float = 0; if (i) { ! if (x->issymbol) symbolinlet_new((t_text *)x, &sp->w.w_symbol); ! else floatinlet_new((t_text *)x, &sp->w.w_float); } } --- 5564,5569 ---- else sp->w.w_float = 0; if (i) { ! if (x->issymbol) symbolinlet_new(x,&sp->w.w_symbol); ! else floatinlet_new(x, &sp->w.w_float); } } *************** *** 6292,6309 **** void canvas_atom(t_canvas *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->te_width = 5; SETFLOAT(&x->atom, 0);} else {x->te_width = 10; SETSYMBOL(&x->atom, &s_symbol);} ! t->te_type = T_ATOM; x->canvas = 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_getintarg(0, argc, argv); ! t->te_ypix = atom_getintarg(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); canvas_add(gl,x); --- 6279,6295 ---- void canvas_atom(t_canvas *gl, t_atomtype type, t_symbol *s, int argc, t_atom *argv) { t_gatom *x = (t_gatom *)pd_new(gatom_class); if (type == A_FLOAT) {x->te_width = 5; SETFLOAT(&x->atom, 0);} else {x->te_width = 10; SETSYMBOL(&x->atom, &s_symbol);} ! x->te_type = T_ATOM; x->canvas = gl; x->min = x->max = 0; x->wherelabel = 0; x->label = x->rcv = x->snd = x->expanded_to = &s_; ! x->te_binbuf = binbuf_new(); ! binbuf_add(x->te_binbuf, 1, &x->atom); ! x->te_xpix = atom_getintarg(0, argc, argv); ! x->te_ypix = atom_getintarg(1, argc, argv); ! inlet_new(x,x,0,0); ! outlet_new(x, type == A_FLOAT ? &s_float: &s_symbol); if (argc >= 2) gatom_reload(x,&s_,argc-2,argv+2); canvas_add(gl,x); *************** *** 6363,6367 **** vec1[0].a_type == A_SYMBOL && vec1[0].a_w.w_symbol == s_pd && vec2[0].a_type == A_SYMBOL && vec2[0].a_w.w_symbol == s_pd) { ! typedmess((t_pd *)x, gensym("rename"), natom2-1, vec2+1); binbuf_free(x->te_binbuf); x->te_binbuf = b; --- 6349,6353 ---- vec1[0].a_type == A_SYMBOL && vec1[0].a_w.w_symbol == s_pd && vec2[0].a_type == A_SYMBOL && vec2[0].a_w.w_symbol == s_pd) { ! typedmess(x,gensym("rename"),natom2-1,vec2+1); binbuf_free(x->te_binbuf); x->te_binbuf = b; *************** *** 6663,6668 **** }
! static int pd_savehead(t_binbuf *b, t_iemgui *x_, char *name) { ! t_text *x = (t_text *)x_; binbuf_addv(b, "ssiis", gensym("#X"),gensym("obj"), (t_int)x->te_xpix, (t_int)x->te_ypix, gensym(name)); --- 6649,6653 ---- }
! static int pd_savehead(t_binbuf *b, t_iemgui *x, char *name) { binbuf_addv(b, "ssiis", gensym("#X"),gensym("obj"), (t_int)x->te_xpix, (t_int)x->te_ypix, gensym(name)); *************** *** 6770,6774 **** t_iemgui *iemgui_new(t_class *qlass) { t_iemgui *x = (t_iemgui *)pd_new(qlass); ! x->canvas = (t_canvas *)canvas_getcurrent(); x->w = x->h = 15; x->ldx=0; --- 6755,6759 ---- t_iemgui *iemgui_new(t_class *qlass) { t_iemgui *x = (t_iemgui *)pd_new(qlass); ! x->canvas = canvas_getcurrent(); x->w = x->h = 15; x->ldx=0; *************** *** 6783,6787 **** x->fcol = 0x000000; x->lcol = 0x000000; ! pd_bind(x,pd_makebindsym((t_pd *)x)); return x; } --- 6768,6772 ---- x->fcol = 0x000000; x->lcol = 0x000000; ! pd_bind(x,pd_makebindsym(x)); return x; } *************** *** 7464,7469 **** x->peak = x->rms = 0; /* ??? */ x->fp = x->fr = -101.0; ! vu_check_height(x, x->h); ! inlet_new(x, (t_pd *)x, &s_float, gensym("ft1")); vu_reload(x,0,argc,argv); return x; --- 7449,7454 ---- x->peak = x->rms = 0; /* ??? */ x->fp = x->fr = -101.0; ! vu_check_height(x,x->h); ! inlet_new(x,x,&s_float,gensym("ft1")); vu_reload(x,0,argc,argv); return x; *************** *** 7871,7875 **** later. */
! static void *error_object; static char error_string[256]; void canvas_finderror(void *object); --- 7856,7860 ---- later. */
! static t_pd *error_object; static char error_string[256]; void canvas_finderror(void *object); *************** *** 7885,7889 **** strcat(buf, "\n"); dopost(buf); ! error_object = object; if (!saidit) { post("... you might be able to track this down from the Find menu."); --- 7870,7874 ---- strcat(buf, "\n"); dopost(buf); ! error_object = (t_pd *)object; if (!saidit) { post("... you might be able to track this down from the Find menu.");