diff --git a/src/blackcore/simulator.h b/src/blackcore/simulator.h index 495d8d97e..0efdcacef 100644 --- a/src/blackcore/simulator.h +++ b/src/blackcore/simulator.h @@ -116,6 +116,9 @@ namespace BlackCore //! Update own aircraft cockpit (usually from context) virtual bool updateOwnSimulatorCockpit(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) = 0; + //! Update own aircraft cockpit (usually from context) + virtual bool updateOwnSimulatorSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) = 0; + //! Display a status message in the simulator virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const = 0; diff --git a/src/plugins/simulator/fs9/simulatorfs9.cpp b/src/plugins/simulator/fs9/simulatorfs9.cpp index 6bea5efea..ea251cec7 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.cpp +++ b/src/plugins/simulator/fs9/simulatorfs9.cpp @@ -236,24 +236,20 @@ namespace BlackSimPlugin bool changed = false; if (newCom1.getFrequencyActive() != this->m_simCom1.getFrequencyActive()) { - // CFrequency newFreq = newCom1.getFrequencyActive(); changed = true; } if (newCom1.getFrequencyStandby() != this->m_simCom1.getFrequencyStandby()) { - // CFrequency newFreq = newCom1.getFrequencyStandby(); changed = true; } if (newCom2.getFrequencyActive() != this->m_simCom2.getFrequencyActive()) { - // CFrequency newFreq = newCom2.getFrequencyActive(); changed = true; } if (newCom2.getFrequencyStandby() != this->m_simCom2.getFrequencyStandby()) { - // CFrequency newFreq = newCom2.getFrequencyStandby(); changed = true; } @@ -264,18 +260,33 @@ namespace BlackSimPlugin if (newTransponder.getTransponderMode() != this->m_simTransponder.getTransponderMode()) { - // void + changed = true; } - // avoid changes of cockpit back to old values due to an outdated read back value + //! \todo KB 8/2017 set FS9 cockpit values // bye return changed; } + bool CSimulatorFs9::updateOwnSimulatorSelcal(const CSelcal &selcal, const CIdentifier &originator) + { + if (originator == this->identifier()) { return false; } + if (!this->isSimulating()) { return false; } + + bool changed = false; + if (selcal != this->m_selcal) + { + changed = true; + } + + //! \todo KB 8/2017 set FS9 SELCAL value + return changed; + } + void CSimulatorFs9::displayStatusMessage(const BlackMisc::CStatusMessage &message) const { - /* Avoid errors from CDirectPlayPeer as it may end in infinite loop */ + // Avoid errors from CDirectPlayPeer as it may end in infinite loop if (message.getSeverity() == BlackMisc::CStatusMessage::SeverityError && message.isFromClass()) { return; diff --git a/src/plugins/simulator/fs9/simulatorfs9.h b/src/plugins/simulator/fs9/simulatorfs9.h index 7cda4edd5..2b44e8393 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.h +++ b/src/plugins/simulator/fs9/simulatorfs9.h @@ -61,6 +61,7 @@ namespace BlackSimPlugin virtual BlackMisc::Aviation::CCallsignSet physicallyRenderedAircraft() const override; virtual bool isPhysicallyRenderedAircraft(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool updateOwnSimulatorCockpit(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft, const BlackMisc::CIdentifier &originator) override; + virtual bool updateOwnSimulatorSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override; virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override; virtual void displayTextMessage(const BlackMisc::Network::CTextMessage &message) const override; virtual bool setInterpolatorMode(BlackMisc::Simulation::CInterpolatorMulti::Mode mode, const BlackMisc::Aviation::CCallsign &callsign) override; diff --git a/src/plugins/simulator/fscommon/simulatorfscommon.h b/src/plugins/simulator/fscommon/simulatorfscommon.h index 7537994d9..00edead13 100644 --- a/src/plugins/simulator/fscommon/simulatorfscommon.h +++ b/src/plugins/simulator/fscommon/simulatorfscommon.h @@ -88,6 +88,7 @@ namespace BlackSimPlugin BlackMisc::Aviation::CComSystem m_simCom1; //!< cockpit COM1 state in simulator BlackMisc::Aviation::CComSystem m_simCom2; //!< cockpit COM2 state in simulator BlackMisc::Aviation::CTransponder m_simTransponder; //!< cockpit xpdr state in simulator + BlackMisc::Aviation::CSelcal m_selcal; //!< SELCAL as in cockpit }; } // namespace } // namespace diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index a4c28bd54..bcd015a32 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -198,6 +198,16 @@ namespace BlackSimPlugin return changed; } + bool CSimulatorFsxCommon::updateOwnSimulatorSelcal(const CSelcal &selcal, const CIdentifier &originator) + { + if (originator == this->identifier()) { return false; } + if (!this->isSimulating()) { return false; } + + //! \fixme KB 2017/8 use SELCAL + Q_UNUSED(selcal); + return false; + } + void CSimulatorFsxCommon::displayStatusMessage(const BlackMisc::CStatusMessage &message) const { QByteArray m = message.getMessage().toLocal8Bit().constData(); diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index 4a99dc0f3..c066ab17f 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -114,6 +114,7 @@ namespace BlackSimPlugin virtual bool physicallyRemoveRemoteAircraft(const BlackMisc::Aviation::CCallsign &callsign) override; virtual int physicallyRemoveAllRemoteAircraft() override; virtual bool updateOwnSimulatorCockpit(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft, const BlackMisc::CIdentifier &originator) override; + virtual bool updateOwnSimulatorSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override; virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override; virtual void displayTextMessage(const BlackMisc::Network::CTextMessage &message) const override; virtual bool isPhysicallyRenderedAircraft(const BlackMisc::Aviation::CCallsign &callsign) const override; diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 923ca48d6..ed9152c5a 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -415,7 +415,7 @@ namespace BlackSimPlugin bool CSimulatorXPlane::updateOwnSimulatorCockpit(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const CIdentifier &originator) { - Q_ASSERT(isConnected()); + Q_ASSERT(isConnected()); //! \fixme KB 8/2017 would BLACK_VERIFY + return be better? if (originator == this->identifier()) { return false; } auto com1 = CComSystem::getCom1System({ m_xplaneData.com1Active, CFrequencyUnit::kHz() }, { m_xplaneData.com1Standby, CFrequencyUnit::kHz() }); auto com2 = CComSystem::getCom2System({ m_xplaneData.com2Active, CFrequencyUnit::kHz() }, { m_xplaneData.com2Standby, CFrequencyUnit::kHz() }); @@ -441,6 +441,16 @@ namespace BlackSimPlugin return false; } + bool CSimulatorXPlane::updateOwnSimulatorSelcal(const CSelcal &selcal, const CIdentifier &originator) + { + if (!isConnected()) { return false; }; + if (originator == this->identifier()) { return false; } + Q_UNUSED(selcal); + + //! \fixme KB 8/2017 use SELCAL?? + return false; + } + void CSimulatorXPlane::loadCslPackages() { struct Prefix { QString s; }; diff --git a/src/plugins/simulator/xplane/simulatorxplane.h b/src/plugins/simulator/xplane/simulatorxplane.h index 73d3404ad..c1165e36b 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.h +++ b/src/plugins/simulator/xplane/simulatorxplane.h @@ -92,6 +92,7 @@ namespace BlackSimPlugin virtual bool changeRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft) override; virtual bool changeRemoteAircraftEnabled(const BlackMisc::Simulation::CSimulatedAircraft &aircraft) override; virtual bool updateOwnSimulatorCockpit(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator) override; + virtual bool updateOwnSimulatorSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override; virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override; virtual void displayTextMessage(const BlackMisc::Network::CTextMessage &message) const override; virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const override; @@ -136,7 +137,7 @@ namespace BlackSimPlugin void ps_serviceUnregistered(); void ps_setAirportsInRange(const QStringList &icaoCodes, const QStringList &names, const BlackMisc::CSequence &lats, const BlackMisc::CSequence &lons, const BlackMisc::CSequence &alts); void ps_emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao, - const QString &modelString, const QString &name, const QString &distributor, const QString &description); + const QString &modelString, const QString &name, const QString &distributor, const QString &description); void ps_fastTimerTimeout(); void ps_slowTimerTimeout(); void ps_installedModelsUpdated(const QStringList &modelStrings, const QStringList &icaos, const QStringList &airlines, const QStringList &liveries);