summaryrefslogtreecommitdiff
path: root/wrapper/wrapper.hpp
diff options
context:
space:
mode:
authora1xd <[email protected]>2020-07-24 20:54:41 -0400
committerGitHub <[email protected]>2020-07-24 20:54:41 -0400
commit73c18530cccfd237ebda99308e283fc12e4485aa (patch)
tree0bbaef80f43937c59134e247702e4c7ba2ed773a /wrapper/wrapper.hpp
parentMerge pull request #4 from a1xd/vec-parse-fix (diff)
parentAdd correct names and labels (diff)
downloadrawaccel-73c18530cccfd237ebda99308e283fc12e4485aa.tar.xz
rawaccel-73c18530cccfd237ebda99308e283fc12e4485aa.zip
Merge pull request #5 from JacobPalecki/WrapperAndGrapher
Wrapper and grapher
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