From afea320a2ea9b3d96197cad8ab3985650b38ee6f Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sun, 8 Feb 2015 12:25:53 +0100 Subject: [PATCH] refs #321 Handle aircraft config client capability --- src/blackcore/airspace_monitor.cpp | 3 ++- src/blackcore/network.h | 3 ++- src/blackcore/network_vatlib.cpp | 7 ++++--- src/blackmisc/nwclient.cpp | 1 + src/blackmisc/nwclient.h | 4 ++-- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/blackcore/airspace_monitor.cpp b/src/blackcore/airspace_monitor.cpp index 80c5883b7..ce5e6e38f 100644 --- a/src/blackcore/airspace_monitor.cpp +++ b/src/blackcore/airspace_monitor.cpp @@ -46,6 +46,7 @@ namespace BlackCore this->connect(this->m_network, &INetwork::capabilitiesReplyReceived, this, &CAirspaceMonitor::ps_capabilitiesReplyReceived); this->connect(this->m_network, &INetwork::fsipirCustomPacketReceived, this, &CAirspaceMonitor::ps_fsipirCustomPacketReceived); this->connect(this->m_network, &INetwork::serverReplyReceived, this, &CAirspaceMonitor::ps_serverReplyReceived); + this->connect(this->m_network, &INetwork::aircraftConfigPacketReceived, this, &CAirspaceMonitor::ps_aircraftConfigReceived); // AutoConnection: this should also avoid race conditions by updating the bookings this->connect(this->m_vatsimBookingReader, &CVatsimBookingReader::dataRead, this, &CAirspaceMonitor::ps_receivedBookings); @@ -313,7 +314,7 @@ namespace BlackCore capabilities.addValue(CClient::FsdAtisCanBeReceived, (flags & INetwork::AcceptsAtisResponses)); capabilities.addValue(CClient::FsdWithInterimPositions, (flags & INetwork::SupportsInterimPosUpdates)); capabilities.addValue(CClient::FsdWithModelDescription, (flags & INetwork::SupportsModelDescriptions)); - //! \todo add aircraft config cap. + capabilities.addValue(CClient::FsdWithAircraftConfig, (flags & INetwork::SupportsAircraftConfigs)); CPropertyIndexVariantMap vm(CClient::IndexCapabilities, capabilities.toCVariant()); CVoiceCapabilities caps = m_vatsimDataFileReader->getVoiceCapabilityForCallsign(callsign); diff --git a/src/blackcore/network.h b/src/blackcore/network.h index f846b1c70..9dda6eb2b 100644 --- a/src/blackcore/network.h +++ b/src/blackcore/network.h @@ -73,7 +73,8 @@ namespace BlackCore { AcceptsAtisResponses = 1 << 0, SupportsInterimPosUpdates = 1 << 1, - SupportsModelDescriptions = 1 << 2 + SupportsModelDescriptions = 1 << 2, + SupportsAircraftConfigs = 1 << 3 }; /*! diff --git a/src/blackcore/network_vatlib.cpp b/src/blackcore/network_vatlib.cpp index b743338c1..eba0a8bc2 100644 --- a/src/blackcore/network_vatlib.cpp +++ b/src/blackcore/network_vatlib.cpp @@ -61,7 +61,7 @@ namespace BlackCore { Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "attempted to reinitialize session while still connected"); - int clientCapabilities = vatCapsModelDesc | vatCapsInterminPos | vatCapsAtcInfo; + int clientCapabilities = vatCapsModelDesc | vatCapsInterminPos | vatCapsAtcInfo | vatCapsAircraftConfig; if (m_loginMode == LoginStealth) { clientCapabilities |= vatCapsStealth; @@ -800,8 +800,9 @@ namespace BlackCore { int flags = 0; if (capabilityFlags & vatCapsAtcInfo) { flags |= AcceptsAtisResponses; } - else if (capabilityFlags & vatCapsInterminPos) { flags |= SupportsInterimPosUpdates; } - else if (capabilityFlags & vatCapsModelDesc) { flags |= SupportsModelDescriptions; } + if (capabilityFlags & vatCapsInterminPos) { flags |= SupportsInterimPosUpdates; } + if (capabilityFlags & vatCapsModelDesc) { flags |= SupportsModelDescriptions; } + if (capabilityFlags & vatCapsAircraftConfig) { flags |= SupportsAircraftConfigs; } emit cbvar_cast(cbvar)->capabilitiesReplyReceived(cbvar_cast(cbvar)->fromFSD(callsign), flags); } diff --git a/src/blackmisc/nwclient.cpp b/src/blackmisc/nwclient.cpp index 52bda23fb..d8e3ebe4a 100644 --- a/src/blackmisc/nwclient.cpp +++ b/src/blackmisc/nwclient.cpp @@ -57,6 +57,7 @@ namespace BlackMisc if (this->hasCapability(FsdAtisCanBeReceived)) sl << "ATIS"; if (this->hasCapability(FsdWithInterimPositions)) sl << "interim pos."; if (this->hasCapability(FsdWithModelDescription)) sl << "model"; + if (this->hasCapability(FsdWithAircraftConfig)) sl << "aircraft config"; if (sl.isEmpty()) return ""; return sl.join(", "); } diff --git a/src/blackmisc/nwclient.h b/src/blackmisc/nwclient.h index 6a9e4c3b1..e5c661dc1 100644 --- a/src/blackmisc/nwclient.h +++ b/src/blackmisc/nwclient.h @@ -48,7 +48,8 @@ namespace BlackMisc { FsdWithInterimPositions = BlackMisc::CPropertyIndex::GlobalIndexAbuseMode, FsdWithModelDescription, - FsdAtisCanBeReceived + FsdAtisCanBeReceived, + FsdWithAircraftConfig }; //! Default constructor. @@ -137,7 +138,6 @@ namespace BlackMisc CPropertyIndexVariantMap m_capabilities; QString m_server; CVoiceCapabilities m_voiceCapabilities; - }; } // namespace } // namespace