summaryrefslogtreecommitdiff
path: root/wrapper/wrapper.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'wrapper/wrapper.hpp')
-rw-r--r--wrapper/wrapper.hpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/wrapper/wrapper.hpp b/wrapper/wrapper.hpp
new file mode 100644
index 0000000..24bcadb
--- /dev/null
+++ b/wrapper/wrapper.hpp
@@ -0,0 +1,52 @@
+#pragma once
+
+#include "..\common\rawaccel.hpp";
+#include "..\common\rawaccel-userspace.hpp";
+#include <iostream>
+using namespace rawaccel;
+using namespace System;
+
+public ref class ManagedAccel
+{
+protected:
+ accel_function* accel_instance;
+public:
+ ManagedAccel(accel_function* accel)
+ : accel_instance(accel)
+ {
+ }
+
+ ManagedAccel(double mode, double offset, double accel, double lim_exp, double midpoint)
+ {
+ accel_function::args_t args{};
+ args.accel = accel;
+ args.lim_exp = lim_exp;
+ args.midpoint = midpoint;
+ args.accel_mode = (rawaccel::mode)mode;
+ args.offset = offset;
+
+ accel_instance = new accel_function(args);
+ }
+
+ virtual ~ManagedAccel()
+ {
+ if (accel_instance != nullptr)
+ {
+ delete accel_instance;
+ }
+ }
+ !ManagedAccel()
+ {
+ if (accel_instance != nullptr)
+ {
+ delete accel_instance;
+ }
+ }
+
+ accel_function* GetInstance()
+ {
+ return accel_instance;
+ }
+
+ Tuple<double, double>^ Accelerate(int x, int y, double time, double mode);
+}; \ No newline at end of file