aboutsummaryrefslogtreecommitdiff
path: root/csharp-binding/LibSurviveBinding/Program.cs
diff options
context:
space:
mode:
authordpeter99 <dpeter99@gmail.com>2018-03-28 17:34:56 +0200
committerdpeter99 <dpeter99@gmail.com>2018-03-28 17:34:56 +0200
commitef18541ac2e1e97de9f04f132ac7b2b1ba21e515 (patch)
tree0d1bde04b2e9d4ff9ddb6e150123703969e72b3c /csharp-binding/LibSurviveBinding/Program.cs
parentd106e045d8a145ceb733075e541f6aaaee5bd3a7 (diff)
downloadlibsurvive-ef18541ac2e1e97de9f04f132ac7b2b1ba21e515.tar.gz
libsurvive-ef18541ac2e1e97de9f04f132ac7b2b1ba21e515.tar.bz2
c# binding WIP
Diffstat (limited to 'csharp-binding/LibSurviveBinding/Program.cs')
-rw-r--r--csharp-binding/LibSurviveBinding/Program.cs71
1 files changed, 71 insertions, 0 deletions
diff --git a/csharp-binding/LibSurviveBinding/Program.cs b/csharp-binding/LibSurviveBinding/Program.cs
new file mode 100644
index 0000000..7ae8e76
--- /dev/null
+++ b/csharp-binding/LibSurviveBinding/Program.cs
@@ -0,0 +1,71 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace LibSurVive
+{
+ class Program
+ {
+ [DllImport("libsurvive", CallingConvention = CallingConvention.StdCall)]
+ static extern IntPtr survive_init_internal(int argc, char[] args);
+
+ public delegate void raw_pose_func(IntPtr so, byte lighthouse, IntPtr pose);
+ public delegate void lighthouse_pose_func(IntPtr ctx, byte lighthouse, IntPtr lighthouse_pose, IntPtr object_pose);
+
+ [DllImport("libsurvive", CallingConvention = CallingConvention.StdCall)]
+ static extern void survive_install_raw_pose_fn(IntPtr ctx, raw_pose_func fbp);
+ [DllImport("libsurvive", CallingConvention = CallingConvention.StdCall)]
+ static extern void survive_install_lighthouse_pose_fn(IntPtr ctx, lighthouse_pose_func fbp);
+
+
+ [DllImport("libsurvive", CallingConvention = CallingConvention.StdCall)]
+ static extern int survive_startup(IntPtr ctx);
+ [DllImport("libsurvive", CallingConvention = CallingConvention.StdCall)]
+ static extern void survive_cal_install(IntPtr ctx);
+
+ public static lighthouse_pose_func lighthouse_Pose_Func { get; private set; }
+ public static raw_pose_func raw_Pose_Func { get; private set; }
+
+ static void Main(string[] args)
+ {
+ IntPtr context = survive_init_internal(0, null);
+
+ lighthouse_Pose_Func = LighthousPos;
+ survive_install_lighthouse_pose_fn(context, lighthouse_Pose_Func);
+ raw_Pose_Func = PositionUpdate;
+ survive_install_raw_pose_fn(context, raw_Pose_Func);
+
+ try
+ {
+ int a = survive_startup(context);
+ //survive_cal_install(context);
+ }
+ catch (Exception)
+ {
+
+ throw;
+ }
+
+ bool running = true;
+
+
+
+ Console.WriteLine("Hello World!");
+
+ while (running)
+ {
+ Console.ReadLine();
+ }
+
+ }
+
+ public static void PositionUpdate(IntPtr so, byte lighthouse, IntPtr pose)
+ {
+ //Console.WriteLine(pose);
+ }
+
+ public static void LighthousPos(IntPtr ctx, byte lighthouse, IntPtr lighthouse_pose, IntPtr object_pose)
+ {
+
+ }
+ }
+}