[PD-cvs] externals/miXed/toxy build_counter, 1.16, 1.17 notes.txt, 1.4, 1.5 plustot.c, 1.5, 1.6 plustot.env.c, 1.3, 1.4 plustot.h, 1.3, 1.4 plustot.in.c, 1.2, 1.3 plustot.out.c, 1.2, 1.3 plustot.print.c, 1.3, 1.4 plustot.qlist.c, 1.4, 1.5 plustot.var.c, 1.2, 1.3 pluswidget.c, 1.1, 1.2

Krzysztof Czaja krzyszcz at users.sourceforge.net
Mon Jun 13 22:41:54 CEST 2005


Update of /cvsroot/pure-data/externals/miXed/toxy
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21923/toxy

Modified Files:
	build_counter notes.txt plustot.c plustot.env.c plustot.h 
	plustot.in.c plustot.out.c plustot.print.c plustot.qlist.c 
	plustot.var.c pluswidget.c 
Log Message:
toxy alpha19 and pddp alpha3 (see notes.txt for toxy and pddp)

Index: plustot.qlist.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.qlist.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** plustot.qlist.c	30 May 2005 09:29:26 -0000	1.4
--- plustot.qlist.c	13 Jun 2005 20:41:52 -0000	1.5
***************
*** 181,185 ****
  	(tob = plustob_new(tin, 0)))
      {
! 	x = (t_plustot_qlist *)plusobject_new(plustot_qlist_class, s, ac, av);
  	plusbob_preserve((t_plusbob *)tob);
  	plusbob_setowner((t_plusbob *)tob, (t_pd *)x);
--- 181,186 ----
  	(tob = plustob_new(tin, 0)))
      {
! 	x = (t_plustot_qlist *)
! 	    plusobject_new(plustot_qlist_class, s, ac, av, 0);
  	plusbob_preserve((t_plusbob *)tob);
  	plusbob_setowner((t_plusbob *)tob, (t_pd *)x);

Index: notes.txt
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/notes.txt,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** notes.txt	30 May 2005 09:29:26 -0000	1.4
--- notes.txt	13 Jun 2005 20:41:52 -0000	1.5
***************
*** 11,18 ****
      . do not evaluate if fresh, unless explicitly forced to (are side-effects
        to be modal, requested with a flag, or triggered with a message?)
!     . creation time evaluation
  
  DONE for toxy
  
  alpha18
    * plustot:
--- 11,56 ----
      . do not evaluate if fresh, unless explicitly forced to (are side-effects
        to be modal, requested with a flag, or triggered with a message?)
!     . pull inputs
  
  DONE for toxy
  
+ alpha19
+   * plustot
+     . rules for slot creation:
+       - there is always at least one slot, although it may be deaf
+       - if a command contains a pseudo-scalar, there is exactly one,
+         listening slot
+       - if a command contains pseudo-array elements, there are as many slots
+         as the highest index + 1 (but not more than 256, a sanity limit);
+         listening slots are created for explicitly used elements, all other
+         slots are deaf
+       - mixing pseudo-scalar and pseudo-array forms in a single command
+         is prohibited
+       - if a command does not contain pseudo-variables, there is exactly one,
+         deaf slot
+     . firing rules established for push inputs:
+       - firing (evaluation with output) is executed iff all listening slots
+         have data and a) a hot slot receives input, or b) any slot receives
+         an explicit firing request ('bang' message)
+       - $Hin and $Cin forms of pseudo-variables: each slot may be explicitly
+         declared hot (Hin) or cold (Cin), overriding the default rule (leftmost
+         slot, if listening, is hot, others are cold) observed when the plain
+         form, $in, is used
+       - $Tin form of pseudo-variables, which is a ``pure dataflow'' variant
+         of $Hin: a hot slot, which looses data after evaluation (all other
+         kinds of slots keep data after evaluation, unless explicitly 'cleared')
+       - 'set' message accepted in all inlets as the `cold' input
+       - 'bang' message accepted in all inlets as the firing trigger
+     . evaluation without output:
+       - executed iff all listening slots have data and a) an object has
+         just been created (creation time evaluation), or b) an object
+         received an explicit evaluation request ('eval' message)
+       - creation time evaluation suppresses all error messages, explicit
+         evaluation does not
+     . message 'clear' in any inlet clears its slot of data
+     . message 'clearall' in leftmost inlet clears all listening slots
+     . appearance: converting dot-sequences to valid Tcl for presentation
+     . bug fix: made unclickable in gop
+ 
  alpha18
    * plustot:

Index: pluswidget.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/pluswidget.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** pluswidget.c	30 May 2005 09:29:26 -0000	1.1
--- pluswidget.c	13 Jun 2005 20:41:52 -0000	1.2
***************
*** 21,28 ****
  struct _pluswidget
  {
!     char  *pw_vistext;  /* binbuf_gettext()-style (no null termination) */
!     int    pw_vissize;
!     int    pw_rtextactive;
!     int    pw_ishit;
  };
  
--- 21,29 ----
  struct _pluswidget
  {
!     t_plusstring  *pw_visstring;
!     char          *pw_visbuf;  /* binbuf_gettext()-style: no null termination */
!     int            pw_vissize;
!     int            pw_rtextactive;
!     int            pw_ishit;
  };
  
***************
*** 146,150 ****
  	else
  	    sys_vgui(".x%lx.c itemconfigure %s -text {%.*s} -fill brown\n",
! 		     glist, rtext_gettag(y), pw->pw_vissize, pw->pw_vistext);
      }
  }
--- 147,151 ----
  	else
  	    sys_vgui(".x%lx.c itemconfigure %s -text {%.*s} -fill brown\n",
! 		     glist, rtext_gettag(y), pw->pw_vissize, pw->pw_visbuf);
      }
  }
***************
*** 175,179 ****
              rtext_draw(y);
  	    sys_vgui(".x%lx.c itemconfigure %s -text {%.*s} -fill brown\n",
! 		     glist, rtext_gettag(y), pw->pw_vissize, pw->pw_vistext);
          }
      }
--- 176,180 ----
              rtext_draw(y);
  	    sys_vgui(".x%lx.c itemconfigure %s -text {%.*s} -fill brown\n",
! 		     glist, rtext_gettag(y), pw->pw_vissize, pw->pw_visbuf);
          }
      }
***************
*** 192,198 ****
  			    int shift, int alt, int dbl, int doit)
  {
!     if (doit)
! 	pd_bang((t_pd *)z);
!     return (1);
  }
  
--- 193,203 ----
  			    int shift, int alt, int dbl, int doit)
  {
!     if (glist->gl_havewindow)
!     {
! 	if (doit)
! 	    pd_bang((t_pd *)z);
! 	return (1);
!     }
!     else return (0);
  }
  
***************
*** 215,245 ****
      if (pw)
      {
! 	if (pw->pw_vistext)
! 	    freebytes(pw->pw_vistext, pw->pw_vissize);
  	freebytes(pw, sizeof(*pw));
      }
  }
  
! void plusobject_widgetcreate(t_plusobject *po, t_symbol *s, int ac, t_atom *av)
  {
      t_pluswidget *pw = getbytes(sizeof(*pw));
!     t_binbuf *inbb = binbuf_new();
!     if (!s || s == &s_)
! 	s = plusps_tot;
!     po->po_widget = pw;
!     if ((s != totps_plustot && s != plusps_tot) || ac == 0)
      {
! 	t_atom at;
! 	if (s == totps_plustot)
  	    s = plusps_tot;
! 	SETSYMBOL (&at, s);
! 	binbuf_add(inbb, 1, &at);
      }
-     if (ac > 0)
- 	binbuf_add(inbb, ac, av);
-     binbuf_gettext(inbb, &pw->pw_vistext, &pw->pw_vissize);
-     binbuf_free(inbb);
      pw->pw_rtextactive = 0;
      pw->pw_ishit = 0;
  }
  
--- 220,267 ----
      if (pw)
      {
! 	if (pw->pw_visstring)
! 	    plusstring_release(pw->pw_visstring);
! 	else if (pw->pw_visbuf)
! 	    freebytes(pw->pw_visbuf, pw->pw_vissize);
  	freebytes(pw, sizeof(*pw));
      }
  }
  
! /* assuming non-null ps will remain constant, LATER rethink */
! void plusobject_widgetcreate(t_plusobject *po, t_symbol *s, int ac, t_atom *av,
! 			     t_plusstring *ps)
  {
      t_pluswidget *pw = getbytes(sizeof(*pw));
!     pw->pw_visstring = 0;
!     if (ps)
      {
! 	plusstring_preserve(ps);
! 	pw->pw_visbuf = plusstring_get(ps, &pw->pw_vissize);
! 	if (pw->pw_vissize > 0)
! 	    pw->pw_visstring = ps;
! 	else
! 	    plusstring_release(ps);
!     }
!     if (pw->pw_visstring == 0)
!     {
! 	t_binbuf *inbb = binbuf_new();
! 	if (!s || s == &s_)
  	    s = plusps_tot;
! 	if ((s != totps_plustot && s != plusps_tot) || ac == 0)
! 	{
! 	    t_atom at;
! 	    if (s == totps_plustot)
! 		s = plusps_tot;
! 	    SETSYMBOL (&at, s);
! 	    binbuf_add(inbb, 1, &at);
! 	}
! 	if (ac > 0)
! 	    binbuf_add(inbb, ac, av);
! 	binbuf_gettext(inbb, &pw->pw_visbuf, &pw->pw_vissize);
! 	binbuf_free(inbb);
      }
      pw->pw_rtextactive = 0;
      pw->pw_ishit = 0;
+     po->po_widget = pw;
  }
  

Index: plustot.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** plustot.c	30 May 2005 09:29:26 -0000	1.5
--- plustot.c	13 Jun 2005 20:41:52 -0000	1.6
***************
*** 392,395 ****
--- 392,412 ----
  }
  
+ int plustob_clear(t_plustob *tob)
+ {
+     if (!tob->tob_tin)
+     {
+ 	/* FIXME */
+ 	loud_warning(0, "+tot", "+To: environment missing");
+ 	return (0);
[...1105 lines suppressed...]
--- 2284,2291 ----
      class_addmethod(plustot_class, (t_method)plustot_eval,
  		    gensym("eval"), 0);
+     class_addmethod(plustot_class, (t_method)plustot_clear,
+ 		    gensym("clear"), 0);
+     class_addmethod(plustot_class, (t_method)plustot_clearall,
+ 		    gensym("clearall"), 0);
      class_addmethod(plustot_class, (t_method)plustot_set,
  		    gensym("set"), A_GIMME, 0);
***************
*** 2110,2113 ****
--- 2303,2310 ----
      class_addsymbol(plusproxy_class, plusproxy_symbol);
      class_addlist(plusproxy_class, plusproxy_list);
+     class_addmethod(plusproxy_class, (t_method)plusproxy_clear,
+ 		    gensym("clear"), 0);
+     class_addmethod(plusproxy_class, (t_method)plusproxy_set,
+ 		    gensym("set"), A_GIMME, 0);
  
  #ifdef PLUSTOT_DEBUG

Index: plustot.h
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** plustot.h	30 May 2005 09:29:26 -0000	1.3
--- plustot.h	13 Jun 2005 20:41:52 -0000	1.4
***************
*** 24,27 ****
--- 24,30 ----
  #define t_plusvar  struct _plusvar
  
+ EXTERN_STRUCT _plusstring;
+ #define t_plusstring  struct _plusstring
+ 
  EXTERN_STRUCT _pluswidget;
  #define t_pluswidget  struct _pluswidget
***************
*** 30,33 ****
--- 33,37 ----
  {
      t_object       po_ob;
+     t_glist       *po_glist;
      t_pluswidget  *po_widget;
      int            po_ninlets;
***************
*** 66,69 ****
--- 70,74 ----
  Tcl_Obj *plusatom_tobvalue(t_atom *ap, t_pd *caller);
  
+ int plustob_clear(t_plustob *tob);
  Tcl_Obj *plustob_set(t_plustob *tob, t_plustin *tin, Tcl_Obj *ob);
  Tcl_Obj *plustob_setfloat(t_plustob *tob, t_float f);
***************
*** 79,82 ****
--- 84,88 ----
  Tcl_Obj *plusvar_push(t_plusvar *var);
  Tcl_Obj *plusvar_pull(t_plusvar *var);
+ void plusvar_clear(t_plusvar *var, int doit);
  Tcl_Obj *plusvar_set(t_plusvar *var, Tcl_Obj *ob, int doit);
  Tcl_Obj *plusvar_setfloat(t_plusvar *var, t_float f, int doit);
***************
*** 84,89 ****
  Tcl_Obj *plusvar_setlist(t_plusvar *var, int ac, t_atom *av, int doit);
  
  void plusobject_free(t_plusobject *po);
! t_plusobject *plusobject_new(t_class *c, t_symbol *s, int ac, t_atom *av);
  t_inlet *plusinlet_new(t_plusobject *po, t_pd *dest,
  		       t_symbol *s1, t_symbol *s2);
--- 90,100 ----
  Tcl_Obj *plusvar_setlist(t_plusvar *var, int ac, t_atom *av, int doit);
  
+ void plusstring_preserve(t_plusstring *ps);
+ void plusstring_release(t_plusstring *ps);
+ char *plusstring_get(t_plusstring *ps, int *lenp);
+ 
  void plusobject_free(t_plusobject *po);
! t_plusobject *plusobject_new(t_class *c, t_symbol *s, int ac, t_atom *av,
! 			     t_plusstring *ps);
  t_inlet *plusinlet_new(t_plusobject *po, t_pd *dest,
  		       t_symbol *s1, t_symbol *s2);

Index: plustot.in.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.in.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** plustot.in.c	30 May 2005 09:29:26 -0000	1.2
--- plustot.in.c	13 Jun 2005 20:41:52 -0000	1.3
***************
*** 88,92 ****
  	(tob = plustob_new(tin, 0)))
      {
! 	x = (t_plustot_in *)plusobject_new(plustot_in_class, s, ac, av);
  	plusbob_preserve((t_plusbob *)tob);
  	plusbob_setowner((t_plusbob *)tob, (t_pd *)x);
--- 88,92 ----
  	(tob = plustob_new(tin, 0)))
      {
! 	x = (t_plustot_in *)plusobject_new(plustot_in_class, s, ac, av, 0);
  	plusbob_preserve((t_plusbob *)tob);
  	plusbob_setowner((t_plusbob *)tob, (t_pd *)x);

Index: plustot.env.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.env.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** plustot.env.c	30 May 2005 09:29:26 -0000	1.3
--- plustot.env.c	13 Jun 2005 20:41:52 -0000	1.4
***************
*** 112,116 ****
      {
  	int warned = 0;
! 	x = (t_plustot_env *)plusobject_new(plustot_env_class, s, ac, av);
  	x->x_tin = tin;
  	plusbob_preserve((t_plusbob *)tin);
--- 112,116 ----
      {
  	int warned = 0;
! 	x = (t_plustot_env *)plusobject_new(plustot_env_class, s, ac, av, 0);
  	x->x_tin = tin;
  	plusbob_preserve((t_plusbob *)tin);

Index: plustot.print.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.print.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** plustot.print.c	30 May 2005 09:29:26 -0000	1.3
--- plustot.print.c	13 Jun 2005 20:41:52 -0000	1.4
***************
*** 82,86 ****
  {
      t_plustot_print *x =
! 	(t_plustot_print *)plusobject_new(plustot_print_class, s, ac, av);
      x->x_label = (ac && av->a_type == A_SYMBOL ? av->a_w.w_symbol : 0);
      x->x_bb = binbuf_new();
--- 82,86 ----
  {
      t_plustot_print *x =
! 	(t_plustot_print *)plusobject_new(plustot_print_class, s, ac, av, 0);
      x->x_label = (ac && av->a_type == A_SYMBOL ? av->a_w.w_symbol : 0);
      x->x_bb = binbuf_new();

Index: plustot.var.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.var.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** plustot.var.c	30 May 2005 09:29:26 -0000	1.2
--- plustot.var.c	13 Jun 2005 20:41:52 -0000	1.3
***************
*** 89,93 ****
  	(var = plusvar_new(av->a_w.w_symbol->s_name, 0, tin)))
      {
! 	x = (t_plustot_var *)plusobject_new(plustot_var_class, s, ac, av);
  	plusbob_preserve((t_plusbob *)var);
  	plusbob_setowner((t_plusbob *)var, (t_pd *)x);
--- 89,93 ----
  	(var = plusvar_new(av->a_w.w_symbol->s_name, 0, tin)))
      {
! 	x = (t_plustot_var *)plusobject_new(plustot_var_class, s, ac, av, 0);
  	plusbob_preserve((t_plusbob *)var);
  	plusbob_setowner((t_plusbob *)var, (t_pd *)x);

Index: plustot.out.c
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/plustot.out.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** plustot.out.c	30 May 2005 09:29:26 -0000	1.2
--- plustot.out.c	13 Jun 2005 20:41:52 -0000	1.3
***************
*** 59,63 ****
  {
      t_plustot_out *x =
! 	(t_plustot_out *)plusobject_new(plustot_out_class, s, ac, av);
      x->x_bb = binbuf_new();
      plusoutlet_new(&x->x_plusobject, &s_anything);
--- 59,63 ----
  {
      t_plustot_out *x =
! 	(t_plustot_out *)plusobject_new(plustot_out_class, s, ac, av, 0);
      x->x_bb = binbuf_new();
      plusoutlet_new(&x->x_plusobject, &s_anything);

Index: build_counter
===================================================================
RCS file: /cvsroot/pure-data/externals/miXed/toxy/build_counter,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** build_counter	30 May 2005 09:29:26 -0000	1.16
--- build_counter	13 Jun 2005 20:41:52 -0000	1.17
***************
*** 1,7 ****
  #define TOXY_VERSION "0.1"
  #define TOXY_RELEASE "alpha"
! #define TOXY_BUILD 18
  
  #if 0
! TOXY_SNAPSHOT = 0.1-alpha18
  #endif
--- 1,7 ----
  #define TOXY_VERSION "0.1"
  #define TOXY_RELEASE "alpha"
! #define TOXY_BUILD 19
  
  #if 0
! TOXY_SNAPSHOT = 0.1-alpha19
  #endif





More information about the Pd-cvs mailing list