Ref T259, Ref T243 directly convert to Client capabilities enum in vatlib, do not use an interim enum

This commit is contained in:
Klaus Basan
2018-03-19 21:00:41 +01:00
parent a4b1fca376
commit 9dabef447f
4 changed files with 13 additions and 27 deletions

View File

@@ -544,22 +544,17 @@ namespace BlackCore
this->updateOrAddClient(callsign, vm, false);
}
void CAirspaceMonitor::onCapabilitiesReplyReceived(const CCallsign &callsign, quint32 flags)
void CAirspaceMonitor::onCapabilitiesReplyReceived(const CCallsign &callsign, int clientCaps)
{
if (!this->isConnected() || callsign.isEmpty()) { return; }
CPropertyIndexVariantMap capabilities;
capabilities.addValue(CClient::FsdAtisCanBeReceived, (flags & INetwork::AcceptsAtisResponses));
capabilities.addValue(CClient::FsdWithInterimPositions, (flags & INetwork::SupportsInterimPosUpdates));
capabilities.addValue(CClient::FsdWithIcaoCodes, (flags & INetwork::SupportsIcaoCodes));
capabilities.addValue(CClient::FsdWithAircraftConfig, (flags & INetwork::SupportsAircraftConfigs));
CPropertyIndexVariantMap vm(CClient::IndexCapabilities, CVariant::from(capabilities));
const CVoiceCapabilities caps = sApp->getWebDataServices()->getVoiceCapabilityForCallsign(callsign);
vm.addValue({CClient::IndexVoiceCapabilities}, caps);
CClient::Capabilities caps = static_cast<CClient::Capabilities>(clientCaps);
const CVoiceCapabilities voiceCaps = sApp->getWebDataServices()->getVoiceCapabilityForCallsign(callsign);
CPropertyIndexVariantMap vm(CClient::IndexCapabilities, CVariant::from(clientCaps));
vm.addValue({CClient::IndexVoiceCapabilities}, voiceCaps);
this->updateOrAddClient(callsign, vm, false);
// for aircraft parts
if (flags & INetwork::SupportsAircraftConfigs) { m_network->sendAircraftConfigQuery(callsign); }
if (caps.testFlag(CClient::FsdWithAircraftConfig)) { m_network->sendAircraftConfigQuery(callsign); }
}
void CAirspaceMonitor::onServerReplyReceived(const CCallsign &callsign, const QString &server)

View File

@@ -361,7 +361,7 @@ namespace BlackCore
void onCustomFSInnPacketReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &airlineIcaoDesignator, const QString &aircraftDesignator, const QString &combinedAircraftType, const QString &modelString);
void onRealNameReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &realname);
void onCapabilitiesReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, quint32 flags);
void onCapabilitiesReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, int clientCaps);
void onServerReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &server);
void onFlightPlanReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CFlightPlan &flightPlan);
void onAtcControllerDisconnected(const BlackMisc::Aviation::CCallsign &callsign);

View File

@@ -82,15 +82,6 @@ namespace BlackCore
//! Underlying library info.
virtual const QString &getLibraryInfo(bool detailed) const = 0;
//! Flags for capabilities bitfield
// enum Capability
// {
// AcceptsAtisResponses = 1 << 0,
// SupportsInterimPosUpdates = 1 << 1,
// SupportsIcaoCodes = 1 << 2,
// SupportsAircraftConfigs = 1 << 3
// };
//! Login modes
enum LoginMode
{

View File

@@ -1261,13 +1261,13 @@ namespace BlackCore
void CNetworkVatlib::onCapabilitiesReplyReceived(VatFsdClient *, const char *callsign, int capabilityFlags, void *cbvar)
{
int flags = 0;
if (capabilityFlags & vatCapsAtcInfo) { flags |= AcceptsAtisResponses; }
if (capabilityFlags & vatCapsFastPos) { flags |= SupportsInterimPosUpdates; }
if (capabilityFlags & vatCapsAircraftInfo) { flags |= SupportsIcaoCodes; }
if (capabilityFlags & vatCapsAircraftConfig) { flags |= SupportsAircraftConfigs; }
CClient::Capabilities caps = CClient::None;
if (capabilityFlags & vatCapsAtcInfo) { caps |= CClient::FsdAtisCanBeReceived; }
if (capabilityFlags & vatCapsFastPos) { caps |= CClient::FsdWithInterimPositions; }
if (capabilityFlags & vatCapsAircraftInfo) { caps |= CClient::FsdWithIcaoCodes; }
if (capabilityFlags & vatCapsAircraftConfig) { caps |= CClient::FsdWithAircraftConfig; }
auto *self = cbvar_cast(cbvar);
emit self->capabilitiesReplyReceived(self->fromFSD(callsign), flags);
emit self->capabilitiesReplyReceived(self->fromFSD(callsign), static_cast<int>(caps));
}
void CNetworkVatlib::onAtisReplyReceived(VatFsdClient *, const char *callsign, const VatControllerAtis *atis, void *cbvar)