diff --git a/ScStwLibraries/ScStw.cpp b/ScStwLibraries/ScStw.cpp
index a9bf9bb..bcfa78c 100644
--- a/ScStwLibraries/ScStw.cpp
+++ b/ScStwLibraries/ScStw.cpp
@@ -2,3 +2,40 @@
const char *ScStw::SOCKET_MESSAGE_START_KEY = "";
const char *ScStw::SOCKET_MESSAGE_END_KEY = "";
+
+const QMap ScStw::baseStationSettings = {
+ {"ReadySoundEnable", ScStw::ReadySoundEnableSetting},
+ {"ReadySoundDelay", ScStw::ReadySoundDelaySetting},
+ {"AtYourMarksSoundEnable", ScStw::AtYourMarksSoundEnableSetting},
+ {"AtYourMarksSoundDelay", ScStw::AtYourMarksSoundDelaySetting},
+ {"SoundVolume", ScStw::SoundVolumeSetting}
+};
+
+ScStw::BaseStationSetting ScStw::baseStationSettingFromString(QString s) {
+ if(!ScStw::baseStationSettings.contains(s))
+ return ScStw::InvalidSetting;
+
+ return ScStw::baseStationSettings[s];
+}
+
+QString ScStw::baseStationSettingToString(ScStw::BaseStationSetting s) {
+ for(QString key: ScStw::baseStationSettings.keys()) {
+ if(ScStw::baseStationSettings[key] == s)
+ return key;
+ }
+ return "Invalid";
+}
+
+ScStw::BaseStationSetting ScStw::baseStationSettingfromInt(int i) {
+ if(i < 0 || i > 4)
+ return InvalidSetting;
+ else
+ return BaseStationSetting(i);
+}
+
+ScStw::SignalKey ScStw::signalKeyFromInt(int i) {
+ if(i < 9000 || i > 9003)
+ return InvalidSignal;
+ else
+ return SignalKey(i);
+}
diff --git a/ScStwLibraries/ScStw.hpp b/ScStwLibraries/ScStw.hpp
index 97f98a2..9ca0759 100644
--- a/ScStwLibraries/ScStw.hpp
+++ b/ScStwLibraries/ScStw.hpp
@@ -2,6 +2,7 @@
#define SCSTW_HPP
#include
+#include
class ScStw : public QObject {
Q_OBJECT
@@ -14,6 +15,7 @@ public:
Q_ENUM(RaceState)
enum SignalKey {
+ InvalidSignal = -1,
RaceStateChanged = 9000,
TimersChanged = 9001,
ExtensionsChanged = 9002,
@@ -25,6 +27,7 @@ public:
Q_ENUM(NextStartAction)
enum BaseStationSetting {
+ InvalidSetting = -1,
ReadySoundEnableSetting,
ReadySoundDelaySetting,
AtYourMarksSoundEnableSetting,
@@ -46,6 +49,16 @@ public:
static const char* SOCKET_MESSAGE_START_KEY;
static const char* SOCKET_MESSAGE_END_KEY;
+ static const QMap baseStationSettings;
+
+ static BaseStationSetting baseStationSettingfromInt(int i);
+
+ static BaseStationSetting baseStationSettingFromString(QString s);
+
+ static QString baseStationSettingToString(BaseStationSetting s);
+
+ static SignalKey signalKeyFromInt(int i);
+
private:
ScStw() : QObject(nullptr) {};
};