mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-02 07:05:38 +08:00
refs #246, own context for aircraft
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include "blackcore/context.h"
|
#include "blackcore/context.h"
|
||||||
#include "blackmisc/avallclasses.h"
|
#include "blackmisc/avallclasses.h"
|
||||||
|
#include "blackmisc/voiceroomlist.h"
|
||||||
|
|
||||||
#define BLACKCORE_CONTEXTOWNAIRCRAFT_INTERFACENAME "net.vatsim.PilotClient.BlackCore.ContextOwnAircraft"
|
#define BLACKCORE_CONTEXTOWNAIRCRAFT_INTERFACENAME "net.vatsim.PilotClient.BlackCore.ContextOwnAircraft"
|
||||||
#define BLACKCORE_CONTEXTOWNAIRCRAFT_OBJECTPATH "/OwnAircraft"
|
#define BLACKCORE_CONTEXTOWNAIRCRAFT_OBJECTPATH "/OwnAircraft"
|
||||||
@@ -41,14 +42,16 @@ namespace BlackCore
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
//! Aircraft situation update
|
//! Aircraft situation update
|
||||||
|
//! \remarks local only
|
||||||
void changedAircraftSituation(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
void changedAircraftSituation(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
||||||
|
|
||||||
|
//! Aircraft position update
|
||||||
|
//! \remarks local only
|
||||||
|
void changedAircraftPosition(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
||||||
|
|
||||||
//! Aircraft cockpit update
|
//! Aircraft cockpit update
|
||||||
void changedAircraftCockpit(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
void changedAircraftCockpit(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
||||||
|
|
||||||
//! Aircraft position update
|
|
||||||
void changedAircraftPosition(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
//! Get own aircraft
|
//! Get own aircraft
|
||||||
@@ -58,13 +61,23 @@ namespace BlackCore
|
|||||||
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) = 0;
|
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) = 0;
|
||||||
|
|
||||||
//! Own position, be aware height is terrain height
|
//! Own position, be aware height is terrain height
|
||||||
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) = 0;
|
virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) = 0;
|
||||||
|
|
||||||
//! Complete situation update
|
//! Complete situation update
|
||||||
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) = 0;
|
virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) = 0;
|
||||||
|
|
||||||
//! Update own cockpit
|
//! Update own cockpit
|
||||||
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) = 0;
|
virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) = 0;
|
||||||
|
|
||||||
|
//! Output volumens, volumes 0..100
|
||||||
|
virtual void setAudioOutputVolumes(int outputVolumeCom1, int outputVolumeCom2) = 0;
|
||||||
|
|
||||||
|
//! Set individual voice rooms (overrides voice rooms)
|
||||||
|
//! \remarks Empty string "" disables voice room override
|
||||||
|
virtual void setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url) = 0;
|
||||||
|
|
||||||
|
//! Automatic voice room resolution for frequencies
|
||||||
|
virtual void enableAutomaticVoiceRoomResolution(bool enable) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
|
|||||||
@@ -4,15 +4,17 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#include "context_ownaircraft_impl.h"
|
#include "context_ownaircraft_impl.h"
|
||||||
|
#include "context_network.h"
|
||||||
|
#include "context_audio.h"
|
||||||
#include "context_runtime.h"
|
#include "context_runtime.h"
|
||||||
#include "context_settings.h"
|
#include "context_settings.h"
|
||||||
|
|
||||||
|
|
||||||
using namespace BlackMisc;
|
using namespace BlackMisc;
|
||||||
using namespace BlackMisc::PhysicalQuantities;
|
using namespace BlackMisc::PhysicalQuantities;
|
||||||
using namespace BlackMisc::Aviation;
|
using namespace BlackMisc::Aviation;
|
||||||
using namespace BlackMisc::Network;
|
using namespace BlackMisc::Network;
|
||||||
using namespace BlackMisc::Geo;
|
using namespace BlackMisc::Geo;
|
||||||
|
using namespace BlackMisc::Audio;
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackCore
|
||||||
{
|
{
|
||||||
@@ -21,15 +23,13 @@ namespace BlackCore
|
|||||||
* Init this context
|
* Init this context
|
||||||
*/
|
*/
|
||||||
CContextOwnAircraft::CContextOwnAircraft(CRuntimeConfig::ContextMode mode, CRuntime *runtime) :
|
CContextOwnAircraft::CContextOwnAircraft(CRuntimeConfig::ContextMode mode, CRuntime *runtime) :
|
||||||
IContextOwnAircraft(mode, runtime)
|
IContextOwnAircraft(mode, runtime), m_automaticVoiceRoomResolution(true)
|
||||||
{
|
{
|
||||||
Q_ASSERT(this->getRuntime());
|
Q_ASSERT(this->getRuntime());
|
||||||
Q_ASSERT(this->getRuntime()->getIContextSettings());
|
Q_ASSERT(this->getRuntime()->getIContextSettings());
|
||||||
|
|
||||||
// 1. Init own aircraft
|
// 1. Init own aircraft
|
||||||
this->initOwnAircraft();
|
this->initOwnAircraft();
|
||||||
|
|
||||||
// 2. connect signals and slots
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -60,6 +60,40 @@ namespace BlackCore
|
|||||||
// Own callsign, plane ICAO status, model used
|
// Own callsign, plane ICAO status, model used
|
||||||
this->m_ownAircraft.setCallsign(CCallsign("BLACK"));
|
this->m_ownAircraft.setCallsign(CCallsign("BLACK"));
|
||||||
this->m_ownAircraft.setIcaoInfo(CAircraftIcao("C172", "L1P", "GA", "GA", "0000ff"));
|
this->m_ownAircraft.setIcaoInfo(CAircraftIcao("C172", "L1P", "GA", "GA", "0000ff"));
|
||||||
|
|
||||||
|
// voice rooms
|
||||||
|
this->resolveVoiceRooms();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Resolve voice rooms
|
||||||
|
*/
|
||||||
|
void CContextOwnAircraft::resolveVoiceRooms()
|
||||||
|
{
|
||||||
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO);
|
||||||
|
if (this->m_voiceRoom1UrlOverride.isEmpty() && this->m_voiceRoom2UrlOverride.isEmpty() && !this->m_automaticVoiceRoomResolution) return;
|
||||||
|
if (!this->getIContextNetwork()) return; // no chance to resolve rooms
|
||||||
|
if (!this->getIContextAudio()) return; // no place to set rooms
|
||||||
|
|
||||||
|
CVoiceRoomList rooms;
|
||||||
|
if (this->m_automaticVoiceRoomResolution)
|
||||||
|
{
|
||||||
|
// requires correct frequencies set
|
||||||
|
// but local network uses exactly this object here, so if frequencies are set here,
|
||||||
|
// they are for network context as well
|
||||||
|
rooms = this->getIContextNetwork()->getSelectedVoiceRooms();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rooms.push_back(CVoiceRoom());
|
||||||
|
rooms.push_back(CVoiceRoom());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this->m_voiceRoom1UrlOverride.isEmpty()) rooms[0] = CVoiceRoom(this->m_voiceRoom1UrlOverride);
|
||||||
|
if (!this->m_voiceRoom2UrlOverride.isEmpty()) rooms[1] = CVoiceRoom(this->m_voiceRoom2UrlOverride);
|
||||||
|
|
||||||
|
// set the rooms
|
||||||
|
this->getIContextAudio()->setComVoiceRooms(rooms);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -67,10 +101,14 @@ namespace BlackCore
|
|||||||
*/
|
*/
|
||||||
void CContextOwnAircraft::updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator)
|
void CContextOwnAircraft::updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator)
|
||||||
{
|
{
|
||||||
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, ownAircraft().toQString(), originator);
|
||||||
|
|
||||||
// trigger the correct signals
|
// trigger the correct signals
|
||||||
this->updateOwnCockpit(aircraft.getCom1System(), aircraft.getCom2System(), aircraft.getTransponder(), originator);
|
bool changedCockpit = this->updateOwnCockpit(aircraft.getCom1System(), aircraft.getCom2System(), aircraft.getTransponder(), originator);
|
||||||
this->updateOwnPosition(aircraft.getPosition(), aircraft.getAltitude() ,originator);
|
bool changedPosition = this->updateOwnPosition(aircraft.getPosition(), aircraft.getAltitude() , originator);
|
||||||
this->updateOwnSituation(aircraft.getSituation(), originator);
|
bool changedSituation = this->updateOwnSituation(aircraft.getSituation(), originator);
|
||||||
|
|
||||||
|
if (changedCockpit || changedPosition || changedSituation) this->resolveVoiceRooms();
|
||||||
|
|
||||||
// all the rest
|
// all the rest
|
||||||
this->m_ownAircraft = aircraft;
|
this->m_ownAircraft = aircraft;
|
||||||
@@ -79,7 +117,7 @@ namespace BlackCore
|
|||||||
/*
|
/*
|
||||||
* Own position
|
* Own position
|
||||||
*/
|
*/
|
||||||
void CContextOwnAircraft::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator)
|
bool CContextOwnAircraft::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator)
|
||||||
{
|
{
|
||||||
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, position.toQString(), altitude.toQString());
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, position.toQString(), altitude.toQString());
|
||||||
bool changed = (this->m_ownAircraft.getPosition() == position);
|
bool changed = (this->m_ownAircraft.getPosition() == position);
|
||||||
@@ -92,25 +130,27 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (changed) emit this->changedAircraftPosition(this->m_ownAircraft, originator);
|
if (changed) emit this->changedAircraftPosition(this->m_ownAircraft, originator);
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update own situation
|
* Update own situation
|
||||||
*/
|
*/
|
||||||
void CContextOwnAircraft::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator)
|
bool CContextOwnAircraft::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator)
|
||||||
{
|
{
|
||||||
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, situation.toQString());
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, situation.toQString());
|
||||||
bool changed = this->m_ownAircraft.getSituation() == situation;
|
bool changed = this->m_ownAircraft.getSituation() == situation;
|
||||||
if (!changed) return;
|
if (!changed) return changed;
|
||||||
|
|
||||||
this->m_ownAircraft.setSituation(situation);
|
this->m_ownAircraft.setSituation(situation);
|
||||||
emit this->changedAircraftSituation(this->m_ownAircraft, originator);
|
emit this->changedAircraftSituation(this->m_ownAircraft, originator);
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Own cockpit data
|
* Own cockpit data
|
||||||
*/
|
*/
|
||||||
void CContextOwnAircraft::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator)
|
bool CContextOwnAircraft::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator)
|
||||||
{
|
{
|
||||||
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, com1.toQString(), com2.toQString(), transponder.toQString());
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, com1.toQString(), com2.toQString(), transponder.toQString());
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
@@ -129,7 +169,47 @@ namespace BlackCore
|
|||||||
this->m_ownAircraft.setTransponder(transponder);
|
this->m_ownAircraft.setTransponder(transponder);
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
if (changed) emit this->changedAircraftCockpit(this->m_ownAircraft, originator);
|
if (changed)
|
||||||
|
{
|
||||||
|
emit this->changedAircraftCockpit(this->m_ownAircraft, originator);
|
||||||
|
this->resolveVoiceRooms();
|
||||||
|
}
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CContextOwnAircraft::setAudioOutputVolumes(int outputVolumeCom1, int outputVolumeCom2)
|
||||||
|
{
|
||||||
|
CComSystem com1 = this->m_ownAircraft.getCom1System();
|
||||||
|
com1.setVolumeOutput(outputVolumeCom1);
|
||||||
|
this->m_ownAircraft.setCom1System(com1);
|
||||||
|
|
||||||
|
CComSystem com2 = this->m_ownAircraft.getCom2System();
|
||||||
|
com2.setVolumeOutput(outputVolumeCom2);
|
||||||
|
this->m_ownAircraft.setCom2System(com1);
|
||||||
|
|
||||||
|
if (this->getIContextAudio()) this->getIContextAudio()->setVolumes(com1, com2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Tune in / out voice room
|
||||||
|
*/
|
||||||
|
void CContextOwnAircraft::changedAtcStationOnlineConnectionStatus(const CAtcStation &atcStation, bool connected)
|
||||||
|
{
|
||||||
|
// any of our active frequencies?
|
||||||
|
Q_UNUSED(connected);
|
||||||
|
if (atcStation.getFrequency() != this->m_ownAircraft.getCom1System().getFrequencyActive() &&
|
||||||
|
atcStation.getFrequency() != this->m_ownAircraft.getCom2System().getFrequencyActive()) return;
|
||||||
|
this->resolveVoiceRooms();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Voice room URLs
|
||||||
|
*/
|
||||||
|
void CContextOwnAircraft::setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url)
|
||||||
|
{
|
||||||
|
this->m_voiceRoom1UrlOverride = voiceRoom1Url.trimmed();
|
||||||
|
this->m_voiceRoom2UrlOverride = voiceRoom2Url.trimmed();
|
||||||
|
this->resolveVoiceRooms();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -33,20 +33,29 @@ namespace BlackCore
|
|||||||
|
|
||||||
public slots: // IContextOwnAircraft overrides
|
public slots: // IContextOwnAircraft overrides
|
||||||
|
|
||||||
|
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
||||||
|
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
||||||
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override;
|
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
||||||
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override;
|
virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
||||||
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override;
|
virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
||||||
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) override;
|
virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
//! \copydoc IContextOwnAircraft::setAudioOutputVolumes
|
||||||
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
virtual void setAudioOutputVolumes(int outputVolumeCom1, int outputVolumeCom2) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextOwnAircraft::setAudioVoiceRoomOverrideUrls
|
||||||
|
virtual void setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextOwnAircraft::enableAutomaticVoiceRoomResolution
|
||||||
|
virtual void enableAutomaticVoiceRoomResolution(bool enable) override { this->m_automaticVoiceRoomResolution = enable; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! Constructor, with link to runtime
|
//! Constructor, with link to runtime
|
||||||
@@ -60,12 +69,22 @@ namespace BlackCore
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
//! Station has been changed, needed to tune in/out voice room
|
||||||
|
void changedAtcStationOnlineConnectionStatus(const BlackMisc::Aviation::CAtcStation &atcStation, bool connected);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BlackMisc::Aviation::CAircraft m_ownAircraft; //!< my aircraft
|
BlackMisc::Aviation::CAircraft m_ownAircraft; //!< my aircraft
|
||||||
|
bool m_automaticVoiceRoomResolution; //!< voice room override
|
||||||
|
QString m_voiceRoom1UrlOverride; //!< overridden voice room url
|
||||||
|
QString m_voiceRoom2UrlOverride; //!< overridden voice room url
|
||||||
|
|
||||||
//! Init my very own aircraft
|
//! Init my very own aircraft
|
||||||
void initOwnAircraft();
|
void initOwnAircraft();
|
||||||
|
|
||||||
|
//! Resolve voice rooms
|
||||||
|
void resolveVoiceRooms();
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,14 +30,6 @@ namespace BlackCore
|
|||||||
bool s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
bool s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
||||||
"changedAircraftCockpit", this, SIGNAL(changedAircraftCockpit(BlackMisc::Aviation::CAircraft, QString)));
|
"changedAircraftCockpit", this, SIGNAL(changedAircraftCockpit(BlackMisc::Aviation::CAircraft, QString)));
|
||||||
Q_ASSERT(s);
|
Q_ASSERT(s);
|
||||||
|
|
||||||
s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
|
||||||
"changedAircraftPosition", this, SIGNAL(changedAircraftPosition(BlackMisc::Aviation::CAircraft, QString)));
|
|
||||||
Q_ASSERT(s);
|
|
||||||
|
|
||||||
s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
|
||||||
"changedAircraftPosition", this, SIGNAL(changedAircraftPosition(BlackMisc::Aviation::CAircraft, QString)));
|
|
||||||
Q_ASSERT(s);
|
|
||||||
Q_UNUSED(s);
|
Q_UNUSED(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,18 +43,34 @@ namespace BlackCore
|
|||||||
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnAircraft"), aircraft, originator);
|
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnAircraft"), aircraft, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextOwnAircraftProxy::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator)
|
bool CContextOwnAircraftProxy::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator)
|
||||||
{
|
{
|
||||||
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnPosition"), position, altitude, originator);
|
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnPosition"), position, altitude, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextOwnAircraftProxy::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator)
|
bool CContextOwnAircraftProxy::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator)
|
||||||
{
|
{
|
||||||
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnSituation"), situation, originator);
|
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnSituation"), situation, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextOwnAircraftProxy::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator)
|
bool CContextOwnAircraftProxy::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator)
|
||||||
{
|
{
|
||||||
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnCockpit"), com1, com2, transponder, originator);
|
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnCockpit"), com1, com2, transponder, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CContextOwnAircraftProxy::setAudioOutputVolumes(int outputVolumeCom1, int outputVolumeCom2)
|
||||||
|
{
|
||||||
|
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnCockpitOutputVolumes"), outputVolumeCom1, outputVolumeCom2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CContextOwnAircraftProxy::setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url)
|
||||||
|
{
|
||||||
|
this->m_dBusInterface->callDBus(QLatin1Literal("setAudioVoiceRoomOverrideUrls"), voiceRoom1Url, voiceRoom2Url);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CContextOwnAircraftProxy::enableAutomaticVoiceRoomResolution(bool enable)
|
||||||
|
{
|
||||||
|
this->m_dBusInterface->callDBus(QLatin1Literal("enableAutomaticVoiceRoomResolution"), enable);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|||||||
@@ -39,20 +39,30 @@ namespace BlackCore
|
|||||||
|
|
||||||
public slots: // IContextOwnAircraft overrides
|
public slots: // IContextOwnAircraft overrides
|
||||||
|
|
||||||
|
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
||||||
|
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
||||||
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override;
|
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
||||||
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override;
|
virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
||||||
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override;
|
virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
||||||
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originato4) override;
|
virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originato4) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextOwnAircraft::setAudioOutputVolumes
|
||||||
|
virtual void setAudioOutputVolumes(int outputVolumeCom1, int outputVolumeCom2) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextOwnAircraft::setAudioVoiceRoomOverrideUrls
|
||||||
|
virtual void setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url,const QString &voiceRoom2Url);
|
||||||
|
|
||||||
|
//! \copydoc IContextOwnAircraft::enableAutomaticVoiceRoomResolution
|
||||||
|
virtual void enableAutomaticVoiceRoomResolution(bool enable);
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
|
||||||
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -441,6 +441,14 @@ namespace BlackCore
|
|||||||
Q_ASSERT(c);
|
Q_ASSERT(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->m_contextNetwork && this->m_contextOwnAircraft && this->m_contextNetwork->usingLocalObjects() && this->m_contextOwnAircraft->usingLocalObjects())
|
||||||
|
{
|
||||||
|
// only where network and(!) own aircraft run locally
|
||||||
|
c = this->connect(this->m_contextNetwork, &IContextNetwork::changedAtcStationOnlineConnectionStatus,
|
||||||
|
this->getCContextOwnAircraft(), &CContextOwnAircraft::changedAtcStationOnlineConnectionStatus);
|
||||||
|
Q_ASSERT(c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRuntime::gracefulShutdown()
|
void CRuntime::gracefulShutdown()
|
||||||
|
|||||||
Reference in New Issue
Block a user