[PD-cvs] externals/clr/Counter counter-help.pd, NONE, 1.1 Counter.cs, 1.5, 1.6

Thomas Grill xovo at users.sourceforge.net
Thu Mar 9 15:34:35 CET 2006


Update of /cvsroot/pure-data/externals/clr/Counter
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22039/clr/Counter

Modified Files:
	Counter.cs 
Added Files:
	counter-help.pd 
Log Message:
adapted to PD version 0.40
better handler flexibility and argument checking
added Zmölnigs counter example

--- NEW FILE: counter-help.pd ---
#N canvas 0 0 458 308 12;
#X obj 233 204 Counter;
#X msg 306 91 2 7;
#X floatatom 372 91 5 0 0 0 - - -;
#X obj 284 241 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 226 240 5 0 0 0 - - -;
#X floatatom 90 55 5 0 0 0 - - -;
#X msg 17 113 reset;
#X obj 19 68 bng 25 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
-1;
#X text 296 70 bounds;
#X msg 164 80 bound 0 4;
#X text 376 72 step;
#X msg 90 79 set \$1;
#X connect 0 0 4 0;
#X connect 0 1 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 2;
#X connect 5 0 11 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 9 0 0 0;
#X connect 11 0 0 0;

Index: Counter.cs
===================================================================
RCS file: /cvsroot/pure-data/externals/clr/Counter/Counter.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Counter.cs	9 Mar 2006 01:48:21 -0000	1.5
--- Counter.cs	9 Mar 2006 14:34:33 -0000	1.6
***************
*** 7,109 ****
  	PureData.External
  {
!     PureData.Atom[] args;
! 
!     float farg;
  
      public Counter(PureData.AtomList args)
  	{
!         Post("Count.ctor "+args.ToString());
  
!         // that's the way to store args (don't just copy an AtomList instance!!)
!         this.args = (PureData.Atom[])args;
  
! //        AddInlet(s_list,new PureData.Symbol("list2"));
!         AddInlet();
!         AddInlet(ref farg);
!         AddInlet();
!         AddOutletBang();
      }
  
  	// this function MUST exist
! 	// returns void or ClassType
! 	private static ClassType Setup(Counter obj)
  	{
! 	    AddMethod(0,new MethodBang(obj.MyBang));
!         AddMethod(0,new MethodFloat(obj.MyFloat));
!         AddMethod(0,new MethodSymbol(obj.MySymbol));
!         AddMethod(0,new MethodList(obj.MyList));
!         AddMethod(0,"set",new MethodAnything(obj.MySet));
!         AddMethod(0,"send",new MethodAnything(obj.MySend));
!         AddMethod(0,new MethodAnything(obj.MyAnything));
!         AddMethod(1,new MethodFloat(obj.MyFloat1));
!         AddMethod(1,new MethodAnything(obj.MyAny1));
! 
!         Post("Count.Main");
!         return ClassType.Default;
  	}
  
!     protected virtual void MyBang() 
!     { 
!         Post("Count-BANG "+farg.ToString()); 
!         Outlet(0);
!     }
! 
!     protected virtual void MyFloat(float f) 
!     { 
!         Post("Count-FLOAT "+f.ToString()); 
          Outlet(0,f);
      }
  
!     protected virtual void MyFloat1(float f) 
!     { 
!         Post("Count-FLOAT1 "+f.ToString()); 
!     }
! 
!     protected virtual void MyAny1(int ix,PureData.Symbol s,PureData.AtomList l) 
!     { 
!         Post(ix.ToString()+": Count-ANY1 "+l.ToString()); 
!     }
! 
!     protected virtual void MySymbol(PureData.Symbol s) 
!     { 
!         Post("Count-SYMBOL "+s.ToString()); 
!         Outlet(0,s);
!     }
! 
!     protected virtual void MyList(PureData.AtomList l) 
!     { 
!         Post("Count-LIST "+l.ToString()); 
!         Outlet(0,l);
!     }
! 
!     protected virtual void MySet(int ix,PureData.Symbol s,PureData.AtomList l) 
      { 
!         Post("Count-SET "+l.ToString()); 
!         Outlet(0,new PureData.Symbol("set"),l);
      }
  
!     protected virtual void MySend(int ix,PureData.Symbol s,PureData.AtomList l) 
      { 
!         Send(new PureData.Symbol("receiver"),l);
!         Send(new PureData.Symbol("receiver2"),(PureData.Atom[])l);
      }
  
!     protected virtual void MyAnything(int ix,PureData.Symbol s,PureData.AtomList l) 
      { 
!         Post(ix.ToString()+": Count-("+s.ToString()+") "+l.ToString()); 
!         Outlet(0,s,l);
      }
-     /*
- 	public void SendOut()
- 	{
- 		pd.SendToOutlet(x, 0, new Atom(curr));
- 	}
  
- 	public void Sum(float f)
- 	{
- 		curr += (int) f;
- 		pd.SendToOutlet(x, 0, new Atom(curr));
- 	}
- 
- */
  }
--- 7,81 ----
  	PureData.External
  {
!     int i_count,i_down,i_up;
!     float step;
  
      public Counter(PureData.AtomList args)
  	{
! 	    this.step = args.Count >= 3?(float)args[2]:1;
!         
!         float f2 = args.Count >= 2?(float)args[1]:0;
!         float f1 = args.Count >= 1?(float)args[0]:0;
  
!         if(args.Count < 2) f2 = f1;
!         
!         this.i_down = (int)((f1<f2)?f1:f2);
!         this.i_up = (int)((f1>f2)?f1:f2);
!         
! 	    this.i_count = this.i_down;
  
!         AddInlet(_list,new PureData.Symbol("bound"));
!         AddInlet(ref step);
! 
!         AddOutlet(_float);
!         AddOutlet(_bang);
      }
  
  	// this function MUST exist
! 	private static void Setup(Counter obj)
  	{
! 	    AddMethod(0,new Method(obj.Bang));
!         AddMethod(0,"reset",new Method(obj.Reset));
!         AddMethod(0,"set",new MethodFloat(obj.Set));
!         AddMethod(0,"bound",new MethodList(obj.Bound));
  	}
  
!     protected void Bang() 
!     {
!         float f = this.i_count;
!         int step = (int)this.step;
!         this.i_count += step;
!         
!         if(this.i_down-this.i_up != 0) {
!             if(step > 0 && this.i_count > this.i_up) {
!                 this.i_count = this.i_down;
!                 Outlet(1);
!             }
!             else if(this.i_count < this.i_down) {
!                 this.i_count = this.i_up;
!                 Outlet(1);
!             }
!         }
!         
          Outlet(0,f);
      }
  
!     protected void Reset() 
      { 
!         this.i_count = this.i_down;
      }
  
!     protected void Set(float f) 
      { 
!         this.i_count = (int)f;
      }
  
!     protected void Bound(PureData.AtomList args) 
      { 
!         float f1 = (float)args[0];
!         float f2 = (float)args[1];
!         
!         this.i_down = (int)((f1<f2)?f1:f2);
!         this.i_up = (int)((f1>f2)?f1:f2);
      }
  
  }





More information about the Pd-cvs mailing list