refs #452, adjust contexts

* removed classes (e.g. CAircraft -> CSimulatedAircraft)
* meet changes in signatures (e.g. updateOwnIcaoData -> updateOwnIcaoCodes)
This commit is contained in:
Klaus Basan
2015-09-23 19:28:57 +02:00
committed by Mathew Sutcliffe
parent 07c6370819
commit 77f1f68808
13 changed files with 30 additions and 78 deletions

View File

@@ -19,7 +19,6 @@
#include "blackmisc/audio/audiodeviceinfolist.h" #include "blackmisc/audio/audiodeviceinfolist.h"
#include "blackmisc/audio/voiceroomlist.h" #include "blackmisc/audio/voiceroomlist.h"
#include "blackmisc/network/userlist.h" #include "blackmisc/network/userlist.h"
#include "blackmisc/aviation/aircraft.h"
#include "blackmisc/aviation/callsignset.h" #include "blackmisc/aviation/callsignset.h"
#include "blackmisc/aviation/selcal.h" #include "blackmisc/aviation/selcal.h"
#include <QObject> #include <QObject>

View File

@@ -19,7 +19,6 @@
#include "blackmisc/audio/audiodeviceinfolist.h" #include "blackmisc/audio/audiodeviceinfolist.h"
#include "blackmisc/audio/voiceroomlist.h" #include "blackmisc/audio/voiceroomlist.h"
#include "blackmisc/network/userlist.h" #include "blackmisc/network/userlist.h"
#include "blackmisc/aviation/aircraft.h"
namespace BlackCore namespace BlackCore
{ {

View File

@@ -16,7 +16,6 @@
#include "blackcore/context.h" #include "blackcore/context.h"
#include "blackmisc/identifier.h" #include "blackmisc/identifier.h"
#include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/simulation/simulatedaircraft.h"
#include "blackmisc/aviation/aircrafticaodata.h"
#include "blackmisc/audio/voiceroomlist.h" #include "blackmisc/audio/voiceroomlist.h"
#include "blackmisc/aviation/selcal.h" #include "blackmisc/aviation/selcal.h"
@@ -76,7 +75,7 @@ namespace BlackCore
void changedCallsign(const BlackMisc::Aviation::CCallsign &callsign); void changedCallsign(const BlackMisc::Aviation::CCallsign &callsign);
//! Own ICAO was changed //! Own ICAO was changed
void changedIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icao); void changedAircraftIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode);
//! own pilot (aka the swift user) changed //! own pilot (aka the swift user) changed
void changedPilot(const BlackMisc::Network::CUser &pilot); void changedPilot(const BlackMisc::Network::CUser &pilot);
@@ -99,7 +98,7 @@ namespace BlackCore
virtual bool updateOwnAircraftPilot(const BlackMisc::Network::CUser &pilot) = 0; virtual bool updateOwnAircraftPilot(const BlackMisc::Network::CUser &pilot) = 0;
//! Set ICAO data //! Set ICAO data
virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) = 0; virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) = 0;
//! Set callsign //! Set callsign
virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) = 0; virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) = 0;

View File

