swift
voicecapabilities.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_NETWORK_VOICECAPABILITIES_H
7 #define SWIFT_MISC_NETWORK_VOICECAPABILITIES_H
8 
9 #include "misc/swiftmiscexport.h"
10 #include "misc/valueobject.h"
11 
12 SWIFT_DECLARE_VALUEOBJECT_MIXINS(swift::misc::network, CVoiceCapabilities)
13 
14 namespace swift::misc::network
15 {
17  class SWIFT_MISC_EXPORT CVoiceCapabilities : public CValueObject<CVoiceCapabilities>
18  {
19  public:
22  {
23  Unknown,
24  Voice,
25  VoiceReceivingOnly,
26  TextOnly,
27  };
28 
30  CVoiceCapabilities() = default;
31 
33  CVoiceCapabilities(VoiceCapabilities capabilities) : m_voiceCapabilities(capabilities) {}
34 
36  CVoiceCapabilities(const QString &flightPlanRemarks);
37 
39  VoiceCapabilities getCapabilities() const { return m_voiceCapabilities; }
40 
42  void setCapabilities(VoiceCapabilities capabilites) { m_voiceCapabilities = capabilites; }
43 
45  bool isUnknown() const { return m_voiceCapabilities == Unknown; }
46 
48  const QString &toFlightPlanRemarks() const;
49 
51  static const CVoiceCapabilities &fromVoiceCapabilities(VoiceCapabilities capabilities);
52 
54  static CVoiceCapabilities fromFlightPlanRemarks(const QString &remarks);
55 
57  static CVoiceCapabilities fromText(const QString &text);
58 
60  static const QList<CVoiceCapabilities> &allCapabilities();
61 
63  CIcons::IconIndex toIcon() const;
64 
66  QString convertToQString(bool i18n = false) const;
67 
68  private:
69  VoiceCapabilities m_voiceCapabilities = Unknown;
70 
72  void setFromFlightPlanRemarks(const QString &flightPlanRemarks);
73 
76  SWIFT_METAMEMBER(voiceCapabilities));
77  };
78 } // namespace swift::misc::network
79 
81 
82 #endif // SWIFT_MISC_NETWORK_VOICECAPABILITIES_H
IconIndex
Index for each icon, allows to send them via DBus, efficiently store them, etc.
Definition: icons.h:32
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
Value object encapsulating information for voice capabilities.
CVoiceCapabilities(VoiceCapabilities capabilities)
Constructor by callsign.
CVoiceCapabilities()=default
Default constructor.
bool isUnknown() const
Is capability known.
VoiceCapabilities getCapabilities() const
Get capabilities.
void setCapabilities(VoiceCapabilities capabilites)
Set capabilites.
#define SWIFT_METAMEMBER(MEMBER,...)
Macro to define an element within a metaclass.
Definition: metaclass.h:73
#define SWIFT_METACLASS(CLASS,...)
Macro to define a nested metaclass that describes the attributes of its enclosing class.
Definition: metaclass.h:53
#define SWIFT_MISC_EXPORT
Export a class or function from the library.
#define SWIFT_DECLARE_VALUEOBJECT_MIXINS(Namespace, Class)
Explicit template declaration of mixins for a CValueObject subclass to be placed near the top of the ...
Definition: valueobject.h:65