diff --git a/src/blackcore/network.h b/src/blackcore/network.h index 2777ac146..d0d52ce85 100644 --- a/src/blackcore/network.h +++ b/src/blackcore/network.h @@ -14,7 +14,7 @@ #include "blackcoreexport.h" #include "blackmisc/simulation/simulatorplugininfo.h" -#include "blackmisc/aviation/aircraft.h" +#include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/pq/frequency.h" #include "blackmisc/geo/coordinategeodetic.h" #include "blackmisc/pq/length.h" @@ -175,7 +175,7 @@ namespace BlackCore * Set our own aircraft ICAO codes before connecting. * \pre Network must be disconnected when calling this function. */ - virtual void presetIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoData &icao) = 0; + virtual void presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft) = 0; /*! * Select a login mode before connecting. @@ -436,7 +436,7 @@ namespace BlackCore * We received a reply to one of our queries. * \sa sendIcaoCodesQuery */ - void icaoCodesReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcaoData &icao); + void icaoCodesReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString aircraftIcaoDesignator, const QString &airlineIcaoDesignator, const QString &livery); /*! * We received a notification of the state of another aircraft on the network. diff --git a/src/blackcore/network_vatlib.cpp b/src/blackcore/network_vatlib.cpp index 93b95c65c..1829f0a19 100644 --- a/src/blackcore/network_vatlib.cpp +++ b/src/blackcore/network_vatlib.cpp @@ -294,15 +294,16 @@ namespace BlackCore void CNetworkVatlib::presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) { Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "Can't change callsign while still connected"); - m_callsign = callsign; + m_ownCallsign = callsign; updateOwnCallsign(callsign); } - void CNetworkVatlib::presetIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoData &icao) + void CNetworkVatlib::presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft) { Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "Can't change ICAO codes while still connected"); - m_icaoCode = icao; - updateOwnIcaoData(icao); + m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode(); + m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode(); + updateOwnIcaoCodes(m_ownAircraftIcaoCode, m_ownAirlineIcaoCode); } void CNetworkVatlib::presetLoginMode(LoginMode mode) @@ -317,8 +318,8 @@ namespace BlackCore Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "Can't connect while still connected"); if (!m_net) { initializeSession(); } QByteArray callsign = toFSD(m_loginMode == LoginAsObserver ? - m_callsign.getAsObserverCallsignString() : - m_callsign.asString()); + m_ownCallsign.getAsObserverCallsignString() : + m_ownCallsign.asString()); QByteArray name = toFSD(m_server.getUser().getRealName()); if (this->m_loginMode == LoginAsObserver) @@ -551,8 +552,8 @@ namespace BlackCore void CNetworkVatlib::sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign) // private { - const QByteArray acTypeICAObytes = toFSD(m_icaoCode.getAircraftDesignator()); - const QByteArray airlineICAObytes = toFSD(m_icaoCode.getAirlineDesignator()); + const QByteArray acTypeICAObytes = toFSD(m_ownAircraftIcaoCode.getDesignator()); + const QByteArray airlineICAObytes = toFSD(m_ownAirlineIcaoCode.getDesignator()); const QByteArray liverybytes; //! \todo VATLIB: send livery VatAircraftInfo aircraftInfo {acTypeICAObytes, airlineICAObytes, liverybytes}; @@ -606,12 +607,15 @@ namespace BlackCore { Q_ASSERT_X(isConnected(), "CNetworkVatlib", "Can't send to server when disconnected"); CSimulatedAircraft myAircraft(getOwnAircraft()); - CAircraftIcaoData icao = myAircraft.getIcaoInfo(); QString modelString = myAircraft.getModel().getModelString(); if (modelString.isEmpty()) { modelString = defaultModelString(); } - QStringList data { { "0" }, icao.getAirlineDesignator(), icao.getAircraftDesignator(), - { "" }, { "" }, { "" }, { "" }, icao.getAircraftCombinedType(), modelString + QStringList data { { "0" }, + myAircraft.getAirlineIcaoCodeDesignator(), + myAircraft.getAircraftIcaoCodeDesignator(), + { "" }, { "" }, { "" }, { "" }, + myAircraft.getAircraftIcaoCombinedType(), + modelString }; sendCustomPacket(callsign, "FSIPIR", data); } @@ -620,12 +624,15 @@ namespace BlackCore { Q_ASSERT_X(isConnected(), "CNetworkVatlib", "Can't send to server when disconnected"); CSimulatedAircraft myAircraft(getOwnAircraft()); - CAircraftIcaoData icao = myAircraft.getIcaoInfo(); QString modelString = myAircraft.getModel().getModelString(); if (modelString.isEmpty()) { modelString = defaultModelString(); } - QStringList data { { "0" }, icao.getAirlineDesignator(), icao.getAircraftDesignator(), - { "" }, { "" }, { "" }, { "" }, icao.getAircraftCombinedType(), modelString + QStringList data { { "0" }, + myAircraft.getAirlineIcaoCodeDesignator(), + myAircraft.getAircraftIcaoCodeDesignator(), + { "" }, { "" }, { "" }, { "" }, + myAircraft.getAircraftIcaoCombinedType(), + modelString }; sendCustomPacket(callsign, "FSIPI", data); } @@ -1021,12 +1028,12 @@ namespace BlackCore void CNetworkVatlib::onPilotInfoReceived(VatSessionID, const char *callsign, const VatAircraftInfo *aircraftInfo, void *cbvar) { - BlackMisc::Aviation::CAircraftIcaoData icao; - icao.setAircraftDesignator(aircraftInfo->aircraftType); - icao.setAirlineDesignator(aircraftInfo->airline); - - //! \todo use livery: aircraftInfo->livery; - emit cbvar_cast(cbvar)->icaoCodesReplyReceived(cbvar_cast(cbvar)->fromFSD(callsign), icao); + emit cbvar_cast(cbvar)->icaoCodesReplyReceived( + cbvar_cast(cbvar)->fromFSD(callsign), + QString(aircraftInfo->aircraftType).trimmed().toUpper(), + QString(aircraftInfo->airline).trimmed().toUpper(), + QString(aircraftInfo->livery).trimmed().toUpper() + ); } void CNetworkVatlib::networkLogHandler(SeverityLevel /** severity **/, const char *message) diff --git a/src/blackcore/network_vatlib.h b/src/blackcore/network_vatlib.h index c7810deba..71bdd17a2 100644 --- a/src/blackcore/network_vatlib.h +++ b/src/blackcore/network_vatlib.h @@ -48,7 +48,7 @@ namespace BlackCore virtual void presetLoginMode(LoginMode mode) override; virtual void presetServer(const BlackMisc::Network::CServer &server) override; virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) override; - virtual void presetIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoData &icao) override; + virtual void presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft) override; virtual void presetSimulatorInfo(const BlackMisc::Simulation::CSimulatorPluginInfo &simInfo) override; virtual void initiateConnection() override; virtual void terminateConnection() override; @@ -170,12 +170,13 @@ namespace BlackCore private: QScopedPointer m_net; - LoginMode m_loginMode; - VatConnectionStatus m_status; - BlackMisc::Network::CServer m_server; - BlackMisc::Simulation::CSimulatorPluginInfo m_simulatorInfo; - BlackMisc::Aviation::CCallsign m_callsign; //!< "buffered callsign", as this must not change when connected - BlackMisc::Aviation::CAircraftIcaoData m_icaoCode; //!< "buffered icao", as this must not change when connected + LoginMode m_loginMode; + VatConnectionStatus m_status; + BlackMisc::Network::CServer m_server; + BlackMisc::Simulation::CSimulatorPluginInfo m_simulatorInfo; + BlackMisc::Aviation::CCallsign m_ownCallsign; //!< "buffered callsign", as this must not change when connected + BlackMisc::Aviation::CAircraftIcaoCode m_ownAircraftIcaoCode; //!< "buffered icao", as this must not change when connected + BlackMisc::Aviation::CAirlineIcaoCode m_ownAirlineIcaoCode; //!< "buffered icao", as this must not change when connected QTimer m_processingTimer; QTimer m_positionUpdateTimer;