mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-12 23:35:33 +08:00
Ref T342, distance of airport can be recalculated
This commit is contained in:
@@ -155,7 +155,7 @@ namespace BlackCore
|
||||
virtual BlackMisc::Simulation::CSimulatorInternals getSimulatorInternals() const = 0;
|
||||
|
||||
//! Airports in range
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const = 0;
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange(bool recalculateDistance) const = 0;
|
||||
|
||||
//! Installed models in simulator eco system
|
||||
//! \note might be slow since list can be big
|
||||
|
||||
@@ -73,8 +73,9 @@ namespace BlackCore
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::getAirportsInRange
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const override
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange(bool recalculatePosition) const override
|
||||
{
|
||||
Q_UNUSED(recalculatePosition);
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return BlackMisc::Aviation::CAirportList();
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ namespace BlackCore
|
||||
return m_simulatorPlugin.second->getSimulatorInternals();
|
||||
}
|
||||
|
||||
CAirportList CContextSimulator::getAirportsInRange() const
|
||||
CAirportList CContextSimulator::getAirportsInRange(bool recalculateDistance) const
|
||||
{
|
||||
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
// If no ISimulator object is available, return a dummy.
|
||||
@@ -176,7 +176,7 @@ namespace BlackCore
|
||||
}
|
||||
|
||||
Q_ASSERT(m_simulatorPlugin.second);
|
||||
return m_simulatorPlugin.second->getAirportsInRange();
|
||||
return m_simulatorPlugin.second->getAirportsInRange(recalculateDistance);
|
||||
}
|
||||
|
||||
CAircraftModelList CContextSimulator::getModelSet() const
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace BlackCore
|
||||
virtual int checkListeners() override;
|
||||
virtual int getSimulatorStatus() const override;
|
||||
virtual BlackMisc::Simulation::CSimulatorInternals getSimulatorInternals() const override;
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const override;
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
|
||||
virtual BlackMisc::Simulation::CAircraftModelList getModelSet() const override;
|
||||
virtual BlackMisc::Simulation::CSimulatorInfo getModelSetLoaderSimulator() const override;
|
||||
virtual void setModelSetLoaderSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator) override;
|
||||
|
||||
@@ -101,9 +101,9 @@ namespace BlackCore
|
||||
return m_dBusInterface->callDBusRet<int>(QLatin1String("getSimulatorStatus"));
|
||||
}
|
||||
|
||||
CAirportList CContextSimulatorProxy::getAirportsInRange() const
|
||||
CAirportList CContextSimulatorProxy::getAirportsInRange(bool recalculatePosition) const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAirportList>(QLatin1String("getAirportsInRange"));
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAirportList>(QLatin1String("getAirportsInRange"), recalculatePosition);
|
||||
}
|
||||
|
||||
CAircraftModelList CContextSimulatorProxy::getModelSet() const
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace BlackCore
|
||||
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual int checkListeners() override;
|
||||
virtual int getSimulatorStatus() const override;
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const override;
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange(bool recalculatePosition) const override;
|
||||
virtual BlackMisc::Simulation::CAircraftModelList getModelSet() const override;
|
||||
virtual BlackMisc::Simulation::CSimulatorInfo simulatorsWithInitializedModelSet() const override;
|
||||
virtual BlackMisc::CStatusMessageList verifyPrerequisites() const override;
|
||||
|
||||
@@ -796,7 +796,7 @@ namespace BlackCore
|
||||
return m_loopbackSituations.value(callsign);
|
||||
}
|
||||
|
||||
CAirportList ISimulator::getAirportsInRange() const
|
||||
CAirportList ISimulator::getAirportsInRange(bool recalculateDistance) const
|
||||
{
|
||||
// default implementation
|
||||
if (this->isShuttingDown()) { return CAirportList(); }
|
||||
@@ -805,9 +805,9 @@ namespace BlackCore
|
||||
const CAirportList airports = sApp->getWebDataServices()->getAirports();
|
||||
if (airports.isEmpty()) { return airports; }
|
||||
const CCoordinateGeodetic ownPosition = this->getOwnAircraftPosition();
|
||||
CAirportList airportInRange = airports.findClosest(maxAirportsInRange(), ownPosition);
|
||||
if (m_autoCalcAirportDistance) { airportInRange.calculcateAndUpdateRelativeDistanceAndBearing(ownPosition); }
|
||||
return airportInRange;
|
||||
CAirportList airportsInRange = airports.findClosest(maxAirportsInRange(), ownPosition);
|
||||
if (recalculateDistance) { airportsInRange.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition()); }
|
||||
return airportsInRange;
|
||||
}
|
||||
|
||||
CAircraftModel ISimulator::reverseLookupModel(const CAircraftModel &model)
|
||||
|
||||
@@ -144,7 +144,7 @@ namespace BlackCore
|
||||
virtual void displayTextMessage(const BlackMisc::Network::CTextMessage &message) const = 0;
|
||||
|
||||
//! Airports in range from simulator, or if not available from web service
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const;
|
||||
virtual BlackMisc::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
|
||||
@@ -499,7 +499,6 @@ namespace BlackCore
|
||||
static BlackMisc::Simulation::CAircraftModel reverseLookupModel(const BlackMisc::Simulation::CAircraftModel &model);
|
||||
|
||||
bool m_pausedSimFreezesInterpolation = false; //!< paused simulator will also pause interpolation (so AI aircraft will hold)
|
||||
bool m_autoCalcAirportDistance = true; //!< automatically calculate airport distance and bearing
|
||||
bool m_updateRemoteAircraftInProgress = false; //!< currently updating remote aircraft
|
||||
int m_timerId = -1; //!< dispatch timer id
|
||||
int m_statsUpdateAircraftRuns = 0; //!< statistics update count
|
||||
|
||||
Reference in New Issue
Block a user