/** * Settings for TetraRadio * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-04-07 */ #include "settings.h" #include #include #include namespace HighLevelArchitecture { class NGLSettingsClass : public NGL::Settings { public: NGLSettingsClass() : NGL::Settings(s_iniFile.isEmpty() ? NGL::findProjectConfigFile() : s_iniFile) {} static void setIniFile(const QString &fn) { s_iniFile = fn; } static QString s_iniFile; }; QString NGLSettingsClass::s_iniFile; Q_GLOBAL_STATIC(NGLSettingsClass, s) //----------------------------------------------------------------------------- NGL::Settings *Settings::settings() { return s(); } //----------------------------------------------------------------------------- void Settings::setIniFile(const QString &ini) { NGLSettingsClass::setIniFile(ini); } QString Settings::federationName() { return s()->settings()->value(QLatin1String("hla/FederationName"), QLatin1String("22")).toString(); } ngs::IObserver::ProtocolType Settings::hlaProtocol() { QString protocol = s()->settings()->value(QLatin1String("hla/Protocol"), QLatin1String("HLA")).toString().toUpper(); if (protocol == QLatin1String("HLA")) return ngs::IObserver::HLA; if (protocol == QLatin1String("DIS")) return ngs::IObserver::DIS; // default CORBANOTIFY return ngs::IObserver::CORBANOTIFY; } quint16 Settings::siteId() { return s()->settings()->value(QLatin1String("hla/SiteId"), 201).toInt(); } quint16 Settings::applicationId() { return s()->settings()->value(QLatin1String("hla/ApplicationId"), 100).toInt(); } int Settings::guezHitGraceTimeMSecs() { return s()->settings()->value(QLatin1String("hla/guezHitGraceTimeMSecs"), 1000).toInt(); } QString Settings::fomIdentifier() { return s()->settings()->value(QLatin1String("hla/FomIdentifier"), QLatin1String("Saab")).toString(); } QString Settings::rtiIdentifier() { return s()->settings()->value(QLatin1String("hla/RtiIdentifier"), QLatin1String("MAK")).toString(); } QString Settings::swConfFileName() { return s()->settings()->value(QLatin1String("hla/SwConfFileName"), QLatin1String("swconf.cfg")).toString(); } quint16 Settings::webSocketListenPort() { // TODO return s()->settings()->value(QLatin1String("hla/webSocketListenPort"), 12347).toInt(); } quint16 Settings::hlaPlayerIdIDT() { return s()->settings()->value(QLatin1String("hla/PlayerIdIDT"), 32001).toUInt(); } quint16 Settings::hlaPlayerIdExcon() { return s()->settings()->value(QLatin1String("hla/PlayerIdExcon"), 32002).toUInt(); } QByteArray Settings::hlaLicenseServer() { QByteArray ba = s()->settings()->value(QLatin1String("hla/LicenseServer"), QLatin1String("@192.168.99.100")).toByteArray(); if (!ba.contains('@')) ba.prepend('@'); return ba; } Settings::Orientation Settings::spatialStructOrientation() { Orientation orientation; orientation.phi = s()->settings()->value(QLatin1String("hla/SpatialStructOrientation/Phi" ), 3.138309f).toFloat(); orientation.psi = s()->settings()->value(QLatin1String("hla/SpatialStructOrientation/Psi" ), 2.446645f).toFloat(); orientation.theta = s()->settings()->value(QLatin1String("hla/SpatialStructOrientation/Theta"), -0.879588f).toFloat(); return orientation; } QVector Settings::socketDataList() { int size = s()->settings()->beginReadArray(QLatin1String("hla/SocketReaders")); QVector list; list.reserve(size); for (int i = 0; i < size; ++i) { SocketData sd; s()->settings()->setArrayIndex(i); sd.port = s()->settings()->value(QLatin1String("Port")).toInt(); sd.hostname = s()->settings()->value(QLatin1String("Hostname")).toString(); sd.hlaRequestIdentifier = s()->settings()->value(QLatin1String("HlaRequestIdentifier")).toInt(); list.append(sd); } s()->settings()->endArray(); return list; } } // namespace HighLevelArchitecture