summaryrefslogtreecommitdiff
path: root/wrapper
diff options
context:
space:
mode:
Diffstat (limited to 'wrapper')
-rw-r--r--wrapper/wrapper.cpp13
-rw-r--r--wrapper/wrapper.hpp10
-rw-r--r--wrapper/wrapper.vcxproj4
-rw-r--r--wrapper/wrapper.vcxproj.filters4
-rw-r--r--wrapper/wrapper_io.cpp15
-rw-r--r--wrapper/wrapper_io.hpp (renamed from wrapper/wrapper_writer.hpp)3
-rw-r--r--wrapper/wrapper_writer.cpp9
7 files changed, 37 insertions, 21 deletions
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 <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..be3bd58
--- /dev/null
+++ b/wrapper/wrapper_io.cpp
@@ -0,0 +1,15 @@
+#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();
+ return &(modifier);
+}
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);
-}