Add method in ISimulator to get aircraft model

Route AircraftModel requests from Context Simulator to ISimulator

refs #235
This commit is contained in:
Roland Winklmeier
2014-06-03 20:02:08 +02:00
parent fdb4403904
commit 01f6b9c156
4 changed files with 16 additions and 5 deletions

View File

@@ -89,7 +89,11 @@ namespace BlackCore
Network::CAircraftModel CContextSimulator::getOwnAircraftModel() const 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) bool CContextSimulator::loadSimulatorPlugin(const CSimulatorInfo &simulatorInfo)

View File

@@ -32,9 +32,6 @@ namespace BlackCore
//! \brief Destructor //! \brief Destructor
virtual ~CContextSimulator(); 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: public slots:
//! \copydoc IContextSimulator::getSimulatorPluginList() //! \copydoc IContextSimulator::getSimulatorPluginList()
@@ -107,6 +104,7 @@ namespace BlackCore
void findSimulatorPlugins(); void findSimulatorPlugins();
BlackMisc::Network::CAircraftModel m_aircraftModel; BlackMisc::Network::CAircraftModel m_aircraftModel;
BlackMisc::Aviation::CAircraft m_ownAircraft;
BlackCore::ISimulator *m_simulator; BlackCore::ISimulator *m_simulator;
QTimer *m_updateTimer; QTimer *m_updateTimer;

View File

@@ -9,6 +9,7 @@
#include "blacksim/simulatorinfo.h" #include "blacksim/simulatorinfo.h"
#include "blackmisc/statusmessage.h" #include "blackmisc/statusmessage.h"
#include "blackmisc/avaircraft.h" #include "blackmisc/avaircraft.h"
#include "blackmisc/nwaircraftmodel.h"
#include <QObject> #include <QObject>
namespace BlackCore namespace BlackCore
@@ -79,6 +80,9 @@ namespace BlackCore
//! Display a status message in the simulator //! Display a status message in the simulator
virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const = 0; virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const = 0;
//! Aircraft Model
virtual BlackMisc::Network::CAircraftModel getAircraftModel() const = 0;
signals: signals:
//! Emitted when the connection status has changed //! Emitted when the connection status has changed
void statusChanged(ISimulator::Status status); void statusChanged(ISimulator::Status status);

View File

@@ -117,6 +117,11 @@ namespace BlackSimPlugin
virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override; virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override;
//! \brief Called when simulat has been started //! \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(); void onSimRunning();
//! \brief Called when sim has stopped //! \brief Called when sim has stopped
@@ -139,7 +144,7 @@ namespace BlackSimPlugin
void onSimExit(); void onSimExit();
//! \private //! \private
void setAircraftModel( const BlackMisc::Network::CAircraftModel &model) { m_aircraftModel = model; } void setAircraftModel(const BlackMisc::Network::CAircraftModel &model) { m_aircraftModel = model; }
protected: protected:
//! Timer event //! Timer event