swift
simulatorplugininfo.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_SIMULATION_SIMULATORPLUGININFO_H
7 #define SWIFT_MISC_SIMULATION_SIMULATORPLUGININFO_H
8 
9 #include <QJsonObject>
10 #include <QMetaType>
11 #include <QString>
12 
13 #include "misc/metaclass.h"
15 #include "misc/swiftmiscexport.h"
16 #include "misc/valueobject.h"
17 
18 SWIFT_DECLARE_VALUEOBJECT_MIXINS(swift::misc::simulation, CSimulatorPluginInfo)
19 
20 namespace swift::misc::simulation
21 {
23  class SWIFT_MISC_EXPORT CSimulatorPluginInfo : public CValueObject<CSimulatorPluginInfo>
24  {
25  public:
27  CSimulatorPluginInfo() = default;
28 
30  CSimulatorPluginInfo(const QString &identifier, const QString &name, const QString &simulator,
31  const QString &description, bool valid);
32 
34  void convertFromJson(const QJsonObject &json);
35 
37  bool isUnspecified() const;
38 
45  bool isValid() const { return m_valid; }
46 
48  const QString &getIdentifier() const { return m_identifier; }
49 
51  const QString &getName() const { return m_name; }
52 
54  const QString &getSimulator() const { return m_simulator; }
55 
57  const CSimulatorInfo &getSimulatorInfo() const { return m_info; }
58 
60  bool isEmulatedPlugin() const;
61 
63  const QString &getDescription() const { return m_description; }
64 
66  QString convertToQString(bool i18n = false) const;
67 
69  static const QString &identifierFromSimulatorInfo(const CSimulatorInfo &);
70 
72  static const QString &fsxPluginIdentifier();
73 
75  static const QString &p3dPluginIdentifier();
76 
78  static const QString &fs9PluginIdentifier();
79 
81  static const QString &xplanePluginIdentifier();
82 
84  static const QString &fgPluginIdentifier();
85 
87  static const QString &msfsPluginIdentifier();
88 
90  static const QString &msfs2024PluginIdentifier();
91 
93  static const QString &emulatedPluginIdentifier();
94 
96  static const QStringList &allIdentifiers();
97 
99  static QStringList guessDefaultPlugins();
100 
101  private:
102  QString m_identifier;
103  QString m_name;
104  QString m_simulator;
105  QString m_description;
106  CSimulatorInfo m_info;
107  bool m_valid { false };
108 
110  CSimulatorPluginInfo,
117  };
118 } // namespace swift::misc::simulation
119 
121 
122 #endif // SWIFT_MISC_SIMULATION_SIMULATORPLUGININFO_H
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
Simple hardcoded info about the corresponding simulator.
Definition: simulatorinfo.h:41
const QString & getSimulator() const
Simulator.
const QString & getIdentifier() const
Identifier.
const QString & getDescription() const
Description.
const CSimulatorInfo & getSimulatorInfo() const
Simulator info object.
CSimulatorPluginInfo()=default
Default constructor.
bool isValid() const
Check if the provided plugin metadata is valid. Simulator plugin (driver) has to meet the following r...
#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
@ CaseInsensitiveComparison
Element will be compared case insensitively (must be a QString)
Definition: metaclass.h:207
@ DisabledForComparison
Element will be ignored by compare() and comparison operators.
Definition: metaclass.h:202
@ DisabledForHashing
Element will be ignored by qHash()
Definition: metaclass.h:205
#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