diff options
| author | a1xd <[email protected]> | 2020-08-24 04:24:33 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2020-08-24 04:24:33 -0400 |
| commit | 313ab92531fbfacb955f9de85d3fc611f8064154 (patch) | |
| tree | 4986f8f58b4144a4ec7e85ae14af045b7c12b3da /wrapper/wrapper.cpp | |
| parent | Merge pull request #16 from JacobPalecki/Misc (diff) | |
| download | rawaccel-313ab92531fbfacb955f9de85d3fc611f8064154.tar.xz rawaccel-313ab92531fbfacb955f9de85d3fc611f8064154.zip | |
clean up wrapper, minimize heap alloc
Diffstat (limited to 'wrapper/wrapper.cpp')
| -rw-r--r-- | wrapper/wrapper.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index dcc9606..6dabd7e 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -2,8 +2,9 @@ #include "wrapper.hpp" -using namespace rawaccel; -using namespace System; +void replace(mouse_modifier* mod_ptr, const modifier_args& args) { + *mod_ptr = mouse_modifier(args); +} Tuple<double, double>^ ManagedAccel::Accelerate(int x, int y, double time) { @@ -11,7 +12,7 @@ Tuple<double, double>^ ManagedAccel::Accelerate(int x, int y, double time) (double)x, (double)y }; - vec2d output = (*modifier_instance).modify_with_accel(input_vec2d, (milliseconds)time); + vec2d output = modifier_instance->modify_with_accel(input_vec2d, time); return gcnew Tuple<double, double>(output.x, output.y); } @@ -31,7 +32,7 @@ void ManagedAccel::UpdateAccel( double midpoint, double gain_cap) { - modifier_args args = modifier_args{}; + modifier_args args{}; args.acc_fn_args.accel_mode = mode; args.degrees = rotation; args.sens.x = sensitivityX; @@ -46,13 +47,9 @@ void ManagedAccel::UpdateAccel( args.acc_fn_args.acc_args.exponent = lim_exp; args.acc_fn_args.acc_args.midpoint = midpoint; args.acc_fn_args.acc_args.gain_cap = gain_cap; - - mouse_modifier* temp_modifier = new mouse_modifier(args); - driverWriter->writeToDriver(temp_modifier); - delete temp_modifier; - - ReadFromDriver(); + replace(modifier_instance, args); + WriteToDriver(); } double ManagedAccel::SensitivityX::get() { return modifier_instance->sensitivity.x; } @@ -74,11 +71,10 @@ double ManagedAccel::PowerScale::get() { return modifier_instance->accel_fn.impl void ManagedAccel::WriteToDriver() { - driverWriter->writeToDriver(modifier_instance); + wrapper_io::writeToDriver(*modifier_instance); } void ManagedAccel::ReadFromDriver() { - delete modifier_instance; - modifier_instance = driverWriter->readFromDriver(); + wrapper_io::readFromDriver(*modifier_instance); } |