146 lines
4.0 KiB
C++
Executable File
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
|