From b3ed8fd4e4fcad0b749126dee62588260d74b106 Mon Sep 17 00:00:00 2001
From: a1xd <68629610+a1xd@users.noreply.github.com>
Date: Fri, 31 Jul 2020 01:37:41 -0400
Subject: add more tweaks for st-refactor
---
common/accel-base.hpp | 16 +++++++++-------
common/accel-classic.hpp | 4 ++--
common/accel-linear.hpp | 8 ++------
common/accel-logarithmic.hpp | 2 +-
common/accel-natural.hpp | 4 ++--
common/accel-noaccel.hpp | 3 +--
common/accel-power.hpp | 4 ++--
common/accel-sigmoid.hpp | 4 ++--
common/external/tagged-union-single.h | 2 +-
common/rawaccel-userspace.hpp | 2 +-
common/rawaccel.hpp | 28 +++++++++++-----------------
11 files changed, 34 insertions(+), 43 deletions(-)
diff --git a/common/accel-base.hpp b/common/accel-base.hpp
index e87b463..da2c96b 100644
--- a/common/accel-base.hpp
+++ b/common/accel-base.hpp
@@ -31,18 +31,20 @@ namespace rawaccel {
/// Generally, the acceleration ramp rate.
double speed_coeff = 0;
- ///
- /// Initializes a new instance of the struct.
- ///
- ///
- ///
- accel_base(accel_args args) {
+ accel_base(const accel_args& args) {
verify(args);
speed_coeff = args.accel;
weight = args.weight;
}
+ ///
+ /// Default transformation of speed -> acceleration.
+ ///
+ inline double accelerate(double speed) const {
+ return speed_coeff * speed;
+ }
+
///
/// Default transformation of acceleration -> mouse input multipliers.
///
@@ -57,7 +59,7 @@ namespace rawaccel {
/// Verifies arguments as valid. Errors if not.
///
/// Arguments to verified.
- void verify(accel_args args) const {
+ void verify(const accel_args& args) const {
if (args.accel < 0) error("accel can not be negative, use a negative weight to compensate");
}
diff --git a/common/accel-classic.hpp b/common/accel-classic.hpp
index e2eb494..1a2adca 100644
--- a/common/accel-classic.hpp
+++ b/common/accel-classic.hpp
@@ -10,7 +10,7 @@ namespace rawaccel {
struct accel_classic : accel_base {
double exponent;
- accel_classic(accel_args args) : accel_base(args) {
+ accel_classic(const accel_args& args) : accel_base(args) {
verify(args);
exponent = args.exponent - 1;
@@ -21,7 +21,7 @@ namespace rawaccel {
return pow(speed_coeff * speed, exponent);
}
- void verify(accel_args args) const {
+ void verify(const accel_args& args) const {
if (args.exponent <= 1) error("exponent must be greater than 1");
}
};
diff --git a/common/accel-linear.hpp b/common/accel-linear.hpp
index 28150a8..5cbb7c6 100644
--- a/common/accel-linear.hpp
+++ b/common/accel-linear.hpp
@@ -5,14 +5,10 @@
namespace rawaccel {
/// Struct to hold linear acceleration implementation.
- struct accel_linear : accel_base {
+ struct accel_linear : accel_base {
- accel_linear(accel_args args) : accel_base(args) {}
+ using accel_base::accel_base;
- inline double accelerate(double speed) const {
- //f(x) = mx
- return speed_coeff * speed;
- }
};
}
diff --git a/common/accel-logarithmic.hpp b/common/accel-logarithmic.hpp
index b628327..928eda9 100644
--- a/common/accel-logarithmic.hpp
+++ b/common/accel-logarithmic.hpp
@@ -9,7 +9,7 @@ namespace rawaccel {
/// Struct to hold logarithmic acceleration implementation.
struct accel_logarithmic : accel_base {
- accel_logarithmic(accel_args args) : accel_base(args) {}
+ using accel_base::accel_base;
inline double accelerate(double speed) const {
//f(x) = log(m*x+1)
diff --git a/common/accel-natural.hpp b/common/accel-natural.hpp
index 6ccb193..c87fda8 100644
--- a/common/accel-natural.hpp
+++ b/common/accel-natural.hpp
@@ -11,7 +11,7 @@ namespace rawaccel {
double limit = 1;
double midpoint = 0;
- accel_natural(accel_args args) : accel_base(args) {
+ accel_natural(const accel_args& args) : accel_base(args) {
verify(args);
limit = args.limit - 1;
@@ -23,7 +23,7 @@ namespace rawaccel {
return limit - (limit * exp(-speed_coeff * speed));
}
- void verify(accel_args args) const {
+ void verify(const accel_args& args) const {
if (args.limit <= 1) error("limit must be greater than 1");
}
};
diff --git a/common/accel-noaccel.hpp b/common/accel-noaccel.hpp
index 151002a..b7f730b 100644
--- a/common/accel-noaccel.hpp
+++ b/common/accel-noaccel.hpp
@@ -7,9 +7,8 @@ namespace rawaccel {
/// Struct to hold acceleration implementation which applies no acceleration.
struct accel_noaccel : accel_base {
- accel_noaccel(accel_args args) : accel_base(args) {}
+ accel_noaccel(const accel_args&) : accel_base() {}
- inline double accelerate(double) const { return 0; }
};
}
diff --git a/common/accel-power.hpp b/common/accel-power.hpp
index d96cb96..7f4c220 100644
--- a/common/accel-power.hpp
+++ b/common/accel-power.hpp
@@ -11,7 +11,7 @@ namespace rawaccel {
double exponent;
double offset;
- accel_power(accel_args args) {
+ accel_power(const accel_args& args) {
verify(args);
weight = args.weight;
@@ -32,7 +32,7 @@ namespace rawaccel {
};
}
- void verify(accel_args args) const {
+ void verify(const accel_args& args) const {
if (args.power_scale <= 0) error("scale must be positive");
if (args.exponent <= 0) error("exponent must be greater than 0");
}
diff --git a/common/accel-sigmoid.hpp b/common/accel-sigmoid.hpp
index e992e0c..7cfa6c4 100644
--- a/common/accel-sigmoid.hpp
+++ b/common/accel-sigmoid.hpp
@@ -11,7 +11,7 @@ namespace rawaccel {
double limit = 1;
double midpoint = 0;
- accel_sigmoid(accel_args args) : accel_base(args) {
+ accel_sigmoid(const accel_args& args) : accel_base(args) {
verify(args);
limit = args.limit - 1;
@@ -23,7 +23,7 @@ namespace rawaccel {
return limit / (exp(-speed_coeff * (speed - midpoint)) + 1);
}
- void verify(accel_args args) const {
+ void verify(const accel_args& args) const {
if (args.limit <= 1) error("exponent must be greater than 1");
if (args.midpoint < 0) error("midpoint must not be negative");
}
diff --git a/common/external/tagged-union-single.h b/common/external/tagged-union-single.h
index bcfc1cf..3353325 100644
--- a/common/external/tagged-union-single.h
+++ b/common/external/tagged-union-single.h
@@ -137,7 +137,7 @@ struct tagged_union {
int tag = 0;
struct storage_t {
- alignas(max_align_of) char bytes[max_size_of];
+ alignas(max_align_of) char bytes[max_size_of] = "";
template
inline constexpr T& as() {
diff --git a/common/rawaccel-userspace.hpp b/common/rawaccel-userspace.hpp
index 6a79d23..c80262c 100644
--- a/common/rawaccel-userspace.hpp
+++ b/common/rawaccel-userspace.hpp
@@ -4,7 +4,7 @@
#include "external/clipp.h"
-#include
+#include "accel-error.hpp"
#include "rawaccel.hpp"
namespace rawaccel {
diff --git a/common/rawaccel.hpp b/common/rawaccel.hpp
index 7be37c2..59a0360 100644
--- a/common/rawaccel.hpp
+++ b/common/rawaccel.hpp
@@ -3,7 +3,6 @@
#define _USE_MATH_DEFINES
#include
-#include "vec2.h"
#include "x64-util.hpp"
#include "external/tagged-union-single.h"
@@ -104,8 +103,9 @@ namespace rawaccel {
/// The object which sets a min and max for the acceleration scale.
vec2 clamp;
- accel_function(accel_fn_args args) {
- verify(args);
+ accel_function(const accel_fn_args& args) {
+ if (args.time_min <= 0) error("min time must be positive");
+ if (args.acc_args.offset < 0) error("offset must not be negative");
accel.tag = args.accel_mode;
accel.visit([&](auto& impl){ impl = { args.acc_args }; });
@@ -116,15 +116,6 @@ namespace rawaccel {
clamp.y = accel_scale_clamp(args.cap.y);
}
- ///
- /// Verifies acceleration arguments, via visitor function to accel_impl_t
- ///
- /// Arguments to be verified
- void verify(accel_fn_args args) {
- if (args.time_min <= 0) error("min time must be positive");
- if (args.acc_args.offset < 0) error("offset must not be negative");
- }
-
///
/// Applies weighted acceleration to given input for given time period.
///
@@ -164,19 +155,22 @@ namespace rawaccel {
accel_function accel_fn;
vec2d sensitivity = { 1, 1 };
- mouse_modifier(modifier_args args)
+ mouse_modifier(const modifier_args& args)
: accel_fn(args.acc_fn_args)
{
apply_rotate = args.degrees != 0;
+
if (apply_rotate) rotate = rotator(args.degrees);
else rotate = rotator();
- apply_accel = args.acc_fn_args.acc_args.accel != 0 &&
+ apply_accel = args.acc_fn_args.accel_mode != 0 &&
args.acc_fn_args.accel_mode != accel_impl_t::id;
- if (args.sens.x == 0) args.sens.x = 1;
- if (args.sens.y == 0) args.sens.y = 1;
- sensitivity = args.sens;
+ if (args.sens.x == 0) sensitivity.x = 1;
+ else sensitivity.x = args.sens.x;
+
+ if (args.sens.y == 0) sensitivity.y = 1;
+ else sensitivity.y = args.sens.y;
}
///
--
cgit v1.2.3