diff --git a/src/blackcore/context_simulator_impl.cpp b/src/blackcore/context_simulator_impl.cpp index c845c886f..fef3a9ab6 100644 --- a/src/blackcore/context_simulator_impl.cpp +++ b/src/blackcore/context_simulator_impl.cpp @@ -89,7 +89,11 @@ namespace BlackCore Network::CAircraftModel CContextSimulator::getOwnAircraftModel() const { - return this->m_aircraftModel; + // If no ISimulator object is available, return a dummy. + if (!m_simulator) + return Network::CAircraftModel(); + + return this->m_simulator->getAircraftModel(); } bool CContextSimulator::loadSimulatorPlugin(const CSimulatorInfo &simulatorInfo) diff --git a/src/blackcore/context_simulator_impl.h b/src/blackcore/context_simulator_impl.h index 3618f6aa1..5bf7e5c43 100644 --- a/src/blackcore/context_simulator_impl.h +++ b/src/blackcore/context_simulator_impl.h @@ -32,9 +32,6 @@ namespace BlackCore //! \brief Destructor virtual ~CContextSimulator(); - //! Model name, e.g. as used with FSX "Cessna C172 Skyhawk" - void setModelName(const QString &modelName) { this->m_aircraftModel.setQueriedModelString(modelName); } - public slots: //! \copydoc IContextSimulator::getSimulatorPluginList() @@ -107,6 +104,7 @@ namespace BlackCore void findSimulatorPlugins(); BlackMisc::Network::CAircraftModel m_aircraftModel; + BlackMisc::Aviation::CAircraft m_ownAircraft; BlackCore::ISimulator *m_simulator; QTimer *m_updateTimer; diff --git a/src/blackcore/simulator.h b/src/blackcore/simulator.h index a40d982ab..f9267f08a 100644 --- a/src/blackcore/simulator.h +++ b/src/blackcore/simulator.h @@ -9,6 +9,7 @@ #include "blacksim/simulatorinfo.h" #include "blackmisc/statusmessage.h" #include "blackmisc/avaircraft.h" +#include "blackmisc/nwaircraftmodel.h" #include namespace BlackCore @@ -79,6 +80,9 @@ namespace BlackCore //! Display a status message in the simulator virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const = 0; + //! Aircraft Model + virtual BlackMisc::Network::CAircraftModel getAircraftModel() const = 0; + signals: //! Emitted when the connection status has changed void statusChanged(ISimulator::Status status); diff --git a/src/plugins/simulator/fsx/simulator_fsx.h b/src/plugins/simulator/fsx/simulator_fsx.h index 58877467e..c374bef69 100644 --- a/src/plugins/simulator/fsx/simulator_fsx.h +++ b/src/plugins/simulator/fsx/simulator_fsx.h @@ -117,6 +117,11 @@ namespace BlackSimPlugin virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override; //! \brief Called when simulat has been started + + //! \copydoc ISimulator::getAircraftModel() + virtual BlackMisc::Network::CAircraftModel getAircraftModel() const override { return m_aircraftModel; } + + //! \brief Called when sim has started void onSimRunning(); //! \brief Called when sim has stopped @@ -139,7 +144,7 @@ namespace BlackSimPlugin void onSimExit(); //! \private - void setAircraftModel( const BlackMisc::Network::CAircraftModel &model) { m_aircraftModel = model; } + void setAircraftModel(const BlackMisc::Network::CAircraftModel &model) { m_aircraftModel = model; } protected: //! Timer event