[PD-cvs] externals/clr/pd Atom.cs,1.2,1.3 pd.cs,1.2,1.3

dmorelli morellid at users.sourceforge.net
Mon Jan 16 17:27:00 CET 2006


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

Modified Files:
	Atom.cs pd.cs 
Log Message:
now selectors take delegates instead of function names, lists without selectors ok, added the PureData.dll assembly to let people compile externals without having to compile the pd project

Index: pd.cs
===================================================================
RCS file: /cvsroot/pure-data/externals/clr/pd/pd.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** pd.cs	16 Jan 2006 12:44:45 -0000	1.2
--- pd.cs	16 Jan 2006 16:26:58 -0000	1.3
***************
*** 10,22 ****
  	public class pd
  	{
  		[MethodImplAttribute (MethodImplOptions.InternalCall)]
  		private extern static void RegisterSelector (IntPtr x, string sel, string met, int type);
  		// function called by the user
! 		public static void AddSelector(IntPtr x, string sel, string met, ParametersType type)
  		{
! 			RegisterSelector (x, sel, met, (int) type);
  		}
  
- 		// TODO
  		// send stuff to an outlet
  		[MethodImplAttribute (MethodImplOptions.InternalCall)]
--- 10,54 ----
  	public class pd
  	{
+ 		public delegate void DelegateWithoutArguments();
+ 		public delegate void DelegateFloat(float f);
+ 		public delegate void DelegateString(ref string s);
+ 		public delegate void DelegateArray(Atom [] atoms);
+ 
  		[MethodImplAttribute (MethodImplOptions.InternalCall)]
  		private extern static void RegisterSelector (IntPtr x, string sel, string met, int type);
  		// function called by the user
! 		public static void AddSelector(IntPtr x, string sel, DelegateWithoutArguments func)
  		{
! 			RegisterSelector (x, sel, func.Method.Name, (int) ParametersType.None);
! 		}
! 		public static void AddSelector(IntPtr x, string sel, DelegateFloat func)
! 		{
! 			RegisterSelector (x, sel, func.Method.Name, (int) ParametersType.Float);
! 		}
! 		public static void AddSelector(IntPtr x, string sel, DelegateString func)
! 		{
! 			RegisterSelector (x, sel, func.Method.Name, (int) ParametersType.Symbol);
! 		}
! 		public static void AddSelector(IntPtr x, string sel, DelegateArray func)
! 		{
! 			RegisterSelector (x, sel, func.Method.Name, (int) ParametersType.List);
! 		}
! 		public static void AddSelector(IntPtr x, DelegateWithoutArguments func)
! 		{
! 			RegisterSelector (x, "", func.Method.Name, (int) ParametersType.None);
! 		}
! 		public static void AddSelector(IntPtr x, DelegateFloat func)
! 		{
! 			RegisterSelector (x, "", func.Method.Name, (int) ParametersType.Float);
! 		}
! 		public static void AddSelector(IntPtr x, DelegateString func)
! 		{
! 			RegisterSelector (x, "", func.Method.Name, (int) ParametersType.Symbol);
! 		}
! 		public static void AddSelector(IntPtr x, DelegateArray func)
! 		{
! 			RegisterSelector (x, "", func.Method.Name, (int) ParametersType.List);
  		}
  
  		// send stuff to an outlet
  		[MethodImplAttribute (MethodImplOptions.InternalCall)]
***************
*** 32,35 ****
--- 64,86 ----
  			ToOutlet (x, outlet, atoms.Length, atoms);
  		}
+ 		public static void SendToOutlet (IntPtr x, int outlet, float f)
+ 		{
+ 			Atom [] atoms = new Atom[1];
+ 			atoms[0] = new Atom(f);
+ 			ToOutlet (x, outlet, atoms.Length, atoms);
+ 		}
+ 		public static void SendToOutlet (IntPtr x, int outlet, int i)
+ 		{
+ 			Atom [] atoms = new Atom[1];
+ 			atoms[0] = new Atom((float) i);
+ 			ToOutlet (x, outlet, atoms.Length, atoms);
+ 		}
+ 		public static void SendToOutlet (IntPtr x, int outlet, string s)
+ 		{
+ 			Atom [] atoms = new Atom[1];
+ 			atoms[0] = new Atom(s);
+ 			ToOutlet (x, outlet, atoms.Length, atoms);
+ 		}
+ 
  		// create an outlet
  		[MethodImplAttribute (MethodImplOptions.InternalCall)]
***************
*** 56,156 ****
  		public extern static void ErrorMessage (string message);
  
- 
- 		/*
- 		// simplyfied atom
- 		typedef struct atom_simple atom_simple;
- 		typedef enum
- 		{
- 			A_S_NULL=0,
- 			A_S_FLOAT=1,
- 			A_S_SYMBOL=2,
- 		}  t_atomtype_simple;
- 		typedef struct atom_simple
- 		{
- 			t_atomtype_simple a_type;
- 			union{
- 				float float_value;
- 				MonoString *string_value;
- 			} stuff;
- 		};
- 		*/
  	}
  
  
