Added updates by VATSIM data file for voice capabilities

This commit is contained in:
Klaus Basan
2014-09-08 23:24:01 +02:00
parent 2127238ed4
commit 4500bda125
7 changed files with 140 additions and 8 deletions

View File

@@ -103,6 +103,9 @@ namespace BlackMisc
//! Get voice capabilities
const CVoiceCapabilities &getVoiceCapabilities() const { return m_voiceCapabilities;}
//! Has known voice capabilities?
bool hasSpecifiedVoiceCapabilities() const { return !m_voiceCapabilities.isUnknown();}
//! Set voice capabilities
void setVoiceCapabilities(const CVoiceCapabilities &voiceCapabilities) { m_voiceCapabilities = voiceCapabilities;}

View File

@@ -76,6 +76,20 @@ namespace BlackMisc
this->setCapabilities(Voice);
return;
}
if (r.contains("/t/"))
{
this->setCapabilities(TextOnly);
return;
}
if (r.contains("/r/"))
{
this->setCapabilities(VoiceReceivingOnly);
return;
}
this->setCapabilities(Unknown);
}
/*
@@ -191,6 +205,39 @@ namespace BlackMisc
return TupleConverter<CVoiceCapabilities>::jsonMembers();
}
/*
* From enum
*/
const CVoiceCapabilities &CVoiceCapabilities::fromVoiceCapabilities(CVoiceCapabilities::VoiceCapabilities capabilities)
{
static const CVoiceCapabilities u(CVoiceCapabilities::Unknown);
static const CVoiceCapabilities to(CVoiceCapabilities::TextOnly);
static const CVoiceCapabilities v(CVoiceCapabilities::Voice);
static const CVoiceCapabilities vro(CVoiceCapabilities::VoiceReceivingOnly);
switch (capabilities)
{
case CVoiceCapabilities::TextOnly:
return to;
case CVoiceCapabilities::Voice:
return v;
case CVoiceCapabilities::VoiceReceivingOnly:
return vro;
case CVoiceCapabilities::Unknown:
default:
return u;
}
}
/*
* All
*/
const QList<CVoiceCapabilities> &CVoiceCapabilities::allCapabilities()
{
static const QList<CVoiceCapabilities> all({fromVoiceCapabilities(Unknown), fromVoiceCapabilities(Voice), fromVoiceCapabilities(VoiceReceivingOnly), fromVoiceCapabilities(TextOnly)});
return all;
}
/*
* Register metadata
*/

View File

@@ -51,6 +51,9 @@ namespace BlackMisc
//! Set capabilites
void setCapabilities(VoiceCapabilities capabilites) { m_voiceCapabilities = static_cast<int>(capabilites); }
//! Is capability known
bool isUnknown() const { return m_voiceCapabilities == Unknown; }
//! \copydoc CValueObject::toIcon()
virtual CIcon toIcon() const override;
@@ -81,6 +84,18 @@ namespace BlackMisc
//! Members
static const QStringList &jsonMembers();
//! From enum
static const CVoiceCapabilities &fromVoiceCapabilities(VoiceCapabilities capabilities);
//! From flight plan remarks
static CVoiceCapabilities fromFlightPlanRemarks(const QString &remarks)
{
return CVoiceCapabilities(remarks);
}
//! All capabilities as list
static const QList<CVoiceCapabilities> &allCapabilities();
protected:
//! \copydoc CValueObject::convertToQString
virtual QString convertToQString(bool i18n = false) const override;
@@ -105,7 +120,7 @@ namespace BlackMisc
int m_voiceCapabilities = Unknown;
//! Capabilites from flight plans remarks such as "/V/"
void fromFlightPlanRemarks(const QString &flightPlanRemarks);
void setFromFlightPlanRemarks(const QString &flightPlanRemarks);
};
} // namespace