aboutsummaryrefslogtreecommitdiff
path: root/pd/PureData.cs
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2006-01-27 22:50:00 +0000
committerThomas Grill <xovo@users.sourceforge.net>2006-01-27 22:50:00 +0000
commit63b691c5179de0649cab2a7981dcf7ac01ec3cc0 (patch)
tree5ad87ada3ff7f1bfbe7c812674bd04ebaac92748 /pd/PureData.cs
parentbde79af1b578321dfc73475e4fdf38a950a5a50c (diff)
new interface to internal functions
svn path=/trunk/externals/clr/; revision=4506
Diffstat (limited to 'pd/PureData.cs')
-rw-r--r--pd/PureData.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/pd/PureData.cs b/pd/PureData.cs
new file mode 100644
index 0000000..2ff8cfe
--- /dev/null
+++ b/pd/PureData.cs
@@ -0,0 +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"); }
+ }
+}