From 5b659e1cfbc4b8fbbd2f2bf41dc716929976c77d Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Sat, 28 Aug 2021 01:19:18 -0400 Subject: add per-device configuration adds input and [in, out] cap for classic mode adds input cap for power mode change wrapper/input, now gets useful device names change (now dev specific) dpi to adjust sensitivity change y sensitivity to y/x ratio remove spaced LUTs grapher and convert do not build --- common/rawaccel-base.hpp | 84 ++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 50 deletions(-) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index c1b2db3..ce6c103 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -13,97 +13,81 @@ namespace rawaccel { inline constexpr milliseconds WRITE_DELAY = 1000; + inline constexpr size_t POOL_SIZE = 1024 * 512; + inline constexpr size_t MAX_DEV_ID_LEN = 200; + inline constexpr size_t MAX_NAME_LEN = 256; - inline constexpr size_t SPACED_LUT_CAPACITY = 1025; - inline constexpr size_t ARB_LUT_CAPACITY = SPACED_LUT_CAPACITY / 4; + inline constexpr size_t LUT_RAW_DATA_CAPACITY = 258; + inline constexpr size_t LUT_POINTS_CAPACITY = LUT_RAW_DATA_CAPACITY / 2; inline constexpr double MAX_NORM = 16; inline constexpr double PI = 3.14159265358979323846; + inline constexpr bool LEGACY = 0; + inline constexpr bool GAIN = 1; + enum class accel_mode { classic, jump, natural, motivity, power, - arb_lookup, + lookup, noaccel }; - enum class spaced_lut_mode { - off, - binlog, - linear - }; - - struct spaced_lut_args { - spaced_lut_mode mode = spaced_lut_mode::off; - bool transfer = true; - unsigned char partitions = 2; - short num_elements = 8; - double start = 0; - double stop = 8; - }; - - struct table_args { - bool velocity = true; - int length = 0; - vec2 data[ARB_LUT_CAPACITY] = {}; + enum class classic_cap_mode { + io, in, out }; struct accel_args { accel_mode mode = accel_mode::noaccel; - bool legacy = false; + bool gain = 1; double offset = 0; - double cap = 1.5; - double accel_classic = 0.005; + double acceleration = 0.005; double decay_rate = 0.1; double growth_rate = 1; double motivity = 1.5; - double power = 2; + double exponent_classic = 2; double scale = 1; double weight = 1; - double exponent = 0.05; + double exponent_power = 0.05; double limit = 1.5; double midpoint = 5; double smooth = 0.5; + vec2d cap = { 15, 1.5 }; + classic_cap_mode cap_mode = classic_cap_mode::out; - spaced_lut_args spaced_args; - table_args arb_args; + int length = 0; + mutable float data[LUT_RAW_DATA_CAPACITY] = {}; }; - struct domain_args { - vec2d domain_weights = { 1, 1 }; + + struct profile { + wchar_t name[MAX_NAME_LEN] = L"default"; + + bool whole = true; double lp_norm = 2; - }; + vec2d domain_weights = { 1, 1 }; + vec2d range_weights = { 1, 1 }; + + double sensitivity = 1; + double yx_sens_ratio = 1; + + accel_args accel_x; + accel_args accel_y; - struct settings { - double degrees_rotation = 0; - double degrees_snap = 0; - bool combine_mags = true; - double dpi = 1000; double speed_min = 0; double speed_max = 0; - vec2 argsv; - vec2d sens = { 1, 1 }; vec2d dir_multipliers = { 1, 1 }; - domain_args dom_args = {}; - vec2d range_weights = { 1, 1 }; - milliseconds time_min = DEFAULT_TIME_MIN; - milliseconds time_max = DEFAULT_TIME_MAX; + double degrees_rotation = 0; - bool ignore = false; - wchar_t device_id[MAX_DEV_ID_LEN] = {}; + double degrees_snap = 0; }; - template - inline double apply_weighted(AccelFunc&& f, double x, double w) - { - return 1 + (f(x) - 1) * w; - } } -- cgit v1.2.3 From 6a9272d3af202274dfbced245f0ba20b263fcd8b Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Fri, 3 Sep 2021 18:09:00 -0400 Subject: refactor vec2/math --- common/rawaccel-base.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index ce6c103..8a49681 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -1,6 +1,6 @@ #pragma once -#include "vec2.h" +#include "math-vec2.hpp" namespace rawaccel { using milliseconds = double; @@ -22,7 +22,6 @@ namespace rawaccel { inline constexpr size_t LUT_POINTS_CAPACITY = LUT_RAW_DATA_CAPACITY / 2; inline constexpr double MAX_NORM = 16; - inline constexpr double PI = 3.14159265358979323846; inline constexpr bool LEGACY = 0; inline constexpr bool GAIN = 1; -- cgit v1.2.3 From 39e042a799e7abf0886119ef471eaee261aa02cc Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Mon, 6 Sep 2021 19:16:06 -0400 Subject: increase lut points capacity to 257 remove unneeded constants --- common/rawaccel-base.hpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index 8a49681..258cfef 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -13,12 +13,10 @@ namespace rawaccel { inline constexpr milliseconds WRITE_DELAY = 1000; - inline constexpr size_t POOL_SIZE = 1024 * 512; - inline constexpr size_t MAX_DEV_ID_LEN = 200; inline constexpr size_t MAX_NAME_LEN = 256; - inline constexpr size_t LUT_RAW_DATA_CAPACITY = 258; + inline constexpr size_t LUT_RAW_DATA_CAPACITY = 514; inline constexpr size_t LUT_POINTS_CAPACITY = LUT_RAW_DATA_CAPACITY / 2; inline constexpr double MAX_NORM = 16; -- cgit v1.2.3 From 4197e030c5cfeda5592816c8028152d9b7b599e0 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 16 Sep 2021 13:07:43 -0700 Subject: Remove weight --- common/rawaccel-base.hpp | 1 - 1 file changed, 1 deletion(-) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index 258cfef..d8a089c 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -49,7 +49,6 @@ namespace rawaccel { double motivity = 1.5; double exponent_classic = 2; double scale = 1; - double weight = 1; double exponent_power = 0.05; double limit = 1.5; double midpoint = 5; -- cgit v1.2.3 From 1fd8881608e4ce6ab21fd78d3ebb42a941cd0e93 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 16 Sep 2021 18:33:30 -0700 Subject: Add power start from one --- common/rawaccel-base.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index d8a089c..08d42c6 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -53,6 +53,7 @@ namespace rawaccel { double limit = 1.5; double midpoint = 5; double smooth = 0.5; + bool powerStartFromOne = true; vec2d cap = { 15, 1.5 }; classic_cap_mode cap_mode = classic_cap_mode::out; -- cgit v1.2.3 From 115030165d539fde5440f6232879c7a076dea2ec Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Sat, 18 Sep 2021 05:20:53 -0400 Subject: generalize power start-from-1 starting output is determined by (gain) offset --- common/rawaccel-base.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index 08d42c6..cee1a3e 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -42,7 +42,8 @@ namespace rawaccel { accel_mode mode = accel_mode::noaccel; bool gain = 1; - double offset = 0; + double input_offset = 0; + double output_offset = 0; double acceleration = 0.005; double decay_rate = 0.1; double growth_rate = 1; @@ -53,7 +54,7 @@ namespace rawaccel { double limit = 1.5; double midpoint = 5; double smooth = 0.5; - bool powerStartFromOne = true; + vec2d cap = { 15, 1.5 }; classic_cap_mode cap_mode = classic_cap_mode::out; -- cgit v1.2.3 From 94ce1542b03090b81a4250f7f799895c58ab286c Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Sat, 18 Sep 2021 05:34:59 -0400 Subject: rename directional multipliers changes profile layout --- common/rawaccel-base.hpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index cee1a3e..aefee6d 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -71,20 +71,20 @@ namespace rawaccel { vec2d domain_weights = { 1, 1 }; vec2d range_weights = { 1, 1 }; - double sensitivity = 1; - double yx_sens_ratio = 1; - accel_args accel_x; accel_args accel_y; - double speed_min = 0; - double speed_max = 0; - - vec2d dir_multipliers = { 1, 1 }; + double sensitivity = 1; + double yx_sens_ratio = 1; + double lr_sens_ratio = 1; + double ud_sens_ratio = 1; double degrees_rotation = 0; double degrees_snap = 0; + + double speed_min = 0; + double speed_max = 0; }; -- cgit v1.2.3 From d270a967b606116596114744417a182b3f16218b Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Sat, 18 Sep 2021 05:39:08 -0400 Subject: rename classic_cap_mode --- common/rawaccel-base.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'common/rawaccel-base.hpp') diff --git a/common/rawaccel-base.hpp b/common/rawaccel-base.hpp index aefee6d..91f58dc 100644 --- a/common/rawaccel-base.hpp +++ b/common/rawaccel-base.hpp @@ -34,7 +34,7 @@ namespace rawaccel { noaccel }; - enum class classic_cap_mode { + enum class cap_mode { io, in, out }; @@ -56,7 +56,7 @@ namespace rawaccel { double smooth = 0.5; vec2d cap = { 15, 1.5 }; - classic_cap_mode cap_mode = classic_cap_mode::out; + cap_mode cap_mode = cap_mode::out; int length = 0; mutable float data[LUT_RAW_DATA_CAPACITY] = {}; -- cgit v1.2.3