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 | |
| 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')
| -rw-r--r-- | wrapper/wrapper.cpp | 22 | ||||
| -rw-r--r-- | wrapper/wrapper.hpp | 33 | ||||
| -rw-r--r-- | wrapper/wrapper.vcxproj | 48 | ||||
| -rw-r--r-- | wrapper/wrapper_io.cpp | 12 | ||||
| -rw-r--r-- | wrapper/wrapper_io.hpp | 8 |
5 files changed, 27 insertions, 96 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); } diff --git a/wrapper/wrapper.hpp b/wrapper/wrapper.hpp index 3643eb5..45647e8 100644 --- a/wrapper/wrapper.hpp +++ b/wrapper/wrapper.hpp @@ -1,43 +1,33 @@ #pragma once -#include <iostream> - #include "wrapper_io.hpp" -using namespace rawaccel; using namespace System; public ref class ManagedAccel { -protected: - mouse_modifier* modifier_instance; - wrapper_io* driverWriter; + mouse_modifier* const modifier_instance; + public: - ManagedAccel(mouse_modifier* accel) - : modifier_instance(accel) - { - driverWriter = new wrapper_io(); - } - ManagedAccel(System::IntPtr args) - { - modifier_instance = new mouse_modifier(*reinterpret_cast<modifier_args*>(args.ToPointer())); - driverWriter = new wrapper_io(); - } + ManagedAccel(System::IntPtr args) : + modifier_instance(new mouse_modifier(*reinterpret_cast<modifier_args*>(args.ToPointer()))) + {} // Empty constructor needed for serialization - ManagedAccel() {} + ManagedAccel() : modifier_instance(nullptr) {} virtual ~ManagedAccel() { - if (modifier_instance!= nullptr) + if (modifier_instance != nullptr) { delete modifier_instance; } } + !ManagedAccel() { - if (modifier_instance!= nullptr) + if (modifier_instance != nullptr) { delete modifier_instance; } @@ -60,10 +50,6 @@ public: property double Midpoint { double get(); } property double MinimumTime { double get(); } property double PowerScale { double get(); } - mouse_modifier* GetInstance() - { - return modifier_instance; - } Tuple<double, double>^ Accelerate(int x, int y, double time); @@ -82,7 +68,6 @@ public: double midpoint, double gain_cap); - void WriteToDriver(); void ReadFromDriver(); diff --git a/wrapper/wrapper.vcxproj b/wrapper/wrapper.vcxproj index 3407d6d..0ea90de 100644 --- a/wrapper/wrapper.vcxproj +++ b/wrapper/wrapper.vcxproj @@ -1,14 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> <Platform>x64</Platform> @@ -27,20 +19,6 @@ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v142</PlatformToolset> - <CLRSupport>true</CLRSupport> - <CharacterSet>Unicode</CharacterSet> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v142</PlatformToolset> - <CLRSupport>true</CLRSupport> - <CharacterSet>Unicode</CharacterSet> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>DynamicLibrary</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> @@ -61,12 +39,6 @@ <ImportGroup Label="Shared"> <Import Project="..\common\common.vcxitems" Label="Shared" /> </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -85,26 +57,6 @@ <AdditionalDependencies /> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <LanguageStandard>stdcpp17</LanguageStandard> - </ClCompile> - <Link> - <AdditionalDependencies /> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <LanguageStandard>stdcpp17</LanguageStandard> - </ClCompile> - <Link> - <AdditionalDependencies /> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> diff --git a/wrapper/wrapper_io.cpp b/wrapper/wrapper_io.cpp index 4284d60..b5727ef 100644 --- a/wrapper/wrapper_io.cpp +++ b/wrapper/wrapper_io.cpp @@ -3,16 +3,12 @@ #include <rawaccel-io.hpp> #include "wrapper_io.hpp" -void wrapper_io::writeToDriver(rawaccel::mouse_modifier* modifier) +void wrapper_io::writeToDriver(const mouse_modifier& modifier) { - rawaccel::write(*modifier); + write(modifier); } -rawaccel::mouse_modifier* wrapper_io::readFromDriver() +void wrapper_io::readFromDriver(mouse_modifier& modifier) { - 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; + modifier = read(); } diff --git a/wrapper/wrapper_io.hpp b/wrapper/wrapper_io.hpp index 3427e3f..1873f75 100644 --- a/wrapper/wrapper_io.hpp +++ b/wrapper/wrapper_io.hpp @@ -2,7 +2,9 @@ #include <rawaccel.hpp> +using namespace rawaccel; + struct wrapper_io { - void writeToDriver(rawaccel::mouse_modifier* modifier); - rawaccel::mouse_modifier* readFromDriver(); -};
\ No newline at end of file + static void writeToDriver(const mouse_modifier& modifier); + static void readFromDriver(mouse_modifier& modifier); +}; |