summaryrefslogtreecommitdiffhomepage
path: root/proto-ft
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2021-09-03 23:32:05 +0200
committerStanislaw Halik <sthalik@misaki.pl>2021-09-03 23:32:11 +0200
commit0ede90f736caffdf600583a7826fc5d0c76c91c9 (patch)
treec20c763a6a8a27ac968101410332f2546e299722 /proto-ft
parent4478909bbf018e814591077dfb98eb9b785eeadf (diff)
proto/freetrack: fix broken interface selection
Diffstat (limited to 'proto-ft')
-rw-r--r--proto-ft/ftnoir_protocol_ft.cpp13
-rw-r--r--proto-ft/ftnoir_protocol_ft.h2
-rw-r--r--proto-ft/lang/nl_NL.ts4
-rw-r--r--proto-ft/lang/ru_RU.ts4
-rw-r--r--proto-ft/lang/stub.ts4
-rw-r--r--proto-ft/lang/zh_CN.ts4
6 files changed, 27 insertions, 4 deletions
diff --git a/proto-ft/ftnoir_protocol_ft.cpp b/proto-ft/ftnoir_protocol_ft.cpp
index 69a3c23f..09e71911 100644
--- a/proto-ft/ftnoir_protocol_ft.cpp
+++ b/proto-ft/ftnoir_protocol_ft.cpp
@@ -159,10 +159,17 @@ module_status freetrack::set_protocols()
QSettings settings_npclient("NaturalPoint", "NATURALPOINT\\NPClient Location");
QString location = *s.custom_location_pathname;
- const auto selection = *s.used_interface;
- bool use_freetrack = ~selection & settings::enable_freetrack,
- use_npclient = ~selection & settings::enable_npclient;
+ bool use_freetrack, use_npclient;
+ switch (*s.used_interface)
+ {
+ case settings::enable_npclient: use_freetrack = false; break;
+ case settings::enable_freetrack: use_npclient = false; break;
+ case settings::enable_both: use_freetrack = true; use_npclient = true; break;
+ default:
+ return error(tr("proto/freetrack: wrong interface selection '%1'")
+ .arg(*s.used_interface));
+ }
if (!s.use_custom_location || s.custom_location_pathname->isEmpty() || !QDir{s.custom_location_pathname}.exists())
location = program_dir;
diff --git a/proto-ft/ftnoir_protocol_ft.h b/proto-ft/ftnoir_protocol_ft.h
index 4b7ab89e..a07747d9 100644
--- a/proto-ft/ftnoir_protocol_ft.h
+++ b/proto-ft/ftnoir_protocol_ft.h
@@ -27,7 +27,7 @@
using namespace options;
struct settings : opts {
- enum enable_status { enable_both, enable_freetrack, enable_npclient, };
+ enum enable_status : int { enable_both, enable_freetrack, enable_npclient, };
value<int> used_interface{b, "used-interfaces", (int)enable_both};
value<bool> ephemeral_library_location{b, "ephemeral-library-location", false};
value<bool> use_custom_location{b, "use-custom-location", false};
diff --git a/proto-ft/lang/nl_NL.ts b/proto-ft/lang/nl_NL.ts
index f8408198..c8603973 100644
--- a/proto-ft/lang/nl_NL.ts
+++ b/proto-ft/lang/nl_NL.ts
@@ -91,6 +91,10 @@ Starting tracking will again overwrite the DLL locations.</source>
<source>Can&apos;t copy library to selected custom location &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>proto/freetrack: wrong interface selection &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>freetrackDll</name>
diff --git a/proto-ft/lang/ru_RU.ts b/proto-ft/lang/ru_RU.ts
index c934e0f7..a6433fd5 100644
--- a/proto-ft/lang/ru_RU.ts
+++ b/proto-ft/lang/ru_RU.ts
@@ -93,6 +93,10 @@ Starting tracking will again overwrite the DLL locations.</source>
<source>Can&apos;t copy library to selected custom location &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>proto/freetrack: wrong interface selection &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>freetrackDll</name>
diff --git a/proto-ft/lang/stub.ts b/proto-ft/lang/stub.ts
index e15244b9..ac88d895 100644
--- a/proto-ft/lang/stub.ts
+++ b/proto-ft/lang/stub.ts
@@ -91,6 +91,10 @@ Starting tracking will again overwrite the DLL locations.</source>
<source>Can&apos;t copy library to selected custom location &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>proto/freetrack: wrong interface selection &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>freetrackDll</name>
diff --git a/proto-ft/lang/zh_CN.ts b/proto-ft/lang/zh_CN.ts
index 2425f48b..2fd6bcd7 100644
--- a/proto-ft/lang/zh_CN.ts
+++ b/proto-ft/lang/zh_CN.ts
@@ -91,6 +91,10 @@ Starting tracking will again overwrite the DLL locations.</source>
<source>Can&apos;t copy library to selected custom location &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>proto/freetrack: wrong interface selection &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>freetrackDll</name>