From 63b691c5179de0649cab2a7981dcf7ac01ec3cc0 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Fri, 27 Jan 2006 22:50:00 +0000 Subject: new interface to internal functions svn path=/trunk/externals/clr/; revision=4506 --- pd/PureData.cs | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 pd/PureData.cs (limited to 'pd/PureData.cs') 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"); } + } +} -- cgit v1.2.1