refs #321 Handle aircraft config client capability

This commit is contained in:
Roland Winklmeier
2015-02-08 12:25:53 +01:00
committed by Klaus Basan
parent b40180818c
commit afea320a2e
5 changed files with 11 additions and 7 deletions

View File

@@ -46,6 +46,7 @@ namespace BlackCore
this->connect(this->m_network, &INetwork::capabilitiesReplyReceived, this, &CAirspaceMonitor::ps_capabilitiesReplyReceived); 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::fsipirCustomPacketReceived, this, &CAirspaceMonitor::ps_fsipirCustomPacketReceived);
this->connect(this->m_network, &INetwork::serverReplyReceived, this, &CAirspaceMonitor::ps_serverReplyReceived); 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 // AutoConnection: this should also avoid race conditions by updating the bookings
this->connect(this->m_vatsimBookingReader, &CVatsimBookingReader::dataRead, this, &CAirspaceMonitor::ps_receivedBookings); 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::FsdAtisCanBeReceived, (flags & INetwork::AcceptsAtisResponses));
capabilities.addValue(CClient::FsdWithInterimPositions, (flags & INetwork::SupportsInterimPosUpdates)); capabilities.addValue(CClient::FsdWithInterimPositions, (flags & INetwork::SupportsInterimPosUpdates));
capabilities.addValue(CClient::FsdWithModelDescription, (flags & INetwork::SupportsModelDescriptions)); 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()); CPropertyIndexVariantMap vm(CClient::IndexCapabilities, capabilities.toCVariant());
CVoiceCapabilities caps = m_vatsimDataFileReader->getVoiceCapabilityForCallsign(callsign); CVoiceCapabilities caps = m_vatsimDataFileReader->getVoiceCapabilityForCallsign(callsign);

View File

@@ -73,7 +73,8 @@ namespace BlackCore
{ {
AcceptsAtisResponses = 1 << 0, AcceptsAtisResponses = 1 << 0,
SupportsInterimPosUpdates = 1 << 1, SupportsInterimPosUpdates = 1 << 1,
SupportsModelDescriptions = 1 << 2 SupportsModelDescriptions = 1 << 2,
SupportsAircraftConfigs = 1 << 3
}; };
/*! /*!

View File

@@ -61,7 +61,7 @@ namespace BlackCore
{ {
Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "attempted to reinitialize session while still connected"); 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) if (m_loginMode == LoginStealth)
{ {
clientCapabilities |= vatCapsStealth; clientCapabilities |= vatCapsStealth;
@@ -800,8 +800,9 @@ namespace BlackCore
{ {
int flags = 0; int flags = 0;
if (capabilityFlags & vatCapsAtcInfo) { flags |= AcceptsAtisResponses; } if (capabilityFlags & vatCapsAtcInfo) { flags |= AcceptsAtisResponses; }
else if (capabilityFlags & vatCapsInterminPos) { flags |= SupportsInterimPosUpdates; } if (capabilityFlags & vatCapsInterminPos) { flags |= SupportsInterimPosUpdates; }
else if (capabilityFlags & vatCapsModelDesc) { flags |= SupportsModelDescriptions; } if (capabilityFlags & vatCapsModelDesc) { flags |= SupportsModelDescriptions; }
if (capabilityFlags & vatCapsAircraftConfig) { flags |= SupportsAircraftConfigs; }
emit cbvar_cast(cbvar)->capabilitiesReplyReceived(cbvar_cast(cbvar)->fromFSD(callsign), flags); emit cbvar_cast(cbvar)->capabilitiesReplyReceived(cbvar_cast(cbvar)->fromFSD(callsign), flags);
} }

View File

@@ -57,6 +57,7 @@ namespace BlackMisc
if (this->hasCapability(FsdAtisCanBeReceived)) sl << "ATIS"; if (this->hasCapability(FsdAtisCanBeReceived)) sl << "ATIS";
if (this->hasCapability(FsdWithInterimPositions)) sl << "interim pos."; if (this->hasCapability(FsdWithInterimPositions)) sl << "interim pos.";
if (this->hasCapability(FsdWithModelDescription)) sl << "model"; if (this->hasCapability(FsdWithModelDescription)) sl << "model";
if (this->hasCapability(FsdWithAircraftConfig)) sl << "aircraft config";
if (sl.isEmpty()) return ""; if (sl.isEmpty()) return "";
return sl.join(", "); return sl.join(", ");
} }

View File

@@ -48,7 +48,8 @@ namespace BlackMisc
{ {
FsdWithInterimPositions = BlackMisc::CPropertyIndex::GlobalIndexAbuseMode, FsdWithInterimPositions = BlackMisc::CPropertyIndex::GlobalIndexAbuseMode,
FsdWithModelDescription, FsdWithModelDescription,
FsdAtisCanBeReceived FsdAtisCanBeReceived,
FsdWithAircraftConfig
}; };
//! Default constructor. //! Default constructor.
@@ -137,7 +138,6 @@ namespace BlackMisc
CPropertyIndexVariantMap m_capabilities; CPropertyIndexVariantMap m_capabilities;
QString m_server; QString m_server;
CVoiceCapabilities m_voiceCapabilities; CVoiceCapabilities m_voiceCapabilities;
}; };
} // namespace } // namespace
} // namespace } // namespace