diff options
author | Davide Morelli <morellid@users.sourceforge.net> | 2006-01-14 02:34:17 +0000 |
---|---|---|
committer | Davide Morelli <morellid@users.sourceforge.net> | 2006-01-14 02:34:17 +0000 |
commit | af0a9de91583557786cdfeca37c36b8e5656fb23 (patch) | |
tree | 8ed7ba356a7bff2e6218aaecb703ad46f970623d /pd | |
parent | ca171c73936072e5be30444440b45d3fcf65b68b (diff) |
outlet ready, multi-instance, split assembly in 2
svn path=/trunk/externals/clr/; revision=4401
Diffstat (limited to 'pd')
-rwxr-xr-x | pd/AssemblyInfo.cs | 58 | ||||
-rwxr-xr-x | pd/Atom.cs | 28 | ||||
-rwxr-xr-x | pd/pd.cs | 151 | ||||
-rwxr-xr-x | pd/pd.csproj | 105 | ||||
-rwxr-xr-x | pd/pd.sln | 21 |
5 files changed, 363 insertions, 0 deletions
diff --git a/pd/AssemblyInfo.cs b/pd/AssemblyInfo.cs new file mode 100755 index 0000000..74d5e94 --- /dev/null +++ b/pd/AssemblyInfo.cs @@ -0,0 +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")]
+[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("")]
diff --git a/pd/Atom.cs b/pd/Atom.cs new file mode 100755 index 0000000..7e0affa --- /dev/null +++ b/pd/Atom.cs @@ -0,0 +1,28 @@ +using System;
+using System.Runtime.InteropServices; // for structures
+
+namespace PureData
+{
+ public enum AtomType {Null = 0, Float=1, Symbol=2, List=3, Bang=4};
+ + //[StructLayout (LayoutKind.Explicit)]
+ [StructLayout (LayoutKind.Sequential)]
+ public struct Atom + {
+ public AtomType type;
+ public float float_value;
+ public string string_value;
+ public Atom(float f)
+ {
+ this.type = AtomType.Float;
+ this.float_value = f;
+ this.string_value = "float";
+ }
+ public Atom(string s)
+ {
+ this.type = AtomType.Symbol;
+ this.float_value = 0;
+ this.string_value = s;
+ }
+ }
+}
\ No newline at end of file diff --git a/pd/pd.cs b/pd/pd.cs new file mode 100755 index 0000000..a94b9f1 --- /dev/null +++ b/pd/pd.cs @@ -0,0 +1,151 @@ +using System;
+using System.Runtime.CompilerServices; // for extern import
+
+
+
+namespace PureData
+{
+ public enum ParametersType {None = 0, Float=1, Symbol=2, List=3, Bang=4};
+
+ 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)]
+ private extern static void ToOutlet (IntPtr x, int outlet, int atoms_length, Atom [] atoms);
+ public static void SendToOutlet (IntPtr x, int outlet, Atom [] atoms)
+ {
+ ToOutlet (x, outlet, atoms.Length, atoms);
+ }
+
+ // create an outlet
+ [MethodImplAttribute (MethodImplOptions.InternalCall)]
+ private extern static void CreateOutlet (IntPtr x, int type);
+ // function called by the user
+ public static void AddOutlet(IntPtr x, ParametersType type)
+ {
+ CreateOutlet (x, (int) type);
+ }
+
+ // create an inlet
+ [MethodImplAttribute (MethodImplOptions.InternalCall)]
+ private extern static void CreateInlet (IntPtr x, string selector, int type);
+ // function called by the user
+ public static void AddInlet(IntPtr x, string selector, ParametersType type)
+ {
+ CreateInlet (x, selector, (int) type);
+ }
+
+ [MethodImplAttribute (MethodImplOptions.InternalCall)]
+ public extern static void PostMessage (string message);
+
+ [MethodImplAttribute (MethodImplOptions.InternalCall)]
+ 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; + */
+
+}
diff --git a/pd/pd.csproj b/pd/pd.csproj new file mode 100755 index 0000000..915ac50 --- /dev/null +++ b/pd/pd.csproj @@ -0,0 +1,105 @@ +<VisualStudioProject>
+ <CSHARP
+ ProjectType = "Local"
+ ProductVersion = "7.10.3077"
+ SchemaVersion = "2.0"
+ ProjectGuid = "{FFBC9D2E-1FB7-4E82-B5DC-46B31F8A58A2}"
+ >
+ <Build>
+ <Settings
+ ApplicationIcon = ""
+ AssemblyKeyContainerName = ""
+ AssemblyName = "PureData"
+ AssemblyOriginatorKeyFile = ""
+ DefaultClientScript = "JScript"
+ DefaultHTMLPageLayout = "Grid"
+ DefaultTargetSchema = "IE50"
+ DelaySign = "false"
+ OutputType = "Library"
+ PreBuildEvent = ""
+ PostBuildEvent = ""
+ RootNamespace = "PureData"
+ RunPostBuildEvent = "OnBuildSuccess"
+ StartupObject = ""
+ >
+ <Config
+ Name = "Debug"
+ AllowUnsafeBlocks = "false"
+ BaseAddress = "285212672"
+ CheckForOverflowUnderflow = "false"
+ ConfigurationOverrideFile = ""
+ DefineConstants = "DEBUG;TRACE"
+ DocumentationFile = ""
+ DebugSymbols = "true"
+ FileAlignment = "4096"
+ IncrementalBuild = "false"
+ NoStdLib = "false"
+ NoWarn = ""
+ Optimize = "false"
+ OutputPath = "bin\Debug\"
+ RegisterForComInterop = "false"
+ RemoveIntegerChecks = "false"
+ TreatWarningsAsErrors = "false"
+ WarningLevel = "4"
+ />
+ <Config
+ Name = "Release"
+ AllowUnsafeBlocks = "false"
+ BaseAddress = "285212672"
+ CheckForOverflowUnderflow = "false"
+ ConfigurationOverrideFile = ""
+ DefineConstants = "TRACE"
+ DocumentationFile = ""
+ DebugSymbols = "false"
+ FileAlignment = "4096"
+ IncrementalBuild = "false"
+ NoStdLib = "false"
+ NoWarn = ""
+ Optimize = "true"
+ OutputPath = "bin\Release\"
+ RegisterForComInterop = "false"
+ RemoveIntegerChecks = "false"
+ TreatWarningsAsErrors = "false"
+ WarningLevel = "4"
+ />
+ </Settings>
+ <References>
+ <Reference
+ Name = "System"
+ AssemblyName = "System"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
+ />
+ <Reference
+ Name = "System.Data"
+ AssemblyName = "System.Data"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
+ />
+ <Reference
+ Name = "System.XML"
+ AssemblyName = "System.Xml"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
+ />
+ </References>
+ </Build>
+ <Files>
+ <Include>
+ <File
+ RelPath = "AssemblyInfo.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "Atom.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "pd.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ </Include>
+ </Files>
+ </CSHARP>
+</VisualStudioProject>
+
diff --git a/pd/pd.sln b/pd/pd.sln new file mode 100755 index 0000000..2d4a44b --- /dev/null +++ b/pd/pd.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pd", "pd.csproj", "{FFBC9D2E-1FB7-4E82-B5DC-46B31F8A58A2}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FFBC9D2E-1FB7-4E82-B5DC-46B31F8A58A2}.Debug.ActiveCfg = Debug|.NET
+ {FFBC9D2E-1FB7-4E82-B5DC-46B31F8A58A2}.Debug.Build.0 = Debug|.NET
+ {FFBC9D2E-1FB7-4E82-B5DC-46B31F8A58A2}.Release.ActiveCfg = Release|.NET
+ {FFBC9D2E-1FB7-4E82-B5DC-46B31F8A58A2}.Release.Build.0 = Release|.NET
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
|