swift
aircraftmodelloaderflightgear.h
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #ifndef SWIFT_MISC_SIMULATION_FLIGHTGEAR_AIRCRAFTMODELLOADERFLIGHTGEAR_H
5 #define SWIFT_MISC_SIMULATION_FLIGHTGEAR_AIRCRAFTMODELLOADERFLIGHTGEAR_H
6 
7 #include <QPointer>
8 
10 
11 namespace swift::misc::simulation::flightgear
12 {
15  {
16  Q_OBJECT
17 
18  public:
20  CAircraftModelLoaderFlightgear(QObject *parent = nullptr);
21 
24 
26  void updateInstalledModels(const CAircraftModelList &models);
27 
29  bool isLoadingFinished() const override;
30 
31  protected:
33  void startLoadingFromDisk(LoadMode mode, const ModelConsolidationCallback &modelConsolidation,
34  const QStringList &modelDirectories) override;
35 
36  private:
37  QString getModelString(const QString &filePath, bool ai);
38  CAircraftModelList parseFlyableAirplanes(const QString &rootDirectory, const QStringList &excludeDirectories);
39  CAircraftModelList parseAIAirplanes(const QString &rootDirectory, const QStringList &excludeDirectories);
40  void addUniqueModel(const CAircraftModel &model, CAircraftModelList &models);
41  QPointer<CWorker> m_parserWorker;
42  CAircraftModelList performParsing(const QStringList &rootDirectories, const QStringList &excludeDirectories);
43  };
44 } // namespace swift::misc::simulation::flightgear
45 
46 #endif // SWIFT_MISC_SIMULATION_FLIGHTGEAR_AIRCRAFTMODELLOADERFLIGHTGEAR_H
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
Value object encapsulating a list of aircraft models.
Load the aircraft for a simulator.
std::function< int(swift::misc::simulation::CAircraftModelList &, bool)> ModelConsolidationCallback
Callback to consolidate data, normally with DB data.
void startLoadingFromDisk(LoadMode mode, const ModelConsolidationCallback &modelConsolidation, const QStringList &modelDirectories)
Start the loading process from disk.
void updateInstalledModels(const CAircraftModelList &models)
Parsed or injected models.