mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-15 01:05:35 +08:00
Ref T261, Ref T251 gnd flag support in context/client provider
* allow to set gnd.flag capability via context/client * utility functions in client provider
This commit is contained in:
@@ -140,6 +140,9 @@ namespace BlackCore
|
|||||||
//! Aircraft enabled / disabled
|
//! Aircraft enabled / disabled
|
||||||
void changedFastPositionUpdates(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
void changedFastPositionUpdates(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||||
|
|
||||||
|
//! Changed gnd. flag capability
|
||||||
|
void changedGndFlagCapability(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||||
|
|
||||||
//! Connection status changed for online station
|
//! Connection status changed for online station
|
||||||
void changedAtcStationOnlineConnectionStatus(const BlackMisc::Aviation::CAtcStation &atcStation, bool connected);
|
void changedAtcStationOnlineConnectionStatus(const BlackMisc::Aviation::CAtcStation &atcStation, bool connected);
|
||||||
|
|
||||||
@@ -261,7 +264,10 @@ namespace BlackCore
|
|||||||
virtual void requestAtisUpdates() = 0;
|
virtual void requestAtisUpdates() = 0;
|
||||||
|
|
||||||
//! Enable/disable rendering
|
//! Enable/disable rendering
|
||||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) = 0;
|
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) = 0;
|
||||||
|
|
||||||
|
//! Enable/disable support of gnd. flag
|
||||||
|
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) = 0;
|
||||||
|
|
||||||
//! Change model
|
//! Change model
|
||||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0;
|
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0;
|
||||||
|
|||||||
@@ -299,10 +299,19 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
//! \copydoc IContextNetwork::updateAircraftEnabled
|
//! \copydoc IContextNetwork::updateAircraftEnabled
|
||||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) override
|
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) override
|
||||||
{
|
{
|
||||||
Q_UNUSED(callsign);
|
Q_UNUSED(callsign);
|
||||||
Q_UNUSED(enabledForRedering);
|
Q_UNUSED(enabledForRendering);
|
||||||
|
logEmptyContextWarning(Q_FUNC_INFO);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//! \copydoc IContextNetwork::updateAircraftSupportingGndFLag
|
||||||
|
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) override
|
||||||
|
{
|
||||||
|
Q_UNUSED(callsign);
|
||||||
|
Q_UNUSED(supportGndFlag);
|
||||||
logEmptyContextWarning(Q_FUNC_INFO);
|
logEmptyContextWarning(Q_FUNC_INFO);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -422,6 +422,11 @@ namespace BlackCore
|
|||||||
return m_airspace->addClientGndCapability(callsign);
|
return m_airspace->addClientGndCapability(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CContextNetwork::setClientGndCapability(const Aviation::CCallsign &callsign, bool supportGndFlag)
|
||||||
|
{
|
||||||
|
return m_airspace->setClientGndCapability(callsign, supportGndFlag);
|
||||||
|
}
|
||||||
|
|
||||||
CServerList CContextNetwork::getVatsimFsdServers() const
|
CServerList CContextNetwork::getVatsimFsdServers() const
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(sApp->getWebDataServices(), Q_FUNC_INFO, "Missing data reader");
|
Q_ASSERT_X(sApp->getWebDataServices(), Q_FUNC_INFO, "Missing data reader");
|
||||||
@@ -700,7 +705,7 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
Q_ASSERT(m_airspace);
|
Q_ASSERT(m_airspace);
|
||||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign << enabledForRendering; }
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign << enabledForRendering; }
|
||||||
bool c = m_airspace->updateAircraftEnabled(callsign, enabledForRendering);
|
const bool c = m_airspace->updateAircraftEnabled(callsign, enabledForRendering);
|
||||||
if (c)
|
if (c)
|
||||||
{
|
{
|
||||||
CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
|
CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
|
||||||
@@ -742,13 +747,26 @@ namespace BlackCore
|
|||||||
const bool c = m_airspace->updateFastPositionEnabled(callsign, enableFastPositonUpdates);
|
const bool c = m_airspace->updateFastPositionEnabled(callsign, enableFastPositonUpdates);
|
||||||
if (c)
|
if (c)
|
||||||
{
|
{
|
||||||
CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
|
const CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
|
||||||
CLogMessage(this).info("Callsign %1 sets fast positions ") << aircraft.getCallsign() << BlackMisc::boolToOnOff(aircraft.fastPositionUpdates());
|
CLogMessage(this).info("Callsign %1 sets fast positions ") << aircraft.getCallsign() << BlackMisc::boolToOnOff(aircraft.fastPositionUpdates());
|
||||||
emit this->changedFastPositionUpdates(aircraft);
|
emit this->changedFastPositionUpdates(aircraft);
|
||||||
}
|
}
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CContextNetwork::updateAircraftSupportingGndFLag(const CCallsign &callsign, bool supportGndFlag)
|
||||||
|
{
|
||||||
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign << supportGndFlag; }
|
||||||
|
const bool c = m_airspace->setClientGndCapability(callsign, supportGndFlag);
|
||||||
|
if (c)
|
||||||
|
{
|
||||||
|
const CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
|
||||||
|
CLogMessage(this).info("Callsign %1 set gnd.capability ") << aircraft.getCallsign() << BlackMisc::boolToOnOff(aircraft.fastPositionUpdates());
|
||||||
|
emit this->changedGndFlagCapability(aircraft);
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
bool CContextNetwork::updateCG(const Aviation::CCallsign &callsign, const CLength &cg)
|
bool CContextNetwork::updateCG(const Aviation::CCallsign &callsign, const CLength &cg)
|
||||||
{
|
{
|
||||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign << cg.valueRoundedWithUnit(1); }
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign << cg.valueRoundedWithUnit(1); }
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ namespace BlackCore
|
|||||||
virtual int removeClient(const BlackMisc::Aviation::CCallsign &callsign) override;
|
virtual int removeClient(const BlackMisc::Aviation::CCallsign &callsign) override;
|
||||||
virtual bool autoAdjustCientGndCapability(const BlackMisc::Aviation::CAircraftSituation &situation) override;
|
virtual bool autoAdjustCientGndCapability(const BlackMisc::Aviation::CAircraftSituation &situation) override;
|
||||||
virtual bool addClientGndCapability(const BlackMisc::Aviation::CCallsign &callsign) override;
|
virtual bool addClientGndCapability(const BlackMisc::Aviation::CCallsign &callsign) override;
|
||||||
|
virtual bool setClientGndCapability(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) override;
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
@@ -131,6 +132,7 @@ namespace BlackCore
|
|||||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||||
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositonUpdates) override;
|
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositonUpdates) override;
|
||||||
|
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) override;
|
||||||
virtual bool updateCG(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &cg) override;
|
virtual bool updateCG(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &cg) override;
|
||||||
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override;
|
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override;
|
||||||
virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
|
virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
|
||||||
|
|||||||
@@ -87,6 +87,9 @@ namespace BlackCore
|
|||||||
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
|
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
|
||||||
"changedFastPositionUpdates", this, SIGNAL(changedFastPositionUpdates(BlackMisc::Simulation::CSimulatedAircraft)));
|
"changedFastPositionUpdates", this, SIGNAL(changedFastPositionUpdates(BlackMisc::Simulation::CSimulatedAircraft)));
|
||||||
Q_ASSERT(s);
|
Q_ASSERT(s);
|
||||||
|
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
|
||||||
|
"changedGndFlagCapability", this, SIGNAL(changedGndFlagCapability(BlackMisc::Simulation::CSimulatedAircraft)));
|
||||||
|
Q_ASSERT(s);
|
||||||
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
|
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
|
||||||
"addedAircraft", this, SIGNAL(addedAircraft(BlackMisc::Simulation::CSimulatedAircraft)));
|
"addedAircraft", this, SIGNAL(addedAircraft(BlackMisc::Simulation::CSimulatedAircraft)));
|
||||||
Q_ASSERT(s);
|
Q_ASSERT(s);
|
||||||
@@ -225,6 +228,11 @@ namespace BlackCore
|
|||||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateFastPositionEnabled"), callsign, enableFastPositionSending);
|
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateFastPositionEnabled"), callsign, enableFastPositionSending);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CContextNetworkProxy::updateAircraftSupportingGndFLag(const CCallsign &callsign, bool supportGndFlag)
|
||||||
|
{
|
||||||
|
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateAircraftSupportingGndFLag"), callsign, supportGndFlag);
|
||||||
|
}
|
||||||
|
|
||||||
void CContextNetworkProxy::setFastPositionEnabledCallsigns(CCallsignSet &callsigns)
|
void CContextNetworkProxy::setFastPositionEnabledCallsigns(CCallsignSet &callsigns)
|
||||||
{
|
{
|
||||||
m_dBusInterface->callDBus(QLatin1String("setFastPositionEnabledCallsigns"), callsigns);
|
m_dBusInterface->callDBus(QLatin1String("setFastPositionEnabledCallsigns"), callsigns);
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ namespace BlackCore
|
|||||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||||
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) override;
|
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) override;
|
||||||
|
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) override;
|
||||||
virtual void setFastPositionEnabledCallsigns(BlackMisc::Aviation::CCallsignSet &callsigns) override;
|
virtual void setFastPositionEnabledCallsigns(BlackMisc::Aviation::CCallsignSet &callsigns) override;
|
||||||
virtual BlackMisc::Aviation::CCallsignSet getFastPositionEnabledCallsigns() const override;
|
virtual BlackMisc::Aviation::CCallsignSet getFastPositionEnabledCallsigns() const override;
|
||||||
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include "blackcore/context/contextsimulator.h"
|
#include "blackcore/context/contextsimulator.h"
|
||||||
#include "blackcore/application/applicationsettings.h"
|
#include "blackcore/application/applicationsettings.h"
|
||||||
|
#include "blackcore/simulator.h"
|
||||||
#include "blackcore/corefacadeconfig.h"
|
#include "blackcore/corefacadeconfig.h"
|
||||||
#include "blackcore/aircraftmatcher.h"
|
#include "blackcore/aircraftmatcher.h"
|
||||||
#include "blackcore/blackcoreexport.h"
|
#include "blackcore/blackcoreexport.h"
|
||||||
@@ -130,6 +131,9 @@ namespace BlackCore
|
|||||||
//! Access to simulator (i.e. the plugin)
|
//! Access to simulator (i.e. the plugin)
|
||||||
ISimulator *simulator() const;
|
ISimulator *simulator() const;
|
||||||
|
|
||||||
|
//! Simulator available?
|
||||||
|
bool hasSimulator() const { return this->simulator(); }
|
||||||
|
|
||||||
//! Register dot commands
|
//! Register dot commands
|
||||||
static void registerHelp()
|
static void registerHelp()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -100,14 +100,25 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool CClientProvider::addClientGndCapability(const CCallsign &callsign)
|
bool CClientProvider::addClientGndCapability(const CCallsign &callsign)
|
||||||
|
{
|
||||||
|
return this->setClientGndCapability(callsign, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CClientProvider::setClientGndCapability(const CCallsign &callsign, bool supportGndFlag)
|
||||||
{
|
{
|
||||||
CClient client = this->getClientOrDefaultForCallsign(callsign);
|
CClient client = this->getClientOrDefaultForCallsign(callsign);
|
||||||
|
|
||||||
// need to change?
|
// need to change?
|
||||||
if (!client.isValid()) { return false; } // no client
|
if (!client.isValid()) { return false; } // no client
|
||||||
if (client.hasGndFlagCapability()) { return true; } // already set, but set
|
if (client.hasGndFlagCapability() == supportGndFlag) { return true; } // already set, but set
|
||||||
|
if (supportGndFlag)
|
||||||
client.addCapability(CClient::FsdWithGroundFlag);
|
{
|
||||||
|
client.addCapability(CClient::FsdWithGroundFlag);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
client.removeCapability(CClient::FsdWithGroundFlag);
|
||||||
|
}
|
||||||
QWriteLocker l(&m_lockClient);
|
QWriteLocker l(&m_lockClient);
|
||||||
m_clients.replaceOrAddObjectByCallsign(client);
|
m_clients.replaceOrAddObjectByCallsign(client);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ namespace BlackMisc
|
|||||||
//! Add gnd.flag capability
|
//! Add gnd.flag capability
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
virtual bool addClientGndCapability(const Aviation::CCallsign &callsign) = 0;
|
virtual bool addClientGndCapability(const Aviation::CCallsign &callsign) = 0;
|
||||||
|
|
||||||
|
//! Set gnd.flag capability
|
||||||
|
//! \threadsafe
|
||||||
|
virtual bool setClientGndCapability(const Aviation::CCallsign &callsign, bool supportGndFlag) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Direct in memory access to client (network client) data
|
//! Direct in memory access to client (network client) data
|
||||||
@@ -93,6 +97,7 @@ namespace BlackMisc
|
|||||||
virtual int removeClient(const Aviation::CCallsign &callsign) override;
|
virtual int removeClient(const Aviation::CCallsign &callsign) override;
|
||||||
virtual bool autoAdjustCientGndCapability(const Aviation::CAircraftSituation &situation) override;
|
virtual bool autoAdjustCientGndCapability(const Aviation::CAircraftSituation &situation) override;
|
||||||
virtual bool addClientGndCapability(const Aviation::CCallsign &callsign) override;
|
virtual bool addClientGndCapability(const Aviation::CCallsign &callsign) override;
|
||||||
|
virtual bool setClientGndCapability(const Aviation::CCallsign &callsign, bool supportGndFlag) override;
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user