mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-09 05:28:09 +08:00
Moved FSX specific implementation into blacksim/fsx and
converted it into a plugin. refs #190
This commit is contained in:
@@ -21,6 +21,10 @@ contains(BLACK_CONFIG, BlackGui) {
|
|||||||
|
|
||||||
contains(BLACK_CONFIG, BlackSim) {
|
contains(BLACK_CONFIG, BlackSim) {
|
||||||
SUBDIRS += src/blacksim
|
SUBDIRS += src/blacksim
|
||||||
|
|
||||||
|
contains(BLACK_CONFIG, FSX) {
|
||||||
|
SUBDIRS += src/blacksim/fsx/plugin_fsx.pro
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
contains(BLACK_CONFIG, Samples) {
|
contains(BLACK_CONFIG, Samples) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
include (externals.pri)
|
include (externals.pri)
|
||||||
|
|
||||||
LIBS *= -L../../lib
|
LIBS *= -L../../lib -L../../../lib
|
||||||
|
|
||||||
blackgui {
|
blackgui {
|
||||||
LIBS += -lblackgui
|
LIBS += -lblackgui
|
||||||
|
|||||||
@@ -28,12 +28,6 @@ SOURCES += *.cpp
|
|||||||
win32 {
|
win32 {
|
||||||
HEADERS += $$PWD/win/*.h
|
HEADERS += $$PWD/win/*.h
|
||||||
SOURCES += $$PWD/win/*.cpp
|
SOURCES += $$PWD/win/*.cpp
|
||||||
|
|
||||||
contains(BLACK_CONFIG, FSX) {
|
|
||||||
DEFINES += BLACK_WITH_FSX
|
|
||||||
HEADERS += $$PWD/fsx/*.h
|
|
||||||
SOURCES += $$PWD/fsx/*.cpp
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
win32:!win32-g++*: PRE_TARGETDEPS += ../../lib/blackmisc.lib ../../lib/blacksound.lib
|
win32:!win32-g++*: PRE_TARGETDEPS += ../../lib/blackmisc.lib ../../lib/blacksound.lib
|
||||||
|
|||||||
@@ -5,10 +5,7 @@
|
|||||||
|
|
||||||
#include "context_simulator_impl.h"
|
#include "context_simulator_impl.h"
|
||||||
#include "coreruntime.h"
|
#include "coreruntime.h"
|
||||||
|
#include <QPluginLoader>
|
||||||
#ifdef BLACK_WITH_FSX
|
|
||||||
#include "fsx/simulator_fsx.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using namespace BlackMisc;
|
using namespace BlackMisc;
|
||||||
using namespace BlackMisc::PhysicalQuantities;
|
using namespace BlackMisc::PhysicalQuantities;
|
||||||
@@ -26,10 +23,6 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
m_updateTimer = new QTimer(this);
|
m_updateTimer = new QTimer(this);
|
||||||
|
|
||||||
#ifdef BLACK_WITH_FSX
|
|
||||||
m_simulator = new BlackCore::FSX::CSimulatorFSX(this);
|
|
||||||
connect(m_simulator, &ISimulator::connectionChanged, this, &CContextSimulator::setConnectionStatus);
|
|
||||||
#endif
|
|
||||||
connect(m_updateTimer, &QTimer::timeout, this, &CContextSimulator::updateOwnAircraft);
|
connect(m_updateTimer, &QTimer::timeout, this, &CContextSimulator::updateOwnAircraft);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,13 +46,16 @@ namespace BlackCore
|
|||||||
|
|
||||||
void CContextSimulator::init()
|
void CContextSimulator::init()
|
||||||
{
|
{
|
||||||
|
loadPlugins();
|
||||||
|
|
||||||
if (!m_contextNetwork)
|
if (!m_contextNetwork)
|
||||||
{
|
{
|
||||||
m_contextNetwork = getRuntime()->getIContextNetwork();
|
m_contextNetwork = getRuntime()->getIContextNetwork();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_simulator)
|
if (m_simulator)
|
||||||
connect(m_contextNetwork, &IContextNetwork::aircraftSituationUpdate, m_simulator, &ISimulator::addAircraftSituation);
|
connect(m_contextNetwork, SIGNAL(aircraftSituationUpdate(BlackMisc::Aviation::CCallsign,BlackMisc::Aviation::CAircraftSituation)),
|
||||||
|
m_simulator, SLOT(addAircraftSituation(BlackMisc::Aviation::CCallsign,BlackMisc::Aviation::CAircraftSituation)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextSimulator::updateOwnAircraft()
|
void CContextSimulator::updateOwnAircraft()
|
||||||
@@ -84,4 +80,30 @@ namespace BlackCore
|
|||||||
emit connectionChanged(value);
|
emit connectionChanged(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CContextSimulator::loadPlugins()
|
||||||
|
{
|
||||||
|
m_pluginsDir = QDir(qApp->applicationDirPath());
|
||||||
|
m_pluginsDir.cd("plugins");
|
||||||
|
|
||||||
|
foreach (QString fileName, m_pluginsDir.entryList(QDir::Files))
|
||||||
|
{
|
||||||
|
QPluginLoader loader(m_pluginsDir.absoluteFilePath(fileName));
|
||||||
|
QObject *plugin = loader.instance();
|
||||||
|
if (plugin)
|
||||||
|
{
|
||||||
|
ISimulatorFactory *factory = qobject_cast<ISimulatorFactory*>(plugin);
|
||||||
|
if(plugin)
|
||||||
|
{
|
||||||
|
m_simulator = factory->create(this);
|
||||||
|
connect(m_simulator, SIGNAL(connectionChanged(bool)), this, SLOT(setConnectionStatus(bool)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug() << loader.errorString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace BlackCore
|
} // namespace BlackCore
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
#include "blackcore/simulator.h"
|
#include "blackcore/simulator.h"
|
||||||
|
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
#include <QDir>
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackCore
|
||||||
{
|
{
|
||||||
@@ -83,11 +84,21 @@ namespace BlackCore
|
|||||||
void setConnectionStatus(bool value);
|
void setConnectionStatus(bool value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Load any kind of plugins
|
||||||
|
* \todo Currently it goes through the plugins folder and creates an instance for any plugin it may find
|
||||||
|
* In case an FSX and an X-Plane are in that folder, m_simulator will always point to X-Plane in the end.
|
||||||
|
*/
|
||||||
|
void loadPlugins();
|
||||||
|
|
||||||
BlackMisc::Aviation::CAircraft m_ownAircraft;
|
BlackMisc::Aviation::CAircraft m_ownAircraft;
|
||||||
BlackCore::ISimulator *m_simulator;
|
BlackCore::ISimulator *m_simulator;
|
||||||
|
|
||||||
QTimer *m_updateTimer;
|
QTimer *m_updateTimer;
|
||||||
BlackCore::IContextNetwork *m_contextNetwork;
|
BlackCore::IContextNetwork *m_contextNetwork;
|
||||||
|
|
||||||
|
QDir m_pluginsDir;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace BlackCore
|
} // namespace BlackCore
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ namespace BlackCore
|
|||||||
//! \brief Are we connected to the simulator?
|
//! \brief Are we connected to the simulator?
|
||||||
virtual bool isConnected() const = 0;
|
virtual bool isConnected() const = 0;
|
||||||
|
|
||||||
|
public slots:
|
||||||
/*!
|
/*!
|
||||||
* \brief Return user aircraft object
|
* \brief Return user aircraft object
|
||||||
* \return
|
* \return
|
||||||
@@ -78,6 +79,24 @@ namespace BlackCore
|
|||||||
void ownAircraftReceived(BlackMisc::Aviation::CAircraft aircraft);
|
void ownAircraftReceived(BlackMisc::Aviation::CAircraft aircraft);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//! \brief Factory pattern class to create instances of ISimulator
|
||||||
|
class ISimulatorFactory
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
//! \brief Virtual destructor
|
||||||
|
virtual ~ISimulatorFactory() {}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Create a new instance
|
||||||
|
* \param parent
|
||||||
|
* \return
|
||||||
|
*/
|
||||||
|
virtual ISimulator* create(QObject *parent = nullptr) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace BlackCore
|
} // namespace BlackCore
|
||||||
|
|
||||||
|
Q_DECLARE_INTERFACE(BlackCore::ISimulatorFactory, "net.vatsim.PilotClient.BlackCore.SimulatorInterface")
|
||||||
|
|
||||||
#endif // BLACKCORE_SIMULATOR_H
|
#endif // BLACKCORE_SIMULATOR_H
|
||||||
|
|||||||
26
src/blacksim/fsx/plugin_fsx.pro
Normal file
26
src/blacksim/fsx/plugin_fsx.pro
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
include (../../../config.pri)
|
||||||
|
include (../../../build.pri)
|
||||||
|
|
||||||
|
QT += core dbus gui network
|
||||||
|
|
||||||
|
TARGET = simulator_fsx
|
||||||
|
TEMPLATE = lib
|
||||||
|
|
||||||
|
CONFIG += plugin shared
|
||||||
|
CONFIG += blackmisc blackcore
|
||||||
|
|
||||||
|
LIBS += -lSimConnect
|
||||||
|
|
||||||
|
|
||||||
|
DEPENDPATH += . ../../../src
|
||||||
|
INCLUDEPATH += . ../../../src
|
||||||
|
|
||||||
|
SOURCES += *.cpp
|
||||||
|
HEADERS += *.h
|
||||||
|
|
||||||
|
win32:!win32-g++*: PRE_TARGETDEPS += ../../../lib/blackmisc.lib
|
||||||
|
win32:!win32-g++*: PRE_TARGETDEPS += ../../../lib/blackcore.lib
|
||||||
|
|
||||||
|
DESTDIR = ../../../bin/plugins
|
||||||
|
|
||||||
|
include (../../../libraries.pri)
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
#include "simconnect_datadefinition.h"
|
#include "simconnect_datadefinition.h"
|
||||||
#include "simconnect/SimConnect.h"
|
#include "simconnect/SimConnect.h"
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackSimPlugin
|
||||||
{
|
{
|
||||||
namespace FSX
|
namespace FSX
|
||||||
{
|
{
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#ifndef BLACKCORE_FSX_SIMCONNECT_DATADEFINITION_H
|
#ifndef BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H
|
||||||
#define BLACKCORE_FSX_SIMCONNECT_DATADEFINITION_H
|
#define BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackSimPlugin
|
||||||
{
|
{
|
||||||
namespace FSX
|
namespace FSX
|
||||||
{
|
{
|
||||||
@@ -102,4 +102,4 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // BLACKCORE__FSX_SIMCONNECT_DATADEFINITION_H
|
#endif // BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
#include "simconnect_exception.h"
|
#include "simconnect_exception.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackSimPlugin
|
||||||
{
|
{
|
||||||
namespace FSX
|
namespace FSX
|
||||||
{
|
{
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#ifndef BLACKCORE_FSX_SIMCONNECT_EXCEPTION_H
|
#ifndef BLACKSIMPLUGIN_FSX_SIMCONNECT_EXCEPTION_H
|
||||||
#define BLACKCORE_FSX_SIMCONNECT_EXCEPTION_H
|
#define BLACKSIMPLUGIN_FSX_SIMCONNECT_EXCEPTION_H
|
||||||
|
|
||||||
#include "simconnect/SimConnect.h"
|
#include "simconnect/SimConnect.h"
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackSimPlugin
|
||||||
{
|
{
|
||||||
namespace FSX
|
namespace FSX
|
||||||
{
|
{
|
||||||
@@ -27,4 +27,4 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // BLACKCORE_FSX_SIMCONNECT_EXCEPTION_H
|
#endif // BLACKSIMPLUGIN_FSX_SIMCONNECT_EXCEPTION_H
|
||||||
@@ -6,16 +6,22 @@
|
|||||||
#include "simulator_fsx.h"
|
#include "simulator_fsx.h"
|
||||||
#include "simconnect_datadefinition.h"
|
#include "simconnect_datadefinition.h"
|
||||||
#include "simconnect_exception.h"
|
#include "simconnect_exception.h"
|
||||||
|
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
using namespace BlackMisc::Aviation;
|
using namespace BlackMisc::Aviation;
|
||||||
using namespace BlackMisc::PhysicalQuantities;
|
using namespace BlackMisc::PhysicalQuantities;
|
||||||
using namespace BlackMisc::Geo;
|
using namespace BlackMisc::Geo;
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackSimPlugin
|
||||||
{
|
{
|
||||||
namespace FSX
|
namespace FSX
|
||||||
{
|
{
|
||||||
|
BlackCore::ISimulator *CSimulatorFsxFactory::create(QObject *parent)
|
||||||
|
{
|
||||||
|
return new FSX::CSimulatorFSX(parent);
|
||||||
|
}
|
||||||
|
|
||||||
CSimulatorFSX::CSimulatorFSX(QObject *parent) :
|
CSimulatorFSX::CSimulatorFSX(QObject *parent) :
|
||||||
ISimulator(parent),
|
ISimulator(parent),
|
||||||
m_isConnected(false),
|
m_isConnected(false),
|
||||||
@@ -57,7 +63,7 @@ namespace BlackCore
|
|||||||
hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, "Boeing 737-800 Paint1", callsign.toQString().left(12).toLatin1().constData(), initialPosition, simObj.m_requestId);
|
hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, "Boeing 737-800 Paint1", callsign.toQString().left(12).toLatin1().constData(), initialPosition, simObj.m_requestId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorFSX::addAircraftSituation(const CCallsign &callsign, const CAircraftSituation & situation)
|
void CSimulatorFSX::addAircraftSituation(const CCallsign &callsign, const CAircraftSituation &situation)
|
||||||
{
|
{
|
||||||
if (!m_simConnectObjects.contains(callsign))
|
if (!m_simConnectObjects.contains(callsign))
|
||||||
{
|
{
|
||||||
@@ -70,7 +76,7 @@ namespace BlackCore
|
|||||||
m_simConnectObjects.insert(callsign, simObj);
|
m_simConnectObjects.insert(callsign, simObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorFSX::removeRemoteAircraft(const CCallsign &callsign)
|
void CSimulatorFSX::removeRemoteAircraft(const CCallsign &/*callsign*/)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
@@ -194,7 +200,7 @@ namespace BlackCore
|
|||||||
com2.setFrequencyActive(CFrequency(aircraft.com2ActiveMHz, CFrequencyUnit::MHz()));
|
com2.setFrequencyActive(CFrequency(aircraft.com2ActiveMHz, CFrequencyUnit::MHz()));
|
||||||
com2.setFrequencyStandby(CFrequency(aircraft.com2StandbyMHz, CFrequencyUnit::MHz()));
|
com2.setFrequencyStandby(CFrequency(aircraft.com2StandbyMHz, CFrequencyUnit::MHz()));
|
||||||
|
|
||||||
CTransponder transponder("Transponder", aircraft.transponderCode, CTransponder::ModeC);
|
CTransponder transponder("Transponder", aircraft.transponderCode, CTransponder::ModeS);
|
||||||
|
|
||||||
m_ownAircraft.setSituation(aircraftSituation);
|
m_ownAircraft.setSituation(aircraftSituation);
|
||||||
m_ownAircraft.setCom1System(com1);
|
m_ownAircraft.setCom1System(com1);
|
||||||
@@ -218,7 +224,7 @@ namespace BlackCore
|
|||||||
configuration.gearRight = 100.0;
|
configuration.gearRight = 100.0;
|
||||||
configuration.gearTail = 100.0;
|
configuration.gearTail = 100.0;
|
||||||
configuration.gearAux = 100.0;
|
configuration.gearAux = 100.0;
|
||||||
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftConfiguration), &configuration);
|
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, objectID, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftConfiguration), &configuration);
|
||||||
|
|
||||||
SimConnectObject simObject;
|
SimConnectObject simObject;
|
||||||
foreach (simObject, m_simConnectObjects)
|
foreach (simObject, m_simConnectObjects)
|
||||||
@@ -304,6 +310,8 @@ namespace BlackCore
|
|||||||
if (simObj.m_objectId != 0)
|
if (simObj.m_objectId != 0)
|
||||||
{
|
{
|
||||||
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftPosition, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftPosition), &position);
|
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftPosition, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftPosition), &position);
|
||||||
|
|
||||||
|
// With the following SimConnect call all aircrafts loose their red tag. No idea why though.
|
||||||
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftConfiguration), &configuration);
|
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftConfiguration), &configuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#ifndef BLACKCORE_SIMULATOR_FSX_H
|
#ifndef BLACKSIMPLUGIN_SIMULATOR_FSX_H
|
||||||
#define BLACKCORE_SIMULATOR_FSX_H
|
#define BLACKSIMPLUGIN_SIMULATOR_FSX_H
|
||||||
|
|
||||||
#define NOMINMAX
|
#define NOMINMAX
|
||||||
|
|
||||||
@@ -15,14 +15,26 @@
|
|||||||
#include "blackmisc/avaircraft.h"
|
#include "blackmisc/avaircraft.h"
|
||||||
#include <simconnect/SimConnect.h>
|
#include <simconnect/SimConnect.h>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include <QtPlugin>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackSimPlugin
|
||||||
{
|
{
|
||||||
namespace FSX
|
namespace FSX
|
||||||
{
|
{
|
||||||
|
//! \brief Factory implementation to create CSimulatorFSX instances
|
||||||
|
class Q_DECL_EXPORT CSimulatorFsxFactory : public QObject, public BlackCore::ISimulatorFactory
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PLUGIN_METADATA(IID "net.vatsim.PilotClient.BlackCore.SimulatorInterface")
|
||||||
|
Q_INTERFACES(BlackCore::ISimulatorFactory)
|
||||||
|
public:
|
||||||
|
//! \copydoc BlackCore::ISimulatorFactory::create()
|
||||||
|
virtual BlackCore::ISimulator* create(QObject *parent) override;
|
||||||
|
};
|
||||||
|
|
||||||
//! \brief SimConnect Event ID's
|
//! \brief SimConnect Event ID's
|
||||||
enum EVENT_ID {
|
enum EVENT_ID {
|
||||||
EVENT_SIM_STATUS,
|
EVENT_SIM_STATUS,
|
||||||
@@ -36,7 +48,7 @@ namespace BlackCore
|
|||||||
};
|
};
|
||||||
|
|
||||||
//! \brief FSX Simulator Implementation
|
//! \brief FSX Simulator Implementation
|
||||||
class CSimulatorFSX : public ISimulator
|
class CSimulatorFSX : public BlackCore::ISimulator
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
@@ -140,4 +152,4 @@ namespace BlackCore
|
|||||||
|
|
||||||
} // namespace BlackCore
|
} // namespace BlackCore
|
||||||
|
|
||||||
#endif // BLACKCORE_SIMULATOR_FSX_H
|
#endif // BLACKSIMPLUGIN_SIMULATOR_FSX_H
|
||||||
Reference in New Issue
Block a user