From dc1e08b312c9fdafe7d964ea747b315eaea587c4 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 1 Apr 2014 22:27:43 +0200 Subject: [PATCH] refs #199, integration with latest simulator context * Fixed warning HRESULT hr = S_OK; uint/int warning * loadPlugins in constructor * init removed, wiring in runtime class * Using getRuntime to refer to other contexts * Fixed reading of plugins, with no exisiting "plugin" dir this did hang --- src/blackcore/context_simulator_impl.cpp | 37 +++++++----------------- src/blacksim/fsx/simulator_fsx.cpp | 6 ++-- 2 files changed, 14 insertions(+), 29 deletions(-) diff --git a/src/blackcore/context_simulator_impl.cpp b/src/blackcore/context_simulator_impl.cpp index 86e5fd255..a2707ffdb 100644 --- a/src/blackcore/context_simulator_impl.cpp +++ b/src/blackcore/context_simulator_impl.cpp @@ -23,6 +23,7 @@ namespace BlackCore m_simulator(nullptr), m_updateTimer(nullptr) { m_updateTimer = new QTimer(this); + loadPlugins(); connect(m_updateTimer, &QTimer::timeout, this, &CContextSimulator::updateOwnAircraft); } @@ -40,25 +41,11 @@ namespace BlackCore return m_ownAircraft; } - void CContextSimulator::init() - { - loadPlugins(); - - if (!m_contextNetwork) - { - m_contextNetwork = getRuntime()->getIContextNetwork(); - } - - if (m_simulator) - connect(m_contextNetwork, SIGNAL(aircraftSituationUpdate(BlackMisc::Aviation::CCallsign,BlackMisc::Aviation::CAircraftSituation)), - m_simulator, SLOT(addAircraftSituation(BlackMisc::Aviation::CCallsign,BlackMisc::Aviation::CAircraftSituation))); - } - void CContextSimulator::updateOwnAircraft() { m_ownAircraft = m_simulator->getOwnAircraft(); - getNetworkContext()->updateOwnSituation(m_ownAircraft.getSituation()); - getNetworkContext()->updateOwnCockpit(m_ownAircraft.getCom1System(), m_ownAircraft.getCom2System(), m_ownAircraft.getTransponder()); + getRuntime()->getIContextNetwork()->updateOwnSituation(m_ownAircraft.getSituation()); + getRuntime()->getIContextNetwork()->updateOwnCockpit(m_ownAircraft.getCom1System(), m_ownAircraft.getCom2System(), m_ownAircraft.getTransponder()); } void CContextSimulator::setConnectionStatus(bool value) @@ -72,10 +59,14 @@ namespace BlackCore void CContextSimulator::loadPlugins() { - m_pluginsDir = QDir(qApp->applicationDirPath()); - m_pluginsDir.cd("plugins"); + m_pluginsDir = QDir(qApp->applicationDirPath().append("/plugins")); + if (!m_pluginsDir.exists()) + { + qWarning() << "No plugin directory" << m_pluginsDir; + return; + } - foreach (QString fileName, m_pluginsDir.entryList(QDir::Files)) + foreach(QString fileName, m_pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(m_pluginsDir.absoluteFilePath(fileName)); QObject *plugin = loader.instance(); @@ -86,20 +77,14 @@ namespace BlackCore { m_simulator = factory->create(this); connect(m_simulator, SIGNAL(connectionChanged(bool)), this, SLOT(setConnectionStatus(bool))); + break; } - } else { qDebug() << loader.errorString(); } } - } - - IContextNetwork *CContextSimulator::getNetworkContext() - { - Q_ASSERT(this->getRuntime()->getIContextNetwork()); - return getRuntime()->getIContextNetwork(); } } // namespace BlackCore diff --git a/src/blacksim/fsx/simulator_fsx.cpp b/src/blacksim/fsx/simulator_fsx.cpp index b5d4bbc53..2a13b5694 100644 --- a/src/blacksim/fsx/simulator_fsx.cpp +++ b/src/blacksim/fsx/simulator_fsx.cpp @@ -39,7 +39,6 @@ namespace BlackSimPlugin void CSimulatorFSX::addRemoteAircraft(const CCallsign &callsign, const QString &type, const CAircraftSituation &initialSituation) { - HRESULT hr = S_OK; Q_UNUSED(type); SIMCONNECT_DATA_INITPOSITION initialPosition; @@ -60,7 +59,8 @@ namespace BlackSimPlugin m_simConnectObjects.insert(callsign, simObj); ++m_nextObjID; - hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, "Boeing 737-800 Paint1", callsign.toQString().left(12).toLatin1().constData(), initialPosition, simObj.m_requestId); + HRESULT hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, "Boeing 737-800 Paint1", callsign.toQString().left(12).toLatin1().constData(), initialPosition, simObj.m_requestId); + Q_UNUSED(hr); } void CSimulatorFSX::addAircraftSituation(const CCallsign &callsign, const CAircraftSituation &situation) @@ -229,7 +229,7 @@ namespace BlackSimPlugin SimConnectObject simObject; foreach (simObject, m_simConnectObjects) { - if (simObject.m_requestId == requestID) + if (simObject.m_requestId == static_cast(requestID)) { simObject.m_objectId = objectID; break;