From 3b9a732fffde6e1bd447d775b42ecdca127b9cd5 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 19 Mar 2018 20:44:17 +0100 Subject: [PATCH] Ref T259, Ref T243 relay interpolation setup via context (DBus) --- src/blackcore/context/contextsimulator.h | 14 ++++++--- src/blackcore/context/contextsimulatorempty.h | 22 +++++++++++--- .../context/contextsimulatorimpl.cpp | 30 ++++++++++++++----- src/blackcore/context/contextsimulatorimpl.h | 22 +++++++------- .../context/contextsimulatorproxy.cpp | 18 ++++++++--- src/blackcore/context/contextsimulatorproxy.h | 6 ++-- 6 files changed, 81 insertions(+), 31 deletions(-) diff --git a/src/blackcore/context/contextsimulator.h b/src/blackcore/context/contextsimulator.h index 086c4ae63..550a98c87 100644 --- a/src/blackcore/context/contextsimulator.h +++ b/src/blackcore/context/contextsimulator.h @@ -183,11 +183,17 @@ namespace BlackCore //! Is time synchronization on? virtual bool isTimeSynchronized() const = 0; - //! Set interpolation and rendering - virtual BlackMisc::Simulation::CInterpolationAndRenderingSetup getInterpolationAndRenderingSetup() const = 0; + //! \copydoc BlackMisc::Simulation::IInterpolationSetupProvider::getInterpolationSetupGlobal + virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const = 0; - //! Set interpolation and rendering - virtual void setInterpolationAndRenderingSetup(const BlackMisc::Simulation::CInterpolationAndRenderingSetup &setup) = 0; + //! \copydoc BlackMisc::Simulation::IInterpolationSetupProvider::getInterpolationSetupsPerCallsign + virtual BlackMisc::Simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const = 0; + + //! \copydoc BlackMisc::Simulation::IInterpolationSetupProvider::setInterpolationSetupGlobal + virtual void setInterpolationAndRenderingSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) = 0; + + //! \copydoc BlackMisc::Simulation::IInterpolationSetupProvider::setInterpolationSetupsPerCallsign + virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) = 0; //! Time synchronization offset virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const = 0; diff --git a/src/blackcore/context/contextsimulatorempty.h b/src/blackcore/context/contextsimulatorempty.h index 9be2e37d5..ef486acb3 100644 --- a/src/blackcore/context/contextsimulatorempty.h +++ b/src/blackcore/context/contextsimulatorempty.h @@ -161,20 +161,34 @@ namespace BlackCore return false; } - //! \copydoc ISimulator::getInterpolationAndRenderingSetup - virtual BlackMisc::Simulation::CInterpolationAndRenderingSetup getInterpolationAndRenderingSetup() const override + //! \copydoc ISimulator::getInterpolationSetupGlobal + virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override { logEmptyContextWarning(Q_FUNC_INFO); - return BlackMisc::Simulation::CInterpolationAndRenderingSetup(); + return BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal(); + } + + //! \copydoc ISimulator::getInterpolationSetupsPerCallsign + virtual BlackMisc::Simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const override + { + logEmptyContextWarning(Q_FUNC_INFO); + return BlackMisc::Simulation::CInterpolationSetupList(); } //! \copydoc ISimulator::setInterpolationAndRenderingSetup - virtual void setInterpolationAndRenderingSetup(const BlackMisc::Simulation::CInterpolationAndRenderingSetup &setup) override + virtual void setInterpolationAndRenderingSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) override { Q_UNUSED(setup); logEmptyContextWarning(Q_FUNC_INFO); } + //! \copydoc ISimulator::setInterpolationSetupPerCallsign + virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) override + { + Q_UNUSED(setups); + logEmptyContextWarning(Q_FUNC_INFO); + } + //! \copydoc IContextSimulator::getTimeSynchronizationOffset virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override { diff --git a/src/blackcore/context/contextsimulatorimpl.cpp b/src/blackcore/context/contextsimulatorimpl.cpp index 132f21d9f..318fed537 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -271,15 +271,31 @@ namespace BlackCore return m_simulatorPlugin.second->isTimeSynchronized(); } - CInterpolationAndRenderingSetup CContextSimulator::getInterpolationAndRenderingSetup() const + CInterpolationAndRenderingSetupGlobal CContextSimulator::getInterpolationAndRenderingSetupGlobal() const { if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } - if (m_simulatorPlugin.first.isUnspecified()) { return CInterpolationAndRenderingSetup(); } + if (m_simulatorPlugin.first.isUnspecified()) { return CInterpolationAndRenderingSetupGlobal(); } Q_ASSERT(m_simulatorPlugin.second); - return m_simulatorPlugin.second->getInterpolationAndRenderingSetup(); + return m_simulatorPlugin.second->getInterpolationSetupGlobal(); } - void CContextSimulator::setInterpolationAndRenderingSetup(const CInterpolationAndRenderingSetup &setup) + CInterpolationSetupList CContextSimulator::getInterpolationAndRenderingSetupsPerCallsign() const + { + if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + if (m_simulatorPlugin.first.isUnspecified()) { return CInterpolationSetupList(); } + Q_ASSERT(m_simulatorPlugin.second); + return m_simulatorPlugin.second->getInterpolationSetupsPerCallsign(); + } + + void CContextSimulator::setInterpolationAndRenderingSetupsPerCallsign(const CInterpolationSetupList &setups) + { + if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + if (m_simulatorPlugin.first.isUnspecified()) { return; } + Q_ASSERT(m_simulatorPlugin.second); + return m_simulatorPlugin.second->setInterpolationSetupsPerCallsign(setups); + } + + void CContextSimulator::setInterpolationAndRenderingSetupGlobal(const CInterpolationAndRenderingSetupGlobal &setup) { if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << setup; } if (m_simulatorPlugin.first.isUnspecified()) { return; } @@ -702,7 +718,7 @@ namespace BlackCore if (!parser.isKnownCommand()) { return false; } if (parser.matchesCommand("ris")) { - CInterpolationAndRenderingSetup rs = this->getInterpolationAndRenderingSetup(); + CInterpolationAndRenderingSetupGlobal rs = this->getInterpolationAndRenderingSetupGlobal(); const QString p1 = parser.part(1); if (p1 == "show") { @@ -714,10 +730,10 @@ namespace BlackCore } if (!parser.hasPart(2)) { return false; } const bool on = stringToBool(parser.part(2)); - if (p1 == "debug") { rs.setDriverDebuggingMessages(on); } + if (p1 == "debug") { rs.setSimulatorDebuggingMessages(on); } else if (p1 == "parts") { rs.setEnabledAircraftParts(on); } else { return false; } - this->setInterpolationAndRenderingSetup(rs); + this->setInterpolationAndRenderingSetupGlobal(rs); CLogMessage(this, CLogCategory::cmdLine()).info("Setup is: '%1'") << rs.toQString(true); return true; } diff --git a/src/blackcore/context/contextsimulatorimpl.h b/src/blackcore/context/contextsimulatorimpl.h index 54340b67b..7205ea83a 100644 --- a/src/blackcore/context/contextsimulatorimpl.h +++ b/src/blackcore/context/contextsimulatorimpl.h @@ -19,20 +19,20 @@ #include "blackcore/blackcoreexport.h" #include "blackcore/weathermanager.h" #include "blackcore/network.h" -#include "blackmisc/aviation/airportlist.h" -#include "blackmisc/identifier.h" -#include "blackmisc/network/textmessagelist.h" -#include "blackmisc/pixmap.h" -#include "blackmisc/pq/length.h" -#include "blackmisc/pq/time.h" -#include "blackmisc/settingscache.h" #include "blackmisc/simulation/settings/simulatorsettings.h" #include "blackmisc/simulation/aircraftmodellist.h" #include "blackmisc/simulation/aircraftmodelsetloader.h" +#include "blackmisc/simulation/interpolationsetuplist.h" #include "blackmisc/simulation/remoteaircraftprovider.h" -#include "blackmisc/simulation/simulatorplugininfo.h" #include "blackmisc/simulation/simulatorplugininfolist.h" #include "blackmisc/simulation/simulatorinternals.h" +#include "blackmisc/aviation/airportlist.h" +#include "blackmisc/network/textmessagelist.h" +#include "blackmisc/pq/length.h" +#include "blackmisc/pq/time.h" +#include "blackmisc/identifier.h" +#include "blackmisc/pixmap.h" +#include "blackmisc/settingscache.h" #include "blackmisc/worker.h" @@ -96,8 +96,10 @@ namespace BlackCore virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; virtual bool isTimeSynchronized() const override; - virtual BlackMisc::Simulation::CInterpolationAndRenderingSetup getInterpolationAndRenderingSetup() const override; - virtual void setInterpolationAndRenderingSetup(const BlackMisc::Simulation::CInterpolationAndRenderingSetup &setup) override; + virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override; + virtual BlackMisc::Simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const override; + virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) override; + virtual void setInterpolationAndRenderingSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) override; virtual BlackMisc::CPixmap iconForModel(const QString &modelString) const override; virtual void highlightAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraftToHighlight, bool enableHighlight, const BlackMisc::PhysicalQuantities::CTime &displayTime) override; virtual bool resetToModelMatchingAircraft(const BlackMisc::Aviation::CCallsign &callsign) override; diff --git a/src/blackcore/context/contextsimulatorproxy.cpp b/src/blackcore/context/contextsimulatorproxy.cpp index 6da9a9823..6bf1ab9d2 100644 --- a/src/blackcore/context/contextsimulatorproxy.cpp +++ b/src/blackcore/context/contextsimulatorproxy.cpp @@ -166,14 +166,24 @@ namespace BlackCore return m_dBusInterface->callDBusRet(QLatin1String("isTimeSynchronized")); } - CInterpolationAndRenderingSetup CContextSimulatorProxy::getInterpolationAndRenderingSetup() const + CInterpolationAndRenderingSetupGlobal CContextSimulatorProxy::getInterpolationAndRenderingSetupGlobal() const { - return m_dBusInterface->callDBusRet(QLatin1String("getInterpolationAndRenderingSetup")); + return m_dBusInterface->callDBusRet(QLatin1String("getInterpolationAndRenderingSetupGlobal")); } - void CContextSimulatorProxy::setInterpolationAndRenderingSetup(const CInterpolationAndRenderingSetup &setup) + CInterpolationSetupList CContextSimulatorProxy::getInterpolationAndRenderingSetupsPerCallsign() const { - m_dBusInterface->callDBus(QLatin1String("setInterpolationAndRenderingSetup"), setup); + return m_dBusInterface->callDBusRet(QLatin1String("getInterpolationAndRenderingSetupsPerCallsign")); + } + + void CContextSimulatorProxy::setInterpolationAndRenderingSetupsPerCallsign(const CInterpolationSetupList &setups) + { + m_dBusInterface->callDBus(QLatin1String("setInterpolationAndRenderingSetupsPerCallsign"), setups); + } + + void CContextSimulatorProxy::setInterpolationAndRenderingSetupGlobal(const CInterpolationAndRenderingSetupGlobal &setup) + { + m_dBusInterface->callDBus(QLatin1String("setInterpolationAndRenderingSetupGlobal"), setup); } CTime CContextSimulatorProxy::getTimeSynchronizationOffset() const diff --git a/src/blackcore/context/contextsimulatorproxy.h b/src/blackcore/context/contextsimulatorproxy.h index 851a7c8a2..38ebf7c63 100644 --- a/src/blackcore/context/contextsimulatorproxy.h +++ b/src/blackcore/context/contextsimulatorproxy.h @@ -75,8 +75,10 @@ namespace BlackCore virtual BlackMisc::Simulation::CSimulatorInternals getSimulatorInternals() const override; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; virtual bool isTimeSynchronized() const override; - virtual BlackMisc::Simulation::CInterpolationAndRenderingSetup getInterpolationAndRenderingSetup() const override; - virtual void setInterpolationAndRenderingSetup(const BlackMisc::Simulation::CInterpolationAndRenderingSetup &setup) override; + virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override; + virtual void setInterpolationAndRenderingSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) override; + virtual BlackMisc::Simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const override; + virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) override; virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override; virtual BlackMisc::CPixmap iconForModel(const QString &modelString) const override; virtual void highlightAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraftToHighlight, bool enableHighlight, const BlackMisc::PhysicalQuantities::CTime &displayTime) override;