summaryrefslogtreecommitdiff
path: root/wrapper/wrapper.cpp
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2021-01-20 19:09:18 -0800
committerJacob Palecki <[email protected]>2021-01-20 19:09:18 -0800
commit6311b5679ea75c58b362332c58d526a931e24a66 (patch)
tree60dd7c67a0f163457da2519b42553382a39a591b /wrapper/wrapper.cpp
parentBump version to 1.4 (diff)
downloadrawaccel-6311b5679ea75c58b362332c58d526a931e24a66.tar.xz
rawaccel-6311b5679ea75c58b362332c58d526a931e24a66.zip
Guard against bad anisotropy args
Diffstat (limited to 'wrapper/wrapper.cpp')
-rw-r--r--wrapper/wrapper.cpp35
1 files changed, 34 insertions, 1 deletions
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);