! 		/*
! 			typedef float t_floatarg;  
! 
! 		typedef struct _symbol
! 		{
! 			char *s_name;
! 			struct _class **s_thing;
! 				struct _symbol *s_next;
! 				} t_symbol;
! 
! 				EXTERN_STRUCT _array;
! 		#define t_array struct _array      
! 
! 
! 
! 		#define GP_NONE 0       
! 		#define GP_GLIST 1      
! 		#define GP_ARRAY 2      
! 
! 		typedef struct _gstub
! 				{
! 					union
! 					{
! 					struct _glist *gs_glist;    
! 						struct _array *gs_array;    
! 						} gs_un;
! 						int gs_which;                   
! 						int gs_refcount;                
! 					} t_gstub;
! 
! 		typedef struct _gpointer         
! 				{
! 					union
! 					{   
! 					struct _scalar *gp_scalar;  
! 						union word *gp_w;         
! 					} gp_un;
! 					int gp_valid;                  
! 					t_gstub *gp_stub;               
! 				} t_gpointer;
! 
! 		typedef union word
! 						{
! 		t_float w_float;
! 		t_symbol *w_symbol;
! 		t_gpointer *w_gpointer;
! 		t_array *w_array;
! 		struct _glist *w_list;
! 			int w_index;
! 		} t_word;
! 
! 		typedef enum
! 			{
! 				A_NULL,
! 				A_FLOAT,
! 				A_SYMBOL,
! 				A_POINTER,
! 				A_SEMI,
! 				A_COMMA,
! 				A_DEFFLOAT,
! 				A_DEFSYM,
! 				A_DOLLAR, 
! 				A_DOLLSYM,
! 				A_GIMME,
! 				A_CANT
! 			}  t_atomtype;
! 
! 		#define A_DEFSYMBOL A_DEFSYM    
! 
! 		typedef struct _atom
! 				{
! 					t_atomtype a_type;
! 					union word a_w;
! 				} t_atom;
! 		*/
  
  }
--- 107,114 ----
  		public extern static void ErrorMessage (string message);
  
  	}
  
  
! 	
  
  }

Index: Atom.cs
===================================================================
RCS file: /cvsroot/pure-data/externals/clr/pd/Atom.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Atom.cs	16 Jan 2006 12:44:45 -0000	1.2
--- Atom.cs	16 Jan 2006 16:26:58 -0000	1.3
***************
*** 32,34 ****
  		}
  	}
! }
\ No newline at end of file
--- 32,54 ----
  		}
  	}
! 	// this struct is relative to this c struct, see clr.c
! 
! 	/*
! 		// simplyfied atom
! 		typedef struct atom_simple atom_simple;
! 		typedef enum
! 		{
! 			A_S_NULL=0,
! 			A_S_FLOAT=1,
! 			A_S_SYMBOL=2,
! 		}  t_atomtype_simple;
! 		typedef struct atom_simple
! 		{
! 			t_atomtype_simple a_type;
! 			union{
! 				float float_value;
! 				MonoString *string_value;
! 			} stuff;
! 		};
! 		*/
! }





More information about the Pd-cvs mailing list