From 4e63da9daa1a3869caef1ac6c45c598aaf5a4b6e Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 3 Aug 2020 14:07:21 -0700 Subject: Start work on reading from driver --- wrapper/wrapper.cpp | 13 ++++++++++--- wrapper/wrapper.hpp | 10 ++++++---- wrapper/wrapper.vcxproj | 4 ++-- wrapper/wrapper.vcxproj.filters | 4 ++-- wrapper/wrapper_io.cpp | 15 +++++++++++++++ wrapper/wrapper_io.hpp | 8 ++++++++ wrapper/wrapper_writer.cpp | 9 --------- wrapper/wrapper_writer.hpp | 7 ------- 8 files changed, 43 insertions(+), 27 deletions(-) create mode 100644 wrapper/wrapper_io.cpp create mode 100644 wrapper/wrapper_io.hpp delete mode 100644 wrapper/wrapper_writer.cpp delete mode 100644 wrapper/wrapper_writer.hpp (limited to 'wrapper') diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index bd0574f..38ac481 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -30,8 +30,6 @@ void ManagedAccel::UpdateAccel( double lim_exp, double midpoint) { - delete modifier_instance; - modifier_args args{}; args.acc_fn_args.accel_mode = mode; args.degrees = rotation; @@ -46,11 +44,20 @@ void ManagedAccel::UpdateAccel( 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; + + mouse_modifier* temp_modifier = new mouse_modifier(args); + driverWriter->writeToDriver(temp_modifier); + delete temp_modifier; - modifier_instance = new mouse_modifier(args); + ReadFromDriver(); } void ManagedAccel::WriteToDriver() { driverWriter->writeToDriver(modifier_instance); } + +void ManagedAccel::ReadFromDriver() +{ + modifier_instance = driverWriter->readFromDriver(); +} diff --git a/wrapper/wrapper.hpp b/wrapper/wrapper.hpp index e8f100d..22a1b1e 100644 --- a/wrapper/wrapper.hpp +++ b/wrapper/wrapper.hpp @@ -5,7 +5,7 @@ #include #include -#include "wrapper_writer.hpp" +#include "wrapper_io.hpp" using namespace rawaccel; using namespace System; @@ -14,18 +14,18 @@ public ref class ManagedAccel { protected: mouse_modifier* modifier_instance; - writer* driverWriter; + wrapper_io* driverWriter; public: ManagedAccel(mouse_modifier* accel) : modifier_instance(accel) { - driverWriter = new writer(); + driverWriter = new wrapper_io(); } ManagedAccel(System::IntPtr args) { modifier_instance = new mouse_modifier(*reinterpret_cast(args.ToPointer())); - driverWriter = new writer(); + driverWriter = new wrapper_io(); } virtual ~ManagedAccel() @@ -66,4 +66,6 @@ public: void WriteToDriver(); + + void ReadFromDriver(); }; \ No newline at end of file diff --git a/wrapper/wrapper.vcxproj b/wrapper/wrapper.vcxproj index bffbf8b..3407d6d 100644 --- a/wrapper/wrapper.vcxproj +++ b/wrapper/wrapper.vcxproj @@ -117,11 +117,11 @@ - + - + diff --git a/wrapper/wrapper.vcxproj.filters b/wrapper/wrapper.vcxproj.filters index 28b22ba..60fcc9c 100644 --- a/wrapper/wrapper.vcxproj.filters +++ b/wrapper/wrapper.vcxproj.filters @@ -18,7 +18,7 @@ Header Files - + Header Files @@ -26,7 +26,7 @@ Source Files - + Source Files diff --git a/wrapper/wrapper_io.cpp b/wrapper/wrapper_io.cpp new file mode 100644 index 0000000..be3bd58 --- /dev/null +++ b/wrapper/wrapper_io.cpp @@ -0,0 +1,15 @@ +#pragma once + +#include +#include "wrapper_io.hpp" + +void wrapper_io::writeToDriver(rawaccel::mouse_modifier* modifier) +{ + rawaccel::write(*modifier); +} + +rawaccel::mouse_modifier* wrapper_io::readFromDriver() +{ + rawaccel::mouse_modifier modifier = rawaccel::read(); + return &(modifier); +} diff --git a/wrapper/wrapper_io.hpp b/wrapper/wrapper_io.hpp new file mode 100644 index 0000000..3427e3f --- /dev/null +++ b/wrapper/wrapper_io.hpp @@ -0,0 +1,8 @@ +#pragma once + +#include + +struct wrapper_io { + void writeToDriver(rawaccel::mouse_modifier* modifier); + rawaccel::mouse_modifier* readFromDriver(); +}; \ No newline at end of file diff --git a/wrapper/wrapper_writer.cpp b/wrapper/wrapper_writer.cpp deleted file mode 100644 index da7c9bf..0000000 --- a/wrapper/wrapper_writer.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -#include -#include "wrapper_writer.hpp" - -void writer::writeToDriver(rawaccel::mouse_modifier* modifier) -{ - rawaccel::write(*modifier); -} diff --git a/wrapper/wrapper_writer.hpp b/wrapper/wrapper_writer.hpp deleted file mode 100644 index dcbef10..0000000 --- a/wrapper/wrapper_writer.hpp +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#include - -struct writer { - void writeToDriver(rawaccel::mouse_modifier* modifier); -}; \ No newline at end of file -- cgit v1.2.3 From 1777a3decf6acdb836580f2c7cfe055aaee94b3e Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 3 Aug 2020 19:12:04 -0700 Subject: Read from driver to get graph values --- wrapper/wrapper.cpp | 1 + wrapper/wrapper_io.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'wrapper') diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index 38ac481..e29f08d 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -59,5 +59,6 @@ void ManagedAccel::WriteToDriver() void ManagedAccel::ReadFromDriver() { + delete modifier_instance; modifier_instance = driverWriter->readFromDriver(); } diff --git a/wrapper/wrapper_io.cpp b/wrapper/wrapper_io.cpp index be3bd58..4284d60 100644 --- a/wrapper/wrapper_io.cpp +++ b/wrapper/wrapper_io.cpp @@ -11,5 +11,8 @@ void wrapper_io::writeToDriver(rawaccel::mouse_modifier* modifier) rawaccel::mouse_modifier* wrapper_io::readFromDriver() { rawaccel::mouse_modifier modifier = rawaccel::read(); - return &(modifier); + rawaccel::mouse_modifier* mod_pnt = (rawaccel::mouse_modifier*)malloc(sizeof(rawaccel::mouse_modifier)); + memcpy(mod_pnt, &modifier, sizeof(rawaccel::mouse_modifier)); + + return mod_pnt; } -- cgit v1.2.3