diff options
Diffstat (limited to 'wrapper/wrapper.hpp')
| -rw-r--r-- | wrapper/wrapper.hpp | 52 |
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 |