From acb3d77904f55a504d03d06acbb16f23d681c566 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 13:17:23 +0100 Subject: [PATCH 01/16] refactor: Remove deprecated function --- src/core/context/contextsimulator.cpp | 7 +------ src/core/context/contextsimulator.h | 6 +----- src/core/context/contextsimulatorempty.h | 4 ++-- src/core/context/contextsimulatorimpl.cpp | 4 ++-- src/core/context/contextsimulatorimpl.h | 2 +- src/core/context/contextsimulatorproxy.cpp | 4 ++-- src/core/context/contextsimulatorproxy.h | 2 +- 7 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/core/context/contextsimulator.cpp b/src/core/context/contextsimulator.cpp index b3337ef8a..c8945521a 100644 --- a/src/core/context/contextsimulator.cpp +++ b/src/core/context/contextsimulator.cpp @@ -49,11 +49,6 @@ namespace swift::core::context } } - ISimulator::SimulatorStatus IContextSimulator::getSimulatorStatusEnum() const - { - return static_cast(this->getSimulatorStatus()); - } - CSimulatorInfo IContextSimulator::getSimulatorInfo() const { return this->getSimulatorPluginInfo().getSimulatorInfo(); @@ -66,7 +61,7 @@ namespace swift::core::context bool IContextSimulator::isSimulatorSimulating() const { - if (!isSimulatorAvailable() || !getSimulatorStatusEnum().testFlag(ISimulator::Simulating)) { return false; } + if (!isSimulatorAvailable() || !getSimulatorStatus().testFlag(ISimulator::Simulating)) { return false; } return true; } } // namespace swift::core::context diff --git a/src/core/context/contextsimulator.h b/src/core/context/contextsimulator.h index be2f8ba08..b0aaada15 100644 --- a/src/core/context/contextsimulator.h +++ b/src/core/context/contextsimulator.h @@ -74,10 +74,6 @@ namespace swift::core::context //! Destructor ~IContextSimulator() override {} - //! Get simulator status as enum - //! \fixme To be removed with Qt 5.5 when getSimualtorStatus directly provides the enum - ISimulator::SimulatorStatus getSimulatorStatusEnum() const; - // ---- some convenienc functions implemented on interface level //! Current simulator @@ -169,7 +165,7 @@ namespace swift::core::context virtual void stopSimulatorPlugin(const swift::misc::simulation::CSimulatorPluginInfo &simulatorInfo) = 0; //! Simulator combined status - virtual int getSimulatorStatus() const = 0; + virtual ISimulator::SimulatorStatus getSimulatorStatus() const = 0; //! Simulator setup virtual swift::misc::simulation::CSimulatorInternals getSimulatorInternals() const = 0; diff --git a/src/core/context/contextsimulatorempty.h b/src/core/context/contextsimulatorempty.h index aea10723b..da733cb80 100644 --- a/src/core/context/contextsimulatorempty.h +++ b/src/core/context/contextsimulatorempty.h @@ -67,10 +67,10 @@ namespace swift::core::context virtual int checkListeners() override { return 0; } //! \copydoc IContextSimulator::getSimulatorStatus - virtual int getSimulatorStatus() const override + virtual ISimulator::SimulatorStatus getSimulatorStatus() const override { logEmptyContextWarning(Q_FUNC_INFO); - return 0; + return ISimulator::Unspecified; } //! \copydoc IContextSimulator::stopSimulatorPlugin diff --git a/src/core/context/contextsimulatorimpl.cpp b/src/core/context/contextsimulatorimpl.cpp index 045beeb2b..ea1050b73 100644 --- a/src/core/context/contextsimulatorimpl.cpp +++ b/src/core/context/contextsimulatorimpl.cpp @@ -188,10 +188,10 @@ namespace swift::core::context return m_plugins->checkAvailableListeners(); } - int CContextSimulator::getSimulatorStatus() const + ISimulator::SimulatorStatus CContextSimulator::getSimulatorStatus() const { if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } - if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return 0; } + if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return ISimulator::Unspecified; } return m_simulatorPlugin.second->getSimulatorStatus(); } diff --git a/src/core/context/contextsimulatorimpl.h b/src/core/context/contextsimulatorimpl.h index b97ba703f..16f3083e6 100644 --- a/src/core/context/contextsimulatorimpl.h +++ b/src/core/context/contextsimulatorimpl.h @@ -98,7 +98,7 @@ namespace swift::core virtual int checkListeners() override; //! \copydoc swift::core::context::IContextSimulator::getSimulatorStatus - virtual int getSimulatorStatus() const override; + virtual ISimulator::SimulatorStatus getSimulatorStatus() const override; //! \copydoc swift::core::context::IContextSimulator::getSimulatorInternals virtual swift::misc::simulation::CSimulatorInternals getSimulatorInternals() const override; diff --git a/src/core/context/contextsimulatorproxy.cpp b/src/core/context/contextsimulatorproxy.cpp index 6009bf027..f88b2ed2c 100644 --- a/src/core/context/contextsimulatorproxy.cpp +++ b/src/core/context/contextsimulatorproxy.cpp @@ -131,9 +131,9 @@ namespace swift::core::context return m_dBusInterface->callDBusRet(QLatin1String("setSimulatorSettings"), settings, simulatorInfo); } - int CContextSimulatorProxy::getSimulatorStatus() const + ISimulator::SimulatorStatus CContextSimulatorProxy::getSimulatorStatus() const { - return m_dBusInterface->callDBusRet(QLatin1String("getSimulatorStatus")); + return m_dBusInterface->callDBusRet(QLatin1String("getSimulatorStatus")); } CAirportList CContextSimulatorProxy::getAirportsInRange(bool recalculatePosition) const diff --git a/src/core/context/contextsimulatorproxy.h b/src/core/context/contextsimulatorproxy.h index 9c63415a3..c28cc97b4 100644 --- a/src/core/context/contextsimulatorproxy.h +++ b/src/core/context/contextsimulatorproxy.h @@ -81,7 +81,7 @@ namespace swift::core virtual int checkListeners() override; //! \copydoc swift::core::context::IContextSimulator::getSimulatorStatus - virtual int getSimulatorStatus() const override; + virtual ISimulator::SimulatorStatus getSimulatorStatus() const override; //! \copydoc swift::core::context::IContextSimulator::getAirportsInRange virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculatePosition) const override; From 74e545be37f776198ca80d7c04563e02460757d9 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sat, 28 Dec 2024 17:03:33 +0100 Subject: [PATCH 02/16] fix: Compiler warning --- src/swiftguistandard/swiftguistdapplication.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/swiftguistandard/swiftguistdapplication.cpp b/src/swiftguistandard/swiftguistdapplication.cpp index 6f4fcc82d..c44ac9035 100644 --- a/src/swiftguistandard/swiftguistdapplication.cpp +++ b/src/swiftguistandard/swiftguistdapplication.cpp @@ -96,6 +96,8 @@ CCoreFacadeConfig CSwiftGuiStdApplication::coreModeToCoreFacadeConfig(CoreModes: { case CoreModes::Distributed: return CCoreFacadeConfig(CCoreFacadeConfig::Remote, dBusAddress); case CoreModes::Standalone: return CCoreFacadeConfig(CCoreFacadeConfig::Local, dBusAddress); break; - default: Q_ASSERT_X(false, Q_FUNC_INFO, "Not handled core mode"); + default: + Q_ASSERT_X(false, Q_FUNC_INFO, "Not handled core mode"); + return CCoreFacadeConfig(CCoreFacadeConfig::NotUsed, dBusAddress); } } From 88ec24bfb4ba845ae9d1fd0b8989ff005a2d6ea2 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sat, 28 Dec 2024 17:03:53 +0100 Subject: [PATCH 03/16] refactor: Fix clang-tidy warnings --- src/misc/valuecache.cpp | 2 +- src/misc/valuecache.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/misc/valuecache.cpp b/src/misc/valuecache.cpp index cecfc29b5..bad6f181a 100644 --- a/src/misc/valuecache.cpp +++ b/src/misc/valuecache.cpp @@ -585,7 +585,7 @@ namespace swift::misc auto it = std::find_if(pages.cbegin(), pages.cend(), [cache](CValuePage *page) { return page->m_cache == cache; }); if (it == pages.cend()) { return *new CValuePage(parent, cache); } - else { return **it; } + return **it; } struct CValuePage::Element diff --git a/src/misc/valuecache.h b/src/misc/valuecache.h index 9ffa4bad0..9ea9ec37c 100644 --- a/src/misc/valuecache.h +++ b/src/misc/valuecache.h @@ -303,7 +303,6 @@ namespace swift::misc //! Mutex protecting operations which are critical on m_elements. mutable QRecursiveMutex m_mutex; - protected: //! Synchronously return a current value. //! \threadsafe CVariant getValueSync(const QString &key) { return std::get<0>(getValue(key)); } From aecc71067c5e9846a14903a8a3617446fc78d6e3 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sat, 28 Dec 2024 20:12:06 +0100 Subject: [PATCH 04/16] refactor: Remove shortcuts to start launcher --- src/core/application.cpp | 41 -------------------------- src/core/application.h | 9 ------ src/gui/components/navigatordialog.cpp | 7 ----- src/gui/guiapplication.cpp | 7 ----- 4 files changed, 64 deletions(-) diff --git a/src/core/application.cpp b/src/core/application.cpp index 1ff279562..b922518bc 100644 --- a/src/core/application.cpp +++ b/src/core/application.cpp @@ -257,47 +257,6 @@ namespace swift::core return s; } - QString CApplication::getExecutableForApplication(CApplicationInfo::Application application) const - { - QString searchFor; - switch (application) - { - case CApplicationInfo::PilotClientCore: searchFor = "core"; break; - case CApplicationInfo::Launcher: searchFor = "launcher"; break; - case CApplicationInfo::MappingTool: searchFor = "data"; break; - case CApplicationInfo::PilotClientGui: searchFor = "gui"; break; - default: break; - } - if (searchFor.isEmpty()) { return {}; } - - for (const QString &executable : CFileUtils::getSwiftExecutables()) - { - if (!executable.contains("swift", Qt::CaseInsensitive)) { continue; } - if (executable.contains(searchFor, Qt::CaseInsensitive)) { return executable; } - } - return {}; - } - - bool CApplication::startLauncher() - { - static const QString launcher = - CApplication::getExecutableForApplication(CApplicationInfo::Application::Launcher); - if (launcher.isEmpty() || CApplication::isApplicationRunning(CApplicationInfo::Launcher)) { return false; } - - // const QStringList args = this->argumentsJoined({}, { "--dbus", "--core", "--coreaudio" }); - const QStringList args = this->argumentsJoined({}, { "--dbus", "--core" }); - return QProcess::startDetached(launcher, args); - } - - bool CApplication::startLauncherAndQuit() - { - const bool started = CApplication::startLauncher(); - if (!started) { return false; } - this->gracefulShutdown(); - CApplication::exit(); - return true; - } - CGlobalSetup CApplication::getGlobalSetup() const { if (m_shutdown) { return CGlobalSetup(); } diff --git a/src/core/application.h b/src/core/application.h index d067045c3..6034e0872 100644 --- a/src/core/application.h +++ b/src/core/application.h @@ -146,15 +146,6 @@ namespace swift::core //! Version, name beta and dev info const QString &getApplicationNameVersionDetailed() const; - //! Executable names for the given applications - QString getExecutableForApplication(swift::misc::CApplicationInfo::Application application) const; - - //! Start the launcher - bool startLauncher(); - - //! Start the launcher and quit - bool startLauncherAndQuit(); - //! Global setup //! \threadsafe data::CGlobalSetup getGlobalSetup() const; diff --git a/src/gui/components/navigatordialog.cpp b/src/gui/components/navigatordialog.cpp index 2536c9425..e7236afa8 100644 --- a/src/gui/components/navigatordialog.cpp +++ b/src/gui/components/navigatordialog.cpp @@ -296,13 +296,6 @@ namespace swift::gui::components // add some space for frameless navigators where I can move the navigator QAction *a = nullptr; // new QAction(CIcons::empty16(), "move navigator here", this); bool c = false; - if (sGui) - { - a = new QAction(CIcons::swiftLauncher16(), "Start launcher", this); - c = connect(a, &QAction::triggered, sGui, &CGuiApplication::startLauncher); - Q_ASSERT(c); - this->addAction(a); - } // save a = new QAction(CIcons::save16(), "Save state", this); diff --git a/src/gui/guiapplication.cpp b/src/gui/guiapplication.cpp index ede40c4c3..ee8f0b7de 100644 --- a/src/gui/guiapplication.cpp +++ b/src/gui/guiapplication.cpp @@ -664,13 +664,6 @@ namespace swift::gui addMenuForStyleSheets(menu); QAction *a = nullptr; bool c = false; - if (this->getApplicationInfo().getApplication() != CApplicationInfo::Launcher) - { - menu.addSeparator(); - a = menu.addAction(CIcons::swiftLauncher24(), "Start swift launcher"); - c = connect(a, &QAction::triggered, this, &CGuiApplication::startLauncher); - Q_ASSERT_X(c, Q_FUNC_INFO, "Connect failed"); - } menu.addSeparator(); a = menu.addAction("E&xit"); From cf8fc5fb8f440ec5ed770b2c58771459ea7ef3d7 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 13:50:24 +0100 Subject: [PATCH 05/16] refactor: Remove unused convenience functions --- src/core/context/contextsimulator.cpp | 5 ----- src/core/context/contextsimulator.h | 5 ----- 2 files changed, 10 deletions(-) diff --git a/src/core/context/contextsimulator.cpp b/src/core/context/contextsimulator.cpp index c8945521a..a54036057 100644 --- a/src/core/context/contextsimulator.cpp +++ b/src/core/context/contextsimulator.cpp @@ -49,11 +49,6 @@ namespace swift::core::context } } - CSimulatorInfo IContextSimulator::getSimulatorInfo() const - { - return this->getSimulatorPluginInfo().getSimulatorInfo(); - } - bool IContextSimulator::isSimulatorAvailable() const { return CBuildConfig::isCompiledWithFlightSimulatorSupport() && !this->getSimulatorPluginInfo().isUnspecified(); diff --git a/src/core/context/contextsimulator.h b/src/core/context/contextsimulator.h index b0aaada15..fff8056dd 100644 --- a/src/core/context/contextsimulator.h +++ b/src/core/context/contextsimulator.h @@ -74,11 +74,6 @@ namespace swift::core::context //! Destructor ~IContextSimulator() override {} - // ---- some convenienc functions implemented on interface level - - //! Current simulator - misc::simulation::CSimulatorInfo getSimulatorInfo() const; - signals: //! Simulator combined status //! \sa ISimulator::SimulatorStatus From 865e7fc0efc703bbe607db1667689a1a5922fea2 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 14:04:49 +0100 Subject: [PATCH 06/16] refactor: Remove model preview This feature was not documented and only worked for some MS flight simulators --- src/core/context/contextsimulator.h | 3 -- src/core/context/contextsimulatorempty.h | 8 ---- src/core/context/contextsimulatorimpl.cpp | 12 ------ src/core/context/contextsimulatorimpl.h | 3 -- src/core/context/contextsimulatorproxy.cpp | 5 --- src/core/context/contextsimulatorproxy.h | 3 -- src/gui/components/mappingcomponent.cpp | 16 -------- src/gui/components/mappingcomponent.h | 3 -- src/gui/menus/aircraftmodelmenus.cpp | 21 ---------- src/gui/menus/aircraftmodelmenus.h | 1 - src/gui/models/aircraftmodellistmodel.cpp | 1 - src/misc/simulation/aircraftmodel.cpp | 38 ------------------- src/misc/simulation/aircraftmodel.h | 15 -------- src/misc/simulation/aircraftmodellist.cpp | 14 ------- src/misc/simulation/aircraftmodellist.h | 6 --- .../fscommon/aircraftcfgentries.cpp | 18 --------- .../simulation/fscommon/aircraftcfgentries.h | 7 ---- src/misc/simulation/simulatedaircraft.h | 3 -- 18 files changed, 177 deletions(-) diff --git a/src/core/context/contextsimulator.h b/src/core/context/contextsimulator.h index fff8056dd..6f8d639c4 100644 --- a/src/core/context/contextsimulator.h +++ b/src/core/context/contextsimulator.h @@ -263,9 +263,6 @@ namespace swift::core::context //! Is available simulator simulating? Returns false if no simulator is available bool isSimulatorSimulating() const; - //! Icon representing the model - virtual swift::misc::CPixmap iconForModel(const QString &modelString) const = 0; - //! Get mapping messages virtual swift::misc::CStatusMessageList getMatchingMessages(const swift::misc::aviation::CCallsign &callsign) const = 0; diff --git a/src/core/context/contextsimulatorempty.h b/src/core/context/contextsimulatorempty.h index da733cb80..938086a49 100644 --- a/src/core/context/contextsimulatorempty.h +++ b/src/core/context/contextsimulatorempty.h @@ -288,14 +288,6 @@ namespace swift::core::context return swift::misc::physical_quantities::CTime(); } - //! \copydoc IContextSimulator::iconForModel - virtual swift::misc::CPixmap iconForModel(const QString &modelString) const override - { - Q_UNUSED(modelString) - logEmptyContextWarning(Q_FUNC_INFO); - return swift::misc::CPixmap(); - } - //! \copydoc IContextSimulator::followAircraft virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override { diff --git a/src/core/context/contextsimulatorimpl.cpp b/src/core/context/contextsimulatorimpl.cpp index ea1050b73..ebbe27601 100644 --- a/src/core/context/contextsimulatorimpl.cpp +++ b/src/core/context/contextsimulatorimpl.cpp @@ -967,18 +967,6 @@ namespace swift::core::context } } - CPixmap CContextSimulator::iconForModel(const QString &modelString) const - { - if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return CPixmap(); } - - // load from file - CStatusMessage msg; - const CAircraftModel model(this->getModelSet().findFirstByModelStringAliasOrDefault(modelString)); - const CPixmap pm(model.loadIcon(msg)); - if (!msg.isEmpty()) { CLogMessage::preformatted(msg); } - return pm; - } - CStatusMessageList CContextSimulator::getMatchingMessages(const CCallsign &callsign) const { if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO << callsign; } diff --git a/src/core/context/contextsimulatorimpl.h b/src/core/context/contextsimulatorimpl.h index 16f3083e6..30ca653fb 100644 --- a/src/core/context/contextsimulatorimpl.h +++ b/src/core/context/contextsimulatorimpl.h @@ -185,9 +185,6 @@ namespace swift::core virtual swift::misc::CStatusMessageList getInterpolationMessages(const swift::misc::aviation::CCallsign &callsign) const override; - //! \copydoc swift::core::context::IContextSimulator::iconForModel - virtual swift::misc::CPixmap iconForModel(const QString &modelString) const override; - //! \copydoc swift::core::context::IContextSimulator::followAircraft virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override; diff --git a/src/core/context/contextsimulatorproxy.cpp b/src/core/context/contextsimulatorproxy.cpp index f88b2ed2c..71083adef 100644 --- a/src/core/context/contextsimulatorproxy.cpp +++ b/src/core/context/contextsimulatorproxy.cpp @@ -300,11 +300,6 @@ namespace swift::core::context return m_dBusInterface->callDBusRet(QLatin1String("checkListeners")); } - CPixmap CContextSimulatorProxy::iconForModel(const QString &modelString) const - { - return m_dBusInterface->callDBusRet(QLatin1String("iconForModel"), modelString); - } - bool CContextSimulatorProxy::followAircraft(const CCallsign &callsign) { return m_dBusInterface->callDBusRet(QLatin1String("followAircraft"), callsign); diff --git a/src/core/context/contextsimulatorproxy.h b/src/core/context/contextsimulatorproxy.h index c28cc97b4..22545faec 100644 --- a/src/core/context/contextsimulatorproxy.h +++ b/src/core/context/contextsimulatorproxy.h @@ -174,9 +174,6 @@ namespace swift::core //! \copydoc swift::core::context::IContextSimulator::getTimeSynchronizationOffset virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override; - //! \copydoc swift::core::context::IContextSimulator::iconForModel - virtual swift::misc::CPixmap iconForModel(const QString &modelString) const override; - //! \copydoc swift::core::context::IContextSimulator::followAircraft virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override; diff --git a/src/gui/components/mappingcomponent.cpp b/src/gui/components/mappingcomponent.cpp index 0e09cd491..36daf90ea 100644 --- a/src/gui/components/mappingcomponent.cpp +++ b/src/gui/components/mappingcomponent.cpp @@ -84,7 +84,6 @@ namespace swift::gui::components &CMappingComponent::onModelsUpdateRequested); connect(ui->tvp_AircraftModels, &CAircraftModelView::modelDataChanged, this, &CMappingComponent::onRowCountChanged); - connect(ui->tvp_AircraftModels, &CAircraftModelView::clicked, this, &CMappingComponent::onModelSelectedInView); connect(ui->tvp_AircraftModels, &CAircraftModelView::requestTempDisableModelsForMatching, this, &CMappingComponent::onTempDisableModelsForMatchingRequested); @@ -259,21 +258,6 @@ namespace swift::gui::components ui->completer_ModelStrings->setModel(simAircraft.getModel()); } - void CMappingComponent::onModelSelectedInView(const QModelIndex &index) - { - const CAircraftModel model = ui->tvp_AircraftModels->at(index); - ui->completer_ModelStrings->setModel(model); - - if (ui->cb_AircraftIconDisplayed->isChecked()) - { - const QString modelString(model.getModelString()); - const CPixmap pm = sGui->getIContextSimulator()->iconForModel(modelString); - if (pm.isNull()) { this->closeOverlay(); } - else { this->showOverlayImage(pm); } - } - else { this->onModelPreviewChanged(Qt::Unchecked); } - } - CCallsign CMappingComponent::validateRenderedCallsign() { const QString cs = ui->le_Callsign->text().trimmed(); diff --git a/src/gui/components/mappingcomponent.h b/src/gui/components/mappingcomponent.h index 89c6a7817..ddc328345 100644 --- a/src/gui/components/mappingcomponent.h +++ b/src/gui/components/mappingcomponent.h @@ -113,9 +113,6 @@ namespace swift::gui //! Aircraft selected (in view) void onAircraftSelectedInView(const QModelIndex &index); - //! Model selected (in view) - void onModelSelectedInView(const QModelIndex &index); - //! Save changed aircraft void onSaveAircraft(); diff --git a/src/gui/menus/aircraftmodelmenus.cpp b/src/gui/menus/aircraftmodelmenus.cpp index bf158c7b9..da1440d8a 100644 --- a/src/gui/menus/aircraftmodelmenus.cpp +++ b/src/gui/menus/aircraftmodelmenus.cpp @@ -96,15 +96,6 @@ namespace swift::gui::menus } } - if (m_messageFrame && !model.getIconFile().isEmpty()) - { - added = true; - menuActions.addMenuSimulator(); - m_iconAction = - menuActions.addAction(m_iconAction, CIcons::appAircraft16(), "Display icon", - CMenuAction::pathSimulator(), { this, &CShowSimulatorFileMenu::displayIcon }); - } - if (added) { menuActions.addSeparator(CMenuAction::pathSimulator()); } } this->nestedCustomMenu(menuActions); @@ -131,18 +122,6 @@ namespace swift::gui::menus } } - void CShowSimulatorFileMenu::displayIcon() - { - const CAircraftModelView *mv = modelView(); - if (!mv->hasSingleSelectedRow()) { return; } - const CAircraftModel model(mv->selectedObject()); - if (model.getIconFile().isEmpty()) { return; } - CStatusMessage msg(this); - const CPixmap pm(model.loadIcon(msg)); - if (msg.isSuccess()) { m_messageFrame->showOverlayImage(pm); } - else { CLogMessage::preformatted(msg); } - } - void CShowSimulatorFileMenu::startModelConverterX() { if (!CModelConverterX::supportsModelConverterX()) { return; } diff --git a/src/gui/menus/aircraftmodelmenus.h b/src/gui/menus/aircraftmodelmenus.h index 218804f87..24eefff6e 100644 --- a/src/gui/menus/aircraftmodelmenus.h +++ b/src/gui/menus/aircraftmodelmenus.h @@ -67,7 +67,6 @@ namespace swift::gui private: void showSimulatorFile(); //!< simulator file - void displayIcon(); //!< aircraft icon if any void startModelConverterX(); //!< show in model converter X swift::gui::COverlayMessagesFrame *m_messageFrame = nullptr; diff --git a/src/gui/models/aircraftmodellistmodel.cpp b/src/gui/models/aircraftmodellistmodel.cpp index 47b608c16..9d6f69bab 100644 --- a/src/gui/models/aircraftmodellistmodel.cpp +++ b/src/gui/models/aircraftmodellistmodel.cpp @@ -120,7 +120,6 @@ namespace swift::gui::models m_columns.addColumn(CColumn::standardString("filename", CAircraftModel::IndexFileName)); m_columns.addColumn(CColumn::standardString("file ts.", "file timestamp", CAircraftModel::IndexFileTimestampFormattedYmdhms)); - m_columns.addColumn(CColumn::standardString("icon", CAircraftModel::IndexIconPath)); m_columns.addColumn(CColumn::standardString("version", CAircraftModel::IndexVersion)); m_columns.addColumn(CColumn::standardString("changed", CAircraftModel::IndexUtcTimestampFormattedYmdhms)); diff --git a/src/misc/simulation/aircraftmodel.cpp b/src/misc/simulation/aircraftmodel.cpp index 374eacd9b..8e7d31f69 100644 --- a/src/misc/simulation/aircraftmodel.cpp +++ b/src/misc/simulation/aircraftmodel.cpp @@ -270,7 +270,6 @@ namespace swift::misc::simulation case IndexSupportedParts: return QVariant(m_supportedParts); case IndexFileTimestamp: return QVariant::fromValue(this->getFileTimestamp()); case IndexFileTimestampFormattedYmdhms: return QVariant::fromValue(this->getFormattedFileTimestampYmdhms()); - case IndexIconPath: return QVariant(m_iconFile); case IndexAircraftIcaoCode: return m_aircraftIcao.propertyByIndex(index.copyFrontRemoved()); case IndexLivery: return m_livery.propertyByIndex(index.copyFrontRemoved()); case IndexCallsign: return m_callsign.propertyByIndex(index.copyFrontRemoved()); @@ -308,7 +307,6 @@ namespace swift::misc::simulation case IndexDescription: m_description = variant.toString(); break; case IndexSimulatorInfo: m_simulator.setPropertyByIndex(index.copyFrontRemoved(), variant); break; case IndexName: m_name = variant.toString(); break; - case IndexIconPath: m_iconFile = variant.toString(); break; case IndexCG: m_cg.setPropertyByIndex(index.copyFrontRemoved(), variant); break; case IndexSupportedParts: this->setSupportedParts(variant.toString()); break; case IndexModelType: m_modelType = variant.value(); break; @@ -370,7 +368,6 @@ namespace swift::misc::simulation case IndexCallsign: return m_callsign.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getCallsign()); case IndexFileName: return m_fileName.compare(compareValue.getFileName(), Qt::CaseInsensitive); - case IndexIconPath: return m_iconFile.compare(compareValue.getIconFile(), Qt::CaseInsensitive); case IndexCG: return m_cg.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getCG()); case IndexSupportedParts: return m_supportedParts.compare(compareValue.getSupportedParts()); case IndexModelTypeAsString: @@ -556,31 +553,6 @@ namespace swift::misc::simulation } } - CPixmap CAircraftModel::loadIcon(CStatusMessage &success) const - { - static const CStatusMessage noIcon(this, CStatusMessage::SeverityInfo, u"no icon"); - static const CStatusMessage loaded(this, CStatusMessage::SeverityInfo, u"icon loaded"); - if (m_iconFile.isEmpty()) - { - success = noIcon; - return CPixmap(); - } - if (!QFile(m_iconFile).exists()) - { - success = noIcon; - return CPixmap(); - } - - QPixmap pm; - if (!pm.load(m_iconFile)) - { - success = noIcon; - return CPixmap(); - } - success = loaded; - return pm; - } - const QString &CAircraftModel::liveryStringPrefix() { static const QString p("swift_"); @@ -688,7 +660,6 @@ namespace swift::misc::simulation void CAircraftModel::updateByExistingDirectories(const CAircraftModel &otherModel) { if (otherModel.hasExistingCorrespondingFile()) { this->setFileName(otherModel.getFileName()); } - if (otherModel.hasExistingIconFile()) { this->setIconFile(otherModel.getIconFile()); } } bool CAircraftModel::hasQueriedModelString() const @@ -736,13 +707,11 @@ namespace swift::misc::simulation { // other local, priority this->setFileName(model.getFileName()); - this->setIconFile(model.getIconFile()); return; } // both not local, override empty values if (m_fileName.isEmpty()) { this->setFileName(model.getFileName()); } - if (m_iconFile.isEmpty()) { this->setIconFile(model.getIconFile()); } } bool CAircraftModel::adjustLocalFileNames(const QString &newModelDir, const QString &stripModelDirIndicator) @@ -796,13 +765,6 @@ namespace swift::misc::simulation return (p.contains(path, cs)); } - bool CAircraftModel::hasExistingIconFile() const - { - if (m_iconFile.isEmpty()) { return false; } - const QFileInfo fi(m_iconFile); - return fi.exists(); - } - bool CAircraftModel::matchesModelString(const QString &modelString, Qt::CaseSensitivity sensitivity) const { return stringCompare(modelString, m_modelString, sensitivity); diff --git a/src/misc/simulation/aircraftmodel.h b/src/misc/simulation/aircraftmodel.h index c87aad0b2..2cc21462c 100644 --- a/src/misc/simulation/aircraftmodel.h +++ b/src/misc/simulation/aircraftmodel.h @@ -117,7 +117,6 @@ namespace swift::misc IndexFileName, IndexFileTimestamp, IndexFileTimestampFormattedYmdhms, - IndexIconPath, IndexModelType, IndexModelTypeAsString, IndexModelMode, @@ -481,15 +480,6 @@ namespace swift::misc //! File name void setFileName(const QString &fileName) { m_fileName = fileName; } - //! Icon file representing model - const QString &getIconFile() const { return m_iconFile; } - - //! Icon file representing model - void setIconFile(const QString &iconFile) { m_iconFile = iconFile; } - - //! Is the icon file existing? - bool hasExistingIconFile() const; - //! Get timestamp QDateTime getFileTimestamp() const; @@ -508,9 +498,6 @@ namespace swift::misc //! Set file timestamp, timestamp and file name void setFileDetailsAndTimestamp(const QFileInfo &fileInfo); - //! Load icon from disk - CPixmap loadIcon(CStatusMessage &success) const; - //! File path for DB (absolute paths make no sense in DB) void normalizeFileNameForDb(); @@ -584,7 +571,6 @@ namespace swift::misc QString m_name; //!< Model name QString m_description; //!< descriptive text QString m_fileName; //!< file name - QString m_iconFile; //!< a file representing the aircraft as icon QString m_supportedParts; //!< supported parts qint64 m_fileTimestamp = -1; //!< file timestamp of originating file (if applicable) ModelType m_modelType = TypeUnknown; //!< model string is coming representing ...? @@ -608,7 +594,6 @@ namespace swift::misc SWIFT_METAMEMBER(name), SWIFT_METAMEMBER(description, 0, DisabledForComparison), SWIFT_METAMEMBER(fileName, 0, DisabledForComparison), - SWIFT_METAMEMBER(iconFile, 0, DisabledForComparison), SWIFT_METAMEMBER(fileTimestamp, 0, DisabledForComparison), SWIFT_METAMEMBER(modelType), SWIFT_METAMEMBER(modelMode)); diff --git a/src/misc/simulation/aircraftmodellist.cpp b/src/misc/simulation/aircraftmodellist.cpp index e029b1ba6..b6ede7cf1 100644 --- a/src/misc/simulation/aircraftmodellist.cpp +++ b/src/misc/simulation/aircraftmodellist.cpp @@ -559,20 +559,6 @@ namespace swift::misc::simulation return ac.key(max); } - QString CAircraftModelList::findModelIconPathByModelString(const QString &modelString) const - { - if (modelString.isEmpty()) { return {}; } - const CAircraftModel m(findFirstByModelStringOrDefault(modelString, Qt::CaseInsensitive)); - return m.getIconFile(); - } - - QString CAircraftModelList::findModelIconPathByCallsign(const CCallsign &callsign) const - { - if (callsign.isEmpty()) { return {}; } - const CAircraftModel m(findFirstByCallsignOrDefault(callsign)); - return m.getIconFile(); - } - CAircraftModelList CAircraftModelList::findModelsWithoutExistingFile() const { return this->findBy([](const CAircraftModel &model) { return !model.hasExistingCorrespondingFile(); }); diff --git a/src/misc/simulation/aircraftmodellist.h b/src/misc/simulation/aircraftmodellist.h index 90699ebb0..2fd3c2127 100644 --- a/src/misc/simulation/aircraftmodellist.h +++ b/src/misc/simulation/aircraftmodellist.h @@ -261,12 +261,6 @@ namespace swift::misc //! Find by categories CAircraftModelList findByCategories(const aviation::CAircraftCategoryList &categories) const; - //! Model icon path - QString findModelIconPathByModelString(const QString &modelString) const; - - //! Model icon path - QString findModelIconPathByCallsign(const aviation::CCallsign &callsign) const; - //! Find models where the filename is not set or the file no longer exists CAircraftModelList findModelsWithoutExistingFile() const; diff --git a/src/misc/simulation/fscommon/aircraftcfgentries.cpp b/src/misc/simulation/fscommon/aircraftcfgentries.cpp index 20c4f8687..09fce8f2a 100644 --- a/src/misc/simulation/fscommon/aircraftcfgentries.cpp +++ b/src/misc/simulation/fscommon/aircraftcfgentries.cpp @@ -99,7 +99,6 @@ namespace swift::misc::simulation::fscommon model.setName(this->getSimName()); model.setMSecsSinceEpoch(m_timestampMSecsSinceEpoch); // aircraft.cfg file timestamp model.setFileTimestamp(m_timestampMSecsSinceEpoch); - model.setIconFile(this->getThumbnailFileNameChecked()); const QString designator(CAircraftIcaoCode::normalizeDesignator(this->getAtcModel())); CAircraftIcaoCode aircraft(CAircraftIcaoCode::isValidDesignator(designator) ? @@ -125,23 +124,6 @@ namespace swift::misc::simulation::fscommon return model; } - QString CAircraftCfgEntries::getThumbnailFileNameGuess() const - { - if (m_texture.isEmpty()) { return {}; } - if (m_fileName.isEmpty()) { return {}; } - QString fn = QDir::cleanPath(this->getFileDirectory() + QDir::separator() + "texture." + m_texture + - QDir::separator() + "thumbnail.jpg"); - return fn; - } - - QString CAircraftCfgEntries::getThumbnailFileNameChecked() const - { - const QString f(getThumbnailFileNameGuess()); - if (f.isEmpty()) { return {}; } - if (QFile(f).exists()) { return f; } - return {}; - } - QVariant CAircraftCfgEntries::propertyByIndex(swift::misc::CPropertyIndexRef index) const { if (index.isMyself()) { return QVariant::fromValue(*this); } diff --git a/src/misc/simulation/fscommon/aircraftcfgentries.h b/src/misc/simulation/fscommon/aircraftcfgentries.h index a024b8ba8..ef8b29824 100644 --- a/src/misc/simulation/fscommon/aircraftcfgentries.h +++ b/src/misc/simulation/fscommon/aircraftcfgentries.h @@ -162,13 +162,6 @@ namespace swift::misc::simulation::fscommon //! To aircraft model swift::misc::simulation::CAircraftModel toAircraftModel() const; - //! Thumbnail.jpg path if possible - QString getThumbnailFileNameGuess() const; - - //! Thumbnail.jpg path if possible, and checked if file exists - //! \remark checks file existence, consider I/O load - QString getThumbnailFileNameChecked() const; - //! \copydoc swift::misc::mixin::Index::propertyByIndex QVariant propertyByIndex(swift::misc::CPropertyIndexRef index) const; diff --git a/src/misc/simulation/simulatedaircraft.h b/src/misc/simulation/simulatedaircraft.h index 505d3e50b..7d8ffcd47 100644 --- a/src/misc/simulation/simulatedaircraft.h +++ b/src/misc/simulation/simulatedaircraft.h @@ -406,9 +406,6 @@ namespace swift::misc //! Difference of network and (rendered) livery code QString getNetworkModelLiveryDifference() const; - //! \copydoc swift::misc::simulation::CAircraftModel::getIconFile - const QString &getIconFile() const { return m_models[CurrentModel].getIconFile(); } - //! Get model string const QString &getModelString() const { return m_models[CurrentModel].getModelString(); } From efc7796f1b61dc937200be97e9ea7def86d89986 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 14:25:56 +0100 Subject: [PATCH 07/16] refactor: Remove timesync feature This is directly available by new simulators. --- src/core/context/contextsimulator.h | 11 --- src/core/context/contextsimulatorempty.h | 23 ----- src/core/context/contextsimulatorimpl.cpp | 30 ------ src/core/context/contextsimulatorimpl.h | 10 -- src/core/context/contextsimulatorproxy.cpp | 16 ---- src/core/context/contextsimulatorproxy.h | 10 -- src/core/simulator.h | 10 -- .../components/settingssimulatorcomponent.cpp | 23 ----- .../components/settingssimulatorcomponent.h | 3 - .../components/settingssimulatorcomponent.ui | 92 ------------------- .../simulator/emulated/simulatoremulated.cpp | 19 ---- .../simulator/emulated/simulatoremulated.h | 6 -- .../flightgear/simulatorflightgear.cpp | 7 -- .../flightgear/simulatorflightgear.h | 7 -- .../simulator/fscommon/simulatorfscommon.cpp | 9 -- .../simulator/fscommon/simulatorfscommon.h | 6 -- .../fsxcommon/simconnectdatadefinition.cpp | 2 - .../fsxcommon/simconnectdatadefinition.h | 10 -- .../fsxcommon/simulatorfsxcommon.cpp | 62 ------------- .../simulator/fsxcommon/simulatorfsxcommon.h | 4 - .../fsxcommon/simulatorfsxsimconnectproc.cpp | 7 -- .../simulator/xplane/simulatorxplane.cpp | 7 -- .../simulator/xplane/simulatorxplane.h | 10 -- 23 files changed, 384 deletions(-) diff --git a/src/core/context/contextsimulator.h b/src/core/context/contextsimulator.h index 6f8d639c4..ae5c9b81a 100644 --- a/src/core/context/contextsimulator.h +++ b/src/core/context/contextsimulator.h @@ -18,7 +18,6 @@ #include "misc/geo/elevationplane.h" #include "misc/pixmap.h" #include "misc/pq/length.h" -#include "misc/pq/time.h" #include "misc/simulation/aircraftmatchersetup.h" #include "misc/simulation/aircraftmodellist.h" #include "misc/simulation/interpolation/interpolationrenderingsetup.h" @@ -221,13 +220,6 @@ namespace swift::core::context //! Known model? virtual bool isKnownModelInSet(const QString &modelstring) const = 0; - //! Set time synchronization between simulator and user's computer time - //! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature - virtual bool setTimeSynchronization(bool enable, const swift::misc::physical_quantities::CTime &offset) = 0; - - //! Is time synchronization on? - virtual bool isTimeSynchronized() const = 0; - //! \copydoc swift::misc::simulation::IInterpolationSetupProvider::getInterpolationSetupGlobal virtual swift::misc::simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const = 0; @@ -254,9 +246,6 @@ namespace swift::core::context virtual swift::misc::CStatusMessageList getInterpolationMessages(const swift::misc::aviation::CCallsign &callsign) const = 0; - //! Time synchronization offset - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const = 0; - //! Simulator avialable (driver available)? bool isSimulatorAvailable() const; diff --git a/src/core/context/contextsimulatorempty.h b/src/core/context/contextsimulatorempty.h index 938086a49..2fcb69992 100644 --- a/src/core/context/contextsimulatorempty.h +++ b/src/core/context/contextsimulatorempty.h @@ -211,22 +211,6 @@ namespace swift::core::context return swift::misc::simulation::CSimulatorInternals(); } - //! \copydoc IContextSimulator::setTimeSynchronization - virtual bool setTimeSynchronization(bool enable, const swift::misc::physical_quantities::CTime &offset) override - { - Q_UNUSED(enable) - Q_UNUSED(offset) - logEmptyContextWarning(Q_FUNC_INFO); - return false; - } - - //! \copydoc IContextSimulator::isTimeSynchronized - virtual bool isTimeSynchronized() const override - { - logEmptyContextWarning(Q_FUNC_INFO); - return false; - } - //! \copydoc ISimulator::getInterpolationSetupGlobal virtual swift::misc::simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override @@ -281,13 +265,6 @@ namespace swift::core::context return swift::misc::CStatusMessageList(); } - //! \copydoc IContextSimulator::getTimeSynchronizationOffset - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override - { - logEmptyContextWarning(Q_FUNC_INFO); - return swift::misc::physical_quantities::CTime(); - } - //! \copydoc IContextSimulator::followAircraft virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override { diff --git a/src/core/context/contextsimulatorimpl.cpp b/src/core/context/contextsimulatorimpl.cpp index ebbe27601..623694b45 100644 --- a/src/core/context/contextsimulatorimpl.cpp +++ b/src/core/context/contextsimulatorimpl.cpp @@ -372,26 +372,6 @@ namespace swift::core::context return this->getModelSet().findModelsStartingWith(modelString); } - bool CContextSimulator::setTimeSynchronization(bool enable, const CTime &offset) - { - if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } - if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return false; } - - const bool c = m_simulatorPlugin.second->setTimeSynchronization(enable, offset); - if (!c) { return false; } - - CLogMessage(this).info(enable ? QStringLiteral("Set time synchronization to %1").arg(offset.toQString()) : - QStringLiteral("Disabled time syncrhonization")); - return true; - } - - bool CContextSimulator::isTimeSynchronized() const - { - if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } - if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return false; } - return m_simulatorPlugin.second->isTimeSynchronized(); - } - CInterpolationAndRenderingSetupGlobal CContextSimulator::getInterpolationAndRenderingSetupGlobal() const { if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } @@ -446,16 +426,6 @@ namespace swift::core::context return m_simulatorPlugin.second->getInterpolationMessages(callsign); } - CTime CContextSimulator::getTimeSynchronizationOffset() const - { - if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } - if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) - { - return CTime(0, CTimeUnit::hrmin()); - } - return m_simulatorPlugin.second->getTimeSynchronizationOffset(); - } - bool CContextSimulator::loadSimulatorPlugin(const CSimulatorPluginInfo &simulatorPluginInfo) { Q_ASSERT(this->getIContextApplication()); diff --git a/src/core/context/contextsimulatorimpl.h b/src/core/context/contextsimulatorimpl.h index 30ca653fb..70bb193b8 100644 --- a/src/core/context/contextsimulatorimpl.h +++ b/src/core/context/contextsimulatorimpl.h @@ -150,16 +150,6 @@ namespace swift::core virtual swift::misc::simulation::CAircraftModelList getModelSetModelsStartingWith(const QString &modelString) const override; - //! \copydoc swift::core::context::IContextSimulator::getTimeSynchronizationOffset - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override; - - //! \copydoc swift::core::context::IContextSimulator::setTimeSynchronization - virtual bool setTimeSynchronization(bool enable, - const swift::misc::physical_quantities::CTime &offset) override; - - //! \copydoc swift::core::context::IContextSimulator::isTimeSynchronized - virtual bool isTimeSynchronized() const override; - //! \copydoc swift::core::context::IContextSimulator::getInterpolationAndRenderingSetupGlobal virtual swift::misc::simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override; diff --git a/src/core/context/contextsimulatorproxy.cpp b/src/core/context/contextsimulatorproxy.cpp index 71083adef..67a775eeb 100644 --- a/src/core/context/contextsimulatorproxy.cpp +++ b/src/core/context/contextsimulatorproxy.cpp @@ -232,16 +232,6 @@ namespace swift::core::context m_dBusInterface->callDBus(QLatin1String("restoreDisabledModels")); } - bool CContextSimulatorProxy::setTimeSynchronization(bool enable, const CTime &offset) - { - return m_dBusInterface->callDBusRet(QLatin1String("setTimeSynchronization"), enable, offset); - } - - bool CContextSimulatorProxy::isTimeSynchronized() const - { - return m_dBusInterface->callDBusRet(QLatin1String("isTimeSynchronized")); - } - CInterpolationAndRenderingSetupGlobal CContextSimulatorProxy::getInterpolationAndRenderingSetupGlobal() const { return m_dBusInterface->callDBusRet( @@ -279,12 +269,6 @@ namespace swift::core::context m_dBusInterface->callDBus(QLatin1String("setInterpolationAndRenderingSetupGlobal"), setup); } - CTime CContextSimulatorProxy::getTimeSynchronizationOffset() const - { - return m_dBusInterface->callDBusRet( - QLatin1String("getTimeSynchronizationOffset")); - } - bool CContextSimulatorProxy::startSimulatorPlugin(const CSimulatorPluginInfo &simulatorInfo) { return m_dBusInterface->callDBusRet(QLatin1String("startSimulatorPlugin"), simulatorInfo); diff --git a/src/core/context/contextsimulatorproxy.h b/src/core/context/contextsimulatorproxy.h index 22545faec..889d5b527 100644 --- a/src/core/context/contextsimulatorproxy.h +++ b/src/core/context/contextsimulatorproxy.h @@ -139,13 +139,6 @@ namespace swift::core //! \copydoc swift::core::context::IContextSimulator::restoreDisabledModels virtual void restoreDisabledModels() override; - //! \copydoc swift::core::context::IContextSimulator::setTimeSynchronization - virtual bool setTimeSynchronization(bool enable, - const swift::misc::physical_quantities::CTime &offset) override; - - //! \copydoc swift::core::context::IContextSimulator::isTimeSynchronized - virtual bool isTimeSynchronized() const override; - //! \copydoc swift::core::context::IContextSimulator::getInterpolationAndRenderingSetupGlobal virtual swift::misc::simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override; @@ -171,9 +164,6 @@ namespace swift::core virtual swift::misc::CStatusMessageList getInterpolationMessages(const swift::misc::aviation::CCallsign &callsign) const override; - //! \copydoc swift::core::context::IContextSimulator::getTimeSynchronizationOffset - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override; - //! \copydoc swift::core::context::IContextSimulator::followAircraft virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override; diff --git a/src/core/simulator.h b/src/core/simulator.h index e9b340122..b88c8718e 100644 --- a/src/core/simulator.h +++ b/src/core/simulator.h @@ -83,9 +83,6 @@ namespace swift::core //! Combined status virtual SimulatorStatus getSimulatorStatus() const; - //! Is time synchronization on? - virtual bool isTimeSynchronized() const = 0; - //! Get the simulator current internal state virtual const swift::misc::simulation::CSimulatorInternals &getSimulatorInternals() const { @@ -139,13 +136,6 @@ namespace swift::core //! Airports in range from simulator, or if not available from web service virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const; - //! Set time synchronization between simulator and user's computer time - //! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature - virtual bool setTimeSynchronization(bool enable, const swift::misc::physical_quantities::CTime &offset) = 0; - - //! Time synchronization offset - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const = 0; - //! Is the aircraft rendered (displayed in simulator)? //! This shall only return true if the aircraft is really visible in the simulator virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const = 0; diff --git a/src/gui/components/settingssimulatorcomponent.cpp b/src/gui/components/settingssimulatorcomponent.cpp index e3d53f595..4c87ccb36 100644 --- a/src/gui/components/settingssimulatorcomponent.cpp +++ b/src/gui/components/settingssimulatorcomponent.cpp @@ -72,8 +72,6 @@ namespace swift::gui::components connect(ui->pb_Reload, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::onReload, Qt::QueuedConnection); connect(ui->pb_ApplyMaxAircraft, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::onApplyMaxRenderedAircraft, Qt::QueuedConnection); - connect(ui->pb_ApplyTimeSync, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::onApplyTimeSync, - Qt::QueuedConnection); connect(ui->pb_ApplyMaxDistance, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::onApplyMaxRenderedDistance, Qt::QueuedConnection); connect(ui->pb_ApplyComSync, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::onApplyComSync, @@ -130,11 +128,6 @@ namespace swift::gui::components const CInterpolationAndRenderingSetupGlobal setup = sGui->getIContextSimulator()->getInterpolationAndRenderingSetupGlobal(); - // time sync - ui->cb_TimeSync->setEnabled(m_pluginLoaded); - ui->le_TimeSyncOffset->setEnabled(m_pluginLoaded); - ui->pb_ApplyTimeSync->setEnabled(m_pluginLoaded); - // COM unit ui->pb_ApplyComSync->setEnabled(m_pluginLoaded); ui->cb_ComSync->setEnabled(m_pluginLoaded); @@ -164,10 +157,6 @@ namespace swift::gui::components if (m_pluginLoaded) { const IContextSimulator *sim = sGui->getIContextSimulator(); - const bool timeSynced = sim->isTimeSynchronized(); - ui->cb_TimeSync->setChecked(timeSynced); - const CTime timeOffset = sim->getTimeSynchronizationOffset(); - ui->le_TimeSyncOffset->setText(timeOffset.formattedHrsMin()); // settings const CSimulatorSettings settings = sim->getSimulatorSettings(); @@ -287,18 +276,6 @@ namespace swift::gui::components this->setGuiValues(); } - void CSettingsSimulatorComponent::onApplyTimeSync() - { - if (!sGui || sGui->isShuttingDown() || !sGui->getIContextSimulator()) { return; } - - const bool timeSync = ui->cb_TimeSync->isChecked(); - const QString os = ui->le_TimeSyncOffset->text(); - CTime ost(0, CTimeUnit::hrmin()); - if (!os.isEmpty()) { ost.parseFromString(os); } - if (ost.isNull()) { CLogMessage().validationWarning(u"Invalid offset time"); } - else { sGui->getIContextSimulator()->setTimeSynchronization(timeSync, ost); } - } - CSimulatorSettings CSettingsSimulatorComponent::getSimulatorSettings(bool &ok) { ok = false; diff --git a/src/gui/components/settingssimulatorcomponent.h b/src/gui/components/settingssimulatorcomponent.h index f1b28d8fc..6ea9acf4a 100644 --- a/src/gui/components/settingssimulatorcomponent.h +++ b/src/gui/components/settingssimulatorcomponent.h @@ -56,9 +56,6 @@ namespace swift::gui::components //! Apply disable rendering void onApplyDisableRendering(); - //! Apply time synchronization - void onApplyTimeSync(); - //! Apply COM sync void onApplyComSync(); diff --git a/src/gui/components/settingssimulatorcomponent.ui b/src/gui/components/settingssimulatorcomponent.ui index 5d493c2d0..7b9ca8002 100644 --- a/src/gui/components/settingssimulatorcomponent.ui +++ b/src/gui/components/settingssimulatorcomponent.ui @@ -118,95 +118,6 @@ - - - - - 3 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Enable time syncronization - - - - - - - - - - - 75 - 16777215 - - - - offset +/-hh:mm - - - #99:99 - - - +00:00 - - - 6 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - Time synchronization - - - Time synch. - - - - - - - - 125 - 0 - - - - apply - - - @@ -488,9 +399,6 @@ pb_Check sa_Settings - cb_TimeSync - le_TimeSyncOffset - pb_ApplyTimeSync pb_ApplyCGSource cb_ComSync pb_ApplyComSync diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index 34ec0c448..3cba6e6fc 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -59,8 +59,6 @@ namespace swift::simplugin::emulated } } - bool CSimulatorEmulated::isTimeSynchronized() const { return m_timeSyncronized; } - bool CSimulatorEmulated::connectTo() { const QPointer myself(this); @@ -168,23 +166,6 @@ namespace swift::simplugin::emulated m_monitorWidget->displayTextMessage(message); } - bool CSimulatorEmulated::setTimeSynchronization(bool enable, const CTime &offset) - { - if (canLog()) - { - m_monitorWidget->appendReceivingCall(Q_FUNC_INFO, boolToTrueFalse(enable), offset.toQString()); - } - m_timeSyncronized = enable; - m_offsetTime = offset; - return enable; - } - - CTime CSimulatorEmulated::getTimeSynchronizationOffset() const - { - if (canLog()) { m_monitorWidget->appendReceivingCall(Q_FUNC_INFO); } - return m_offsetTime; - } - bool CSimulatorEmulated::isPhysicallyRenderedAircraft(const CCallsign &callsign) const { if (canLog()) m_monitorWidget->appendReceivingCall(Q_FUNC_INFO, callsign.toQString()); diff --git a/src/plugins/simulator/emulated/simulatoremulated.h b/src/plugins/simulator/emulated/simulatoremulated.h index 1a37b1a74..1942d8982 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.h +++ b/src/plugins/simulator/emulated/simulatoremulated.h @@ -46,7 +46,6 @@ namespace swift::simplugin::emulated virtual ~CSimulatorEmulated() override; // functions implemented - virtual bool isTimeSynchronized() const override; virtual bool connectTo() override; virtual bool disconnectFrom() override; virtual void unload() override; @@ -61,9 +60,6 @@ namespace swift::simplugin::emulated const swift::misc::CIdentifier &originator) override; virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override; virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override; - virtual bool setTimeSynchronization(bool enable, - const swift::misc::physical_quantities::CTime &offset) override; - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override; virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override; virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override; virtual swift::misc::CStatusMessageList @@ -173,11 +169,9 @@ namespace swift::simplugin::emulated bool m_paused = false; bool m_connected = true; bool m_simulating = true; - bool m_timeSyncronized = false; int m_countInterpolatedSituations = 0; int m_countInterpolatedParts = 0; QTimer m_interpolatorFetchTimer; //!< fetch data from interpolator - swift::misc::physical_quantities::CTime m_offsetTime; swift::misc::simulation::CSimulatedAircraft m_myAircraft; //!< represents own aircraft of simulator swift::misc::simulation::CSimulatedAircraftList m_renderedAircraft; //!< represents remote aircraft in simulator QPointer diff --git a/src/plugins/simulator/flightgear/simulatorflightgear.cpp b/src/plugins/simulator/flightgear/simulatorflightgear.cpp index 9791780a8..5e8505317 100644 --- a/src/plugins/simulator/flightgear/simulatorflightgear.cpp +++ b/src/plugins/simulator/flightgear/simulatorflightgear.cpp @@ -462,13 +462,6 @@ namespace swift::simplugin::flightgear return airports; } - bool CSimulatorFlightgear::setTimeSynchronization(bool enable, const physical_quantities::CTime &offset) - { - Q_UNUSED(offset) - if (enable) { CLogMessage(this).info(u"Flightgear provides real time synchronization, use this one"); } - return false; - } - bool CSimulatorFlightgear::isPhysicallyRenderedAircraft(const CCallsign &callsign) const { return m_flightgearAircraftObjects.contains(callsign); diff --git a/src/plugins/simulator/flightgear/simulatorflightgear.h b/src/plugins/simulator/flightgear/simulatorflightgear.h index 936e5a17b..1996ffcad 100644 --- a/src/plugins/simulator/flightgear/simulatorflightgear.h +++ b/src/plugins/simulator/flightgear/simulatorflightgear.h @@ -123,7 +123,6 @@ namespace swift::simplugin::flightgear //! \name ISimulator implementations //! @{ - virtual bool isTimeSynchronized() const override { return false; } virtual bool connectTo() override; virtual bool disconnectFrom() override; virtual bool updateOwnSimulatorCockpit(const swift::misc::simulation::CSimulatedAircraft &aircraft, @@ -133,12 +132,6 @@ namespace swift::simplugin::flightgear virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override; virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override; virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override; - virtual bool setTimeSynchronization(bool enable, - const swift::misc::physical_quantities::CTime &offset) override; - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override - { - return swift::misc::physical_quantities::CTime(0, swift::misc::physical_quantities::CTimeUnit::hrmin()); - } virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override; virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override; virtual void unload() override; diff --git a/src/plugins/simulator/fscommon/simulatorfscommon.cpp b/src/plugins/simulator/fscommon/simulatorfscommon.cpp index ac097c886..b90138221 100644 --- a/src/plugins/simulator/fscommon/simulatorfscommon.cpp +++ b/src/plugins/simulator/fscommon/simulatorfscommon.cpp @@ -59,15 +59,6 @@ namespace swift::simplugin::fscommon return r; } - CTime CSimulatorFsCommon::getTimeSynchronizationOffset() const { return m_syncTimeOffset; } - - bool CSimulatorFsCommon::setTimeSynchronization(bool enable, const physical_quantities::CTime &offset) - { - m_simTimeSynced = enable; - m_syncTimeOffset = offset; - return true; - } - CAirportList CSimulatorFsCommon::getAirportsInRange(bool recalculateDistance) const { if (!m_airportsInRangeFromSimulator.isEmpty()) diff --git a/src/plugins/simulator/fscommon/simulatorfscommon.h b/src/plugins/simulator/fscommon/simulatorfscommon.h index c6f0e8f80..f34e0edf3 100644 --- a/src/plugins/simulator/fscommon/simulatorfscommon.h +++ b/src/plugins/simulator/fscommon/simulatorfscommon.h @@ -32,10 +32,6 @@ namespace swift::simplugin::fscommon // ---------------------- ISimulator ------------------ virtual bool disconnectFrom() override; virtual bool isPaused() const override { return m_simPaused; } - virtual bool isTimeSynchronized() const override { return m_simTimeSynced; } - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override; - virtual bool setTimeSynchronization(bool enable, - const swift::misc::physical_quantities::CTime &offset) override; virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override; // ---------------------- ISimulator ------------------ @@ -62,8 +58,6 @@ namespace swift::simplugin::fscommon 0; //!< own aircraft updates, even with 50 updates/sec long enough even for 32bit int m_skipCockpitUpdateCycles = 0; //!< skip some update cycles to allow changes in simulator cockpit to be set bool m_simPaused = false; //!< simulator paused? - bool m_simTimeSynced = false; //!< time synchronized? - swift::misc::physical_quantities::CTime m_syncTimeOffset; //!< time offset swift::misc::aviation::CAirportList m_airportsInRangeFromSimulator; //!< airports in range of own aircraft // cockpit as set in SIM diff --git a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp index 20c19ccd1..1ee57e99f 100644 --- a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp +++ b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp @@ -25,7 +25,6 @@ namespace swift::simplugin::fsxcommon { static const QString ownAircraft("RequestOwnAircraft"); static const QString title("RequestOwnAircraftTitle"); - static const QString simEnv("RequestSimEnvironment"); static const QString sbData("RequestSbData"); static const QString facility("RequestFacility"); static const QString end(""); @@ -35,7 +34,6 @@ namespace swift::simplugin::fsxcommon { case RequestOwnAircraft: return ownAircraft; case RequestOwnAircraftTitle: return title; - case RequestSimEnvironment: return simEnv; case RequestSbData: return sbData; case RequestFacility: return facility; case RequestEndMarker: return end; diff --git a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h index b5d6f9b82..d23a3497c 100644 --- a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h +++ b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h @@ -209,15 +209,6 @@ namespace swift::simplugin::fsxcommon bool isOnGround() const { return this->aboveGroundFt() < 1.0; } }; - //! Data struct simulator environment - struct DataDefinitionSimEnvironment - { - qint32 zuluTimeSeconds; //!< Simulator zulu (GMT) time in secs. - qint32 zuluYear; //!< Simulator zulu (GMT) year. - qint32 zuluMonth; //!< Simulator zulu (GMT) month. - qint32 zuluDayOfMonth; //!< Simulator zulu (GMT) day of the month. - }; - //! The whole SB data area //! \remark vPilot SB area https://forums.vatsim.net/viewtopic.php?p=519580 //! \remark SB offsets http://www.squawkbox.ca/doc/sdk/fsuipc.php @@ -301,7 +292,6 @@ namespace swift::simplugin::fsxcommon { RequestOwnAircraft, RequestOwnAircraftTitle, - RequestSimEnvironment, RequestSbData, //!< SB client area / XPDR mode RequestMSFSTransponder, //!< MSFS XPDR mode/ident RequestFacility, diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 4f58d6cb4..749d754e3 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -528,12 +528,6 @@ namespace swift::simplugin::fsxcommon SIMCONNECT_PERIOD_SECOND, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED), "Cannot request title", Q_FUNC_INFO, "SimConnect_RequestDataOnSimObject"); - hr += this->logAndTraceSendId( - SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::RequestSimEnvironment, - CSimConnectDefinitions::DataSimEnvironment, SIMCONNECT_OBJECT_ID_USER, - SIMCONNECT_PERIOD_SECOND, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED), - "Cannot request sim.env.", Q_FUNC_INFO, "SimConnect_RequestDataOnSimObject"); - // TODO TZ use MSFS2024 FSUIPC? if (!this->getSimulatorPluginInfo().getSimulatorInfo().isMSFS() && !this->getSimulatorPluginInfo().getSimulatorInfo().isMSFS2024()) @@ -2553,61 +2547,6 @@ namespace swift::simplugin::fsxcommon return true; } - void CSimulatorFsxCommon::synchronizeTime(const DataDefinitionSimEnvironment *simEnv) - { - if (!m_simTimeSynced) { return; } - if (!this->isConnected()) { return; } - if (m_syncTimeDeferredCounter > 0) - { - --m_syncTimeDeferredCounter; - return; // wait some time before we snyc again - } - - const int zh = simEnv->zuluTimeSeconds / 3600; - const int zm = (simEnv->zuluTimeSeconds - (zh * 3600)) / 60; - const QDateTime simDateTime({ simEnv->zuluYear, simEnv->zuluMonth, simEnv->zuluDayOfMonth }, { zh, zm }, - Qt::UTC); - - QDateTime currentDateTime = QDateTime::currentDateTimeUtc(); - if (!m_syncTimeOffset.isZeroEpsilonConsidered()) - { - int offsetSeconds = m_syncTimeOffset.valueInteger(CTimeUnit::s()); - currentDateTime = currentDateTime.addSecs(offsetSeconds); - } - - if (qAbs(simDateTime.secsTo(currentDateTime)) < 120) - { - // checked and no relevant difference - m_syncTimeDeferredCounter = 10; // wait some time to check again - return; - } - - const DWORD h = static_cast(currentDateTime.time().hour()); - const DWORD m = static_cast(currentDateTime.time().minute()); - const DWORD y = static_cast(currentDateTime.date().year()); - const DWORD d = static_cast(currentDateTime.date().dayOfYear()); - - const HRESULT hr1 = SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluHours, h, - SIMCONNECT_GROUP_PRIORITY_STANDARD, - SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY); - const HRESULT hr2 = SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluMinutes, m, - SIMCONNECT_GROUP_PRIORITY_STANDARD, - SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY); - const HRESULT hr3 = SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluYear, y, - SIMCONNECT_GROUP_PRIORITY_STANDARD, - SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY); - const HRESULT hr4 = - SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluDay, d, SIMCONNECT_GROUP_PRIORITY_STANDARD, - SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY); - - if (isFailure(hr1, hr2, hr3, hr4)) { CLogMessage(this).warning(u"Sending time sync failed!"); } - else - { - m_syncTimeDeferredCounter = 5; // allow some time to sync - CLogMessage(this).info(u"Synchronized time to '%1' UTC") << currentDateTime.toString(); - } - } - bool CSimulatorFsxCommon::requestPositionDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period) { @@ -2727,7 +2666,6 @@ namespace swift::simplugin::fsxcommon m_simConnected = false; m_simSimulating = false; m_sbDataReceived = 0; - m_syncTimeDeferredCounter = 0; m_requestIdSimObjAircraft = static_cast(RequestSimObjAircraftStart); m_dispatchErrors = 0; m_receiveExceptionCount = 0; diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index 56d40ccf3..3e7ad7e89 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -549,9 +549,6 @@ namespace swift::simplugin::fsxcommon //! The SimConnect object for idxs CSimConnectObject getSimObjectForObjectId(DWORD objectId) const; - //! Sync time with user's computer - void synchronizeTime(const DataDefinitionSimEnvironment *simEnv); - //! Request data for a CSimConnectObject (aka remote aircraft) bool requestPositionDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period = SIMCONNECT_PERIOD_SECOND); @@ -651,7 +648,6 @@ namespace swift::simplugin::fsxcommon qint64 m_traceAutoUntilTs = -1; //!< allows to automatically trace for some time qint64 m_simulatingChangedTs = -1; //!< timestamp, when simulating changed (used to avoid jitter) int m_sbDataReceived = 0; //!< SB3 area data received - int m_syncTimeDeferredCounter = 0; //!< Set when synchronized, used to wait some time // tracing dispatch performance int m_dispatchErrors = 0; //!< number of dispatched failed, \sa dispatch diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp index 394aaa5c3..54311a587 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp @@ -260,13 +260,6 @@ namespace swift::simplugin::fsxcommon simulatorFsxP3D->reverseLookupAndUpdateOwnAircraftModel(model); break; } - case CSimConnectDefinitions::RequestSimEnvironment: - { - const DataDefinitionSimEnvironment *simEnv = - reinterpret_cast(&pObjData->dwData); - simulatorFsxP3D->synchronizeTime(simEnv); - break; - } case CSimConnectDefinitions::RequestMSFSTransponder: { const DataDefinitionMSFSTransponderMode *transponderMode = diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 67b389b51..cda3dbe9f 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -636,13 +636,6 @@ namespace swift::simplugin::xplane return airports; } - bool CSimulatorXPlane::setTimeSynchronization(bool enable, const physical_quantities::CTime &offset) - { - Q_UNUSED(offset) - if (enable) { CLogMessage(this).info(u"X-Plane provides real time synchronization, use this one"); } - return false; - } - bool CSimulatorXPlane::isPhysicallyRenderedAircraft(const CCallsign &callsign) const { return m_xplaneAircraftObjects.contains(callsign); diff --git a/src/plugins/simulator/xplane/simulatorxplane.h b/src/plugins/simulator/xplane/simulatorxplane.h index 5fa61208f..86e98b2c1 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.h +++ b/src/plugins/simulator/xplane/simulatorxplane.h @@ -127,10 +127,6 @@ namespace swift::simplugin::xplane //! \name ISimulator implementations //! @{ - virtual bool isTimeSynchronized() const override - { - return false; - } // TODO: Can we query the XP intrinisc feature? virtual bool connectTo() override; virtual bool disconnectFrom() override; virtual bool updateOwnSimulatorCockpit(const swift::misc::simulation::CSimulatedAircraft &aircraft, @@ -140,12 +136,6 @@ namespace swift::simplugin::xplane virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override; virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override; virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override; - virtual bool setTimeSynchronization(bool enable, - const swift::misc::physical_quantities::CTime &offset) override; - virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override - { - return swift::misc::physical_quantities::CTime(0, swift::misc::physical_quantities::CTimeUnit::hrmin()); - } virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override; virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override; virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override; From db72e55281e631e22c1c0f8fea9ebfac12e25f66 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 14:29:30 +0100 Subject: [PATCH 08/16] refactor: Remove separate function to check for sim support --- src/config/buildconfig.h | 3 --- src/config/buildconfig.inc | 5 ----- src/core/context/contextsimulator.cpp | 5 +---- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/config/buildconfig.h b/src/config/buildconfig.h index fae433a95..8a102c421 100644 --- a/src/config/buildconfig.h +++ b/src/config/buildconfig.h @@ -42,9 +42,6 @@ namespace swift::config //! with XPlane support? static constexpr bool isCompiledWithXPlaneSupport(); // defined in buildconfig_gen.inc.in - //! with any simulator libraries - static constexpr bool isCompiledWithFlightSimulatorSupport(); - //! Debug build? static constexpr bool isDebugBuild(); diff --git a/src/config/buildconfig.inc b/src/config/buildconfig.inc index 4ffa76eaa..9ce49eda7 100644 --- a/src/config/buildconfig.inc +++ b/src/config/buildconfig.inc @@ -17,11 +17,6 @@ namespace swift::config return CBuildConfig::isCompiledWithFs9Support() || CBuildConfig::isCompiledWithFsxSupport() || CBuildConfig::isCompiledWithP3DSupport() || isCompiledWithMSFSSupport() || isCompiledWithMSFS2024Support(); } - constexpr bool CBuildConfig::isCompiledWithFlightSimulatorSupport() - { - return CBuildConfig::isCompiledWithMsFlightSimulatorSupport() || CBuildConfig::isCompiledWithXPlaneSupport() || CBuildConfig::isCompiledWithFGSupport(); - } - constexpr bool CBuildConfig::isRunningOnWindowsNtPlatform() { #ifdef Q_OS_WIN diff --git a/src/core/context/contextsimulator.cpp b/src/core/context/contextsimulator.cpp index a54036057..c0692773b 100644 --- a/src/core/context/contextsimulator.cpp +++ b/src/core/context/contextsimulator.cpp @@ -49,10 +49,7 @@ namespace swift::core::context } } - bool IContextSimulator::isSimulatorAvailable() const - { - return CBuildConfig::isCompiledWithFlightSimulatorSupport() && !this->getSimulatorPluginInfo().isUnspecified(); - } + bool IContextSimulator::isSimulatorAvailable() const { return !this->getSimulatorPluginInfo().isUnspecified(); } bool IContextSimulator::isSimulatorSimulating() const { From 66d548892dabae0f1f200c79c7e0d754193e9ce1 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 14:31:31 +0100 Subject: [PATCH 09/16] refactor: Use single function for compiledWith info This should avoid duplication --- src/config/buildconfig.cpp | 15 +-------------- src/config/buildconfig.h | 9 +++------ src/core/application.cpp | 2 +- src/misc/applicationinfo.cpp | 2 +- 4 files changed, 6 insertions(+), 22 deletions(-) diff --git a/src/config/buildconfig.cpp b/src/config/buildconfig.cpp index 97a3617e9..a898423e1 100644 --- a/src/config/buildconfig.cpp +++ b/src/config/buildconfig.cpp @@ -67,9 +67,7 @@ namespace swift::config return devBuild; } - static QString boolToYesNo(bool v) { return v ? QStringLiteral("yes") : QStringLiteral("no"); } - - const QString &CBuildConfig::compiledWithInfoShort() + const QString &CBuildConfig::compiledWithInfo() { static QString infoShort; QStringList sl; @@ -83,17 +81,6 @@ namespace swift::config return infoShort; } - const QString &CBuildConfig::compiledWithInfoLong() - { - static QString infoLong; - infoLong = infoLong.append(" FS9: ").append(boolToYesNo(isCompiledWithFs9Support())); - infoLong = infoLong.append(" FSX: ").append(boolToYesNo(isCompiledWithFsxSupport())); - infoLong = infoLong.append(" P3D: ").append(boolToYesNo(isCompiledWithP3DSupport())); - infoLong = infoLong.append(" XPlane: ").append(boolToYesNo(isCompiledWithXPlaneSupport())); - infoLong = infoLong.append(" FG: ").append(boolToYesNo(isCompiledWithFGSupport())); - return infoLong; - } - const QString &CBuildConfig::gitHubRepoUrl() { static const QString url = "https://github.com/swift-project/pilotclient/"; diff --git a/src/config/buildconfig.h b/src/config/buildconfig.h index 8a102c421..95b99fc5f 100644 --- a/src/config/buildconfig.h +++ b/src/config/buildconfig.h @@ -63,14 +63,11 @@ namespace swift::config //! Running on Unix (Linux or Mac OS X) platform static constexpr bool isRunningOnUnixPlatform(); - //! Info such as Win32, Win64, MacOs, Linux + //! Info such as Win32, Win64, macOS, Linux static const QString &getPlatformString(); - //! Info string about compilation (short version) - static const QString &compiledWithInfoShort(); - - //! Info string about compilation (long version) - static const QString &compiledWithInfoLong(); + //! Info string about compilation + static const QString &compiledWithInfo(); //! Executable name for swift GUI, no(!) appendix static const QString &swiftGuiExecutableName(); diff --git a/src/core/application.cpp b/src/core/application.cpp index b922518bc..720cea671 100644 --- a/src/core/application.cpp +++ b/src/core/application.cpp @@ -466,7 +466,7 @@ namespace swift::core boolToYesNo(CBuildConfig::isRunningOnUnixPlatform()) % separator % u"MacOS: " % boolToYesNo(CBuildConfig::isRunningOnMacOSPlatform()) % separator % "Build Abi: " % QSysInfo::buildAbi() % separator % u"Build CPU: " % QSysInfo::buildCpuArchitecture() % separator % - CBuildConfig::compiledWithInfoLong(); + CBuildConfig::compiledWithInfo(); if (this->supportsContexts()) { str += (separator % u"Supporting contexts"); } diff --git a/src/misc/applicationinfo.cpp b/src/misc/applicationinfo.cpp index 2b0fa7ea8..d41607b5a 100644 --- a/src/misc/applicationinfo.cpp +++ b/src/misc/applicationinfo.cpp @@ -18,7 +18,7 @@ namespace swift::misc { CApplicationInfo::CApplicationInfo(Application app) : m_app(app), m_wordSize(CBuildConfig::buildWordSize()), m_exePath(QCoreApplication::applicationDirPath()), - m_version(CBuildConfig::getVersionString()), m_compileInfo(CBuildConfig::compiledWithInfoShort()), + m_version(CBuildConfig::getVersionString()), m_compileInfo(CBuildConfig::compiledWithInfo()), m_platform(CBuildConfig::getPlatformString()), m_process(CProcessInfo::currentProcess()) { if (app == CApplicationInfo::Unknown) { m_app = guessApplication(); } From 52f8dc7b6dae30934b42147f9774c4e2da217853 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 14:32:29 +0100 Subject: [PATCH 10/16] fix: Add missing simulators to compiledWith info --- src/config/buildconfig.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/config/buildconfig.cpp b/src/config/buildconfig.cpp index a898423e1..a32b3e81a 100644 --- a/src/config/buildconfig.cpp +++ b/src/config/buildconfig.cpp @@ -73,6 +73,8 @@ namespace swift::config QStringList sl; if constexpr (CBuildConfig::isCompiledWithFs9Support()) { sl << "FS9"; } if constexpr (CBuildConfig::isCompiledWithFsxSupport()) { sl << "FSX"; } + if constexpr (CBuildConfig::isCompiledWithMSFSSupport()) { sl << "MSFS2020"; } + if constexpr (CBuildConfig::isCompiledWithMSFS2024Support()) { sl << "MSFS2024"; } if constexpr (CBuildConfig::isCompiledWithXPlaneSupport()) { sl << "XPlane"; } if constexpr (CBuildConfig::isCompiledWithP3DSupport()) { sl << "P3D"; } if constexpr (CBuildConfig::isCompiledWithFGSupport()) { sl << "FG"; } From f2dd54d77bf5d71c541867763f68e5d73576447c Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 29 Dec 2024 14:41:51 +0100 Subject: [PATCH 11/16] refactor: Remove unused signals --- src/core/context/contextownaircraft.h | 6 ------ src/core/context/contextownaircraftimpl.cpp | 10 ---------- src/core/context/contextownaircraftproxy.cpp | 6 ------ src/misc/aviation/aircraftsituationlist.cpp | 12 ------------ src/misc/aviation/aircraftsituationlist.h | 6 ------ 5 files changed, 40 deletions(-) diff --git a/src/core/context/contextownaircraft.h b/src/core/context/contextownaircraft.h index 031ed38b0..f683ce202 100644 --- a/src/core/context/contextownaircraft.h +++ b/src/core/context/contextownaircraft.h @@ -99,12 +99,6 @@ namespace swift::core::context //! Aircraft has been moved from one location to another (changed scenery) void movedAircraft(const swift::misc::physical_quantities::CLength &distance); - //! Just airborne - void isTakingOff(); - - //! Just landed - void isTouchingDown(); - public slots: //! Get own aircraft virtual swift::misc::simulation::CSimulatedAircraft getOwnAircraft() const = 0; diff --git a/src/core/context/contextownaircraftimpl.cpp b/src/core/context/contextownaircraftimpl.cpp index 9ae4e1899..5fef0bd85 100644 --- a/src/core/context/contextownaircraftimpl.cpp +++ b/src/core/context/contextownaircraftimpl.cpp @@ -196,16 +196,6 @@ namespace swift::core::context } emit this->movedAircraft(distance); } - else - { - const bool to = situations.isTakingOff(true); - if (to) { emit this->isTakingOff(); } - else - { - const bool td = situations.isTouchingDown(true); - if (td) { emit this->isTouchingDown(); } - } - } } CAircraftModel CContextOwnAircraft::reverseLookupModel(const CAircraftModel &model) diff --git a/src/core/context/contextownaircraftproxy.cpp b/src/core/context/contextownaircraftproxy.cpp index 677d06463..02bc2e5bf 100644 --- a/src/core/context/contextownaircraftproxy.cpp +++ b/src/core/context/contextownaircraftproxy.cpp @@ -53,12 +53,6 @@ namespace swift::core::context s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(), "movedAircraft", this, SIGNAL(movedAircraft(swift::misc::physical_quantities::CLength))); Q_ASSERT(s); - s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(), - "isTakingOff", this, SIGNAL(isTakingOff())); - Q_ASSERT(s); - s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(), - "isTouchingDown", this, SIGNAL(isTouchingDown())); - Q_ASSERT(s); this->relayBaseClassSignals(serviceName, connection, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName()); diff --git a/src/misc/aviation/aircraftsituationlist.cpp b/src/misc/aviation/aircraftsituationlist.cpp index fb3f2cdbc..3602395de 100644 --- a/src/misc/aviation/aircraftsituationlist.cpp +++ b/src/misc/aviation/aircraftsituationlist.cpp @@ -232,18 +232,6 @@ namespace swift::misc::aviation return this->size() - 1 == c; // all others not on ground } - bool CAircraftSituationList::isTakingOff(bool alreadySortedLatestFirst) const - { - const QPair r = this->isGndFlagStableChanging(alreadySortedLatestFirst); - return r.first && r.second == COnGroundInfo::NotOnGround; - } - - bool CAircraftSituationList::isTouchingDown(bool alreadySortedLatestFirst) const - { - const QPair r = this->isGndFlagStableChanging(alreadySortedLatestFirst); - return r.first && r.second == COnGroundInfo::OnGround; - } - bool CAircraftSituationList::isRotatingUp(bool alreadySortedLatestFirst) const { if (this->size() < 2) { return false; } diff --git a/src/misc/aviation/aircraftsituationlist.h b/src/misc/aviation/aircraftsituationlist.h index b5e7e89e1..f6167bd4b 100644 --- a/src/misc/aviation/aircraftsituationlist.h +++ b/src/misc/aviation/aircraftsituationlist.h @@ -103,12 +103,6 @@ namespace swift::misc //! Is just touching down? bool isJustTouchingDown(bool alreadySortedLatestFirst = false) const; - //! Is taking off? - bool isTakingOff(bool alreadySortedLatestFirst = false) const; - - //! Is touching down? - bool isTouchingDown(bool alreadySortedLatestFirst = false) const; - //! Is rotating up? bool isRotatingUp(bool alreadySortedLatestFirst = false) const; From edbabe34bede915c513367c10747dd15e52ae48b Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Mon, 30 Dec 2024 00:13:19 +0100 Subject: [PATCH 12/16] refactor: Remove airport view --- src/core/context/contextsimulator.h | 3 - src/core/context/contextsimulatorempty.h | 8 -- src/core/context/contextsimulatorimpl.cpp | 8 -- src/core/context/contextsimulatorimpl.h | 3 - src/core/context/contextsimulatorproxy.cpp | 5 -- src/core/context/contextsimulatorproxy.h | 3 - src/core/simulator.cpp | 44 ----------- src/core/simulator.h | 13 ---- src/gui/CMakeLists.txt | 4 - src/gui/components/aircraftcomponent.cpp | 26 ------- src/gui/components/aircraftcomponent.h | 3 - src/gui/components/aircraftcomponent.ui | 43 ----------- src/gui/models/airportlistmodel.cpp | 42 ----------- src/gui/models/airportlistmodel.h | 30 -------- src/gui/models/allmodels.h | 1 - src/gui/views/airportview.cpp | 14 ---- src/gui/views/airportview.h | 26 ------- src/gui/views/viewbaseaviation.cpp | 1 - .../flightgear/fgswiftbusserviceproxy.h | 4 - .../flightgear/simulatorflightgear.cpp | 32 -------- .../flightgear/simulatorflightgear.h | 5 -- .../simulator/fscommon/simulatorfscommon.cpp | 21 ------ .../simulator/fscommon/simulatorfscommon.h | 5 -- .../fsxcommon/simulatorfsxcommon.cpp | 33 --------- .../simulator/fsxcommon/simulatorfsxcommon.h | 6 -- .../fsxcommon/simulatorfsxsimconnectproc.cpp | 26 ------- .../simulator/xplane/simulatorxplane.cpp | 32 -------- .../simulator/xplane/simulatorxplane.h | 5 -- .../simulator/xplane/xswiftbusserviceproxy.h | 4 - src/xswiftbus/CMakeLists.txt | 2 - src/xswiftbus/navdatareference.cpp | 36 --------- src/xswiftbus/navdatareference.h | 43 ----------- src/xswiftbus/plugin.cpp | 6 +- src/xswiftbus/service.cpp | 73 ------------------- src/xswiftbus/service.h | 12 --- 35 files changed, 1 insertion(+), 621 deletions(-) delete mode 100644 src/gui/models/airportlistmodel.cpp delete mode 100644 src/gui/models/airportlistmodel.h delete mode 100644 src/gui/views/airportview.cpp delete mode 100644 src/gui/views/airportview.h delete mode 100644 src/xswiftbus/navdatareference.cpp delete mode 100644 src/xswiftbus/navdatareference.h diff --git a/src/core/context/contextsimulator.h b/src/core/context/contextsimulator.h index ae5c9b81a..85617a047 100644 --- a/src/core/context/contextsimulator.h +++ b/src/core/context/contextsimulator.h @@ -164,9 +164,6 @@ namespace swift::core::context //! Simulator setup virtual swift::misc::simulation::CSimulatorInternals getSimulatorInternals() const = 0; - //! Airports in range - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const = 0; - //! Installed models in simulator eco system //! \note might be slow since list can be big virtual swift::misc::simulation::CAircraftModelList getModelSet() const = 0; diff --git a/src/core/context/contextsimulatorempty.h b/src/core/context/contextsimulatorempty.h index 2fcb69992..6fc79af78 100644 --- a/src/core/context/contextsimulatorempty.h +++ b/src/core/context/contextsimulatorempty.h @@ -80,14 +80,6 @@ namespace swift::core::context logEmptyContextWarning(Q_FUNC_INFO); } - //! \copydoc IContextSimulator::getAirportsInRange - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculatePosition) const override - { - Q_UNUSED(recalculatePosition) - logEmptyContextWarning(Q_FUNC_INFO); - return swift::misc::aviation::CAirportList(); - } - //! \copydoc IContextSimulator::getModelSet virtual swift::misc::simulation::CAircraftModelList getModelSet() const override { diff --git a/src/core/context/contextsimulatorimpl.cpp b/src/core/context/contextsimulatorimpl.cpp index 623694b45..35fe01b37 100644 --- a/src/core/context/contextsimulatorimpl.cpp +++ b/src/core/context/contextsimulatorimpl.cpp @@ -214,14 +214,6 @@ namespace swift::core::context return m_simulatorPlugin.second->getSimulatorInternals(); } - CAirportList CContextSimulator::getAirportsInRange(bool recalculateDistance) const - { - if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } - // If no ISimulator object is available, return a dummy. - if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return CAirportList(); } - return m_simulatorPlugin.second->getAirportsInRange(recalculateDistance); - } - CAircraftModelList CContextSimulator::getModelSet() const { if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } diff --git a/src/core/context/contextsimulatorimpl.h b/src/core/context/contextsimulatorimpl.h index 70bb193b8..95c371e30 100644 --- a/src/core/context/contextsimulatorimpl.h +++ b/src/core/context/contextsimulatorimpl.h @@ -103,9 +103,6 @@ namespace swift::core //! \copydoc swift::core::context::IContextSimulator::getSimulatorInternals virtual swift::misc::simulation::CSimulatorInternals getSimulatorInternals() const override; - //! \copydoc swift::core::context::IContextSimulator::getAirportsInRange - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override; - //! \copydoc swift::core::context::IContextSimulator::getModelSetLoaderSimulator virtual swift::misc::simulation::CSimulatorInfo getModelSetLoaderSimulator() const override; diff --git a/src/core/context/contextsimulatorproxy.cpp b/src/core/context/contextsimulatorproxy.cpp index 67a775eeb..8c69aa3b3 100644 --- a/src/core/context/contextsimulatorproxy.cpp +++ b/src/core/context/contextsimulatorproxy.cpp @@ -136,11 +136,6 @@ namespace swift::core::context return m_dBusInterface->callDBusRet(QLatin1String("getSimulatorStatus")); } - CAirportList CContextSimulatorProxy::getAirportsInRange(bool recalculatePosition) const - { - return m_dBusInterface->callDBusRet(QLatin1String("getAirportsInRange"), recalculatePosition); - } - CAircraftModelList CContextSimulatorProxy::getModelSet() const { return m_dBusInterface->callDBusRet(QLatin1String("getModelSet")); diff --git a/src/core/context/contextsimulatorproxy.h b/src/core/context/contextsimulatorproxy.h index 889d5b527..d3b7f9ccc 100644 --- a/src/core/context/contextsimulatorproxy.h +++ b/src/core/context/contextsimulatorproxy.h @@ -83,9 +83,6 @@ namespace swift::core //! \copydoc swift::core::context::IContextSimulator::getSimulatorStatus virtual ISimulator::SimulatorStatus getSimulatorStatus() const override; - //! \copydoc swift::core::context::IContextSimulator::getAirportsInRange - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculatePosition) const override; - //! \copydoc swift::core::context::IContextSimulator::getModelSet virtual swift::misc::simulation::CAircraftModelList getModelSet() const override; diff --git a/src/core/simulator.cpp b/src/core/simulator.cpp index dc256dabb..69bef852f 100644 --- a/src/core/simulator.cpp +++ b/src/core/simulator.cpp @@ -634,8 +634,6 @@ namespace swift::core { connect(sApp->getWebDataServices(), &CWebDataServices::swiftDbAllDataRead, this, &ISimulator::onSwiftDbAllDataRead, Qt::QueuedConnection); - connect(sApp->getWebDataServices(), &CWebDataServices::swiftDbAirportsRead, this, - &ISimulator::onSwiftDbAirportsRead, Qt::QueuedConnection); connect(sApp->getWebDataServices(), &CWebDataServices::swiftDbModelMatchingEntitiesRead, this, &ISimulator::onSwiftDbModelMatchingEntitiesRead, Qt::QueuedConnection); } @@ -751,26 +749,6 @@ namespace swift::core return r; } - CAirportList ISimulator::getWebServiceAirports() const - { - if (this->isShuttingDown()) { return {}; } - if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return {}; } - return sApp->getWebDataServices()->getAirports(); - } - - CAirport ISimulator::getWebServiceAirport(const CAirportIcaoCode &icao) const - { - if (this->isShuttingDown()) { return {}; } - if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return {}; } - return sApp->getWebDataServices()->getAirports().findFirstByIcao(icao); - } - - int ISimulator::maxAirportsInRange() const - { - // might change in future or become a setting or such - return 20; - } - void ISimulator::onSwiftDbAllDataRead() { // void, can be overridden in specialized drivers @@ -781,11 +759,6 @@ namespace swift::core // void, can be overridden in specialized drivers } - void ISimulator::onSwiftDbAirportsRead() - { - // void, can be overridden in specialized drivers - } - void ISimulator::initSimulatorInternals() { const CSpecializedSimulatorSettings s = this->getSimulatorSettings(); @@ -887,23 +860,6 @@ namespace swift::core return m_loopbackSituations.value(callsign); } - CAirportList ISimulator::getAirportsInRange(bool recalculateDistance) const - { - // default implementation - if (this->isShuttingDown()) { return {}; } - if (!sApp || !sApp->hasWebDataServices()) { return {}; } - - const CAirportList airports = sApp->getWebDataServices()->getAirports(); - if (airports.isEmpty()) { return airports; } - const CCoordinateGeodetic ownPosition = this->getOwnAircraftPosition(); - CAirportList airportsInRange = airports.findClosest(maxAirportsInRange(), ownPosition); - if (recalculateDistance) - { - airportsInRange.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition()); - } - return airportsInRange; - } - CAircraftModel ISimulator::reverseLookupModel(const CAircraftModel &model) { bool modified = false; diff --git a/src/core/simulator.h b/src/core/simulator.h index b88c8718e..20d48f90e 100644 --- a/src/core/simulator.h +++ b/src/core/simulator.h @@ -133,9 +133,6 @@ namespace swift::core //! Display a text message virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const = 0; - //! Airports in range from simulator, or if not available from web service - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const; - //! Is the aircraft rendered (displayed in simulator)? //! This shall only return true if the aircraft is really visible in the simulator virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const = 0; @@ -407,7 +404,6 @@ namespace swift::core //! When swift DB data are read virtual void onSwiftDbAllDataRead(); virtual void onSwiftDbModelMatchingEntitiesRead(); - virtual void onSwiftDbAirportsRead(); //! @} //! Init the internals info from the simulator @@ -416,15 +412,6 @@ namespace swift::core //! Parsed in derived classes virtual bool parseDetails(const swift::misc::CSimpleCommandParser &parser) = 0; - //! Airports from web services - swift::misc::aviation::CAirportList getWebServiceAirports() const; - - //! Airport from web services by ICAO code - swift::misc::aviation::CAirport getWebServiceAirport(const swift::misc::aviation::CAirportIcaoCode &icao) const; - - //! Max.airports in range - int maxAirportsInRange() const; - //! Recalculate the rendered aircraft, this happens when restrictions are applied (max. aircraft, range) virtual void onRecalculatedRenderedAircraft(const swift::misc::simulation::CAirspaceAircraftSnapshot &snapshot); diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 497272735..e87f05b33 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -675,8 +675,6 @@ add_library(gui SHARED models/airlineicaofilter.h models/airlineicaolistmodel.cpp models/airlineicaolistmodel.h - models/airportlistmodel.cpp - models/airportlistmodel.h models/allmodelcontainers.h models/allmodels.h models/applicationinfolistmodel.cpp @@ -818,8 +816,6 @@ add_library(gui SHARED views/aircraftsituationview.h views/airlineicaoview.cpp views/airlineicaoview.h - views/airportview.cpp - views/airportview.h views/applicationinfoview.cpp views/applicationinfoview.h views/atcstationtreeview.cpp diff --git a/src/gui/components/aircraftcomponent.cpp b/src/gui/components/aircraftcomponent.cpp index 6ebb7007b..1295e1965 100644 --- a/src/gui/components/aircraftcomponent.cpp +++ b/src/gui/components/aircraftcomponent.cpp @@ -17,7 +17,6 @@ #include "gui/guiutility.h" #include "gui/infoarea.h" #include "gui/models/simulatedaircraftlistmodel.h" -#include "gui/views/airportview.h" #include "gui/views/simulatedaircraftview.h" #include "gui/views/viewbase.h" #include "misc/network/fsdsetup.h" @@ -46,7 +45,6 @@ namespace swift::gui::components this->setCurrentIndex(0); this->tabBar()->setExpanding(false); this->tabBar()->setUsesScrollButtons(true); - ui->tvp_AirportsInRange->setResizeMode(CAirportView::ResizingOnce); ui->tvp_AircraftInRange->setAircraftMode(CSimulatedAircraftListModel::NetworkMode); ui->tvp_AircraftInRange->configureMenu(true, true, false, true, true, true); @@ -54,8 +52,6 @@ namespace swift::gui::components &CAircraftComponent::onRowCountChanged); connect(ui->tvp_AircraftInRange, &CSimulatedAircraftView::requestTextMessageWidget, this, &CAircraftComponent::requestTextMessageWidget); - connect(ui->tvp_AirportsInRange, &CSimulatedAircraftView::modelDataChangedDigest, this, - &CAircraftComponent::onRowCountChanged); connect(sGui->getIContextNetwork(), &IContextNetwork::connectionStatusChanged, this, &CAircraftComponent::onConnectionStatusChanged, Qt::QueuedConnection); connect(sGui->getIContextOwnAircraft(), &IContextOwnAircraft::movedAircraft, this, @@ -74,12 +70,6 @@ namespace swift::gui::components return ui->tvp_AircraftInRange->rowCount(); } - int CAircraftComponent::countAirportsInRangeInView() const - { - Q_ASSERT(ui->tvp_AirportsInRange); - return ui->tvp_AirportsInRange->rowCount(); - } - bool CAircraftComponent::setParentDockWidgetInfoArea(CDockWidgetInfoArea *parentDockableWidget) { CEnableForDockWidgetInfoArea::setParentDockWidgetInfoArea(parentDockableWidget); @@ -103,16 +93,6 @@ namespace swift::gui::components ui->tvp_AircraftInRange->updateContainerMaybeAsync(sGui->getIContextNetwork()->getAircraftInRange()); } } - if (sGui->getIContextSimulator()->getSimulatorStatus() > 0) - { - const bool visible = (this->isVisibleWidget() && this->currentWidget() == ui->tb_AirportsInRange); - const bool counter = ((m_updateCounter % 5) == 0); // less frequent than aircraft - if (this->countAirportsInRangeInView() < 1 || (visible && counter)) - { - ui->tvp_AirportsInRange->updateContainerMaybeAsync( - sGui->getIContextSimulator()->getAirportsInRange(true)); - } - } m_updateCounter++; } @@ -127,7 +107,6 @@ namespace swift::gui::components { if (!sGui || sGui->isShuttingDown() || !sGui->getIContextNetwork() || !sGui->getIContextSimulator()) { return; } ui->tvp_AircraftInRange->updateContainerMaybeAsync(sGui->getIContextNetwork()->getAircraftInRange()); - ui->tvp_AirportsInRange->updateContainerMaybeAsync(sGui->getIContextSimulator()->getAirportsInRange(true)); } void CAircraftComponent::onInfoAreaTabBarChanged(int index) @@ -151,13 +130,8 @@ namespace swift::gui::components Q_UNUSED(count) Q_UNUSED(withFilter) const int ac = this->indexOf(ui->tb_AircraftInRange); - const int ap = this->indexOf(ui->tb_AirportsInRange); QString acs = this->tabBar()->tabText(ac); - QString aps = this->tabBar()->tabText(ap); acs = CGuiUtility::replaceTabCountValue(acs, this->countAircraftInView()); - aps = CGuiUtility::replaceTabCountValue(aps, this->countAirportsInRangeInView()); - this->tabBar()->setTabText(ac, acs); - this->tabBar()->setTabText(ap, aps); } void CAircraftComponent::onConnectionStatusChanged(const CConnectionStatus &from, const CConnectionStatus &to) diff --git a/src/gui/components/aircraftcomponent.h b/src/gui/components/aircraftcomponent.h index d9dfc526b..964b7942b 100644 --- a/src/gui/components/aircraftcomponent.h +++ b/src/gui/components/aircraftcomponent.h @@ -61,9 +61,6 @@ namespace swift::gui //! Aircraft in range int countAircraftInView() const; - //! Airports in range - int countAirportsInRangeInView() const; - //! \copydoc CEnableForDockWidgetInfoArea::setParentDockWidgetInfoArea virtual bool setParentDockWidgetInfoArea(swift::gui::CDockWidgetInfoArea *parentDockableWidget) override; diff --git a/src/gui/components/aircraftcomponent.ui b/src/gui/components/aircraftcomponent.ui index 84d74ddd6..548299bd8 100644 --- a/src/gui/components/aircraftcomponent.ui +++ b/src/gui/components/aircraftcomponent.ui @@ -10,9 +10,6 @@ 300 - - Airports in range - 0 @@ -51,41 +48,6 @@ - - - Airports in range - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QAbstractItemView::NoSelection - - - QAbstractItemView::SelectRows - - - false - - - - - @@ -93,11 +55,6 @@ QTableView
gui/views/simulatedaircraftview.h
- - swift::gui::views::CAirportView - QTableView -
gui/views/airportview.h
-
diff --git a/src/gui/models/airportlistmodel.cpp b/src/gui/models/airportlistmodel.cpp deleted file mode 100644 index a9d4925ef..000000000 --- a/src/gui/models/airportlistmodel.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 - -#include "gui/models/airportlistmodel.h" - -#include -#include - -#include "gui/models/columnformatters.h" -#include "gui/models/columns.h" -#include "misc/geo/coordinategeodetic.h" -#include "misc/pq/length.h" -#include "misc/pq/units.h" - -using namespace swift::misc::aviation; -using namespace swift::misc::geo; -using namespace swift::misc::physical_quantities; - -namespace swift::gui::models -{ - CAirportListModel::CAirportListModel(QObject *parent) : CListModelBase("AirportListModel", parent) - { - m_columns.addColumn(CColumn::standardValueObject("ICAO", CAirport::IndexIcao)); - m_columns.addColumn(CColumn("distance", CAirport::IndexRelativeDistance, new CAirspaceDistanceFormatter())); - m_columns.addColumn(CColumn("bearing", CAirport::IndexRelativeBearing, new CAngleDegreeFormatter())); - m_columns.addColumn(CColumn::standardString("name", CAirport::IndexDescriptiveName)); - m_columns.addColumn(CColumn("elevation", CAirport::IndexElevation, new CAltitudeFormatter())); - m_columns.addColumn(CColumn("latitude", CAirport::IndexLatitude, new CLatLonFormatter())); - m_columns.addColumn(CColumn("longitude", CAirport::IndexLongitude, new CLatLonFormatter())); - - // default sort order - this->setSortColumnByPropertyIndex(CAirport::IndexRelativeDistance); - m_sortOrder = Qt::AscendingOrder; - - // force strings for translation in resource files - (void)QT_TRANSLATE_NOOP("ModelAirportList", "ICAO"); - (void)QT_TRANSLATE_NOOP("ModelAirportList", "distance"); - (void)QT_TRANSLATE_NOOP("ModelAirportList", "name"); - (void)QT_TRANSLATE_NOOP("ModelAirportList", "elevation"); - (void)QT_TRANSLATE_NOOP("ModelAirportList", "bearing"); - } -} // namespace swift::gui::models diff --git a/src/gui/models/airportlistmodel.h b/src/gui/models/airportlistmodel.h deleted file mode 100644 index 034d770b5..000000000 --- a/src/gui/models/airportlistmodel.h +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 - -//! \file - -#ifndef SWIFT_GUI_MODELS_AIRPORTLISTMODEL_H -#define SWIFT_GUI_MODELS_AIRPORTLISTMODEL_H - -#include "gui/models/listmodelbase.h" -#include "gui/swiftguiexport.h" -#include "misc/aviation/airportlist.h" - -class QObject; - -namespace swift::gui::models -{ - //! Airport list model - class SWIFT_GUI_EXPORT CAirportListModel : public CListModelBase - { - Q_OBJECT - - public: - //! Constructor - explicit CAirportListModel(QObject *parent = nullptr); - - //! Destructor - virtual ~CAirportListModel() override {} - }; -} // namespace swift::gui::models -#endif // SWIFT_GUI_MODELS_AIRPORTLISTMODEL_H diff --git a/src/gui/models/allmodels.h b/src/gui/models/allmodels.h index 205b3d3b2..0ba0368ff 100644 --- a/src/gui/models/allmodels.h +++ b/src/gui/models/allmodels.h @@ -12,7 +12,6 @@ #include "gui/models/aircraftsituationchangelistmodel.h" #include "gui/models/aircraftsituationlistmodel.h" #include "gui/models/airlineicaolistmodel.h" -#include "gui/models/airportlistmodel.h" #include "gui/models/applicationinfolistmodel.h" #include "gui/models/atcstationlistmodel.h" #include "gui/models/audiodeviceinfolistmodel.h" diff --git a/src/gui/views/airportview.cpp b/src/gui/views/airportview.cpp deleted file mode 100644 index 4c729b895..000000000 --- a/src/gui/views/airportview.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 - -#include "gui/views/airportview.h" - -#include "gui/models/airportlistmodel.h" - -using namespace swift::misc; -using namespace swift::gui::models; - -namespace swift::gui::views -{ - CAirportView::CAirportView(QWidget *parent) : CViewBase(parent) { this->standardInit(new CAirportListModel(this)); } -} // namespace swift::gui::views diff --git a/src/gui/views/airportview.h b/src/gui/views/airportview.h deleted file mode 100644 index acc2153a8..000000000 --- a/src/gui/views/airportview.h +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 - -//! \file - -#ifndef SWIFT_GUI_VIEWS_AIRPORTVIEW_H -#define SWIFT_GUI_VIEWS_AIRPORTVIEW_H - -#include "gui/models/airportlistmodel.h" -#include "gui/swiftguiexport.h" -#include "gui/views/viewbase.h" - -namespace swift::gui::views -{ - //! Airports view - class SWIFT_GUI_EXPORT CAirportView : public CViewBase - { - Q_OBJECT - - public: - //! Constructor - explicit CAirportView(QWidget *parent = nullptr); - }; -} // namespace swift::gui::views - -#endif // SWIFT_GUI_VIEWS_AIRPORTVIEW_H diff --git a/src/gui/views/viewbaseaviation.cpp b/src/gui/views/viewbaseaviation.cpp index fc6402864..131ade967 100644 --- a/src/gui/views/viewbaseaviation.cpp +++ b/src/gui/views/viewbaseaviation.cpp @@ -11,7 +11,6 @@ namespace swift::gui::views template class CViewBase; template class CViewBase; template class CViewBase; - template class CViewBase; template class CViewBase; template class CViewBase; } // namespace swift::gui::views diff --git a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h index 284a4f887..f986480e8 100644 --- a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h +++ b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h @@ -103,10 +103,6 @@ namespace swift::simplugin::flightgear const QString &icao, const QString &modelString, const QString &name, const QString &description); - //! Airports in range are updated - void airportsInRangeUpdated(const QStringList &icaoCodes, const QStringList &names, const QList &lats, - const QList &lons, const QList &alts); - public slots: //! Get Flightgear version number int getVersionNumber(); diff --git a/src/plugins/simulator/flightgear/simulatorflightgear.cpp b/src/plugins/simulator/flightgear/simulatorflightgear.cpp index 5e8505317..c3de41190 100644 --- a/src/plugins/simulator/flightgear/simulatorflightgear.cpp +++ b/src/plugins/simulator/flightgear/simulatorflightgear.cpp @@ -356,8 +356,6 @@ namespace swift::simplugin::flightgear setSimulatorDetails("Flightgear", {}, ""); connect(m_serviceProxy, &CFGSwiftBusServiceProxy::aircraftModelChanged, this, &CSimulatorFlightgear::emitOwnAircraftModelChanged); - connect(m_serviceProxy, &CFGSwiftBusServiceProxy::airportsInRangeUpdated, this, - &CSimulatorFlightgear::setAirportsInRange); connect(m_trafficProxy, &CFGSwiftBusTrafficProxy::simFrame, this, &CSimulatorFlightgear::updateRemoteAircraft); connect(m_trafficProxy, &CFGSwiftBusTrafficProxy::remoteAircraftAdded, this, &CSimulatorFlightgear::onRemoteAircraftAdded); @@ -432,36 +430,6 @@ namespace swift::simplugin::flightgear m_serviceProxy->addTextMessage(message.getSenderCallsign().toQString() + ": " + message.getMessage()); } - void CSimulatorFlightgear::setAirportsInRange(const QStringList &icaos, const QStringList &names, - const CSequence &lats, const CSequence &lons, - const CSequence &alts) - { - //! \todo restrict to maxAirportsInRange() - m_airportsInRange.clear(); - auto icaoIt = icaos.begin(); - auto nameIt = names.begin(); - auto latIt = lats.begin(); - auto lonIt = lons.begin(); - auto altIt = alts.begin(); - for (; icaoIt != icaos.end() && nameIt != names.end() && latIt != lats.end() && lonIt != lons.end() && - altIt != alts.end(); - ++icaoIt, ++nameIt, ++latIt, ++lonIt, ++altIt) - { - m_airportsInRange.push_back({ *icaoIt, - { CLatitude(*latIt, CAngleUnit::deg()), CLongitude(*lonIt, CAngleUnit::deg()), - CAltitude(*altIt, CLengthUnit::m()) }, - *nameIt }); - } - } - - CAirportList CSimulatorFlightgear::getAirportsInRange(bool recalculateDistance) const - { - if (!recalculateDistance) { return m_airportsInRange; } - CAirportList airports(m_airportsInRange); - airports.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition()); - return airports; - } - bool CSimulatorFlightgear::isPhysicallyRenderedAircraft(const CCallsign &callsign) const { return m_flightgearAircraftObjects.contains(callsign); diff --git a/src/plugins/simulator/flightgear/simulatorflightgear.h b/src/plugins/simulator/flightgear/simulatorflightgear.h index 1996ffcad..1580d73e2 100644 --- a/src/plugins/simulator/flightgear/simulatorflightgear.h +++ b/src/plugins/simulator/flightgear/simulatorflightgear.h @@ -131,7 +131,6 @@ namespace swift::simplugin::flightgear const swift::misc::CIdentifier &originator) override; virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override; virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override; - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override; virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override; virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override; virtual void unload() override; @@ -171,9 +170,6 @@ namespace swift::simplugin::flightgear using QDoubleList = QList; - void setAirportsInRange(const QStringList &icaoCodes, const QStringList &names, - const swift::misc::CSequence &lats, const swift::misc::CSequence &lons, - const swift::misc::CSequence &alts); void emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao, const QString &modelString, const QString &name, const QString &description); @@ -234,7 +230,6 @@ namespace swift::simplugin::flightgear QTimer m_slowTimer; QTimer m_airportUpdater; QTimer m_pendingAddedTimer; - swift::misc::aviation::CAirportList m_airportsInRange; //!< aiports in range of own aircraft swift::misc::CData m_modelSet { this }; //!< Flightgear model set diff --git a/src/plugins/simulator/fscommon/simulatorfscommon.cpp b/src/plugins/simulator/fscommon/simulatorfscommon.cpp index b90138221..8d217b001 100644 --- a/src/plugins/simulator/fscommon/simulatorfscommon.cpp +++ b/src/plugins/simulator/fscommon/simulatorfscommon.cpp @@ -58,25 +58,4 @@ namespace swift::simplugin::fscommon this->emitSimulatorCombinedStatus(); return r; } - - CAirportList CSimulatorFsCommon::getAirportsInRange(bool recalculateDistance) const - { - if (!m_airportsInRangeFromSimulator.isEmpty()) - { - CAirportList airports = m_airportsInRangeFromSimulator; - if (recalculateDistance) - { - airports.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition()); - } - return airports; - } - return ISimulator::getAirportsInRange(recalculateDistance); - } - - void CSimulatorFsCommon::onSwiftDbAirportsRead() - { - const CAirportList webServiceAirports = this->getWebServiceAirports(); - if (!webServiceAirports.isEmpty()) { m_airportsInRangeFromSimulator.updateMissingParts(webServiceAirports); } - ISimulator::onSwiftDbAirportsRead(); - } } // namespace swift::simplugin::fscommon diff --git a/src/plugins/simulator/fscommon/simulatorfscommon.h b/src/plugins/simulator/fscommon/simulatorfscommon.h index f34e0edf3..c03b41a99 100644 --- a/src/plugins/simulator/fscommon/simulatorfscommon.h +++ b/src/plugins/simulator/fscommon/simulatorfscommon.h @@ -32,7 +32,6 @@ namespace swift::simplugin::fscommon // ---------------------- ISimulator ------------------ virtual bool disconnectFrom() override; virtual bool isPaused() const override { return m_simPaused; } - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override; // ---------------------- ISimulator ------------------ protected: @@ -45,9 +44,6 @@ namespace swift::simplugin::fscommon //! Init the internal objects virtual void initSimulatorInternals() override; - //! When swift DB data are read - virtual void onSwiftDbAirportsRead() override; - //! \copydoc swift::core::ISimulator::reset virtual void reset() override; @@ -58,7 +54,6 @@ namespace swift::simplugin::fscommon 0; //!< own aircraft updates, even with 50 updates/sec long enough even for 32bit int m_skipCockpitUpdateCycles = 0; //!< skip some update cycles to allow changes in simulator cockpit to be set bool m_simPaused = false; //!< simulator paused? - swift::misc::aviation::CAirportList m_airportsInRangeFromSimulator; //!< airports in range of own aircraft // cockpit as set in SIM swift::misc::aviation::CComSystem m_simCom1; //!< cockpit COM1 state in simulator diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 749d754e3..e130562a6 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -2211,39 +2211,6 @@ namespace swift::simplugin::fsxcommon return ok; } - void CSimulatorFsxCommon::triggerUpdateAirports(const CAirportList &airports) - { - if (this->isShuttingDownOrDisconnected()) { return; } - if (airports.isEmpty()) { return; } - QPointer myself(this); - QTimer::singleShot(0, this, [=] { - if (!myself) { return; } - this->updateAirports(airports); - }); - } - - void CSimulatorFsxCommon::updateAirports(const CAirportList &airports) - { - if (airports.isEmpty()) { return; } - - static const CLength maxDistance(200.0, CLengthUnit::NM()); - const CCoordinateGeodetic posAircraft(this->getOwnAircraftPosition()); - - for (const CAirport &airport : airports) - { - CAirport consolidatedAirport(airport); - const CLength d = consolidatedAirport.calculcateAndUpdateRelativeDistanceAndBearing(posAircraft); - if (d > maxDistance) { continue; } - consolidatedAirport.updateMissingParts(this->getWebServiceAirport(airport.getIcao())); - m_airportsInRangeFromSimulator.replaceOrAddByIcao(consolidatedAirport); - if (m_airportsInRangeFromSimulator.size() > this->maxAirportsInRange()) - { - m_airportsInRangeFromSimulator.sortByDistanceToReferencePosition(); - m_airportsInRangeFromSimulator.truncate(this->maxAirportsInRange()); - } - } - } - bool CSimulatorFsxCommon::sendRemoteAircraftPartsToSimulator(const CSimConnectObject &simObject, const CAircraftParts &parts) { diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index 3e7ad7e89..5cb1976eb 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -461,12 +461,6 @@ namespace swift::simplugin::fsxcommon bool updateRemoteAircraftParts(const CSimConnectObject &simObject, const swift::misc::simulation::CInterpolationResult &result, bool forcedUpdate); - //! Calling CSimulatorFsxCommon::updateAirports - void triggerUpdateAirports(const swift::misc::aviation::CAirportList &airports); - - //! Update airports from simulator - void updateAirports(const swift::misc::aviation::CAirportList &airports); - //! Send parts to simulator //! \remark does not send if there is no change bool sendRemoteAircraftPartsToSimulator(const CSimConnectObject &simObject, diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp index 54311a587..68643c4aa 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxsimconnectproc.cpp @@ -368,32 +368,6 @@ namespace swift::simplugin::fsxcommon } break; // SIMCONNECT_RECV_ID_SIMOBJECT_DATA } - case SIMCONNECT_RECV_ID_AIRPORT_LIST: - { - const SIMCONNECT_RECV_AIRPORT_LIST *pAirportList = static_cast(pData); - CAirportList simAirports; - for (unsigned i = 0; i < pAirportList->dwArraySize; ++i) - { - const SIMCONNECT_DATA_FACILITY_AIRPORT *pFacilityAirport = pAirportList->rgData + i; - if (!pFacilityAirport) { break; } - const QString icao(pFacilityAirport->Icao); - if (icao.isEmpty()) { continue; } // airfield without ICAO code - if (!CAirportIcaoCode::isValidIcaoDesignator(icao, true)) - { - continue; - } // tiny airfields/strips in simulator - if (CAirportIcaoCode::containsNumbers(icao)) { continue; } // tiny airfields/strips in simulator - const CCoordinateGeodetic pos(pFacilityAirport->Latitude, pFacilityAirport->Longitude, - pFacilityAirport->Altitude); - const CAirport airport(CAirportIcaoCode(icao), pos); - simAirports.push_back(airport); - } - if (!simAirports.isEmpty()) - { - simulatorFsxP3D->triggerUpdateAirports(simAirports); // real "work" outside SimConnectProc - } - break; // SIMCONNECT_RECV_ID_AIRPORT_LIST - } case SIMCONNECT_RECV_ID_CLIENT_DATA: { if (!simulatorFsxP3D->m_useSbOffsets) { break; } diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index cda3dbe9f..ca1dedcc1 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -498,8 +498,6 @@ namespace swift::simplugin::xplane setSimulatorDetails("X-Plane", {}, xplaneVersion); connect(m_serviceProxy, &CXSwiftBusServiceProxy::aircraftModelChanged, this, &CSimulatorXPlane::emitOwnAircraftModelChanged); - connect(m_serviceProxy, &CXSwiftBusServiceProxy::airportsInRangeUpdated, this, - &CSimulatorXPlane::setAirportsInRange); m_serviceProxy->updateAirportsInRange(); connect(m_trafficProxy, &CXSwiftBusTrafficProxy::simFrame, this, &CSimulatorXPlane::updateRemoteAircraft); connect(m_trafficProxy, &CXSwiftBusTrafficProxy::remoteAircraftAdded, this, @@ -606,36 +604,6 @@ namespace swift::simplugin::xplane color.redF(), color.greenF(), color.blueF()); } - void CSimulatorXPlane::setAirportsInRange(const QStringList &icaos, const QStringList &names, - const CSequence &lats, const CSequence &lons, - const CSequence &alts) - { - //! \todo restrict to maxAirportsInRange() - m_airportsInRange.clear(); - auto icaoIt = icaos.begin(); - auto nameIt = names.begin(); - auto latIt = lats.begin(); - auto lonIt = lons.begin(); - auto altIt = alts.begin(); - for (; icaoIt != icaos.end() && nameIt != names.end() && latIt != lats.end() && lonIt != lons.end() && - altIt != alts.end(); - ++icaoIt, ++nameIt, ++latIt, ++lonIt, ++altIt) - { - m_airportsInRange.push_back({ *icaoIt, - { CLatitude(*latIt, CAngleUnit::deg()), CLongitude(*lonIt, CAngleUnit::deg()), - CAltitude(*altIt, CLengthUnit::m()) }, - *nameIt }); - } - } - - CAirportList CSimulatorXPlane::getAirportsInRange(bool recalculateDistance) const - { - if (!recalculateDistance) { return m_airportsInRange; } - CAirportList airports(m_airportsInRange); - airports.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition()); - return airports; - } - bool CSimulatorXPlane::isPhysicallyRenderedAircraft(const CCallsign &callsign) const { return m_xplaneAircraftObjects.contains(callsign); diff --git a/src/plugins/simulator/xplane/simulatorxplane.h b/src/plugins/simulator/xplane/simulatorxplane.h index 86e98b2c1..bfcc81928 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.h +++ b/src/plugins/simulator/xplane/simulatorxplane.h @@ -135,7 +135,6 @@ namespace swift::simplugin::xplane const swift::misc::CIdentifier &originator) override; virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override; virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override; - virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override; virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override; virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override; virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override; @@ -188,9 +187,6 @@ namespace swift::simplugin::xplane using QDoubleList = QList; using QBoolList = QList; - void setAirportsInRange(const QStringList &icaoCodes, const QStringList &names, - const swift::misc::CSequence &lats, const swift::misc::CSequence &lons, - const swift::misc::CSequence &alts); void emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao, const QString &modelString, const QString &name, const QString &description); @@ -284,7 +280,6 @@ namespace swift::simplugin::xplane unsigned int m_fastTimerCalls = 0; //!< how often called unsigned int m_slowTimerCalls = 0; //!< how often called - swift::misc::aviation::CAirportList m_airportsInRange; //!< aiports in range of own aircraft CXPlaneMPAircraftObjects m_xplaneAircraftObjects; //!< XPlane multiplayer aircraft swift::misc::simulation::CSimulatedAircraftList m_pendingToBeAddedAircraft; //!< aircraft to be added diff --git a/src/plugins/simulator/xplane/xswiftbusserviceproxy.h b/src/plugins/simulator/xplane/xswiftbusserviceproxy.h index ec949f654..4a9b4b74a 100644 --- a/src/plugins/simulator/xplane/xswiftbusserviceproxy.h +++ b/src/plugins/simulator/xplane/xswiftbusserviceproxy.h @@ -86,10 +86,6 @@ namespace swift::simplugin::xplane const QString &icao, const QString &modelString, const QString &name, const QString &description); - //! Airports in range are updated - void airportsInRangeUpdated(const QStringList &icaoCodes, const QStringList &names, const QList &lats, - const QList &lons, const QList &alts); - //! Scenery was loaded void sceneryLoaded(); diff --git a/src/xswiftbus/CMakeLists.txt b/src/xswiftbus/CMakeLists.txt index d0b526540..847c5575a 100644 --- a/src/xswiftbus/CMakeLists.txt +++ b/src/xswiftbus/CMakeLists.txt @@ -32,8 +32,6 @@ add_library(xswiftbus SHARED menus.h messages.cpp messages.h - navdatareference.cpp - navdatareference.h plugin.cpp plugin.h service.cpp diff --git a/src/xswiftbus/navdatareference.cpp b/src/xswiftbus/navdatareference.cpp deleted file mode 100644 index 4c7d1f2c8..000000000 --- a/src/xswiftbus/navdatareference.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-FileCopyrightText: Copyright (C) 2018 swift Project Community / Contributors -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 - -//! \cond PRIVATE - -#include "navdatareference.h" - -#include - -namespace XSwiftBus -{ - inline double degreeToRadian(double angle) - { - static const double PI = acos(-1); - return PI * angle / 180.0; - } - - double calculateGreatCircleDistance(const CNavDataReference &a, const CNavDataReference &b) - { - const static double c_earthRadiusKm = 6372.8; - - const double latRad1 = degreeToRadian(a.latitude()); - const double latRad2 = degreeToRadian(b.latitude()); - const double lonRad1 = degreeToRadian(a.longitude()); - const double lonRad2 = degreeToRadian(b.longitude()); - - const double diffLa = latRad2 - latRad1; - const double doffLo = lonRad2 - lonRad1; - - const double computation = asin( - sqrt(sin(diffLa / 2) * sin(diffLa / 2) + cos(latRad1) * cos(latRad2) * sin(doffLo / 2) * sin(doffLo / 2))); - return 2 * c_earthRadiusKm * computation; - } -} // namespace XSwiftBus - -//! \endcond diff --git a/src/xswiftbus/navdatareference.h b/src/xswiftbus/navdatareference.h deleted file mode 100644 index bfafcec14..000000000 --- a/src/xswiftbus/navdatareference.h +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-FileCopyrightText: Copyright (C) 2018 swift Project Community / Contributors -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 - -//! \file - -#ifndef SWIFT_SIM_XSWIFTBUS_NAVDATAREFERENCE_H -#define SWIFT_SIM_XSWIFTBUS_NAVDATAREFERENCE_H - -namespace XSwiftBus -{ - //! Simplified version of CNavDataReference of \sa swift::misc::simulation::XPlane::CNavDataReference - class CNavDataReference - { - public: - //! Default constructor - CNavDataReference() = default; - - //! Constructor - CNavDataReference(int id, double latitudeDegrees, double longitudeDegrees) - : m_id(id), m_latitudeDegrees(latitudeDegrees), m_longitudeDegrees(longitudeDegrees) - {} - - //! \copydoc swift::misc::simulation::xplane::CNavDataReference::id - int id() const { return m_id; } - - //! \copydoc swift::misc::simulation::xplane::CNavDataReference::latitude - double latitude() const { return m_latitudeDegrees; } - - //! \copydoc swift::misc::simulation::xplane::CNavDataReference::longitude - double longitude() const { return m_longitudeDegrees; } - - private: - int m_id = 0; - double m_latitudeDegrees = 0.0; - double m_longitudeDegrees = 0.0; - }; - - //! Free function to calculate great circle distance - double calculateGreatCircleDistance(const CNavDataReference &a, const CNavDataReference &b); - -} // namespace XSwiftBus - -#endif // SWIFT_SIM_XSWIFTBUS_NAVDATAREFERENCE_H diff --git a/src/xswiftbus/plugin.cpp b/src/xswiftbus/plugin.cpp index f853f39a8..0492e72c2 100644 --- a/src/xswiftbus/plugin.cpp +++ b/src/xswiftbus/plugin.cpp @@ -150,11 +150,7 @@ namespace XSwiftBus void CPlugin::onAircraftRepositioned() { - if (m_service) - { - m_service->updateAirportsInRange(); - m_service->resetFrameTotals(); - } + if (m_service) { m_service->resetFrameTotals(); } } void CPlugin::onSceneryLoaded() diff --git a/src/xswiftbus/service.cpp b/src/xswiftbus/service.cpp index b9645df9d..ec810ab8a 100644 --- a/src/xswiftbus/service.cpp +++ b/src/xswiftbus/service.cpp @@ -91,7 +91,6 @@ namespace XSwiftBus CService::CService(CSettingsProvider *settingsProvider) : CDBusObject(settingsProvider), m_framePeriodSampler(std::make_unique()) { - this->updateAirportsInRange(); this->updateMessageBoxFromSettings(); m_framePeriodSampler->show(); } @@ -259,42 +258,6 @@ namespace XSwiftBus if (w) { INFO_LOG("Written new config file"); } } - void CService::readAirportsDatabase() - { - auto first = XPLMFindFirstNavAidOfType(xplm_Nav_Airport); - auto last = XPLMFindLastNavAidOfType(xplm_Nav_Airport); - if (first != XPLM_NAV_NOT_FOUND) - { - for (auto i = first; i <= last; ++i) - { - float lat, lon; - char icao[32]; - XPLMGetNavAidInfo(i, nullptr, &lat, &lon, nullptr, nullptr, nullptr, icao, nullptr, nullptr); - if (icao[0] != 0) { m_airports.emplace_back(i, lat, lon); } - } - } - } - - void CService::updateAirportsInRange() - { - if (m_airports.empty()) { readAirportsDatabase(); } - std::vector icaos, names; - std::vector lats, lons, alts; - std::vector closestAirports = findClosestAirports(20, getLatitudeDeg(), getLongitudeDeg()); - for (const auto &navref : closestAirports) - { - float lat, lon, alt; - char icao[32], name[256]; - XPLMGetNavAidInfo(navref.id(), nullptr, &lat, &lon, &alt, nullptr, nullptr, icao, name, nullptr); - icaos.emplace_back(icao); - names.emplace_back(name); - lats.push_back(lat); - lons.push_back(lon); - alts.push_back(alt); - } - emitAirportsInRangeUpdated(icaos, names, lats, lons, alts); - } - static const char *introspection_service = DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE #include "org.swift_project.xswiftbus.service.xml" ; @@ -475,11 +438,6 @@ namespace XSwiftBus sendDBusMessage(reply); }); } - else if (message.getMethodName() == "updateAirportsInRange") - { - maybeSendEmptyDBusReply(wantsReply, sender, serial); - queueDBusCall([=]() { updateAirportsInRange(); }); - } else if (message.getMethodName() == "getAircraftModelPath") { queueDBusCall([=]() { sendDBusReply(sender, serial, getAircraftModelPath()); }); @@ -836,21 +794,6 @@ namespace XSwiftBus sendDBusMessage(signalAircraftModelChanged); } - void CService::emitAirportsInRangeUpdated(const std::vector &icaoCodes, - const std::vector &names, const std::vector &lats, - const std::vector &lons, const std::vector &alts) - { - CDBusMessage signalAirportsInRangeUpdated = CDBusMessage::createSignal( - XSWIFTBUS_SERVICE_OBJECTPATH, XSWIFTBUS_SERVICE_INTERFACENAME, "airportsInRangeUpdated"); - signalAirportsInRangeUpdated.beginArgumentWrite(); - signalAirportsInRangeUpdated.appendArgument(icaoCodes); - signalAirportsInRangeUpdated.appendArgument(names); - signalAirportsInRangeUpdated.appendArgument(lats); - signalAirportsInRangeUpdated.appendArgument(lons); - signalAirportsInRangeUpdated.appendArgument(alts); - sendDBusMessage(signalAirportsInRangeUpdated); - } - void CService::emitSceneryLoaded() { CDBusMessage signal = @@ -858,22 +801,6 @@ namespace XSwiftBus sendDBusMessage(signal); } - std::vector CService::findClosestAirports(int number, double latitude, double longitude) - { - CNavDataReference ref(0, latitude, longitude); - auto compareFunction = [&](const CNavDataReference &a, const CNavDataReference &b) { - return calculateGreatCircleDistance(a, ref) < calculateGreatCircleDistance(b, ref); - }; - - number = std::min(static_cast(m_airports.size()), number); - - std::vector closestAirports = m_airports; - std::partial_sort(closestAirports.begin(), closestAirports.begin() + number, closestAirports.end(), - compareFunction); - closestAirports.resize(static_cast::size_type>(number)); - return closestAirports; - } - void CService::updateMessageBoxFromSettings() { // left, top, right, bottom, height size percentage diff --git a/src/xswiftbus/service.h b/src/xswiftbus/service.h index f5628825f..be7b0bf3c 100644 --- a/src/xswiftbus/service.h +++ b/src/xswiftbus/service.h @@ -14,7 +14,6 @@ #include "dbusobject.h" #include "datarefs.h" #include "messages.h" -#include "navdatareference.h" #include "terrainprobe.h" #include #include @@ -70,9 +69,6 @@ namespace XSwiftBus //! Add a text message to the on-screen display, with RGB components in the range [0,1] void addTextMessage(const std::string &text, double red, double green, double blue); - //! Called by newly connected client to cause airportsInRangeUpdated to be emitted. - void updateAirportsInRange(); - //! Get full path to current aircraft model std::string getAircraftModelPath() const; @@ -335,10 +331,6 @@ namespace XSwiftBus const std::string &icao, const std::string &modelString, const std::string &name, const std::string &description); - void emitAirportsInRangeUpdated(const std::vector &icaoCodes, - const std::vector &names, const std::vector &lats, - const std::vector &lons, const std::vector &alts); - void emitSceneryLoaded(); CMessageBoxControl m_messages { 16, 16, 16 }; @@ -346,12 +338,8 @@ namespace XSwiftBus bool m_disappearMessageWindow = true; int m_disapperMessageWindowTimeMs = 5000; std::chrono::system_clock::time_point m_disappearMessageWindowTime; - std::vector m_airports; CTerrainProbe m_terrainProbe; - void readAirportsDatabase(); - std::vector findClosestAirports(int number, double latitude, double longitude); - //! Redraw message box after reading from the settings void updateMessageBoxFromSettings(); From 74d87fab82d21ddfc915e04f65a34e3d4d73f285 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Mon, 30 Dec 2024 09:32:43 +0100 Subject: [PATCH 13/16] refactor: Remove option to disable AFV aliasing --- src/core/afv/clients/afvclient.cpp | 3 --- src/core/afv/clients/afvclient.h | 8 -------- src/core/context/contextaudio.cpp | 17 +++++------------ src/core/context/contextaudio.h | 2 -- 4 files changed, 5 insertions(+), 25 deletions(-) diff --git a/src/core/afv/clients/afvclient.cpp b/src/core/afv/clients/afvclient.cpp index 4175b2b61..bcdee4fca 100644 --- a/src/core/afv/clients/afvclient.cpp +++ b/src/core/afv/clients/afvclient.cpp @@ -1329,9 +1329,6 @@ namespace swift::core::afv::clients // void rounding issues from float/double quint32 roundedFrequencyHz = static_cast(qRound(frequencyHz / 1000.0)) * 1000; - // disabled? - if (!m_enableAliased) { return roundedFrequencyHz; } - // change to aliased frequency if needed { QMutexLocker lock(&m_mutex); diff --git a/src/core/afv/clients/afvclient.h b/src/core/afv/clients/afvclient.h index f1a0f1833..e653c01f7 100644 --- a/src/core/afv/clients/afvclient.h +++ b/src/core/afv/clients/afvclient.h @@ -179,13 +179,6 @@ namespace swift::core::afv::clients QSet getEnabledTransceivers() const; //! @} - //! @{ - //! Aliased stations enabled? - //! \threadsafe - bool isAliasedStationsEnabled() const { return m_enableAliased; } - void enableAliasedStations(bool enabled) { m_enableAliased = enabled; } - //! @} - //! @{ //! Update frequency //! \threadsafe @@ -411,7 +404,6 @@ namespace swift::core::afv::clients std::atomic_int m_heartBeatFailures { 0 }; //!< voice server heartbeat failures std::atomic_bool m_isStarted { false }; std::atomic_bool m_loopbackOn { false }; - std::atomic_bool m_enableAliased { true }; std::atomic_bool m_winCoInitialized { false }; //!< Windows only CoInitializeEx std::atomic_bool m_integratedComUnit { false }; //!< is COM unit sychronized, integrated? diff --git a/src/core/context/contextaudio.cpp b/src/core/context/contextaudio.cpp index 0cbfc5e29..6fac73d3b 100644 --- a/src/core/context/contextaudio.cpp +++ b/src/core/context/contextaudio.cpp @@ -80,10 +80,11 @@ namespace swift::core::context { Q_UNUSED(originator) if (commandLine.isEmpty()) { return false; } - CSimpleCommandParser parser({ ".vol", ".volume", // output volume - ".mute", // mute - ".unmute", // unmute - ".aliased" }); + CSimpleCommandParser parser({ + ".vol", ".volume", // output volume + ".mute", // mute + ".unmute", // unmute + }); parser.parse(commandLine); if (!parser.isKnownCommand()) { return false; } @@ -103,14 +104,6 @@ namespace swift::core::context this->setMasterOutputVolume(v); return true; } - else if (afvClient() && parser.matchesCommand(".aliased") && parser.countParts() > 1) - { - const bool enable = parser.toBool(1, true); - afvClient()->enableAliasedStations(enable); - - CLogMessage(this).info(u"Aliased stations are: %1") << boolToOnOff(enable); - return true; - } return false; } diff --git a/src/core/context/contextaudio.h b/src/core/context/contextaudio.h index 8e2080fe6..c6354eb68 100644 --- a/src/core/context/contextaudio.h +++ b/src/core/context/contextaudio.h @@ -233,7 +233,6 @@ namespace swift::core swift::misc::CSimpleCommandParser::registerCommand({ ".mute", "mute audio" }); swift::misc::CSimpleCommandParser::registerCommand({ ".unmute", "unmute audio" }); swift::misc::CSimpleCommandParser::registerCommand({ ".vol volume", "volume 0..100" }); - swift::misc::CSimpleCommandParser::registerCommand({ ".aliased on|off", "aliased HF frequencies" }); } // -------- parts which can run in core and GUI, referring to local voice client ------------ @@ -248,7 +247,6 @@ namespace swift::core //! .mute mute swift::core::context::CContextAudioBase //! .unmute unmute swift::core::context::CContextAudioBase //! .vol .volume volume 0..100 set volume swift::core::context::CContextAudioBase - //! .aliased on|off aliased stations swift::core::context::CContextAudioBase //! virtual bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator) override; From 51ae5805b26c8bf0833005bbfe79551f0f0a63dd Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Mon, 30 Dec 2024 09:33:23 +0100 Subject: [PATCH 14/16] refactor: Fix clang-tidy warnings --- src/core/afv/clients/afvclient.h | 19 +++++++++++--- src/core/context/contextaudio.h | 43 +++++++++++++------------------- src/misc/dbusserver.cpp | 1 - 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/src/core/afv/clients/afvclient.h b/src/core/afv/clients/afvclient.h index e653c01f7..2d36beafd 100644 --- a/src/core/afv/clients/afvclient.h +++ b/src/core/afv/clients/afvclient.h @@ -23,7 +23,6 @@ #include "misc/audio/audiosettings.h" #include "misc/aviation/comsystem.h" #include "misc/identifiable.h" -#include "misc/logcategories.h" #include "misc/settingscache.h" #include "misc/worker.h" #include "sound/sampleprovider/volumesampleprovider.h" @@ -61,7 +60,19 @@ namespace swift::core::afv::clients CAfvClient(const QString &apiServer, QObject *owner); //! Dtor - virtual ~CAfvClient() override { this->stopAudio(); } + ~CAfvClient() override { this->stopAudio(); } + + //! @{ + //! Copy operations + CAfvClient(const CAfvClient &) = delete; + CAfvClient &operator=(const CAfvClient &) = delete; + //! }@ + + //! @{ + //! Move operations + CAfvClient(const CAfvClient &&) = delete; + CAfvClient &operator=(const CAfvClient &&) = delete; + //! }@ //! @{ //! Corresponding callsign @@ -311,10 +322,10 @@ namespace swift::core::afv::clients protected: //! \copydoc swift::misc::CContinuousWorker::initialize - virtual void initialize() override; + void initialize() override; //! \copydoc swift::misc::CContinuousWorker::cleanup - virtual void cleanup() override; + void cleanup() override; private: void opusDataAvailable(const audio::OpusDataAvailableArgs &args); // threadsafe diff --git a/src/core/context/contextaudio.h b/src/core/context/contextaudio.h index c6354eb68..3945f08c8 100644 --- a/src/core/context/contextaudio.h +++ b/src/core/context/contextaudio.h @@ -26,7 +26,6 @@ #include "misc/identifiable.h" #include "misc/identifier.h" #include "misc/input/actionhotkeydefs.h" -#include "misc/macos/microphoneaccess.h" #include "misc/network/connectionstatus.h" #include "misc/network/userlist.h" #include "misc/simplecommandparser.h" @@ -73,7 +72,7 @@ namespace swift::core static const QString &ObjectPath(); //! \copydoc IContext::getPathAndContextId() - virtual QString getPathAndContextId() const override { return this->buildPathAndContextId(ObjectPath()); } + QString getPathAndContextId() const override { return this->buildPathAndContextId(ObjectPath()); } //! Factory method static IContextAudio *create(CCoreFacade *runtime, CCoreFacadeConfig::ContextMode mode, @@ -96,7 +95,7 @@ namespace swift::core //! Unregister devices virtual void unRegisterDevices(const swift::misc::audio::CAudioDeviceInfoList &devices) = 0; - //! Remove all devices for identifer (i.e. "a machine") + //! Remove all devices for identifier (i.e. "a machine") virtual void unRegisterDevicesFor(const swift::misc::CIdentifier &identifier) = 0; //! Register an audio callsign (used with AFV) @@ -135,7 +134,19 @@ namespace swift::core public: //! Destructor - virtual ~CContextAudioBase() override; + ~CContextAudioBase() override; + + //! @{ + //! Copy operations + CContextAudioBase(const CContextAudioBase &) = delete; + CContextAudioBase &operator=(const CContextAudioBase &) = delete; + //! @} + + //! @{ + //! Move operations + CContextAudioBase(CContextAudioBase &&) = delete; + CContextAudioBase &operator=(CContextAudioBase &&) = delete; + //! @} //! Graceful shutdown void gracefulShutdown(); @@ -209,7 +220,7 @@ namespace swift::core bool isAudioStarted() const; //! Is audio enabled? - bool isAudioEnabled() const { return m_voiceClient; } + bool isAudioEnabled() const { return m_voiceClient != nullptr; } //! Integrated with COM unit? bool isComUnitIntegrated() const; @@ -248,8 +259,7 @@ namespace swift::core //! .unmute unmute swift::core::context::CContextAudioBase //! .vol .volume volume 0..100 set volume swift::core::context::CContextAudioBase //! - virtual bool parseCommandLine(const QString &commandLine, - const swift::misc::CIdentifier &originator) override; + bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator) override; //! \endcond // ------------- DBus --------------- @@ -276,25 +286,6 @@ namespace swift::core //! PTT in voice client received void ptt(bool active, const swift::misc::CIdentifier &identifier); - /* - * Workaround those must be invisible for DBus - * - - //! @{ - //! VU levels - void inputVolumePeakVU (double value); - void outputVolumePeakVU(double value); - //! @} - - //! Callsigns I receive have changed - void receivingCallsignsChanged(const swift::core::afv::audio::TransceiverReceivingCallsignsChangedArgs - &args); - - //! Client updated from own aicraft data - void updatedFromOwnAircraftCockpit(); - - * end workaround */ - // ------------ local signals ------- private: diff --git a/src/misc/dbusserver.cpp b/src/misc/dbusserver.cpp index f9b8f99f5..ea2cd3b37 100644 --- a/src/misc/dbusserver.cpp +++ b/src/misc/dbusserver.cpp @@ -196,7 +196,6 @@ namespace swift::misc QDBusConnection::RegisterOptions CDBusServer::registerOptions() { return QDBusConnection::ExportAdaptors | QDBusConnection::ExportAllSignals | QDBusConnection::ExportAllSlots; - // return QDBusConnection::ExportAllContents; } bool CDBusServer::registerObjectsWithP2PConnection(QDBusConnection connection) From 7fbf48ca3aed203a97b7809e1c0fbc15f4490249 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Mon, 30 Dec 2024 09:33:57 +0100 Subject: [PATCH 15/16] refactor: Move common dbus function to IContext --- src/core/context/context.cpp | 9 +++++++++ src/core/context/context.h | 3 +++ src/core/context/contextapplication.cpp | 2 +- src/core/context/contextapplicationimpl.cpp | 6 ------ src/core/context/contextapplicationimpl.h | 3 --- src/core/context/contextaudio.cpp | 2 +- src/core/context/contextaudioimpl.cpp | 8 -------- src/core/context/contextaudioimpl.h | 3 --- src/core/context/contextnetwork.cpp | 2 +- src/core/context/contextnetworkimpl.cpp | 6 ------ src/core/context/contextnetworkimpl.h | 3 --- src/core/context/contextownaircraft.cpp | 2 +- src/core/context/contextownaircraftimpl.cpp | 6 ------ src/core/context/contextownaircraftimpl.h | 3 --- src/core/context/contextsimulator.cpp | 2 +- src/core/context/contextsimulatorimpl.cpp | 6 ------ src/core/context/contextsimulatorimpl.h | 3 --- 17 files changed, 17 insertions(+), 52 deletions(-) diff --git a/src/core/context/context.cpp b/src/core/context/context.cpp index 57d66b22e..993805fc1 100644 --- a/src/core/context/context.cpp +++ b/src/core/context/context.cpp @@ -4,6 +4,7 @@ #include "core/context/context.h" #include "core/application.h" +#include "misc/dbusserver.h" #include "misc/logcategories.h" using namespace swift::misc; @@ -70,6 +71,14 @@ namespace swift::core::context return this->getRuntime()->getIContextSimulator(); } + void IContext::registerWithDBus(const QString &objectPath, CDBusServer *server) + { + if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; } + + // remark that registers all SIGNALS, not only the interface ons + server->addObject(objectPath, this); + } + const CStatusMessage &IContext::statusMessageEmptyContext() { static const CStatusMessage m(static_cast(nullptr), CStatusMessage::SeverityWarning, diff --git a/src/core/context/context.h b/src/core/context/context.h index 117f61741..2622fb562 100644 --- a/src/core/context/context.h +++ b/src/core/context/context.h @@ -152,6 +152,9 @@ namespace swift::core::context //! Called when shutdown is about to be called virtual void onAboutToShutdown() {} + //! Register myself in DBus + void registerWithDBus(const QString &objectPath, misc::CDBusServer *server); + //! Standard message when status message is returned in empty context static const misc::CStatusMessage &statusMessageEmptyContext(); diff --git a/src/core/context/contextapplication.cpp b/src/core/context/contextapplication.cpp index 3b1a6f7a6..e59ef6c4b 100644 --- a/src/core/context/contextapplication.cpp +++ b/src/core/context/contextapplication.cpp @@ -35,7 +35,7 @@ namespace swift::core::context case CCoreFacadeConfig::LocalInDBusServer: { auto *context = new CContextApplication(mode, parent); - context->registerWithDBus(server); + context->registerWithDBus(ObjectPath(), server); return context; } case CCoreFacadeConfig::Remote: diff --git a/src/core/context/contextapplicationimpl.cpp b/src/core/context/contextapplicationimpl.cpp index 607c6d7ad..5cf0aa36c 100644 --- a/src/core/context/contextapplicationimpl.cpp +++ b/src/core/context/contextapplicationimpl.cpp @@ -25,12 +25,6 @@ namespace swift::core::context : IContextApplication(mode, runtime), CIdentifiable(this) {} - void CContextApplication::registerWithDBus(swift::misc::CDBusServer *server) - { - if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; } - server->addObject(IContextApplication::ObjectPath(), this); - } - void CContextApplication::changeSettings(const CValueCachePacket &settings, const CIdentifier &origin) { // Intentionally don't check for round trip here diff --git a/src/core/context/contextapplicationimpl.h b/src/core/context/contextapplicationimpl.h index fb08ccb5f..15daa2fc4 100644 --- a/src/core/context/contextapplicationimpl.h +++ b/src/core/context/contextapplicationimpl.h @@ -88,9 +88,6 @@ namespace swift::core //! Constructor CContextApplication(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime); - //! Register myself in DBus, fail safe - void registerWithDBus(swift::misc::CDBusServer *server); - private: swift::misc::CIdentifierList m_registeredApplications; diff --git a/src/core/context/contextaudio.cpp b/src/core/context/contextaudio.cpp index 6fac73d3b..37379661c 100644 --- a/src/core/context/contextaudio.cpp +++ b/src/core/context/contextaudio.cpp @@ -64,7 +64,7 @@ namespace swift::core::context case CCoreFacadeConfig::LocalInDBusServer: { auto *context = new CContextAudio(mode, runtime); - context->registerWithDBus(server); + context->registerWithDBus(ObjectPath(), server); return context; } case CCoreFacadeConfig::Remote: diff --git a/src/core/context/contextaudioimpl.cpp b/src/core/context/contextaudioimpl.cpp index baf74a13a..abb7c20a7 100644 --- a/src/core/context/contextaudioimpl.cpp +++ b/src/core/context/contextaudioimpl.cpp @@ -24,14 +24,6 @@ namespace swift::core::context Qt::QueuedConnection); } - void CContextAudio::registerWithDBus(CDBusServer *server) - { - if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; } - - // remark that registers all SIGNALS, not only the interface ons - server->addObject(IContextAudio::ObjectPath(), this); - } - void CContextAudio::registerDevices(const CAudioDeviceInfoList &devices) { if (devices.isEmpty()) { return; } diff --git a/src/core/context/contextaudioimpl.h b/src/core/context/contextaudioimpl.h index f65fa3cd8..ae80f6ba1 100644 --- a/src/core/context/contextaudioimpl.h +++ b/src/core/context/contextaudioimpl.h @@ -59,9 +59,6 @@ namespace swift::core //! Constructor CContextAudio(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime); - //! Register myself in DBus - void registerWithDBus(misc::CDBusServer *server); - private: misc::audio::CAudioDeviceInfoList m_registeredDevices; QMap m_registeredCallsigns; diff --git a/src/core/context/contextnetwork.cpp b/src/core/context/contextnetwork.cpp index 2f289f7c7..346aebcb0 100644 --- a/src/core/context/contextnetwork.cpp +++ b/src/core/context/contextnetwork.cpp @@ -25,7 +25,7 @@ namespace swift::core::context case CCoreFacadeConfig::LocalInDBusServer: { auto *context = new CContextNetwork(mode, runtime); - context->registerWithDBus(server); + context->registerWithDBus(ObjectPath(), server); return context; } case CCoreFacadeConfig::Remote: diff --git a/src/core/context/contextnetworkimpl.cpp b/src/core/context/contextnetworkimpl.cpp index 2911ed207..41cfda541 100644 --- a/src/core/context/contextnetworkimpl.cpp +++ b/src/core/context/contextnetworkimpl.cpp @@ -120,12 +120,6 @@ namespace swift::core::context Qt::QueuedConnection); } - void CContextNetwork::registerWithDBus(swift::misc::CDBusServer *server) - { - if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; }; - server->addObject(IContextNetwork::ObjectPath(), this); - } - void CContextNetwork::setSimulationEnvironmentProvider(ISimulationEnvironmentProvider *provider) { if (this->canUseAirspaceMonitor()) { m_airspace->setSimulationEnvironmentProvider(provider); } diff --git a/src/core/context/contextnetworkimpl.h b/src/core/context/contextnetworkimpl.h index 8aad6ea84..7e7d72081 100644 --- a/src/core/context/contextnetworkimpl.h +++ b/src/core/context/contextnetworkimpl.h @@ -461,9 +461,6 @@ namespace swift::core //! Constructor, with link to runtime CContextNetwork(CCoreFacadeConfig::ContextMode, CCoreFacade *runtime); - //! Register myself in DBus - void registerWithDBus(swift::misc::CDBusServer *server); - //! Set the provider void setSimulationEnvironmentProvider(swift::misc::simulation::ISimulationEnvironmentProvider *provider); diff --git a/src/core/context/contextownaircraft.cpp b/src/core/context/contextownaircraft.cpp index dc6da8c5c..846fabead 100644 --- a/src/core/context/contextownaircraft.cpp +++ b/src/core/context/contextownaircraft.cpp @@ -28,7 +28,7 @@ namespace swift::core::context case CCoreFacadeConfig::LocalInDBusServer: { auto *context = new CContextOwnAircraft(mode, parent); - context->registerWithDBus(server); + context->registerWithDBus(ObjectPath(), server); return context; } case CCoreFacadeConfig::Remote: diff --git a/src/core/context/contextownaircraftimpl.cpp b/src/core/context/contextownaircraftimpl.cpp index 5fef0bd85..14b02040a 100644 --- a/src/core/context/contextownaircraftimpl.cpp +++ b/src/core/context/contextownaircraftimpl.cpp @@ -72,12 +72,6 @@ namespace swift::core::context CContextOwnAircraft::~CContextOwnAircraft() {} - void CContextOwnAircraft::registerWithDBus(CDBusServer *server) - { - if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; } - server->addObject(IContextOwnAircraft::ObjectPath(), this); - } - CSimulatedAircraft CContextOwnAircraft::getOwnAircraft() const { if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; } diff --git a/src/core/context/contextownaircraftimpl.h b/src/core/context/contextownaircraftimpl.h index db10c8f36..b88cc730d 100644 --- a/src/core/context/contextownaircraftimpl.h +++ b/src/core/context/contextownaircraftimpl.h @@ -215,9 +215,6 @@ namespace swift::core //! Constructor, with link to runtime CContextOwnAircraft(CCoreFacadeConfig::ContextMode, CCoreFacade *runtime); - //! Register myself in DBus - void registerWithDBus(swift::misc::CDBusServer *server); - private: swift::misc::simulation::CSimulatedAircraft m_ownAircraft; //!< my aircraft mutable QReadWriteLock m_lockAircraft; //!< lock aircraft diff --git a/src/core/context/contextsimulator.cpp b/src/core/context/contextsimulator.cpp index c0692773b..6c5ac459a 100644 --- a/src/core/context/contextsimulator.cpp +++ b/src/core/context/contextsimulator.cpp @@ -39,7 +39,7 @@ namespace swift::core::context case CCoreFacadeConfig::LocalInDBusServer: { auto *context = new CContextSimulator(mode, parent); - context->registerWithDBus(server); + context->registerWithDBus(ObjectPath(), server); return context; } case CCoreFacadeConfig::Remote: diff --git a/src/core/context/contextsimulatorimpl.cpp b/src/core/context/contextsimulatorimpl.cpp index 35fe01b37..20177750e 100644 --- a/src/core/context/contextsimulatorimpl.cpp +++ b/src/core/context/contextsimulatorimpl.cpp @@ -106,12 +106,6 @@ namespace swift::core::context else { m_validator->setCurrentSimulator(CSimulatorInfo::None, {}, {}); } } - void CContextSimulator::registerWithDBus(CDBusServer *server) - { - if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; } - server->addObject(CContextSimulator::ObjectPath(), this); - } - bool CContextSimulator::isSimulatorPluginAvailable() const { return m_simulatorPlugin.second && IContextSimulator::isSimulatorAvailable(); diff --git a/src/core/context/contextsimulatorimpl.h b/src/core/context/contextsimulatorimpl.h index 95c371e30..c4a630b7a 100644 --- a/src/core/context/contextsimulatorimpl.h +++ b/src/core/context/contextsimulatorimpl.h @@ -273,9 +273,6 @@ namespace swift::core //! Constructor CContextSimulator(CCoreFacadeConfig::ContextMode, CCoreFacade *runtime); - //! Register myself in DBus - void registerWithDBus(swift::misc::CDBusServer *server); - //! Simulator plugin available? bool isSimulatorPluginAvailable() const; From af757eb01785d2aab01275eb1a7353cf1c6ed20a Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Mon, 30 Dec 2024 12:44:02 +0100 Subject: [PATCH 16/16] refactor: Log input start on macOS Related to #316 --- src/core/afv/audio/input.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/core/afv/audio/input.cpp b/src/core/afv/audio/input.cpp index 8fe04e3f2..7fc4ba53f 100644 --- a/src/core/afv/audio/input.cpp +++ b/src/core/afv/audio/input.cpp @@ -106,10 +106,8 @@ namespace swift::core::afv::audio CMacOSMicrophoneAccess::AuthorizationStatus status = m_micAccess.getAuthorizationStatus(); if (status == CMacOSMicrophoneAccess::Authorized) { - m_audioInput->start(m_audioInputBuffer); - connect(m_audioInputBuffer, &CAudioInputBuffer::frameAvailable, this, &CInput::audioInDataAvailable); - m_started = true; - return; + // void + // Audio start will be handled below } else if (status == CMacOSMicrophoneAccess::NotDetermined) { @@ -123,11 +121,10 @@ namespace swift::core::afv::audio CLogMessage(this).error(u"Microphone access not granted. Voice input will not work."); return; } -#else +#endif m_audioInput->start(m_audioInputBuffer); connect(m_audioInputBuffer, &CAudioInputBuffer::frameAvailable, this, &CInput::audioInDataAvailable); m_started = true; -#endif const QString format = toQString(m_inputFormat); CLogMessage(this).info(u"Starting: '%1' with: %2") << selectedDevice.description() << format; }