Ref T706, some fixes around the ATIS voiceroom URL issue

Discord: https://discordapp.com/channels/539048679160676382/602915311380987905/602917602293055489
This commit is contained in:
Klaus Basan
2019-07-22 22:25:20 +02:00
committed by Mat Sutcliffe
parent e5205bef1f
commit ee5f1d329d
9 changed files with 41 additions and 26 deletions

View File

@@ -277,7 +277,7 @@ namespace BlackCore
virtual BlackMisc::Aviation::CAtcStationList getSelectedAtcStations() const = 0;
//! Request data updates (pilot's frequencies, ATIS, ..)
virtual void requestDataUpdates() = 0;
virtual void requestAircraftDataUpdates() = 0;
//! Request ATIS updates (for all stations)
virtual void requestAtisUpdates() = 0;

View File

@@ -255,8 +255,8 @@ namespace BlackCore
return false;
}
//! \copydoc IContextNetwork::requestDataUpdates
virtual void requestDataUpdates()override
//! \copydoc IContextNetwork::requestAircraftDataUpdates
virtual void requestAircraftDataUpdates()override
{
logEmptyContextWarning(Q_FUNC_INFO);
}

View File

@@ -80,9 +80,16 @@ namespace BlackCore
connect(m_network, &INetwork::textMessageSent, this, &CContextNetwork::textMessageSent);
// 2. Update timer for data (network data such as frequency)
m_networkDataUpdateTimer = new QTimer(this);
connect(m_networkDataUpdateTimer, &QTimer::timeout, this, &CContextNetwork::requestDataUpdates);
m_networkDataUpdateTimer->start(30 * 1000);
// we use 2 timers so we can query at different times (not too many queirs at once)
m_requestAircraftDataTimer = new QTimer(this);
connect(m_requestAircraftDataTimer, &QTimer::timeout, this, &CContextNetwork::requestAircraftDataUpdates);
m_requestAircraftDataTimer->start(30 * 1000);
m_requestAircraftDataTimer->setObjectName("CContextNetwork::m_requestAircraftDataTimer");
m_requestAtisTimer = new QTimer(this);
connect(m_requestAtisTimer, &QTimer::timeout, this, &CContextNetwork::requestAtisUpdates);
m_requestAtisTimer->start(13 * 1000); // should not be called at the same time as above
m_requestAtisTimer->setObjectName("CContextNetwork::m_requestAtisTimer");
// 3. Airspace contents
Q_ASSERT_X(this->getRuntime()->getCContextOwnAircraft(), Q_FUNC_INFO, "this and own aircraft context must be local");
@@ -858,14 +865,14 @@ namespace BlackCore
return m_airspace->getAtcStationsOnline().containsCallsign(callsign);
}
void CContextNetwork::requestDataUpdates()
void CContextNetwork::requestAircraftDataUpdates()
{
Q_ASSERT(m_airspace);
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
if (!this->isConnected()) { return; }
this->requestAtisUpdates();
m_airspace->requestDataUpdates();
m_airspace->requestAircraftDataUpdates();
if (m_requestAircraftDataTimer) { m_requestAircraftDataTimer->start(); } // restart
}
void CContextNetwork::requestAtisUpdates()
@@ -875,6 +882,7 @@ namespace BlackCore
if (!this->isConnected()) { return; }
m_airspace->requestAtisUpdates();
if (m_requestAtisTimer) { m_requestAtisTimer->start(); } // restart
}
bool CContextNetwork::updateAircraftEnabled(const CCallsign &callsign, bool enabledForRendering)
@@ -884,7 +892,7 @@ namespace BlackCore
const bool c = m_airspace->updateAircraftEnabled(callsign, enabledForRendering);
if (c)
{
CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
const CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
Q_ASSERT_X(!aircraft.getCallsign().isEmpty(), Q_FUNC_INFO, "missing callsign");
emit this->changedRemoteAircraftEnabled(aircraft);
}

View File

@@ -267,7 +267,7 @@ namespace BlackCore
virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const override;
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const override;
virtual void requestDataUpdates()override;
virtual void requestAircraftDataUpdates()override;
virtual void requestAtisUpdates() override;
virtual void setFastPositionEnabledCallsigns(BlackMisc::Aviation::CCallsignSet &callsigns) override;
virtual BlackMisc::Aviation::CCallsignSet getFastPositionEnabledCallsigns() const override;
@@ -295,7 +295,8 @@ namespace BlackCore
INetwork *m_network = nullptr;
INetwork::ConnectionStatus m_currentStatus = INetwork::Disconnected; //!< used to detect pending connections
INetwork::LoginMode m_currentMode = INetwork::LoginNormal; //!< current modeM
QTimer *m_networkDataUpdateTimer = nullptr; //!< general updates such as ATIS, frequencies, see requestDataUpdates()
QTimer *m_requestAircraftDataTimer = nullptr; //!< general updates such as frequencies, see requestAircraftDataUpdates()
QTimer *m_requestAtisTimer = nullptr; //!< general updates such as ATIS
// Digest signals, only sending after some time
BlackMisc::CDigestSignal m_dsAtcStationsBookedChanged { this, &IContextNetwork::changedAtcStationsBooked, &IContextNetwork::changedAtcStationsBookedDigest, 1000, 2 };
@@ -308,12 +309,12 @@ namespace BlackCore
//! Update METAR collection
void updateMetars(const BlackMisc::Weather::CMetarList &metars);
//! An ATIS has been received
void onChangedAtisReceived(const BlackMisc::Aviation::CCallsign &callsign);
//! Check if a supervisor message was received
void checkForSupervisiorTextMessage(const BlackMisc::Network::CTextMessageList &messages);
//! An ATIS has been received
void onChangedAtisReceived(const BlackMisc::Aviation::CCallsign &callsign);
//! Connection status changed
void onFsdConnectionStatusChanged(BlackCore::INetwork::ConnectionStatus from, BlackCore::INetwork::ConnectionStatus to);

View File

@@ -213,9 +213,9 @@ namespace BlackCore
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getSelectedAtcStations"));
}
void CContextNetworkProxy::requestDataUpdates()
void CContextNetworkProxy::requestAircraftDataUpdates()
{
m_dBusInterface->callDBus(QLatin1String("requestDataUpdates"));
m_dBusInterface->callDBus(QLatin1String("requestAircraftDataUpdates"));
}
void CContextNetworkProxy::requestAtisUpdates()

View File

@@ -108,7 +108,7 @@ namespace BlackCore
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const override;
virtual BlackMisc::Network::CClientList getClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
virtual bool setOtherClient(const BlackMisc::Network::CClient &client) override;
virtual void requestDataUpdates()override;
virtual void requestAircraftDataUpdates()override;
virtual void requestAtisUpdates() override;
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) override;
virtual bool setAircraftEnabledFlag(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) override;