From de6b18db8226650cee9726c4694931bdc4b89fad Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Sun, 10 Jan 2021 23:49:28 -0800 Subject: Implement direcitonality UI --- wrapper/wrapper.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'wrapper/wrapper.cpp') diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index fcbf2e8..6ee8150 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -50,6 +50,14 @@ public value struct Vec2 T y; }; +[JsonObject(ItemRequired = Required::Always)] +[StructLayout(LayoutKind::Sequential)] +public value struct DomainArgs +{ + Vec2 domainXY; + double lpNorm; +}; + [JsonObject(ItemRequired = Required::Always)] [StructLayout(LayoutKind::Sequential)] public ref struct DriverSettings @@ -78,6 +86,12 @@ public ref struct DriverSettings [JsonProperty(Required = Required::Default)] double minimumTime; + [JsonProperty("Stretches domain for horizontal vs vertical inputs")] + DomainArgs domainArgs; + + [JsonProperty("Stretches accel range for horizontal vs vertical inputs")] + Vec2 rangeXY; + bool ShouldSerializeminimumTime() { return minimumTime > 0 && minimumTime != DEFAULT_TIME_MIN; -- cgit v1.2.3 From 65e10856e41dd6c75303808d7de0c322bac38df6 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 11 Jan 2021 01:17:14 -0800 Subject: Driver works --- wrapper/wrapper.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'wrapper/wrapper.cpp') diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index 6ee8150..fdde5a4 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -83,15 +83,15 @@ public ref struct DriverSettings [JsonProperty("Negative directional multipliers", Required = Required::Default)] Vec2 directionalMultipliers; - [JsonProperty(Required = Required::Default)] - double minimumTime; - [JsonProperty("Stretches domain for horizontal vs vertical inputs")] DomainArgs domainArgs; [JsonProperty("Stretches accel range for horizontal vs vertical inputs")] Vec2 rangeXY; + [JsonProperty(Required = Required::Default)] + double minimumTime; + bool ShouldSerializeminimumTime() { return minimumTime > 0 && minimumTime != DEFAULT_TIME_MIN; -- cgit v1.2.3 From 6311b5679ea75c58b362332c58d526a931e24a66 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Wed, 20 Jan 2021 19:09:18 -0800 Subject: Guard against bad anisotropy args --- wrapper/wrapper.cpp | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'wrapper/wrapper.cpp') diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index 7fd0a92..46e7e3a 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -197,16 +197,40 @@ error_list_t^ get_accel_errors(AccelMode mode, AccelArgs^ args) return error_list; } +error_list_t^ get_other_errors(DriverSettings^ settings) +{ + auto error_list = gcnew error_list_t(); + + if (settings->rangeXY.x <= 0 || settings->rangeXY.y <= 0) + { + error_list->Add("range values must be positive"); + } + + if (settings->domainArgs.domainXY.x <= 0 || settings->domainArgs.domainXY.y <= 0) + { + error_list->Add("domain values must be positive"); + } + + if (settings->domainArgs.lpNorm <= 0) + { + error_list->Add("lp norm must be positive"); + } + + return error_list; +} + public ref class SettingsErrors { public: error_list_t^ x; error_list_t^ y; + error_list_t^ other; bool Empty() { return (x == nullptr || x->Count == 0) && - (y == nullptr || y->Count == 0); + (y == nullptr || y->Count == 0) && + (other == nullptr || other->Count == 0); } virtual String^ ToString() override @@ -233,6 +257,11 @@ public: sb->AppendFormat("y: {0}\n", str); } } + + for each (String ^ str in other) + { + sb->AppendLine(str); + } return sb->ToString(); } @@ -286,9 +315,13 @@ public ref struct DriverInterop errors->y = get_accel_errors(args->modes.y, args->args.y); } + errors->other = get_other_errors(args); + return errors; } + + static error_list_t^ GetAccelErrors(AccelMode mode, AccelArgs^ args) { return get_accel_errors(mode, args); -- cgit v1.2.3