@@ -93,10 +93,9 @@ namespace BlackCore
this->m_ownAircraft.setCallsign(CCallsign("SWIFT")); // would come from settings this->m_ownAircraft.setCallsign(CCallsign("SWIFT")); // would come from settings
//! \todo Own aircraft ICAO default data, this would need to come from somewhere (mappings) -> Own callsign, plane ICAO status, model used //! \todo Own aircraft ICAO default data, this would need to come from somewhere (mappings) -> Own callsign, plane ICAO status, model used
this->m_ownAircraft.setIcaoInfo( this->m_ownAircraft.setIcaoCodes(
CAircraftIcaoData( CAircraftIcaoCode("C172", "L1P"),
CAircraftIcaoCode("C172", "L1P"), CAirlineIcaoCode()
CAirlineIcaoCode())
); );
} }
@@ -234,15 +233,13 @@ namespace BlackCore
return true; return true;
} }
bool CContextOwnAircraft::updateOwnIcaoData(const CAircraftIcaoData &icaoData) bool CContextOwnAircraft::updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode)
{ {
{ {
QWriteLocker l(&m_lockAircraft); QWriteLocker l(&m_lockAircraft);
if (this->m_ownAircraft.getIcaoInfo() == icaoData) { return false; } return this->m_ownAircraft.setIcaoCodes(aircraftIcaoCode, airlineIcaoCode);
this->m_ownAircraft.setIcaoInfo(icaoData);
} }
emit changedIcaoData(icaoData); emit changedAircraftIcaoCodes(aircraftIcaoCode, airlineIcaoCode);
return true;
} }
bool CContextOwnAircraft::updateSelcal(const CSelcal &selcal, const CIdentifier &originator) bool CContextOwnAircraft::updateSelcal(const CSelcal &selcal, const CIdentifier &originator)
@@ -273,15 +270,9 @@ namespace BlackCore
void CContextOwnAircraft::ps_changedSimulatorModel(const CSimulatedAircraft &ownAircraft) void CContextOwnAircraft::ps_changedSimulatorModel(const CSimulatedAircraft &ownAircraft)
{ {
CAircraftModel model(ownAircraft.getModel());
QWriteLocker l(&m_lockAircraft); QWriteLocker l(&m_lockAircraft);
this->m_ownAircraft.setModel(ownAircraft.getModel()); this->m_ownAircraft.setModel(model);
CAircraftIcaoData icao(ownAircraft.getIcaoInfo());
if (icao.hasAircraftDesignator())
{
// if the model knows its ICAO, cool
// otherwise we ignore it and will use an ICAO elsewhere set
this->m_ownAircraft.setIcaoInfo(icao);
}
} }
void CContextOwnAircraft::setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url) void CContextOwnAircraft::setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url)
@@ -312,7 +303,7 @@ namespace BlackCore
parser.parse(commandLine); parser.parse(commandLine);
if (!parser.isKnownCommand()) { return false; } if (!parser.isKnownCommand()) { return false; }
CAircraft myAircraft(this->getOwnAircraft()); CSimulatedAircraft myAircraft(this->getOwnAircraft());
if (parser.matchesCommand(".x", ".xpdr") && parser.countParts() > 1) if (parser.matchesCommand(".x", ".xpdr") && parser.countParts() > 1)
{ {
CTransponder transponder = myAircraft.getTransponder(); CTransponder transponder = myAircraft.getTransponder();
@@ -352,8 +343,7 @@ namespace BlackCore
{ {
return false; return false;
} }
// todo RW: replace originator this->updateCockpit(com1, com2, myAircraft.getTransponder(), identifier());
this->updateCockpit(com1, com2, myAircraft.getTransponder(), CIdentifier("commandline"));
return true; return true;
} }
} }

View File

@@ -34,6 +34,7 @@ namespace BlackCore
{ {
Q_OBJECT Q_OBJECT
Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTOWNAIRCRAFT_INTERFACENAME) Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTOWNAIRCRAFT_INTERFACENAME)
Q_INTERFACES(BlackMisc::Simulation::IOwnAircraftProvider)
friend class CRuntime; friend class CRuntime;
friend class IContextOwnAircraft; friend class IContextOwnAircraft;
@@ -79,9 +80,9 @@ namespace BlackCore
//! \ingroup ownaircraftprovider //! \ingroup ownaircraftprovider
virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) override; virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;
//! \copydoc IContextOwnAircraft::updateOwnIcaoData //! \copydoc IContextOwnAircraft::updateOwnIcaoCodes
//! \ingroup ownaircraftprovider //! \ingroup ownaircraftprovider
virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) override; virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) override;
//! \copydoc IContextOwnAircraft::updatePosition //! \copydoc IContextOwnAircraft::updatePosition
virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) override; virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) override;

View File

@@ -70,9 +70,9 @@ namespace BlackCore
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnCallsign"), callsign); return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnCallsign"), callsign);
} }
bool CContextOwnAircraftProxy::updateOwnIcaoData(const CAircraftIcaoData &icaoData) bool CContextOwnAircraftProxy::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode)
{ {
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnIcaoData"), icaoData); return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnIcaoCodes"), aircraftIcaoCode, airlineIcaoCode);
} }
void CContextOwnAircraftProxy::setAudioOutputVolume(int outputVolume) void CContextOwnAircraftProxy::setAudioOutputVolume(int outputVolume)

View File

@@ -15,7 +15,6 @@
#include "blackcoreexport.h" #include "blackcoreexport.h"
#include "blackcore/context_ownaircraft.h" #include "blackcore/context_ownaircraft.h"
#include "blackmisc/genericdbusinterface.h" #include "blackmisc/genericdbusinterface.h"
#include "blackmisc/aviation/aircrafticaodata.h"
#include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/simulation/simulatedaircraft.h"
namespace BlackCore namespace BlackCore
@@ -56,8 +55,8 @@ namespace BlackCore
//! \copydoc IContextOwnAircraft::updateOwnCallsign //! \copydoc IContextOwnAircraft::updateOwnCallsign
virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) override; virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;
//! \copydoc IContextOwnAircraft::updateOwnIcaoData //! \copydoc IContextOwnAircraft::updateOwnIcaoCodes
virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) override; virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) override;
//! \copydoc IContextOwnAircraft::setAudioOutputVolumes //! \copydoc IContextOwnAircraft::setAudioOutputVolumes
virtual void setAudioOutputVolume(int outputVolume) override; virtual void setAudioOutputVolume(int outputVolume) override;

