Files
qt5-legatus-legacy/Lts/Proxies/HighLevelArchitecture/Common/settings.cpp
T
2026-08-13 18:33:10 +02:00

146 lines
4.0 KiB
C++
Executable File

/**
* Settings for TetraRadio
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-04-07
*/
#include "settings.h"
#include <QtCore/QSettings>
#include <nglsettings/nglsettings_settings.h>
#include <ngltools/ngltools_filesystem.h>
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::SocketData> Settings::socketDataList()
{
int size = s()->settings()->beginReadArray(QLatin1String("hla/SocketReaders"));
QVector<SocketData> 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