From d868fe150fde91927c96deaed663acbf165b39f1 Mon Sep 17 00:00:00 2001
From: a1xd <68629610+a1xd@users.noreply.github.com>
Date: Mon, 28 Sep 2020 02:26:29 -0400
Subject: update build config
---
wrapper/wrapper.vcxproj | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
(limited to 'wrapper')
diff --git a/wrapper/wrapper.vcxproj b/wrapper/wrapper.vcxproj
index 37060ad..6c85a57 100644
--- a/wrapper/wrapper.vcxproj
+++ b/wrapper/wrapper.vcxproj
@@ -66,6 +66,10 @@
+
+ copy /Y "$(TargetPath)" "$(SolutionDir)signed\$(TargetFileName)" &
+copy /Y "$(TargetDir)Newtonsoft.Json.dll" "$(SolutionDir)signed\Newtonsoft.Json.dll"
+
@@ -75,7 +79,9 @@
-
+
+ ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll
+
--
cgit v1.2.3
From 0d663cd6729160c610e3c6374f71097f8bb2af8b Mon Sep 17 00:00:00 2001
From: a1xd <68629610+a1xd@users.noreply.github.com>
Date: Mon, 28 Sep 2020 10:02:04 -0400
Subject: disallow negative weight with non-additive types
---
wrapper/wrapper.cpp | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
(limited to 'wrapper')
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp
index 72ebdc7..3d77fc1 100644
--- a/wrapper/wrapper.cpp
+++ b/wrapper/wrapper.cpp
@@ -137,9 +137,12 @@ error_list_t^ get_accel_errors(AccelMode mode, AccelArgs^ args)
if (args->acceleration > 1 && is_mode(am::natural, am::naturalgain))
error_list->Add("acceleration can not be greater than 1");
- else if (args->acceleration < 0)
- error_list->Add("acceleration can not be negative, use a negative weight to compensate");
-
+ else if (args->acceleration < 0) {
+ bool additive = m < am::power;
+ if (additive) error_list->Add("acceleration can not be negative, use a negative weight to compensate");
+ else error_list->Add("acceleration can not be negative");
+ }
+
if (args->scale <= 0)
error_list->Add("scale must be positive");
--
cgit v1.2.3
From e10e5a26d3d3576174285414ea805e5177742821 Mon Sep 17 00:00:00 2001
From: a1xd <68629610+a1xd@users.noreply.github.com>
Date: Tue, 29 Sep 2020 07:26:05 -0400
Subject: add wrapper optimization
---
wrapper/wrapper.cpp | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
(limited to 'wrapper')
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp
index 3d77fc1..ebc4a2e 100644
--- a/wrapper/wrapper.cpp
+++ b/wrapper/wrapper.cpp
@@ -82,13 +82,12 @@ void as_native(DriverSettings^ managed_args, NativeSettingsFunc fn)
if (Marshal::SizeOf(managed_args) != sizeof(settings))
throw gcnew InvalidOperationException("setting sizes differ");
#endif
- IntPtr unmanagedHandle = Marshal::AllocHGlobal(sizeof(settings));
- Marshal::StructureToPtr(managed_args, unmanagedHandle, false);
- fn(*reinterpret_cast(unmanagedHandle.ToPointer()));
+ settings args;
+ Marshal::StructureToPtr(managed_args, (IntPtr)&args, false);
+ fn(args);
if constexpr (!std::is_invocable_v) {
- Marshal::PtrToStructure(unmanagedHandle, managed_args);
+ Marshal::PtrToStructure((IntPtr)&args, managed_args);
}
- Marshal::FreeHGlobal(unmanagedHandle);
}
DriverSettings^ get_default()
--
cgit v1.2.3
From 9bb5616061d823fa3632b0d99ba177ac2de74ade Mon Sep 17 00:00:00 2001
From: a1xd <68629610+a1xd@users.noreply.github.com>
Date: Tue, 29 Sep 2020 07:43:50 -0400
Subject: set invisible args to default values before write
---
wrapper/wrapper.cpp | 1 +
1 file changed, 1 insertion(+)
(limited to 'wrapper')
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp
index ebc4a2e..c5834d9 100644
--- a/wrapper/wrapper.cpp
+++ b/wrapper/wrapper.cpp
@@ -174,6 +174,7 @@ public:
public ref struct DriverInterop
{
literal double WriteDelayMs = WRITE_DELAY;
+ static initonly AccelArgs^ DefaultArgs = get_default()->args.x;
static DriverSettings^ GetActiveSettings()
{
--
cgit v1.2.3
From 7287427f1a4690e2b420a5dec3187d4b9e1cb69f Mon Sep 17 00:00:00 2001
From: a1xd <68629610+a1xd@users.noreply.github.com>
Date: Tue, 29 Sep 2020 15:41:46 -0400
Subject: change scale cap key
---
wrapper/wrapper.cpp | 1 +
1 file changed, 1 insertion(+)
(limited to 'wrapper')
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp
index c5834d9..c665bed 100644
--- a/wrapper/wrapper.cpp
+++ b/wrapper/wrapper.cpp
@@ -30,6 +30,7 @@ public value struct AccelArgs
double exponent;
double midpoint;
double weight;
+ [JsonProperty("legacyCap")]
double scaleCap;
double gainCap;
};
--
cgit v1.2.3