diff --git a/src/blackcore/context_audio.h b/src/blackcore/context_audio.h index f21d398ed..6b9523a7e 100644 --- a/src/blackcore/context_audio.h +++ b/src/blackcore/context_audio.h @@ -19,7 +19,6 @@ #include "blackmisc/audio/audiodeviceinfolist.h" #include "blackmisc/audio/voiceroomlist.h" #include "blackmisc/network/userlist.h" -#include "blackmisc/aviation/aircraft.h" #include "blackmisc/aviation/callsignset.h" #include "blackmisc/aviation/selcal.h" #include diff --git a/src/blackcore/context_audio_proxy.h b/src/blackcore/context_audio_proxy.h index 2af8c054f..ad4be9d24 100644 --- a/src/blackcore/context_audio_proxy.h +++ b/src/blackcore/context_audio_proxy.h @@ -19,7 +19,6 @@ #include "blackmisc/audio/audiodeviceinfolist.h" #include "blackmisc/audio/voiceroomlist.h" #include "blackmisc/network/userlist.h" -#include "blackmisc/aviation/aircraft.h" namespace BlackCore { diff --git a/src/blackcore/context_ownaircraft.h b/src/blackcore/context_ownaircraft.h index 1a702a98d..d5fdf00df 100644 --- a/src/blackcore/context_ownaircraft.h +++ b/src/blackcore/context_ownaircraft.h @@ -16,7 +16,6 @@ #include "blackcore/context.h" #include "blackmisc/identifier.h" #include "blackmisc/simulation/simulatedaircraft.h" -#include "blackmisc/aviation/aircrafticaodata.h" #include "blackmisc/audio/voiceroomlist.h" #include "blackmisc/aviation/selcal.h" @@ -76,7 +75,7 @@ namespace BlackCore void changedCallsign(const BlackMisc::Aviation::CCallsign &callsign); //! Own ICAO was changed - void changedIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icao); + void changedAircraftIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode); //! own pilot (aka the swift user) changed void changedPilot(const BlackMisc::Network::CUser &pilot); @@ -99,7 +98,7 @@ namespace BlackCore virtual bool updateOwnAircraftPilot(const BlackMisc::Network::CUser &pilot) = 0; //! Set ICAO data - virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) = 0; + virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) = 0; //! Set callsign virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) = 0; diff --git a/src/blackcore/context_ownaircraft_impl.cpp b/src/blackcore/context_ownaircraft_impl.cpp index 2edb87c9b..034669251 100644 --- a/src/blackcore/context_ownaircraft_impl.cpp +++ b/src/blackcore/context_ownaircraft_impl.cpp @@ -93,10 +93,9 @@ namespace BlackCore this->m_ownAircraft.setCallsign(CCallsign("SWIFT")); // would come from settings //! \todo Own aircraft ICAO default data, this would need to come from somewhere (mappings) -> Own callsign, plane ICAO status, model used - this->m_ownAircraft.setIcaoInfo( - CAircraftIcaoData( - CAircraftIcaoCode("C172", "L1P"), - CAirlineIcaoCode()) + this->m_ownAircraft.setIcaoCodes( + CAircraftIcaoCode("C172", "L1P"), + CAirlineIcaoCode() ); } @@ -234,15 +233,13 @@ namespace BlackCore return true; } - bool CContextOwnAircraft::updateOwnIcaoData(const CAircraftIcaoData &icaoData) + bool CContextOwnAircraft::updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) { { QWriteLocker l(&m_lockAircraft); - if (this->m_ownAircraft.getIcaoInfo() == icaoData) { return false; } - this->m_ownAircraft.setIcaoInfo(icaoData); + return this->m_ownAircraft.setIcaoCodes(aircraftIcaoCode, airlineIcaoCode); } - emit changedIcaoData(icaoData); - return true; + emit changedAircraftIcaoCodes(aircraftIcaoCode, airlineIcaoCode); } bool CContextOwnAircraft::updateSelcal(const CSelcal &selcal, const CIdentifier &originator) @@ -273,15 +270,9 @@ namespace BlackCore void CContextOwnAircraft::ps_changedSimulatorModel(const CSimulatedAircraft &ownAircraft) { + CAircraftModel model(ownAircraft.getModel()); QWriteLocker l(&m_lockAircraft); - this->m_ownAircraft.setModel(ownAircraft.getModel()); - CAircraftIcaoData icao(ownAircraft.getIcaoInfo()); - if (icao.hasAircraftDesignator()) - { - // if the model knows its ICAO, cool - // otherwise we ignore it and will use an ICAO elsewhere set - this->m_ownAircraft.setIcaoInfo(icao); - } + this->m_ownAircraft.setModel(model); } void CContextOwnAircraft::setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url) @@ -312,7 +303,7 @@ namespace BlackCore parser.parse(commandLine); if (!parser.isKnownCommand()) { return false; } - CAircraft myAircraft(this->getOwnAircraft()); + CSimulatedAircraft myAircraft(this->getOwnAircraft()); if (parser.matchesCommand(".x", ".xpdr") && parser.countParts() > 1) { CTransponder transponder = myAircraft.getTransponder(); @@ -352,8 +343,7 @@ namespace BlackCore { return false; } - // todo RW: replace originator - this->updateCockpit(com1, com2, myAircraft.getTransponder(), CIdentifier("commandline")); + this->updateCockpit(com1, com2, myAircraft.getTransponder(), identifier()); return true; } } diff --git a/src/blackcore/context_ownaircraft_impl.h b/src/blackcore/context_ownaircraft_impl.h index 6d690a2e0..90ffc0dc0 100644 --- a/src/blackcore/context_ownaircraft_impl.h +++ b/src/blackcore/context_ownaircraft_impl.h @@ -34,6 +34,7 @@ namespace BlackCore { Q_OBJECT Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTOWNAIRCRAFT_INTERFACENAME) + Q_INTERFACES(BlackMisc::Simulation::IOwnAircraftProvider) friend class CRuntime; friend class IContextOwnAircraft; @@ -79,9 +80,9 @@ namespace BlackCore //! \ingroup ownaircraftprovider virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) override; - //! \copydoc IContextOwnAircraft::updateOwnIcaoData + //! \copydoc IContextOwnAircraft::updateOwnIcaoCodes //! \ingroup ownaircraftprovider - virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) override; + virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) override; //! \copydoc IContextOwnAircraft::updatePosition virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) override; diff --git a/src/blackcore/context_ownaircraft_proxy.cpp b/src/blackcore/context_ownaircraft_proxy.cpp index 040cbe1f5..4498da00d 100644 --- a/src/blackcore/context_ownaircraft_proxy.cpp +++ b/src/blackcore/context_ownaircraft_proxy.cpp @@ -70,9 +70,9 @@ namespace BlackCore return this->m_dBusInterface->callDBusRet(QLatin1Literal("updateOwnCallsign"), callsign); } - bool CContextOwnAircraftProxy::updateOwnIcaoData(const CAircraftIcaoData &icaoData) + bool CContextOwnAircraftProxy::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode) { - return this->m_dBusInterface->callDBusRet(QLatin1Literal("updateOwnIcaoData"), icaoData); + return this->m_dBusInterface->callDBusRet(QLatin1Literal("updateOwnIcaoCodes"), aircraftIcaoCode, airlineIcaoCode); } void CContextOwnAircraftProxy::setAudioOutputVolume(int outputVolume) diff --git a/src/blackcore/context_ownaircraft_proxy.h b/src/blackcore/context_ownaircraft_proxy.h index ce12e37c8..e44b2f882 100644 --- a/src/blackcore/context_ownaircraft_proxy.h +++ b/src/blackcore/context_ownaircraft_proxy.h @@ -15,7 +15,6 @@ #include "blackcoreexport.h" #include "blackcore/context_ownaircraft.h" #include "blackmisc/genericdbusinterface.h" -#include "blackmisc/aviation/aircrafticaodata.h" #include "blackmisc/simulation/simulatedaircraft.h" namespace BlackCore @@ -56,8 +55,8 @@ namespace BlackCore //! \copydoc IContextOwnAircraft::updateOwnCallsign virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) override; - //! \copydoc IContextOwnAircraft::updateOwnIcaoData - virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) override; + //! \copydoc IContextOwnAircraft::updateOwnIcaoCodes + virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) override; //! \copydoc IContextOwnAircraft::setAudioOutputVolumes virtual void setAudioOutputVolume(int outputVolume) override; diff --git a/src/blackcore/context_simulator.h b/src/blackcore/context_simulator.h index d859ecd8f..5d812577c 100644 --- a/src/blackcore/context_simulator.h +++ b/src/blackcore/context_simulator.h @@ -32,7 +32,6 @@ #include "blackmisc/simulation/simulatorplugininfo.h" #include "blackmisc/simulation/simulatorsetup.h" #include "blackmisc/simulation/simulatorplugininfolist.h" -#include "blackmisc/aviation/aircraft.h" #include "blackmisc/simulation/simulatedaircraftlist.h" #include "blackmisc/aviation/airportlist.h" #include "blackmisc/project.h" @@ -128,9 +127,6 @@ namespace BlackCore //! Model for model string virtual BlackMisc::Simulation::CAircraftModelList getInstalledModelsStartingWith(const QString modelString) const = 0; - //! ICAO data for model string - virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const = 0; - //! Set time synchronization between simulator and user's computer time //! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) = 0; diff --git a/src/blackcore/context_simulator_impl.cpp b/src/blackcore/context_simulator_impl.cpp index 1ddc3ef09..18cb360dd 100644 --- a/src/blackcore/context_simulator_impl.cpp +++ b/src/blackcore/context_simulator_impl.cpp @@ -156,15 +156,6 @@ namespace BlackCore m_simulatorPlugin.second->reloadInstalledModels(); } - CAircraftIcaoData CContextSimulator::getIcaoForModelString(const QString &modelString) const - { - if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << modelString; } - if (m_simulatorPlugin.first.isUnspecified()) { return CAircraftIcaoData(); } - - Q_ASSERT(m_simulatorPlugin.second); - return m_simulatorPlugin.second->getIcaoForModelString(modelString); - } - bool CContextSimulator::setTimeSynchronization(bool enable, const CTime &offset) { if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } @@ -542,7 +533,7 @@ namespace BlackCore m_simulatorPlugin.second->changeRemoteAircraftEnabled(aircraft, originator); } - void CContextSimulator::ps_updateSimulatorCockpitFromContext(const CAircraft &ownAircraft, const CIdentifier &originator) + void CContextSimulator::ps_updateSimulatorCockpitFromContext(const CSimulatedAircraft &ownAircraft, const CIdentifier &originator) { // todo: // This was previously an assert and it should be one again in the future. @@ -572,23 +563,15 @@ namespace BlackCore CPixmap CContextSimulator::iconForModel(const QString &modelString) const { - if (m_simulatorPlugin.first.isUnspecified()) - { - return CPixmap(); - } - - Q_ASSERT(m_simulatorPlugin.second); + if (m_simulatorPlugin.first.isUnspecified()) { return CPixmap(); } + Q_ASSERT_X(m_simulatorPlugin.second, Q_FUNC_INFO, "Missing simulator"); return m_simulatorPlugin.second->iconForModel(modelString); } void CContextSimulator::enableDebugMessages(bool driver, bool interpolator) { - if (m_simulatorPlugin.first.isUnspecified()) - { - return; - } - - Q_ASSERT(m_simulatorPlugin.second); + if (m_simulatorPlugin.first.isUnspecified()) { return; } + Q_ASSERT_X(m_simulatorPlugin.second, Q_FUNC_INFO, "Missing simulator"); return m_simulatorPlugin.second->enableDebugMessages(driver, interpolator); } @@ -606,7 +589,7 @@ namespace BlackCore void CContextSimulator::stopSimulatorListeners() { - for (const auto &info: getAvailableSimulatorPlugins()) + for (const auto &info : getAvailableSimulatorPlugins()) { ISimulatorListener *listener = m_plugins->getListener(info.getIdentifier()); QMetaObject::invokeMethod(listener, "stop"); diff --git a/src/blackcore/context_simulator_impl.h b/src/blackcore/context_simulator_impl.h index 3c2b6164f..6b2f905b7 100644 --- a/src/blackcore/context_simulator_impl.h +++ b/src/blackcore/context_simulator_impl.h @@ -15,11 +15,11 @@ #include "blackcoreexport.h" #include "blackcore/context_simulator.h" #include "blackcore/simulator.h" -#include "blackmisc/worker.h" #include "blackmisc/simulation/simulatorplugininfolist.h" -#include "blackmisc/network/textmessagelist.h" -#include "blackmisc/pixmap.h" #include "blackmisc/simulation/simulatedaircraftlist.h" +#include "blackmisc/network/textmessagelist.h" +#include "blackmisc/worker.h" +#include "blackmisc/pixmap.h" #include "blackmisc/variant.h" #include #include @@ -79,9 +79,6 @@ namespace BlackCore //! \copydoc IContextSimulator::reloadInstalledModels virtual void reloadInstalledModels() override; - //! \copydoc IContextSimulator::getIcaoForModelString - virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const override; - //! \copydoc IContextSimulator::setTimeSynchronization virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; @@ -169,7 +166,7 @@ namespace BlackCore //! Update simulator cockpit from context, because someone else has changed cockpit (e.g. GUI, 3rd party) //! \remarks set by runtime, only to be used locally (not via DBus) - void ps_updateSimulatorCockpitFromContext(const BlackMisc::Aviation::CAircraft &ownAircraft, const BlackMisc::CIdentifier &originator); + void ps_updateSimulatorCockpitFromContext(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft, const BlackMisc::CIdentifier &originator); private: //! Load plugin, if required start listeners before diff --git a/src/blackcore/context_simulator_proxy.cpp b/src/blackcore/context_simulator_proxy.cpp index 6d8632077..8fb8aaa38 100644 --- a/src/blackcore/context_simulator_proxy.cpp +++ b/src/blackcore/context_simulator_proxy.cpp @@ -91,11 +91,6 @@ namespace BlackCore m_dBusInterface->callDBus(QLatin1Literal("reloadInstalledModels")); } - CAircraftIcaoData CContextSimulatorProxy::getIcaoForModelString(const QString &modelString) const - { - return m_dBusInterface->callDBusRet(QLatin1Literal("getIcaoForModelString"), modelString); - } - BlackMisc::Simulation::CSimulatorPluginInfo CContextSimulatorProxy::getSimulatorPluginInfo() const { return m_dBusInterface->callDBusRet(QLatin1Literal("getSimulatorPluginInfo")); diff --git a/src/blackcore/context_simulator_proxy.h b/src/blackcore/context_simulator_proxy.h index 7f652206b..3e11e192f 100644 --- a/src/blackcore/context_simulator_proxy.h +++ b/src/blackcore/context_simulator_proxy.h @@ -74,9 +74,6 @@ namespace BlackCore //! \copydoc IContextSimulator::reloadInstalledModels virtual void reloadInstalledModels() override; - //! \copydoc IContextSimulator::getIcaoForModelString - virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const override; - //! \copydoc IContextSimulator::getSimulatorSetup virtual BlackMisc::Simulation::CSimulatorSetup getSimulatorSetup() const override; diff --git a/src/blackcore/simulator.h b/src/blackcore/simulator.h index 617860cb7..048007c65 100644 --- a/src/blackcore/simulator.h +++ b/src/blackcore/simulator.h @@ -91,10 +91,7 @@ namespace BlackCore virtual bool changeRemoteAircraftEnabled(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0; //! Update own aircraft cockpit (usually from context) - virtual bool updateOwnSimulatorCockpit(const BlackMisc::Aviation::CAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0; - - //! ICAO data for model string - virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const = 0; + virtual bool updateOwnSimulatorCockpit(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0; //! Display a status message in the simulator virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const = 0;