diff --git a/src/blackcore/context_ownaircraft.h b/src/blackcore/context_ownaircraft.h index af9e09e23..75eb89233 100644 --- a/src/blackcore/context_ownaircraft.h +++ b/src/blackcore/context_ownaircraft.h @@ -90,20 +90,30 @@ namespace BlackCore virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const = 0; //! Own aircraft + //! \todo remove "own", left over from past virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) = 0; //! Own position, be aware height is terrain height + //! \todo remove "own", left over from past virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) = 0; //! Complete situation update + //! \todo remove "own", left over from past virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) = 0; //! Update own cockpit + //! \todo remove "own", left over from past virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) = 0; //! Set current pilot virtual bool updatePilot(const BlackMisc::Network::CUser &pilot, const QString &originator) = 0; + //! Set ICAO data + virtual bool updateIcaoData(const BlackMisc::Aviation::CAircraftIcao &icaoData, const QString &originator) = 0; + + //! Set callsign + virtual bool updateCallsign(const BlackMisc::Aviation::CCallsign &callsign, const QString &originator) = 0; + //! Own SELCAL code virtual bool updateSelcal(const BlackMisc::Aviation::CSelcal &selcal, const QString &originator) = 0; @@ -112,6 +122,7 @@ namespace BlackCore //! Set individual voice rooms (overrides voice rooms) //! \remarks Empty string "" disables voice room override + //! \sa enableAutomaticVoiceRoomResolution virtual void setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url) = 0; //! Automatic voice room resolution for frequencies diff --git a/src/blackcore/context_ownaircraft_impl.cpp b/src/blackcore/context_ownaircraft_impl.cpp index a03839a4e..a35823b94 100644 --- a/src/blackcore/context_ownaircraft_impl.cpp +++ b/src/blackcore/context_ownaircraft_impl.cpp @@ -187,6 +187,22 @@ namespace BlackCore return true; } + bool CContextOwnAircraft::updateCallsign(const CCallsign &callsign, const QString &originator) + { + if (this->m_ownAircraft.getCallsign() == callsign) { return false; } + this->m_ownAircraft.setCallsign(callsign); + emit this->changedAircraft(this->m_ownAircraft, originator); + return true; + } + + bool CContextOwnAircraft::updateIcaoData(const CAircraftIcao &icaoData, const QString &originator) + { + if (this->m_ownAircraft.getIcaoInfo() == icaoData) { return false; } + this->m_ownAircraft.setIcaoInfo(icaoData); + emit this->changedAircraft(this->m_ownAircraft, originator); + return true; + } + bool CContextOwnAircraft::updateSelcal(const CSelcal &selcal, const QString &originator) { if (this->m_ownAircraft.getSelcal() == selcal) { return false; } diff --git a/src/blackcore/context_ownaircraft_impl.h b/src/blackcore/context_ownaircraft_impl.h index 505036c2b..58052fcd9 100644 --- a/src/blackcore/context_ownaircraft_impl.h +++ b/src/blackcore/context_ownaircraft_impl.h @@ -43,21 +43,27 @@ namespace BlackCore //! \copydoc IContextOwnAircraft::getOwnAircraft() virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override; - //! \copydoc IContextOwnAircraft::setOwnAircraft() + //! \copydoc IContextOwnAircraft::setOwnAircraft virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updateOwnPosition() + //! \copydoc IContextOwnAircraft::updateOwnPosition virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updateOwnSituation() + //! \copydoc IContextOwnAircraft::updateOwnSituation virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updateOwnCockpit() + //! \copydoc IContextOwnAircraft::updateOwnCockpit virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updatePilot() + //! \copydoc IContextOwnAircraft::updatePilot virtual bool updatePilot(const BlackMisc::Network::CUser &pilot, const QString &originator) override; + //! \copydoc IContextOwnAircraft::updateCallsign + virtual bool updateCallsign(const BlackMisc::Aviation::CCallsign &callsign, const QString &originator) override; + + //! \copydoc IContextOwnAircraft::updateIcaoData + virtual bool updateIcaoData(const BlackMisc::Aviation::CAircraftIcao &icaoData, const QString &originator) override; + //! \copydoc IContextOwnAircraft::updateSelcal virtual bool updateSelcal(const Aviation::CSelcal &selcal, const QString &originator) override; diff --git a/src/blackcore/context_ownaircraft_proxy.cpp b/src/blackcore/context_ownaircraft_proxy.cpp index 845eaa659..3b4ae8a70 100644 --- a/src/blackcore/context_ownaircraft_proxy.cpp +++ b/src/blackcore/context_ownaircraft_proxy.cpp @@ -71,6 +71,16 @@ namespace BlackCore return this->m_dBusInterface->callDBusRet(QLatin1Literal("updateSelcal"), selcal, originator); } + bool CContextOwnAircraftProxy::updateCallsign(const Aviation::CCallsign &callsign, const QString &originator) + { + return this->m_dBusInterface->callDBusRet(QLatin1Literal("updateCallsign"), callsign, originator); + } + + bool CContextOwnAircraftProxy::updateIcaoData(const Aviation::CAircraftIcao &icaoData, const QString &originator) + { + return this->m_dBusInterface->callDBusRet(QLatin1Literal("updateIcaoData"), icaoData, originator); + } + void CContextOwnAircraftProxy::setAudioOutputVolumes(int outputVolumeCom1, int outputVolumeCom2) { this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnCockpitOutputVolumes"), outputVolumeCom1, outputVolumeCom2); diff --git a/src/blackcore/context_ownaircraft_proxy.h b/src/blackcore/context_ownaircraft_proxy.h index d107daf87..2f7ff0779 100644 --- a/src/blackcore/context_ownaircraft_proxy.h +++ b/src/blackcore/context_ownaircraft_proxy.h @@ -19,7 +19,7 @@ namespace BlackCore { - //! \brief Network context proxy + //! \brief Own aircraft context proxy //! \ingroup dbus class CContextOwnAircraftProxy : public IContextOwnAircraft { @@ -52,21 +52,27 @@ namespace BlackCore //! \copydoc IContextOwnAircraft::setOwnAircraft() virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updateOwnPosition() + //! \copydoc IContextOwnAircraft::updateOwnPosition virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updateOwnSituation() + //! \copydoc IContextOwnAircraft::updateOwnSituation virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updateOwnCockpit() + //! \copydoc IContextOwnAircraft::updateOwnCockpit virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) override; - //! \copydoc IContextOwnAircraft::updatePilot() + //! \copydoc IContextOwnAircraft::updatePilot virtual bool updatePilot(const BlackMisc::Network::CUser &pilot, const QString &originator) override; //! \copydoc IContextOwnAircraft::updateSelcal virtual bool updateSelcal(const Aviation::CSelcal &selcal, const QString &originator) override; + //! \copydoc IContextOwnAircraft::updateCallsign + virtual bool updateCallsign(const BlackMisc::Aviation::CCallsign &callsign, const QString &originator) override; + + //! \copydoc IContextOwnAircraft::updateIcaoData + virtual bool updateIcaoData(const BlackMisc::Aviation::CAircraftIcao &icaoData, const QString &originator) override; + //! \copydoc IContextOwnAircraft::setAudioOutputVolumes virtual void setAudioOutputVolumes(int outputVolumeCom1, int outputVolumeCom2) override;