Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17743
Modified Files:
Tag: desiredata
desire.c desire.h kernel.c m_class.c
Log Message:
removing c_ prefixes and stuff
Index: m_class.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_class.c,v
retrieving revision 1.3.4.7.2.22.2.14
retrieving revision 1.3.4.7.2.22.2.15
diff -C2 -d -r1.3.4.7.2.22.2.14 -r1.3.4.7.2.22.2.15
*** m_class.c 20 Dec 2006 06:10:06 -0000 1.3.4.7.2.22.2.14
--- m_class.c 27 Dec 2006 00:26:28 -0000 1.3.4.7.2.22.2.15
***************
*** 121,130 ****
va_start(ap, type1);
! while (*vp)
! {
! if (count == MAXPDARG)
! {
! error("class %s: sorry: only %d creation args allowed",
! s->s_name, MAXPDARG);
break;
}
--- 121,127 ----
va_start(ap, type1);
! while (*vp) {
! if (count == MAXPDARG) {
! error("class %s: sorry: only %d creation args allowed", s->s_name, MAXPDARG);
break;
}
***************
*** 136,164 ****
#ifdef QUALIFIED_NAME
! if (pd_library_name){
char namespacename[MAXPDSTRING];
! namespacename[0]='\0';
! strcat(namespacename, pd_library_name);
! strcat(namespacename, QUALIFIED_NAME);
! strcat(namespacename, s->s_name);
s=gensym(namespacename);
}
#endif
! if (pd_objectmaker && newmethod)
! {
! /* add a "new" method by the name specified by the object */
! class_addmethod(pd_objectmaker, (t_method)newmethod, s,
! vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
! if (class_loadsym)
! {
! /* if we're loading an extern it might have been invoked by a
! longer file name; in this case, make this an admissible name
! too. */
char *loadstring = class_loadsym->s_name,
l1 = strlen(s->s_name), l2 = strlen(loadstring);
if (l2 > l1 && !strcmp(s->s_name, loadstring + (l2 - l1)))
! class_addmethod(pd_objectmaker, (t_method)newmethod,
! class_loadsym,
vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
}
--- 133,153 ----
#ifdef QUALIFIED_NAME
! if (pd_library_name) {
char namespacename[MAXPDSTRING];
! sprintf(namespacename, "%s%s%s", pd_library_name, QUALIFIED_NAME, s->s_name);
s=gensym(namespacename);
}
#endif
! if (pd_objectmaker && newmethod) {
! /* add a "new" method by the name specified by the object */
! class_addmethod(pd_objectmaker, (t_method)newmethod, s, vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
! if (class_loadsym) {
! /* if we're loading an extern it might have been invoked by a
! longer file name; in this case, make this an admissible name too. */
char *loadstring = class_loadsym->s_name,
l1 = strlen(s->s_name), l2 = strlen(loadstring);
if (l2 > l1 && !strcmp(s->s_name, loadstring + (l2 - l1)))
! class_addmethod(pd_objectmaker, (t_method)newmethod, class_loadsym,
vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
}
***************
*** 177,183 ****
c->c_anymethod = pd_defaultanything;
c->c_firstin = ((flags & CLASS_NOINLET) == 0);
! c->c_firsttip = gensym("?");
! c->c_fields = (t_symbol **)malloc(sizeof(t_symbol *)*31);
! c->c_nfields = 0;
c->c_patchable = (typeflag == CLASS_PATCHABLE);
c->c_gobj = (typeflag >= CLASS_GOBJ);
--- 166,172 ----
c->c_anymethod = pd_defaultanything;
c->c_firstin = ((flags & CLASS_NOINLET) == 0);
! c->firsttip = gensym("?");
! c->fields = (t_symbol **)malloc(sizeof(t_symbol *)*31);
! c->nfields = 0;
c->c_patchable = (typeflag == CLASS_PATCHABLE);
c->c_gobj = (typeflag >= CLASS_GOBJ);
***************
*** 190,208 ****
c->c_helpname = S;
// like a class_addcreator
! if (pd_library_name&&newmethod){
! class_addmethod(pd_objectmaker, (t_method)newmethod, S,
! vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
}
#endif
-
hash_set(class_table, c->c_name, c);
return c;
}
! /* add a creation method, which is a function that returns a Pd object
! suitable for putting in an object box. We presume you've got a class it
! can belong to, but this won't be used until the newmethod is actually
! called back (and the new method explicitly takes care of this.) */
!
void class_addcreator(t_newmethod newmethod, t_symbol *s, t_atomtype type1, ...) {
va_list ap;
--- 179,194 ----
c->c_helpname = S;
// like a class_addcreator
! if (pd_library_name&&newmethod) {
! class_addmethod(pd_objectmaker, (t_method)newmethod, S, vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
}
#endif
hash_set(class_table, c->c_name, c);
return c;
}
! /* add a creation method, which is a function that returns a Pd object
! suitable for putting in an object box. We presume you've got a class it
! can belong to, but this won't be used until the newmethod is actually
! called back (and the new method explicitly takes care of this.) */
void class_addcreator(t_newmethod newmethod, t_symbol *s, t_atomtype type1, ...) {
va_list ap;
***************
*** 221,238 ****
}
va_end(ap);
! class_addmethod(pd_objectmaker, (t_method)newmethod, s,
! vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
#ifdef QUALIFIED_NAME
! if (pd_library_name){
char namespacename[MAXPDSTRING];
! namespacename[0]='\0';
! strcat(namespacename, pd_library_name);
! strcat(namespacename, QUALIFIED_NAME);
! strcat(namespacename, s->s_name);
s=gensym(namespacename);
}
! class_addmethod(pd_objectmaker, (t_method)newmethod, s,
! vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
#endif
hash_set(class_table,s,0);
--- 207,219 ----
}
va_end(ap);
! class_addmethod(pd_objectmaker, (t_method)newmethod, s, vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
#ifdef QUALIFIED_NAME
! if (pd_library_name) {
char namespacename[MAXPDSTRING];
! sprintf(namespacename, "%s%s%s", pd_library_name, QUALIFIED_NAME, s->s_name);
s=gensym(namespacename);
}
! class_addmethod(pd_objectmaker, (t_method)newmethod, s, vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]);
#endif
hash_set(class_table,s,0);
***************
*** 327,331 ****
void class_setdrawcommand(t_class *c) {c->c_drawcommand = 1;}
int class_isdrawcommand( t_class *c) {return c->c_drawcommand;}
! void class_setnotice(t_class *c, t_notice notice) {c->c_notice = notice;}
static void pd_floatforsignal(t_pd *x, t_float f)
--- 308,312 ----
void class_setdrawcommand(t_class *c) {c->c_drawcommand = 1;}
int class_isdrawcommand( t_class *c) {return c->c_drawcommand;}
! void class_setnotice(t_class *c, t_notice notice) {c->notice = notice;}
static void pd_floatforsignal(t_pd *x, t_float f)
***************
*** 460,488 ****
/* replace everything but [a-zA-Z0-9_] by "0x%x" */
! static char*alternative_classname(char*classname)
! {
char *altname=(char*)getbytes(sizeof(char)*MAXPDSTRING);
int count=0;
int i=0;
! for(i=0; i<MAXPDSTRING; i++)
! altname[i]=0;
i=0;
! while(*classname)
! {
char c=*classname;
! if((c>=48 && c<=57)|| /* [0-9] */
! (c>=65 && c<=90)|| /* [A-Z] */
! (c>=97 && c<=122)||/* [a-z] */
! (c==95)) /* [_] */
! {
altname[i]=c;
i++;
! }
! else /* a "bad" character */
! {
sprintf(altname+i, "0x%02x", c);
i+=4;
count++;
! }
classname++;
}
--- 441,460 ----
/* replace everything but [a-zA-Z0-9_] by "0x%x" */
! static char *alternative_classname(char*classname) {
char *altname=(char*)getbytes(sizeof(char)*MAXPDSTRING);
int count=0;
int i=0;
! for(i=0; i<MAXPDSTRING; i++) altname[i]=0;
i=0;
! while(*classname) {
char c=*classname;
! if((c>=48 && c<=57) || (c>=65 && c<=90) || (c>=97 && c<=122) || c==95) {
altname[i]=c;
i++;
! } else {
sprintf(altname+i, "0x%02x", c);
i+=4;
count++;
! }
classname++;
}
***************
*** 577,583 ****
#undef REST
! void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv)
! {
! t_method *f;
t_class *c = *x;
t_methodentry *m;
--- 549,553 ----
#undef REST
! void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) {
t_class *c = *x;
t_methodentry *m;
***************
*** 738,742 ****
}
! void class_settip(t_class *x,t_symbol* s) {x->c_firsttip = s;}
/* ---------------------------------------------------------------- */
--- 708,712 ----
}
! void class_settip(t_class *x,t_symbol* s) {x->firsttip = s;}
/* ---------------------------------------------------------------- */
***************
*** 752,756 ****
memcpy(foo,s,i);
foo[i]=0;
! x->c_fields[x->c_nfields++] = gensym(foo);
s=s+i+1;
}
--- 722,726 ----
memcpy(foo,s,i);
foo[i]=0;
! x->fields[x->nfields++] = gensym(foo);
s=s+i+1;
}
***************
*** 760,764 ****
t_symbol *sy = gensym((char *)s);
int i;
! for (i=0; i<x->c_nfields; i++) if (x->c_fields[i]==sy) return i;
return -1;
}
--- 730,734 ----
t_symbol *sy = gensym((char *)s);
int i;
! for (i=0; i<x->nfields; i++) if (x->fields[i]==sy) return i;
return -1;
}
***************
*** 782,786 ****
"gobj \"%d\" patchable \"%d\" firstin \"%d\" "
"firsttip \"%s\" methods {",s->s_name,c->c_helpname->s_name,c->c_externdir->s_name,
! c->c_size,c->c_gobj,c->c_patchable,c->c_firstin,c->c_firsttip->s_name);
if (c-> c_bangmethod != pd_defaultbang) sys_vgui("<bang> ");
if (c->c_pointermethod != pd_defaultpointer) sys_vgui("<pointer> ");
--- 752,756 ----
"gobj \"%d\" patchable \"%d\" firstin \"%d\" "
"firsttip \"%s\" methods {",s->s_name,c->c_helpname->s_name,c->c_externdir->s_name,
! c->c_size,c->c_gobj,c->c_patchable,c->c_firstin,c->firsttip->s_name);
if (c-> c_bangmethod != pd_defaultbang) sys_vgui("<bang> ");
if (c->c_pointermethod != pd_defaultpointer) sys_vgui("<pointer> ");
Index: kernel.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/kernel.c,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -C2 -d -r1.1.2.6 -r1.1.2.7
*** kernel.c 20 Dec 2006 13:29:52 -0000 1.1.2.6
--- kernel.c 27 Dec 2006 00:26:28 -0000 1.1.2.7
***************
*** 330,335 ****
typedef struct _bindelem {
! t_pd *e_who;
! struct _bindelem *e_next;
} t_bindelem;
--- 330,335 ----
typedef struct _bindelem {
! t_pd *who;
! struct _bindelem *next;
} t_bindelem;
***************
*** 339,359 ****
} t_bindlist;
! #define bind_each(e,x) for (e = x->b_list; e; e = e->e_next)
static void bindlist_bang(t_bindlist *x) {
! t_bindelem *e; bind_each(e,x) pd_bang(e->e_who);}
static void bindlist_float(t_bindlist *x, t_float f) {
! t_bindelem *e; bind_each(e,x) pd_float(e->e_who, f);}
static void bindlist_symbol(t_bindlist *x, t_symbol *s) {
! t_bindelem *e; bind_each(e,x) pd_symbol(e->e_who, s);}
static void bindlist_pointer(t_bindlist *x, t_gpointer *gp) {
! t_bindelem *e; bind_each(e,x) pd_pointer(e->e_who, gp);}
static void bindlist_list(t_bindlist *x, t_symbol *s, int argc, t_atom *argv) {
! t_bindelem *e; bind_each(e,x) pd_list(e->e_who, s, argc, argv);}
static void bindlist_anything(t_bindlist *x, t_symbol *s, int argc, t_atom *argv) {
! t_bindelem *e; bind_each(e,x) pd_typedmess(e->e_who, s, argc, argv);}
void m_pd_setup(void) {
! bindlist_class = class_new(gensym("bindlist"), 0, 0,
! sizeof(t_bindlist), CLASS_PD, 0);
class_addbang(bindlist_class, bindlist_bang);
class_addfloat(bindlist_class, (t_method)bindlist_float);
--- 339,358 ----
} t_bindlist;
! #define bind_each(e,x) for (e = x->b_list; e; e = e->next)
static void bindlist_bang(t_bindlist *x) {
! t_bindelem *e; bind_each(e,x) pd_bang(e->who);}
static void bindlist_float(t_bindlist *x, t_float f) {
! t_bindelem *e; bind_each(e,x) pd_float(e->who, f);}
static void bindlist_symbol(t_bindlist *x, t_symbol *s) {
! t_bindelem *e; bind_each(e,x) pd_symbol(e->who, s);}
static void bindlist_pointer(t_bindlist *x, t_gpointer *gp) {
! t_bindelem *e; bind_each(e,x) pd_pointer(e->who, gp);}
static void bindlist_list(t_bindlist *x, t_symbol *s, int argc, t_atom *argv) {
! t_bindelem *e; bind_each(e,x) pd_list(e->who, s, argc, argv);}
static void bindlist_anything(t_bindlist *x, t_symbol *s, int argc, t_atom *argv) {
! t_bindelem *e; bind_each(e,x) pd_typedmess(e->who, s, argc, argv);}
void m_pd_setup(void) {
! bindlist_class = class_new(gensym("bindlist"), 0, 0, sizeof(t_bindlist), CLASS_PD, 0);
class_addbang(bindlist_class, bindlist_bang);
class_addfloat(bindlist_class, (t_method)bindlist_float);
***************
*** 364,384 ****
}
void pd_bind(t_pd *x, t_symbol *s) {
if (s->s_thing) {
if (*s->s_thing == bindlist_class) {
t_bindlist *b = (t_bindlist *)s->s_thing;
! t_bindelem *e = (t_bindelem *)getbytes(sizeof(t_bindelem));
! e->e_next = b->b_list;
! e->e_who = x;
! b->b_list = e;
} else {
t_bindlist *b = (t_bindlist *)pd_new(bindlist_class);
! t_bindelem *e1 = (t_bindelem *)getbytes(sizeof(t_bindelem));
! t_bindelem *e2 = (t_bindelem *)getbytes(sizeof(t_bindelem));
! b->b_list = e1;
! e1->e_who = x;
! e1->e_next = e2;
! e2->e_who = s->s_thing;
! e2->e_next = 0;
s->s_thing = &b->b_pd;
}
--- 363,381 ----
}
+ static t_bindelem *bindelem_new(t_pd *who, t_bindelem *next) {
+ t_bindelem *self = (t_bindelem *)getbytes(sizeof(t_bindelem));
+ self->who = who;
+ self->next = next;
+ return self;
+ }
+
void pd_bind(t_pd *x, t_symbol *s) {
if (s->s_thing) {
if (*s->s_thing == bindlist_class) {
t_bindlist *b = (t_bindlist *)s->s_thing;
! b->b_list = bindelem_new(x,b->b_list);
} else {
t_bindlist *b = (t_bindlist *)pd_new(bindlist_class);
! b->b_list = bindelem_new(x,bindelem_new(s->s_thing,0));
s->s_thing = &b->b_pd;
}
***************
*** 394,407 ****
t_bindlist *b = (t_bindlist *)s->s_thing;
t_bindelem *e, *e2;
! if ((e = b->b_list)->e_who == x) {
! b->b_list = e->e_next;
freebytes(e, sizeof(t_bindelem));
! } else for (e = b->b_list; (e2=e->e_next); e = e2) if (e2->e_who == x) {
! e->e_next = e2->e_next;
freebytes(e2, sizeof(t_bindelem));
break;
}
! if (!b->b_list->e_next) {
! s->s_thing = b->b_list->e_who;
freebytes(b->b_list, sizeof(t_bindelem));
pd_free(&b->b_pd);
--- 391,404 ----
t_bindlist *b = (t_bindlist *)s->s_thing;
t_bindelem *e, *e2;
! if ((e = b->b_list)->who == x) {
! b->b_list = e->next;
freebytes(e, sizeof(t_bindelem));
! } else for (e = b->b_list; (e2=e->next); e = e2) if (e2->who == x) {
! e->next = e2->next;
freebytes(e2, sizeof(t_bindelem));
break;
}
! if (!b->b_list->next) {
! s->s_thing = b->b_list->who;
freebytes(b->b_list, sizeof(t_bindelem));
pd_free(&b->b_pd);
***************
*** 410,415 ****
}
- void zz(void) {}
-
t_pd *pd_findbyclass(t_symbol *s, t_class *c) {
t_pd *x = 0;
--- 407,410 ----
***************
*** 420,430 ****
t_bindelem *e;
int warned = 0;
! for (e = b->b_list; e; e = e->e_next) if (*e->e_who == c) {
! if (x && !warned) {
! zz();
! post("warning: %s: multiply defined", s->s_name);
! warned = 1;
! }
! x = e->e_who;
}
}
--- 415,421 ----
t_bindelem *e;
int warned = 0;
! for (e = b->b_list; e; e = e->next) if (*e->who == c) {
! if (x && !warned) {post("warning: %s: multiply defined", s->s_name); warned = 1;}
! x = e->who;
}
}
***************
*** 782,809 ****
static void outlet_stackerror(t_outlet *x) {pd_error(x->o_owner, "stack overflow");}
void outlet_bang(t_outlet *x) {ENTER{
t_outconnect *oc;
! for (oc = x->o_connections; oc; oc = oc->next) pd_bang(oc->oc_to);
}LEAVE}
void outlet_pointer(t_outlet *x, t_gpointer *gp) {ENTER{
t_outconnect *oc;
t_gpointer gpointer = *gp;
! for (oc = x->o_connections; oc; oc = oc->next) pd_pointer(oc->oc_to, &gpointer);
}LEAVE}
void outlet_float(t_outlet *x, t_float f) {ENTER{
t_outconnect *oc;
! for (oc = x->o_connections; oc; oc = oc->next) pd_float(oc->oc_to, f);
}LEAVE}
void outlet_symbol(t_outlet *x, t_symbol *s) {ENTER{
t_outconnect *oc;
! for (oc = x->o_connections; oc; oc = oc->next) pd_symbol(oc->oc_to, s);
}LEAVE}
void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv) {ENTER{
t_outconnect *oc;
! for (oc = x->o_connections; oc; oc = oc->next) pd_list(oc->oc_to, s, argc, argv);
}LEAVE}
void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv) {ENTER{
t_outconnect *oc;
! for (oc = x->o_connections; oc; oc = oc->next) typedmess(oc->oc_to, s, argc, argv);
}LEAVE}
--- 773,801 ----
static void outlet_stackerror(t_outlet *x) {pd_error(x->o_owner, "stack overflow");}
+ #define each_connect(oc,x) for (oc = x->o_connections; oc; oc = oc->next)
void outlet_bang(t_outlet *x) {ENTER{
t_outconnect *oc;
! each_connect(oc,x) pd_bang(oc->oc_to);
}LEAVE}
void outlet_pointer(t_outlet *x, t_gpointer *gp) {ENTER{
t_outconnect *oc;
t_gpointer gpointer = *gp;
! each_connect(oc,x) pd_pointer(oc->oc_to, &gpointer);
}LEAVE}
void outlet_float(t_outlet *x, t_float f) {ENTER{
t_outconnect *oc;
! each_connect(oc,x) pd_float(oc->oc_to, f);
}LEAVE}
void outlet_symbol(t_outlet *x, t_symbol *s) {ENTER{
t_outconnect *oc;
! each_connect(oc,x) pd_symbol(oc->oc_to, s);
}LEAVE}
void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv) {ENTER{
t_outconnect *oc;
! each_connect(oc,x) pd_list(oc->oc_to, s, argc, argv);
}LEAVE}
void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv) {ENTER{
t_outconnect *oc;
! each_connect(oc,x) typedmess(oc->oc_to, s, argc, argv);
}LEAVE}
Index: desire.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v
retrieving revision 1.1.2.49.2.15
retrieving revision 1.1.2.49.2.16
diff -C2 -d -r1.1.2.49.2.15 -r1.1.2.49.2.16
*** desire.h 26 Dec 2006 23:37:20 -0000 1.1.2.49.2.15
--- desire.h 27 Dec 2006 00:26:28 -0000 1.1.2.49.2.16
***************
*** 84,98 ****
t_listmethod c_listmethod;
t_anymethod c_anymethod;
! t_savefn c_savefn; /* function to call when saving */
! int c_floatsignalin; /* onset to float for signal input */
! unsigned c_gobj:1; /* true if is a gobj */
! unsigned c_patchable:1; /* true if we have a t_object header */
! unsigned c_firstin:1; /* if patchable, true if draw first inlet */
! unsigned c_drawcommand:1; /* a drawing command for a template */
! unsigned c_newatoms:1; /* can handle refcounting of atoms (future use) */
! t_symbol *c_firsttip;
! t_symbol **c_fields; /* names of fields aka attributes, and I don't mean the #V attributes. */
! int c_nfields; /* ... and how many of them */
! t_notice c_notice; /* observer method */
};
--- 84,99 ----
t_listmethod c_listmethod;
t_anymethod c_anymethod;
! t_savefn c_savefn; /* function to call when saving */
! int c_floatsignalin; /* onset to float for signal input */
! unsigned c_gobj:1; /* true if is a gobj */
! unsigned c_patchable:1; /* true if we have a t_object header */
! unsigned c_firstin:1; /* if patchable, true if draw first inlet */
! unsigned c_drawcommand:1; /* a drawing command for a template */
! unsigned newatoms:1; /* can handle refcounting of atoms (future use) */
! unsigned use_stringmethod:1; /* the symbolmethod slot holds a stringmethod instead */
! t_symbol *firsttip;
! t_symbol **fields; /* names of fields aka attributes, and I don't mean the #V attributes. */
! int nfields; /* ... and how many of them */
! t_notice notice; /* observer method */
};
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.217.2.92
retrieving revision 1.1.2.217.2.93
diff -C2 -d -r1.1.2.217.2.92 -r1.1.2.217.2.93
*** desire.c 26 Dec 2006 23:37:18 -0000 1.1.2.217.2.92
--- desire.c 27 Dec 2006 00:26:26 -0000 1.1.2.217.2.93
***************
*** 190,194 ****
for (int i=0; i<d->nobs; i++) {
t_gobj *obs = d->obs[i];
! t_notice ice = obs->_class->c_notice;
if (ice) ice(obs,origin,argc,argv);
else post("null func ptr for class %s",self->_class->c_name->s_name);
--- 190,194 ----
for (int i=0; i<d->nobs; i++) {
t_gobj *obs = d->obs[i];
! t_notice ice = obs->_class->notice;
if (ice) ice(obs,origin,argc,argv);
else post("null func ptr for class %s",self->_class->c_name->s_name);
***************
*** 3078,3085 ****
default: type = &s_float; bug("canvas_write");
}
! if (t->vec[j].type == DT_ARRAY)
! binbuf_addv(b, "sss", type, t->vec[j].name,
! gensym(t->vec[j].arraytemplate->s_name + 3));
! else binbuf_addv(b, "ss", type, t->vec[j].name);
}
binbuf_addsemi(b);
--- 3078,3083 ----
default: type = &s_float; bug("canvas_write");
}
! binbuf_addv(b, "ss", type, t->vec[j].name);
! if (t->vec[j].type == DT_ARRAY) binbuf_addv(b, "s", gensym(t->vec[j].arraytemplate->s_name + 3));
}
binbuf_addsemi(b);
***************
*** 3112,3133 ****
/* graphical inlets and outlets, both for control and signals. */
!
! /* This code is highly inefficient; messages actually have to be forwarded
! by inlets and outlets. The outlet is in even worse shape than the inlet;
! in order to avoid having a "signal" method in the class, the oulet actually
! sprouts an inlet, which forwards the message to the "outlet" object, which
! sends it on to the outlet proper. Another way to do it would be to have
! separate classes for "signal" and "control" outlets, but this would complicate
! life elsewhere. */
!
!
! /* hacked to run subpatches with different samplerates
! *
! * mfg.gfd.uil
! * IOhannes
! *
! * edited lines are marked with "IOhannes"
! *
! */
extern "C" void signal_setborrowed(t_signal *sig, t_signal *sig2);
--- 3110,3114 ----
/* graphical inlets and outlets, both for control and signals. */
! /* iohannes added multiple samplerates support in vinlet/voutlet */
extern "C" void signal_setborrowed(t_signal *sig, t_signal *sig2);
***************
*** 6215,6219 ****
t_text *o = symbol2opointer(name); if (!o) return;
char foo[666];
! if (o->ob_pd->c_firstin) strcpy(foo,o->ob_pd->c_firsttip->s_name); else strcpy(foo,"");
int n = obj_ninlets(x);
char *foop = foo;
--- 6196,6200 ----
t_text *o = symbol2opointer(name); if (!o) return;
char foo[666];
! if (o->ob_pd->c_firstin) strcpy(foo,o->ob_pd->firsttip->s_name); else strcpy(foo,"");
int n = obj_ninlets(x);
char *foop = foo;