View File

@@ -32,7 +32,6 @@
#include "blackmisc/simulation/simulatorplugininfo.h" #include "blackmisc/simulation/simulatorplugininfo.h"
#include "blackmisc/simulation/simulatorsetup.h" #include "blackmisc/simulation/simulatorsetup.h"
#include "blackmisc/simulation/simulatorplugininfolist.h" #include "blackmisc/simulation/simulatorplugininfolist.h"
#include "blackmisc/aviation/aircraft.h"
#include "blackmisc/simulation/simulatedaircraftlist.h" #include "blackmisc/simulation/simulatedaircraftlist.h"
#include "blackmisc/aviation/airportlist.h" #include "blackmisc/aviation/airportlist.h"
#include "blackmisc/project.h" #include "blackmisc/project.h"
@@ -128,9 +127,6 @@ namespace BlackCore
//! Model for model string //! Model for model string
virtual BlackMisc::Simulation::CAircraftModelList getInstalledModelsStartingWith(const QString modelString) const = 0; virtual BlackMisc::Simulation::CAircraftModelList getInstalledModelsStartingWith(const QString modelString) const = 0;
//! ICAO data for model string
virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const = 0;
//! Set time synchronization between simulator and user's computer time //! 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 //! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature
virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) = 0; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) = 0;

View File

