[PD-cvs] pd/src desire.c, 1.1.2.217.2.92, 1.1.2.217.2.93 desire.h, 1.1.2.49.2.15, 1.1.2.49.2.16 kernel.c, 1.1.2.6, 1.1.2.7 m_class.c, 1.3.4.7.2.22.2.14, 1.3.4.7.2.22.2.15

Mathieu Bouchard matju at users.sourceforge.net
Wed Dec 27 01:26:30 CET 2006


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;





More information about the Pd-cvs mailing list