From 583594731b19aa3e52c8bb9f6143135669caa994 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 10 Sep 2019 23:53:29 +0200 Subject: [PATCH] Ref T717, "testRemoteAircraft" simulator context functions --- src/blackcore/context/contextsimulator.h | 3 +++ src/blackcore/context/contextsimulatorempty.h | 9 +++++++++ src/blackcore/context/contextsimulatorimpl.cpp | 17 +++++++++++++++++ src/blackcore/context/contextsimulatorimpl.h | 1 + src/blackcore/context/contextsimulatorproxy.cpp | 5 +++++ src/blackcore/context/contextsimulatorproxy.h | 1 + 6 files changed, 36 insertions(+) diff --git a/src/blackcore/context/contextsimulator.h b/src/blackcore/context/contextsimulator.h index 4b86f05da..3f43ad577 100644 --- a/src/blackcore/context/contextsimulator.h +++ b/src/blackcore/context/contextsimulator.h @@ -313,6 +313,9 @@ namespace BlackCore //! Set matching setup virtual void setMatchingSetup(const BlackMisc::Simulation::CAircraftMatcherSetup &setup) = 0; + //! Test a remote aircraft + virtual bool testRemoteAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, bool add) = 0; + //! Get matching setup virtual BlackMisc::Simulation::CAircraftMatcherSetup getMatchingSetup() const = 0; diff --git a/src/blackcore/context/contextsimulatorempty.h b/src/blackcore/context/contextsimulatorempty.h index 992d0506b..366918180 100644 --- a/src/blackcore/context/contextsimulatorempty.h +++ b/src/blackcore/context/contextsimulatorempty.h @@ -410,6 +410,15 @@ namespace BlackCore logEmptyContextWarning(Q_FUNC_INFO); } + //! \copydoc IContextSimulator::testRemoteAircraft + virtual bool testRemoteAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, bool add) override + { + Q_UNUSED(aircraft); + Q_UNUSED(add); + logEmptyContextWarning(Q_FUNC_INFO); + return false; + } + //! \copydoc IContextSimulator::setMatchingSetup virtual BlackMisc::Simulation::CAircraftMatcherSetup getMatchingSetup() const override { diff --git a/src/blackcore/context/contextsimulatorimpl.cpp b/src/blackcore/context/contextsimulatorimpl.cpp index d7f92f8bd..d47fcc3f5 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -1002,6 +1002,23 @@ namespace BlackCore return msgs; } + bool CContextSimulator::testRemoteAircraft(const CSimulatedAircraft &aircraft, bool add) + { + if (!m_simulatorPlugin.second || !m_simulatorPlugin.second->isConnected()) { return false; } + bool added = add; + if (add) + { + m_simulatorPlugin.second->setTestMode(true); + added = m_simulatorPlugin.second->logicallyAddRemoteAircraft(aircraft); + } + else + { + m_simulatorPlugin.second->logicallyRemoveRemoteAircraft(aircraft.getCallsign()); + m_simulatorPlugin.second->setTestMode(false); // AFTER we have removed it + } + return added; + } + bool CContextSimulator::parseCommandLine(const QString &commandLine, const CIdentifier &originator) { Q_UNUSED(originator); diff --git a/src/blackcore/context/contextsimulatorimpl.h b/src/blackcore/context/contextsimulatorimpl.h index aab8b5355..012cd4e44 100644 --- a/src/blackcore/context/contextsimulatorimpl.h +++ b/src/blackcore/context/contextsimulatorimpl.h @@ -127,6 +127,7 @@ namespace BlackCore virtual void setMatchingSetup(const BlackMisc::Simulation::CAircraftMatcherSetup &setup) override; virtual BlackMisc::Simulation::CAircraftMatcherSetup getMatchingSetup() const override; virtual BlackMisc::CStatusMessageList copyFsxTerrainProbe(const BlackMisc::Simulation::CSimulatorInfo &simulator) override; + virtual bool testRemoteAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, bool add) override; // also in IAircraftModelSetProvider virtual BlackMisc::Simulation::CAircraftModelList getModelSet() const override; diff --git a/src/blackcore/context/contextsimulatorproxy.cpp b/src/blackcore/context/contextsimulatorproxy.cpp index d67734112..c84ced9f5 100644 --- a/src/blackcore/context/contextsimulatorproxy.cpp +++ b/src/blackcore/context/contextsimulatorproxy.cpp @@ -370,5 +370,10 @@ namespace BlackCore return m_dBusInterface->callDBusRet(QLatin1String("copyFsxTerrainProbe"), simulator); } + bool CContextSimulatorProxy::testRemoteAircraft(const CSimulatedAircraft &aircraft, bool add) + { + return m_dBusInterface->callDBusRet(QLatin1String("testRemoteAircraft"), aircraft, add); + } + } // namespace } // namespace diff --git a/src/blackcore/context/contextsimulatorproxy.h b/src/blackcore/context/contextsimulatorproxy.h index df28f9018..ad9d49d65 100644 --- a/src/blackcore/context/contextsimulatorproxy.h +++ b/src/blackcore/context/contextsimulatorproxy.h @@ -110,6 +110,7 @@ namespace BlackCore virtual void setMatchingSetup(const BlackMisc::Simulation::CAircraftMatcherSetup &setup) override; virtual BlackMisc::Simulation::CAircraftMatcherSetup getMatchingSetup() const override; virtual BlackMisc::CStatusMessageList copyFsxTerrainProbe(const BlackMisc::Simulation::CSimulatorInfo &simulator) override; + virtual bool testRemoteAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, bool add) override; //! @} private: