Update of /cvsroot/pure-data/externals/clr/pd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21260/pd
Modified Files: AssemblyInfo.cs Atom.cs PureData.cs Log Message: fixed line endings, now for real
Index: PureData.cs =================================================================== RCS file: /cvsroot/pure-data/externals/clr/pd/PureData.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PureData.cs 27 Jan 2006 22:50:00 -0000 1.1 --- PureData.cs 28 Jan 2006 10:36:25 -0000 1.2 *************** *** 1,46 **** ! using System; ! using System.Runtime.CompilerServices; // for extern import ! ! namespace PureData ! { ! // PD core functions ! public class Core ! { ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void Post(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void PostError(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void PostBug(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void PostVerbose(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static IntPtr GenSym(string sym); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static string EvalSym(Symbol sym); ! } ! ! // This is the base class for a PD/CLR external ! public class External ! : Core ! { ! private readonly IntPtr ptr; ! ! protected virtual void MethodBang() { Post("No bang handler"); } ! ! protected virtual void MethodFloat(float f) { Post("No float handler"); } ! ! protected virtual void MethodSymbol(Symbol s) { Post("No symbol handler"); } ! ! protected virtual void MethodPointer(Pointer p) { Post("No pointer handler");} ! ! protected virtual void MethodList(Atom[] lst) { Post("No list handler"); } ! ! protected virtual void MethodAnything(Atom[] lst) { Post("No list handler"); } ! } ! } --- 1,46 ---- ! using System; ! using System.Runtime.CompilerServices; // for extern import ! ! namespace PureData ! { ! // PD core functions ! public class Core ! { ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void Post(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void PostError(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void PostBug(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static void PostVerbose(string message); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static IntPtr GenSym(string sym); ! ! [MethodImplAttribute (MethodImplOptions.InternalCall)] ! public extern static string EvalSym(Symbol sym); ! } ! ! // This is the base class for a PD/CLR external ! public class External ! : Core ! { ! private readonly IntPtr ptr; ! ! protected virtual void MethodBang() { Post("No bang handler"); } ! ! protected virtual void MethodFloat(float f) { Post("No float handler"); } ! ! protected virtual void MethodSymbol(Symbol s) { Post("No symbol handler"); } ! ! protected virtual void MethodPointer(Pointer p) { Post("No pointer handler");} ! ! protected virtual void MethodList(Atom[] lst) { Post("No list handler"); } ! ! protected virtual void MethodAnything(Atom[] lst) { Post("No list handler"); } ! } ! }
Index: Atom.cs =================================================================== RCS file: /cvsroot/pure-data/externals/clr/pd/Atom.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Atom.cs 27 Jan 2006 22:50:00 -0000 1.4 --- Atom.cs 28 Jan 2006 10:36:25 -0000 1.5 *************** *** 1,89 **** ! using System; ! using System.Runtime.InteropServices; // for structures ! ! namespace PureData ! { ! public enum AtomType {Null = 0, Float = 1, Symbol = 2, Pointer = 3};
! [StructLayout (LayoutKind.Sequential)] sealed public class Symbol ! { ! // this should NOT be public ! readonly private IntPtr ptr; ! ! public Symbol(IntPtr p) ! { ! ptr = p; ! } ! ! public Symbol(Symbol s) ! { ! ptr = s.ptr; ! } ! ! public Symbol(string s) ! { ! ptr = Core.GenSym(s); ! } ! ! override public string ToString() ! { ! return Core.EvalSym(this); ! } ! }
! [StructLayout (LayoutKind.Sequential)] sealed public class Pointer ! { ! public IntPtr ptr; }
! [StructLayout (LayoutKind.Explicit)] ! public struct Word ! { ! [FieldOffset(0)] public float w_float; ! [FieldOffset(0)] public Symbol w_symbol; ! [FieldOffset(0)] public Pointer w_pointer; ! }
! //[StructLayout (LayoutKind.Explicit)] ! [StructLayout (LayoutKind.Sequential)] sealed public class Atom ! { ! ! public AtomType type; ! public Word word; ! ! public Atom(float f) ! { ! type = AtomType.Float; ! word.w_float = f; ! } ! ! public Atom(int i) ! { ! type = AtomType.Float; ! word.w_float = (float)i; ! } ! ! public Atom(Symbol s) ! { ! type = AtomType.Symbol; ! word.w_symbol = s; ! } ! ! public Atom(string s) ! { ! type = AtomType.Symbol; ! word.w_symbol = new Symbol(s); ! } ! } ! ! ! // this struct is relative to this c struct, see clr.c ! ! /* ! // simplyfied atom ! typedef struct atom_simple atom_simple; typedef enum { --- 1,89 ---- ! using System; ! using System.Runtime.InteropServices; // for structures
! namespace PureData ! { ! public enum AtomType {Null = 0, Float = 1, Symbol = 2, Pointer = 3}; ! ! [StructLayout (LayoutKind.Sequential)] sealed public class Symbol ! { ! // this should NOT be public ! readonly private IntPtr ptr; ! ! public Symbol(IntPtr p) ! { ! ptr = p; ! }
! public Symbol(Symbol s) ! { ! ptr = s.ptr; ! } ! ! public Symbol(string s) ! { ! ptr = Core.GenSym(s); ! } ! ! override public string ToString() ! { ! return Core.EvalSym(this); ! } ! } ! ! [StructLayout (LayoutKind.Sequential)] sealed public class Pointer ! { ! public IntPtr ptr; }
! [StructLayout (LayoutKind.Explicit)] ! public struct Word ! { ! [FieldOffset(0)] public float w_float; ! [FieldOffset(0)] public Symbol w_symbol; ! [FieldOffset(0)] public Pointer w_pointer; ! }
! //[StructLayout (LayoutKind.Explicit)] ! [StructLayout (LayoutKind.Sequential)] sealed public class Atom ! { ! ! public AtomType type; ! public Word word; ! ! public Atom(float f) ! { ! type = AtomType.Float; ! word.w_float = f; ! } ! ! public Atom(int i) ! { ! type = AtomType.Float; ! word.w_float = (float)i; ! } ! ! public Atom(Symbol s) ! { ! type = AtomType.Symbol; ! word.w_symbol = s; ! } ! ! public Atom(string s) ! { ! type = AtomType.Symbol; ! word.w_symbol = new Symbol(s); ! } ! } ! ! ! // this struct is relative to this c struct, see clr.c ! ! /* ! // simplyfied atom ! typedef struct atom_simple atom_simple; typedef enum { *************** *** 91,104 **** 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; ! }; ! */ ! } \ No newline at end of file --- 91,104 ---- 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; ! }; ! */ ! } \ No newline at end of file
Index: AssemblyInfo.cs =================================================================== RCS file: /cvsroot/pure-data/externals/clr/pd/AssemblyInfo.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AssemblyInfo.cs 27 Jan 2006 22:50:00 -0000 1.2 --- AssemblyInfo.cs 28 Jan 2006 10:36:25 -0000 1.3 *************** *** 1,58 **** ! using System.Reflection; ! using System.Runtime.CompilerServices; ! ! // ! // Le informazioni generali relative a un assembly sono controllate dal seguente ! // insieme di attributi. Per modificare le informazioni associate a un assembly ! // occorre quindi modificare i valori di questi attributi. ! // ! [assembly: AssemblyTitle("PureData")] ! [assembly: AssemblyDescription("bridge between C sharp externals and pd")] ! [assembly: AssemblyConfiguration("")] ! [assembly: AssemblyCompany("")] ! [assembly: AssemblyProduct("")] ! [assembly: AssemblyCopyright("Davide Morelli, Thomas Grill")] ! [assembly: AssemblyTrademark("")] ! [assembly: AssemblyCulture("")] ! ! // ! // Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: ! // ! // Numero di versione principale ! // Numero di versione secondario ! // Numero revisione ! // Numero build ! // ! // È possibile specificare tutti i valori o impostare come predefiniti i valori Numero revisione e Numero build ! // utilizzando l'asterisco (*) come illustrato di seguito: ! ! [assembly: AssemblyVersion("1.0.*")] ! ! // ! // Per firmare l'assembly è necessario specificare una chiave da utilizzare. ! // Fare riferimento alla documentazione di Microsoft .NET Framework per ulteriori informazioni sulla firma degli assembly. ! // ! // Utilizzare gli attributi elencati di seguito per verificare la chiave utilizzata per la firma. ! // ! // Note: ! // (*) Se non è specificata alcuna chiave, non sarà possibile firmare l'assembly. ! // (*) KeyName fa riferimento a una chiave installata nel provider di servizi di ! // crittografia (CSP) sul computer in uso. KeyFile fa riferimento a un file che contiene ! // una chiave. ! // (*) Se entrambi i valori KeyFile e KeyName sono specificati, si ! // verificherà il seguente processo: ! // (1) Se KeyName è presente in CSP, verrà utilizzata tale chiave. ! // (2) Se KeyName non esiste e KeyFile esiste, la chiave ! // di KeyFile verrà installata nel CSP e utilizzata. ! // (*) Per creare un KeyFile, è possibile utilizzare l'utilità sn.exe (Strong Name). ! // Quando si specifica il KeyFile, il percorso dovrà essere ! // relativo alla directory di output del progetto, ovvero ! // %Project Directory%\obj<configuration>. Se ad esempio il KeyFile si ! // trova nella directory del progetto, occorre specificare l'attributo AssemblyKeyFile ! // come [assembly: AssemblyKeyFile("..\..\mykey.snk")] ! // (*) La firma ritardata è un'opzione avanzata. Vedere la documentazione di Microsoft ! // .NET Framework per ulteriori informazioni. ! // ! [assembly: AssemblyDelaySign(false)] ! [assembly: AssemblyKeyFile("")] ! [assembly: AssemblyKeyName("")] --- 1,58 ---- ! using System.Reflection; ! using System.Runtime.CompilerServices; ! ! // ! // Le informazioni generali relative a un assembly sono controllate dal seguente ! // insieme di attributi. Per modificare le informazioni associate a un assembly ! // occorre quindi modificare i valori di questi attributi. ! // ! [assembly: AssemblyTitle("PureData")] ! [assembly: AssemblyDescription("bridge between C sharp externals and pd")] ! [assembly: AssemblyConfiguration("")] ! [assembly: AssemblyCompany("")] ! [assembly: AssemblyProduct("")] ! [assembly: AssemblyCopyright("Davide Morelli, Thomas Grill")] ! [assembly: AssemblyTrademark("")] ! [assembly: AssemblyCulture("")] ! ! // ! // Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: ! // ! // Numero di versione principale ! // Numero di versione secondario ! // Numero revisione ! // Numero build ! // ! // È possibile specificare tutti i valori o impostare come predefiniti i valori Numero revisione e Numero build ! // utilizzando l'asterisco (*) come illustrato di seguito: ! ! [assembly: AssemblyVersion("1.0.*")] ! ! // ! // Per firmare l'assembly è necessario specificare una chiave da utilizzare. ! // Fare riferimento alla documentazione di Microsoft .NET Framework per ulteriori informazioni sulla firma degli assembly. ! // ! // Utilizzare gli attributi elencati di seguito per verificare la chiave utilizzata per la firma. ! // ! // Note: ! // (*) Se non è specificata alcuna chiave, non sarà possibile firmare l'assembly. ! // (*) KeyName fa riferimento a una chiave installata nel provider di servizi di ! // crittografia (CSP) sul computer in uso. KeyFile fa riferimento a un file che contiene ! // una chiave. ! // (*) Se entrambi i valori KeyFile e KeyName sono specificati, si ! // verificherà il seguente processo: ! // (1) Se KeyName è presente in CSP, verrà utilizzata tale chiave. ! // (2) Se KeyName non esiste e KeyFile esiste, la chiave ! // di KeyFile verrà installata nel CSP e utilizzata. ! // (*) Per creare un KeyFile, è possibile utilizzare l'utilità sn.exe (Strong Name). ! // Quando si specifica il KeyFile, il percorso dovrà essere ! // relativo alla directory di output del progetto, ovvero ! // %Project Directory%\obj<configuration>. Se ad esempio il KeyFile si ! // trova nella directory del progetto, occorre specificare l'attributo AssemblyKeyFile ! // come [assembly: AssemblyKeyFile("..\..\mykey.snk")] ! // (*) La firma ritardata è un'opzione avanzata. Vedere la documentazione di Microsoft ! // .NET Framework per ulteriori informazioni. ! // ! [assembly: AssemblyDelaySign(false)] ! [assembly: AssemblyKeyFile("")] ! [assembly: AssemblyKeyName("")]