diff options
Diffstat (limited to 'wrapper')
| -rw-r--r-- | wrapper/wrapper.cpp | 14 | ||||
| -rw-r--r-- | wrapper/wrapper.hpp | 10 | ||||
| -rw-r--r-- | wrapper/wrapper.vcxproj | 4 | ||||
| -rw-r--r-- | wrapper/wrapper.vcxproj.filters | 4 | ||||
| -rw-r--r-- | wrapper/wrapper_io.cpp | 18 | ||||
| -rw-r--r-- | wrapper/wrapper_io.hpp (renamed from wrapper/wrapper_writer.hpp) | 3 | ||||
| -rw-r--r-- | wrapper/wrapper_writer.cpp | 9 |
7 files changed, 41 insertions, 21 deletions
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index bd0574f..e29f08d 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,21 @@ 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() +{ + delete modifier_instance; + 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 <rawaccel.hpp> #include <accel-error.hpp> -#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<modifier_args*>(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 @@ </ItemDefinitionGroup> <ItemGroup> <ClInclude Include="wrapper.hpp" /> - <ClInclude Include="wrapper_writer.hpp" /> + <ClInclude Include="wrapper_io.hpp" /> </ItemGroup> <ItemGroup> <ClCompile Include="wrapper.cpp" /> - <ClCompile Include="wrapper_writer.cpp" /> + <ClCompile Include="wrapper_io.cpp" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> 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 @@ <ClInclude Include="wrapper.hpp"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="wrapper_writer.hpp"> + <ClInclude Include="wrapper_io.hpp"> <Filter>Header Files</Filter> </ClInclude> </ItemGroup> @@ -26,7 +26,7 @@ <ClCompile Include="wrapper.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="wrapper_writer.cpp"> + <ClCompile Include="wrapper_io.cpp"> <Filter>Source Files</Filter> </ClCompile> </ItemGroup> diff --git a/wrapper/wrapper_io.cpp b/wrapper/wrapper_io.cpp new file mode 100644 index 0000000..4284d60 --- /dev/null +++ b/wrapper/wrapper_io.cpp @@ -0,0 +1,18 @@ +#pragma once + +#include <rawaccel-io.hpp> +#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(); + rawaccel::mouse_modifier* mod_pnt = (rawaccel::mouse_modifier*)malloc(sizeof(rawaccel::mouse_modifier)); + memcpy(mod_pnt, &modifier, sizeof(rawaccel::mouse_modifier)); + + return mod_pnt; +} diff --git a/wrapper/wrapper_writer.hpp b/wrapper/wrapper_io.hpp index dcbef10..3427e3f 100644 --- a/wrapper/wrapper_writer.hpp +++ b/wrapper/wrapper_io.hpp @@ -2,6 +2,7 @@ #include <rawaccel.hpp> -struct writer { +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 <rawaccel-io.hpp> -#include "wrapper_writer.hpp" - -void writer::writeToDriver(rawaccel::mouse_modifier* modifier) -{ - rawaccel::write(*modifier); -} |