@@ -156,15 +156,6 @@ namespace BlackCore
m_simulatorPlugin.second->reloadInstalledModels(); m_simulatorPlugin.second->reloadInstalledModels();
} }
CAircraftIcaoData CContextSimulator::getIcaoForModelString(const QString &modelString) const
{
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << modelString; }
if (m_simulatorPlugin.first.isUnspecified()) { return CAircraftIcaoData(); }
Q_ASSERT(m_simulatorPlugin.second);
return m_simulatorPlugin.second->getIcaoForModelString(modelString);
}
bool CContextSimulator::setTimeSynchronization(bool enable, const CTime &offset) bool CContextSimulator::setTimeSynchronization(bool enable, const CTime &offset)
{ {
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
@@ -542,7 +533,7 @@ namespace BlackCore
m_simulatorPlugin.second->changeRemoteAircraftEnabled(aircraft, originator); m_simulatorPlugin.second->changeRemoteAircraftEnabled(aircraft, originator);
} }
void CContextSimulator::ps_updateSimulatorCockpitFromContext(const CAircraft &ownAircraft, const CIdentifier &originator) void CContextSimulator::ps_updateSimulatorCockpitFromContext(const CSimulatedAircraft &ownAircraft, const CIdentifier &originator)
{ {
// todo: // todo:
// This was previously an assert and it should be one again in the future. // This was previously an assert and it should be one again in the future.
@@ -572,23 +563,15 @@ namespace BlackCore
CPixmap CContextSimulator::iconForModel(const QString &modelString) const CPixmap CContextSimulator::iconForModel(const QString &modelString) const
{ {
if (m_simulatorPlugin.first.isUnspecified()) if (m_simulatorPlugin.first.isUnspecified()) { return CPixmap(); }
{ Q_ASSERT_X(m_simulatorPlugin.second, Q_FUNC_INFO, "Missing simulator");
return CPixmap();
}
Q_ASSERT(m_simulatorPlugin.second);
return m_simulatorPlugin.second->iconForModel(modelString); return m_simulatorPlugin.second->iconForModel(modelString);
} }
void CContextSimulator::enableDebugMessages(bool driver, bool interpolator) void CContextSimulator::enableDebugMessages(bool driver, bool interpolator)
{ {
if (m_simulatorPlugin.first.isUnspecified()) if (m_simulatorPlugin.first.isUnspecified()) { return; }
{ Q_ASSERT_X(m_simulatorPlugin.second, Q_FUNC_INFO, "Missing simulator");
return;
}
Q_ASSERT(m_simulatorPlugin.second);
return m_simulatorPlugin.second->enableDebugMessages(driver, interpolator); return m_simulatorPlugin.second->enableDebugMessages(driver, interpolator);
} }
@@ -606,7 +589,7 @@ namespace BlackCore
void CContextSimulator::stopSimulatorListeners() void CContextSimulator::stopSimulatorListeners()
{ {
for (const auto &info: getAvailableSimulatorPlugins()) for (const auto &info : getAvailableSimulatorPlugins())
{ {
ISimulatorListener *listener = m_plugins->getListener(info.getIdentifier()); ISimulatorListener *listener = m_plugins->getListener(info.getIdentifier());
QMetaObject::invokeMethod(listener, "stop"); QMetaObject::invokeMethod(listener, "stop");

View File

@@ -15,11 +15,11 @@
#include "blackcoreexport.h" #include "blackcoreexport.h"
#include "blackcore/context_simulator.h" #include "blackcore/context_simulator.h"
#include "blackcore/simulator.h" #include "blackcore/simulator.h"
#include "blackmisc/worker.h"
#include "blackmisc/simulation/simulatorplugininfolist.h" #include "blackmisc/simulation/simulatorplugininfolist.h"
#include "blackmisc/network/textmessagelist.h"
#include "blackmisc/pixmap.h"
#include "blackmisc/simulation/simulatedaircraftlist.h" #include "blackmisc/simulation/simulatedaircraftlist.h"
#include "blackmisc/network/textmessagelist.h"
#include "blackmisc/worker.h"
#include "blackmisc/pixmap.h"
#include "blackmisc/variant.h" #include "blackmisc/variant.h"
#include <QTimer> #include <QTimer>
#include <QDir> #include <QDir>
@@ -79,9 +79,6 @@ namespace BlackCore
//! \copydoc IContextSimulator::reloadInstalledModels //! \copydoc IContextSimulator::reloadInstalledModels
virtual void reloadInstalledModels() override; virtual void reloadInstalledModels() override;
//! \copydoc IContextSimulator::getIcaoForModelString
virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const override;
//! \copydoc IContextSimulator::setTimeSynchronization //! \copydoc IContextSimulator::setTimeSynchronization
virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override;
@@ -169,7 +166,7 @@ namespace BlackCore
//! Update simulator cockpit from context, because someone else has changed cockpit (e.g. GUI, 3rd party) //! Update simulator cockpit from context, because someone else has changed cockpit (e.g. GUI, 3rd party)
//! \remarks set by runtime, only to be used locally (not via DBus) //! \remarks set by runtime, only to be used locally (not via DBus)
void ps_updateSimulatorCockpitFromContext(const BlackMisc::Aviation::CAircraft &ownAircraft, const BlackMisc::CIdentifier &originator); void ps_updateSimulatorCockpitFromContext(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft, const BlackMisc::CIdentifier &originator);
private: private:
//! Load plugin, if required start listeners before //! Load plugin, if required start listeners before

View File

@@ -91,11 +91,6 @@ namespace BlackCore
m_dBusInterface->callDBus(QLatin1Literal("reloadInstalledModels")); m_dBusInterface->callDBus(QLatin1Literal("reloadInstalledModels"));
} }
CAircraftIcaoData CContextSimulatorProxy::getIcaoForModelString(const QString &modelString) const
{
return m_dBusInterface->callDBusRet<CAircraftIcaoData>(QLatin1Literal("getIcaoForModelString"), modelString);
}
BlackMisc::Simulation::CSimulatorPluginInfo CContextSimulatorProxy::getSimulatorPluginInfo() const BlackMisc::Simulation::CSimulatorPluginInfo CContextSimulatorProxy::getSimulatorPluginInfo() const
{ {
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatorPluginInfo>(QLatin1Literal("getSimulatorPluginInfo")); return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatorPluginInfo>(QLatin1Literal("getSimulatorPluginInfo"));

View File

@@ -74,9 +74,6 @@ namespace BlackCore
//! \copydoc IContextSimulator::reloadInstalledModels //! \copydoc IContextSimulator::reloadInstalledModels
virtual void reloadInstalledModels() override; virtual void reloadInstalledModels() override;
//! \copydoc IContextSimulator::getIcaoForModelString
virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const override;
//! \copydoc IContextSimulator::getSimulatorSetup //! \copydoc IContextSimulator::getSimulatorSetup
virtual BlackMisc::Simulation::CSimulatorSetup getSimulatorSetup() const override; virtual BlackMisc::Simulation::CSimulatorSetup getSimulatorSetup() const override;

View File

@@ -91,10 +91,7 @@ namespace BlackCore
virtual bool changeRemoteAircraftEnabled(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0; virtual bool changeRemoteAircraftEnabled(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0;
//! Update own aircraft cockpit (usually from context) //! Update own aircraft cockpit (usually from context)
virtual bool updateOwnSimulatorCockpit(const BlackMisc::Aviation::CAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0; virtual bool updateOwnSimulatorCockpit(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0;
//! ICAO data for model string
virtual BlackMisc::Aviation::CAircraftIcaoData getIcaoForModelString(const QString &modelString) const = 0;
//! Display a status message in the simulator //! Display a status message in the simulator
virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const = 0; virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const = 0;