Ref T415, vPilot format and improved voice capability parsing

This commit is contained in:
Klaus Basan
2018-10-27 18:37:03 +02:00
parent ebd1e78dd4
commit 620cbe3882
5 changed files with 152 additions and 21 deletions

View File

@@ -27,6 +27,25 @@ namespace BlackMisc
this->setFromFlightPlanRemarks(flightPlanRemarks);
}
const QString &CVoiceCapabilities::toFlightPlanRemarks() const
{
static const QString v("/R/");
static const QString t("/T/");
static const QString r("/R/");
static const QString u("");
switch (m_voiceCapabilities)
{
case Voice: return v;
case TextOnly: return t;
case VoiceReceivingOnly: return r;
case Unknown: return u;
default: break;
}
Q_ASSERT_X(false, Q_FUNC_INFO, "Illegal mode");
return u;
}
QString CVoiceCapabilities::convertToQString(bool i18n) const
{
Q_UNUSED(i18n);
@@ -100,6 +119,16 @@ namespace BlackMisc
return CVoiceCapabilities(remarks);
}
CVoiceCapabilities CVoiceCapabilities::fromText(const QString &text)
{
if (text.startsWith("/")) { return CVoiceCapabilities::fromText(text); }
if (text.contains("TEXT", Qt::CaseInsensitive)) { return CVoiceCapabilities(TextOnly); }
if (text.contains("ONLY", Qt::CaseInsensitive)) { return CVoiceCapabilities(TextOnly); }
if (text.contains("RECEIVE", Qt::CaseInsensitive)) { return CVoiceCapabilities(VoiceReceivingOnly); }
if (text.contains("VOICE", Qt::CaseInsensitive)) { return CVoiceCapabilities(Voice); }
return CVoiceCapabilities(Unknown);
}
const QList<CVoiceCapabilities> &CVoiceCapabilities::allCapabilities()
{
static const QList<CVoiceCapabilities> all({fromVoiceCapabilities(Unknown), fromVoiceCapabilities(Voice), fromVoiceCapabilities(VoiceReceivingOnly), fromVoiceCapabilities(TextOnly)});

View File

@@ -50,12 +50,18 @@ namespace BlackMisc
//! Is capability known
bool isUnknown() const { return m_voiceCapabilities == Unknown; }
//! To flight plan remarks
const QString &toFlightPlanRemarks() const;
//! From enum
static const CVoiceCapabilities &fromVoiceCapabilities(VoiceCapabilities capabilities);
//! From flight plan remarks
static CVoiceCapabilities fromFlightPlanRemarks(const QString &remarks);
//! From text like "text only"
static CVoiceCapabilities fromText(const QString &text);
//! All capabilities as list
static const QList<CVoiceCapabilities> &allCapabilities();