Ref T180, support for SimConnect.ini files and some renamings in CSimConnectUtilities

This commit is contained in:
Klaus Basan
2017-11-02 20:07:13 +01:00
parent 1018d06f70
commit 5560d6cb78
3 changed files with 111 additions and 12 deletions

View File

@@ -12,10 +12,12 @@
#ifndef BLACKMISC_SIMULATION_FSX_SIMCONNECTUTILITIES_H
#define BLACKMISC_SIMULATION_FSX_SIMCONNECTUTILITIES_H
#include "blackmisc/simulation/simulatorinfo.h"
#include "blackmisc/aviation/aircraftlights.h"
#include "blackmisc/weather/gridpoint.h"
#include "blackmisc/blackmiscexport.h"
#include "blackmisc/windllutils.h"
#include "simconnectutilities.h"
#include <QMetaType>
#include <QObject>
@@ -50,14 +52,20 @@ namespace BlackMisc
//! Filename of the file
static const QString &simConnectFilename();
//! Path to local config file
static QString getLocalSimConnectCfgFilename();
//! Path to swift local config file (generated by us, in swift dir)
static const QString &getSwiftLocalSimConnectCfgFilename();
//! Path to local config file
static bool hasLocalSimConnectCfgFilename();
//! Path to user's config file
static const QString &getUserSimConnectCfgFilename();
//! Has a swift local config file
static bool hasSwiftLocalSimConnectCfgFile();
//! Has a user config file
static bool hasUserSimConnectCfgFile();
//! The simconnect.cfg as settings (or nullptr settings if no such file)
static QSharedPointer<QSettings> simConnectFileAsSettings(const QString &fileName = getLocalSimConnectCfgFilename());
static QSharedPointer<QSettings> simConnectFileAsSettings(const QString &fileName = getSwiftLocalSimConnectCfgFilename());
//! IP address from settings (of simconnect.cfg), "" if not available
static QString ipAddress(const QSettings *simConnectSettings);
@@ -89,6 +97,16 @@ namespace BlackMisc
//! \return
static const QString simConnectSurfaceTypeToString(const DWORD type, bool beautify = true);
//! For all P3D and FSX simulators
//! \remark reevaluating directories every time
static QStringList getSimConnectIniFileDirectories();
//! For all P3D and FSX simulators
static QStringList getSimConnectIniFiles();
//! Directory where SimConnect.ini is located
static QString getSimConnectIniFileDirectory(Simulation::CSimulatorInfo &simulator);
//! SimConnect surfaces.
//! \sa http://msdn.microsoft.com/en-us/library/cc526981.aspx#AircraftFlightInstrumentationData
enum SIMCONNECT_SURFACE
@@ -190,6 +208,9 @@ namespace BlackMisc
//! Get info about SimConnect DLL
static BlackMisc::CWinDllUtils::DLLInfo simConnectDllInfo();
//! SimConnect.ini file name
static const QString &simConnectIniFilename();
//! Register metadata
static void registerMetadata();
@@ -199,7 +220,7 @@ namespace BlackMisc
//! \param id enum element
//! \param enumName name of the resolved enum
//! \return enum element's name
static const QString resolveEnumToString(const DWORD id, const char *enumName);
static QString resolveEnumToString(const DWORD id, const char *enumName);
static QString windsToSimConnectMetar(const BlackMisc::Weather::CWindLayerList &windLayers);
static QString visibilitiesToSimConnectMetar(const BlackMisc::Weather::CVisibilityLayerList &visibilityLayers);