mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-08-10 03:16:09 +08:00
@@ -65,6 +65,7 @@ namespace BlackCore
|
||||
CAirspaceMonitor::CAirspaceMonitor(BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider, INetwork *network, QObject *parent)
|
||||
: QObject(parent),
|
||||
COwnAircraftAware(ownAircraftProvider),
|
||||
CIdentifiable(this),
|
||||
m_network(network),
|
||||
m_analyzer(new CAirspaceAnalyzer(ownAircraftProvider, this, network, this))
|
||||
{
|
||||
@@ -214,8 +215,9 @@ namespace BlackCore
|
||||
return c > 0;
|
||||
}
|
||||
|
||||
bool CAirspaceMonitor::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model)
|
||||
bool CAirspaceMonitor::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)
|
||||
{
|
||||
if (CIdentifiable::isMyIdentifier(originator)) { return false; }
|
||||
const CPropertyIndexVariantMap vm(CSimulatedAircraft::IndexModel, CVariant::from(model));
|
||||
const int c = this->updateAircraftInRange(callsign, vm);
|
||||
return c > 0;
|
||||
@@ -923,7 +925,9 @@ namespace BlackCore
|
||||
{
|
||||
CAircraftModel model = CAircraftMatcher::reverselLookupModel(callsign, aircraftIcao, airlineIcao, livery, modelString, type, log);
|
||||
model.updateMissingParts(aircraft.getModel());
|
||||
this->updateAircraftModel(callsign, model);
|
||||
// Use anonymous as originator here, since the remote aircraft provider is ourselves and the call to updateAircraftModel() would
|
||||
// return without doing anything.
|
||||
this->updateAircraftModel(callsign, model, CIdentifier::anonymous());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "blackmisc/aviation/callsignset.h"
|
||||
#include "blackmisc/aviation/flightplan.h"
|
||||
#include "blackmisc/geo/coordinategeodetic.h"
|
||||
#include "blackmisc/identifiable.h"
|
||||
#include "blackmisc/identifier.h"
|
||||
#include "blackmisc/network/clientlist.h"
|
||||
#include "blackmisc/network/userlist.h"
|
||||
@@ -68,7 +69,8 @@ namespace BlackCore
|
||||
class BLACKCORE_EXPORT CAirspaceMonitor :
|
||||
public QObject,
|
||||
public BlackMisc::Simulation::IRemoteAircraftProvider, // those data will be provided from the class CAirspaceMonitor
|
||||
public BlackMisc::Simulation::COwnAircraftAware // used to obtain in memory information about own aircraft
|
||||
public BlackMisc::Simulation::COwnAircraftAware, // used to obtain in memory information about own aircraft
|
||||
public BlackMisc::CIdentifiable
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(BlackMisc::Simulation::IRemoteAircraftProvider)
|
||||
@@ -94,7 +96,7 @@ namespace BlackCore
|
||||
virtual bool isRemoteAircraftSupportingParts(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Aviation::CCallsignSet remoteAircraftSupportingParts() const override;
|
||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) override;
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override;
|
||||
virtual bool updateAircraftModel(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 updateAircraftRendered(const BlackMisc::Aviation::CCallsign &callsign, bool rendered) override;
|
||||
virtual void updateMarkAllAsNotRendered() override;
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "blackmisc/aviation/atcstationlist.h"
|
||||
#include "blackmisc/aviation/callsignset.h"
|
||||
#include "blackmisc/aviation/flightplan.h"
|
||||
#include "blackmisc/identifiable.h"
|
||||
#include "blackmisc/identifier.h"
|
||||
#include "blackmisc/network/clientlist.h"
|
||||
#include "blackmisc/network/server.h"
|
||||
@@ -126,7 +127,7 @@ namespace BlackCore
|
||||
//! Aircraft model was changed
|
||||
//! \details All remote aircraft are stored in the network context. The model can be updated here
|
||||
//! via \sa updateAircraftModel and then this signal is fired
|
||||
void changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||
void changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator);
|
||||
|
||||
//! Aircraft enabled / disabled
|
||||
//! \details All remote aircraft are stored in the network context. The aircraft can be enabled (for rendering) here
|
||||
@@ -257,7 +258,7 @@ namespace BlackCore
|
||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) = 0;
|
||||
|
||||
//! Change model string
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) = 0;
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0;
|
||||
|
||||
//! Change fast position updates
|
||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) = 0;
|
||||
|
||||
@@ -262,10 +262,11 @@ namespace BlackCore
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::updateAircraftModel
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override
|
||||
{
|
||||
Q_UNUSED(callsign);
|
||||
Q_UNUSED(model);
|
||||
Q_UNUSED(originator);
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -562,14 +562,14 @@ namespace BlackCore
|
||||
return c;
|
||||
}
|
||||
|
||||
bool CContextNetwork::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model)
|
||||
bool CContextNetwork::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)
|
||||
{
|
||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign << model; }
|
||||
bool c = this->m_airspace->updateAircraftModel(callsign, model);
|
||||
bool c = this->m_airspace->updateAircraftModel(callsign, model, originator);
|
||||
if (c)
|
||||
{
|
||||
CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
|
||||
emit this->changedRemoteAircraftModel(aircraft);
|
||||
emit this->changedRemoteAircraftModel(aircraft, originator);
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ namespace BlackCore
|
||||
|
||||
//! \copydoc IContextNetwork::updateAircraftModel
|
||||
//! \ingroup remoteaircraftprovider
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override;
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||
|
||||
//! \copydoc IContextNetwork::updateFastPositionEnabled
|
||||
//! \ingroup remoteaircraftprovider
|
||||
|
||||
@@ -190,9 +190,9 @@ namespace BlackCore
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateAircraftEnabled"), callsign, enabledForRedering);
|
||||
}
|
||||
|
||||
bool CContextNetworkProxy::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model)
|
||||
bool CContextNetworkProxy::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateAircraftModel"), callsign, model);
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateAircraftModel"), callsign, model, originator);
|
||||
}
|
||||
|
||||
bool CContextNetworkProxy::updateFastPositionEnabled(const CCallsign &callsign, bool enableFastPositionSending)
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace BlackCore
|
||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) override;
|
||||
|
||||
//! \copydoc IContextNetwork::updateAircraftModel
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override;
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||
|
||||
//! \copydoc IContextNetwork::updateFastPositionEnabled
|
||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) override;
|
||||
|
||||
@@ -47,6 +47,7 @@ namespace BlackCore
|
||||
{
|
||||
CContextSimulator::CContextSimulator(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime) :
|
||||
IContextSimulator(mode, runtime),
|
||||
CIdentifiable(this),
|
||||
m_plugins(new CPluginManagerSimulator(this))
|
||||
{
|
||||
this->setObjectName("CContextSimulator");
|
||||
@@ -526,8 +527,9 @@ namespace BlackCore
|
||||
getIContextOwnAircraft()->changedAircraftCockpit(ownAircraft, IContextSimulator::InterfaceName());
|
||||
}
|
||||
|
||||
void CContextSimulator::ps_changedRemoteAircraftModel(const CSimulatedAircraft &aircraft)
|
||||
void CContextSimulator::ps_changedRemoteAircraftModel(const CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator)
|
||||
{
|
||||
if (CIdentifiable::isMyIdentifier(originator)) { return; }
|
||||
if (!isSimulatorSimulating()) { return; }
|
||||
m_simulatorPlugin.second->changeRemoteAircraftModel(aircraft);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,9 @@ namespace BlackCore
|
||||
namespace Context
|
||||
{
|
||||
//! Network simulator concrete implementation
|
||||
class BLACKCORE_EXPORT CContextSimulator : public IContextSimulator
|
||||
class BLACKCORE_EXPORT CContextSimulator :
|
||||
public IContextSimulator,
|
||||
public BlackMisc::CIdentifiable
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTSIMULATOR_INTERFACENAME)
|
||||
@@ -173,7 +175,7 @@ namespace BlackCore
|
||||
void ps_cockpitChangedFromSimulator(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft);
|
||||
|
||||
//! Changed remote aircraft model
|
||||
void ps_changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||
void ps_changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator);
|
||||
|
||||
//! Enable / disable aircraft
|
||||
void ps_changedRemoteAircraftEnabled(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||
|
||||
@@ -58,6 +58,7 @@ namespace BlackGui
|
||||
{
|
||||
CMappingComponent::CMappingComponent(QWidget *parent) :
|
||||
QFrame(parent),
|
||||
CIdentifiable(this),
|
||||
ui(new Ui::CMappingComponent),
|
||||
m_updateTimer(new CUpdateTimer("CMappingComponent", &CMappingComponent::ps_backgroundUpdate, this))
|
||||
{
|
||||
@@ -273,7 +274,7 @@ namespace BlackGui
|
||||
CAircraftModel model(models.front());
|
||||
model.setModelType(CAircraftModel::TypeManuallySet);
|
||||
CLogMessage(this).info("Requesting changes for %1") << callsign.asString();
|
||||
sGui->getIContextNetwork()->updateAircraftModel(aircraftFromBackend.getCallsign(), model);
|
||||
sGui->getIContextNetwork()->updateAircraftModel(aircraftFromBackend.getCallsign(), model, identifier());
|
||||
changed = true;
|
||||
}
|
||||
if (aircraftFromBackend.isEnabled() != enabled)
|
||||
@@ -324,8 +325,9 @@ namespace BlackGui
|
||||
ui->le_AircraftModel->setCompleter(this->m_modelCompleter);
|
||||
}
|
||||
|
||||
void CMappingComponent::ps_onRemoteAircraftModelChanged(const CSimulatedAircraft &aircraft)
|
||||
void CMappingComponent::ps_onRemoteAircraftModelChanged(const CSimulatedAircraft &aircraft, const CIdentifier &originator)
|
||||
{
|
||||
if (CIdentifiable::isMyIdentifier(originator)) { return; }
|
||||
this->updateSimulatedAircraftView();
|
||||
Q_UNUSED(aircraft);
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "blackcore/network.h"
|
||||
#include "blackgui/blackguiexport.h"
|
||||
#include "blackgui/components/enablefordockwidgetinfoarea.h"
|
||||
#include "blackmisc/identifiable.h"
|
||||
#include "blackmisc/identifier.h"
|
||||
#include "blackmisc/propertyindex.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
@@ -48,7 +49,8 @@ namespace BlackGui
|
||||
//! Mappings, models etc.
|
||||
class BLACKGUI_EXPORT CMappingComponent :
|
||||
public QFrame,
|
||||
public CEnableForDockWidgetInfoArea
|
||||
public CEnableForDockWidgetInfoArea,
|
||||
public BlackMisc::CIdentifiable
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -105,7 +107,7 @@ namespace BlackGui
|
||||
void ps_onModelsUpdateRequested();
|
||||
|
||||
//! Rendered aircraft changed in backend
|
||||
void ps_onRemoteAircraftModelChanged(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||
void ps_onRemoteAircraftModelChanged(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator);
|
||||
|
||||
//! Aircraft enabled, disabled in backend
|
||||
void ps_onChangedAircraftEnabled(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||
|
||||
@@ -76,10 +76,10 @@ namespace BlackMisc
|
||||
return this->m_remoteAircraftProvider->remoteAircraftSituationsCount(callsign);
|
||||
}
|
||||
|
||||
bool CRemoteAircraftAware::updateAircraftModel(const Aviation::CCallsign &callsign, const CAircraftModel &model)
|
||||
bool CRemoteAircraftAware::updateAircraftModel(const Aviation::CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)
|
||||
{
|
||||
Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available");
|
||||
return this->m_remoteAircraftProvider->updateAircraftModel(callsign, model);
|
||||
return this->m_remoteAircraftProvider->updateAircraftModel(callsign, model, originator);
|
||||
}
|
||||
|
||||
bool CRemoteAircraftAware::updateAircraftRendered(const CCallsign &callsign, bool rendered)
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace BlackMisc
|
||||
|
||||
//! Change model string
|
||||
//! \threadsafe
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) = 0;
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0;
|
||||
|
||||
//! Change fast position updates
|
||||
//! \threadsafe
|
||||
@@ -188,7 +188,7 @@ namespace BlackMisc
|
||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering);
|
||||
|
||||
//! \copydoc IRemoteAircraftProvider::updateAircraftModel
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model);
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator);
|
||||
|
||||
//! \copydoc IRemoteAircraftProvider::updateAircraftRendered
|
||||
virtual bool updateAircraftRendered(const BlackMisc::Aviation::CCallsign &callsign, bool rendered);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <QHash>
|
||||
|
||||
using namespace BlackMisc::Aviation;
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
namespace Simulation
|
||||
@@ -108,8 +109,9 @@ namespace BlackMisc
|
||||
return n > 0;
|
||||
}
|
||||
|
||||
bool CRemoteAircraftProviderDummy::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model)
|
||||
bool CRemoteAircraftProviderDummy::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)
|
||||
{
|
||||
Q_UNUSED(originator);
|
||||
CPropertyIndexVariantMap vm(CSimulatedAircraft::IndexModel, CVariant::from(model));
|
||||
int n = this->m_aircraft.applyIfCallsign(callsign, vm);
|
||||
return n > 0;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "blackmisc/aviation/aircraftsituationlist.h"
|
||||
#include "blackmisc/aviation/callsignset.h"
|
||||
#include "blackmisc/blackmiscexport.h"
|
||||
#include "blackmisc/identifiable.h"
|
||||
#include "blackmisc/identifier.h"
|
||||
#include "blackmisc/simulation/aircraftmodel.h"
|
||||
#include "blackmisc/simulation/airspaceaircraftsnapshot.h"
|
||||
@@ -98,7 +99,7 @@ namespace BlackMisc
|
||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) override;
|
||||
|
||||
//! \copydoc IRemoteAircraftProvider::updateAircraftModel
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override;
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||
|
||||
//! \copydoc IRemoteAircraftProvider::updateFastPositionEnabled
|
||||
virtual bool updateFastPositionEnabled(const Aviation::CCallsign &callsign, bool enableFastPositionUpdates) override;
|
||||
|
||||
Reference in New Issue
Block a user