mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-03 15:45:46 +08:00
Ref T260, utility functions to set provider, plane ctor
This commit is contained in:
committed by
Roland Winklmeier
parent
6e908db52e
commit
056c257182
@@ -97,6 +97,12 @@ namespace BlackCore
|
||||
return this;
|
||||
}
|
||||
|
||||
void CContextNetwork::setSimulationEnvironmentProvider(ISimulationEnvironmentProvider *provider)
|
||||
{
|
||||
if (m_airspace) { m_airspace->setSimulationEnvironmentProvider(provider); }
|
||||
if (m_network) { m_network->setSimulationEnvironmentProvider(provider); }
|
||||
}
|
||||
|
||||
CContextNetwork::~CContextNetwork()
|
||||
{
|
||||
this->gracefulShutdown();
|
||||
@@ -438,17 +444,14 @@ namespace BlackCore
|
||||
void CContextNetwork::xCtxSimulatorStatusChanged(int status)
|
||||
{
|
||||
const ISimulator::SimulatorStatus simStatus = static_cast<ISimulator::SimulatorStatus>(status);
|
||||
if (m_network)
|
||||
if (ISimulator::isAnyConnectedStatus(simStatus))
|
||||
{
|
||||
if (simStatus.testFlag(ISimulator::Connected))
|
||||
{
|
||||
const CContextSimulator *sim = this->getRuntime()->getCContextSimulator();
|
||||
m_network->setSimulationEnvironmentProvider(sim ? sim->simulator() : nullptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_network->setSimulationEnvironmentProvider(nullptr);
|
||||
}
|
||||
const CContextSimulator *sim = this->getRuntime()->getCContextSimulator();
|
||||
this->setSimulationEnvironmentProvider(sim ? sim->simulator() : nullptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->setSimulationEnvironmentProvider(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -217,6 +217,9 @@ namespace BlackCore
|
||||
//! \remarks normally only for core facade internal usage
|
||||
CAirspaceMonitor *airspace() const { return m_airspace; }
|
||||
|
||||
//! Set the provider
|
||||
void setSimulationEnvironmentProvider(BlackMisc::Simulation::ISimulationEnvironmentProvider *provider);
|
||||
|
||||
private:
|
||||
CAirspaceMonitor *m_airspace = nullptr;
|
||||
INetwork *m_network = nullptr;
|
||||
|
||||
@@ -72,6 +72,11 @@ namespace BlackCore
|
||||
return s.join(", ");
|
||||
}
|
||||
|
||||
bool ISimulator::isAnyConnectedStatus(SimulatorStatus status)
|
||||
{
|
||||
return (status.testFlag(Connected) || status.testFlag(Simulating) || status.testFlag(Paused));
|
||||
}
|
||||
|
||||
ISimulator::ISimulator(
|
||||
const CSimulatorPluginInfo &pluginInfo, IOwnAircraftProvider *ownAircraftProvider,
|
||||
IRemoteAircraftProvider *remoteAircraftProvider, IWeatherGridProvider *weatherGridProvider, QObject *parent) :
|
||||
|
||||
@@ -207,6 +207,9 @@ namespace BlackCore
|
||||
//! Status to string
|
||||
static QString statusToString(SimulatorStatus status);
|
||||
|
||||
//! Any connected status?
|
||||
static bool isAnyConnectedStatus(SimulatorStatus status);
|
||||
|
||||
signals:
|
||||
//! Simulator combined status
|
||||
void simulatorStatusChanged(SimulatorStatus status);
|
||||
|
||||
Reference in New Issue
Block a user