1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#pragma once
#include "wrapper.hpp"
using namespace rawaccel;
using namespace System;
Tuple<double, double>^ ManagedAccel::Accelerate(int x, int y, double time)
{
vec2d input_vec2d = {
(double)x,
(double)y
};
vec2d output = (*modifier_instance).modify_with_accel(input_vec2d, (milliseconds)time);
return gcnew Tuple<double, double>(output.x, output.y);
}
void ManagedAccel::UpdateAccel(
int mode,
double rotation,
double sensitivityX,
double sensitivityY,
double weightX,
double weightY,
double capX,
double capY,
double offset,
double accel,
double lim_exp,
double midpoint)
{
delete modifier_instance;
modifier_args args{};
args.acc_fn_args.accel_mode = mode;
args.degrees = rotation;
args.sens.x = sensitivityX;
args.sens.y = sensitivityY;
args.acc_fn_args.acc_args.weight.x = weightX;
args.acc_fn_args.acc_args.weight.y = weightY;
args.acc_fn_args.cap.x = capX;
args.acc_fn_args.cap.y = capY;
args.acc_fn_args.acc_args.offset = offset;
args.acc_fn_args.acc_args.accel = accel;
args.acc_fn_args.acc_args.limit = lim_exp;
args.acc_fn_args.acc_args.exponent = lim_exp;
args.acc_fn_args.acc_args.midpoint = midpoint;
modifier_instance = new mouse_modifier(args);
}
void ManagedAccel::WriteToDriver()
{
driverWriter->writeToDriver(modifier_instance);
}
|