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::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);

View File

@@ -73,7 +73,8 @@ namespace BlackCore
{
AcceptsAtisResponses = 1 << 0,
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");
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);
}

View File

@@ -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(", ");
}

View File

@@ -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