[AFV] Ref T730, do NOT stop audio when disconnecting from FSD

* only disconnect from AFV server
* keep position tmer alive (preset values)
This commit is contained in:
Klaus Basan
2019-10-12 18:50:42 +02:00
parent 142be3cbd7
commit 10a64c0330
2 changed files with 13 additions and 4 deletions

View File

@@ -128,8 +128,16 @@ namespace BlackCore
this->onPositionUpdateTimer(); this->onPositionUpdateTimer();
if (m_connection->isConnected()) { emit this->connectionStatusChanged(Connected); } if (m_connection->isConnected())
else { emit this->connectionStatusChanged(Disconnected); } {
// restart timer, normally it should be started already, paranoia
if (m_voiceServerPositionTimer) { m_voiceServerPositionTimer->start(PositionUpdatesMs); }
emit this->connectionStatusChanged(Connected);
}
else
{
emit this->connectionStatusChanged(Disconnected);
}
} }
void CAfvClient::disconnectFrom() void CAfvClient::disconnectFrom()
@@ -142,6 +150,7 @@ namespace BlackCore
return; return;
} }
// we intentionally DO NOT STOP the timer here, but keep it for preset (own aircraft pos.)
m_connection->disconnectFrom(); m_connection->disconnectFrom();
emit connectionStatusChanged(Disconnected); emit connectionStatusChanged(Disconnected);
} }
@@ -219,7 +228,7 @@ namespace BlackCore
m_startDateTimeUtc = QDateTime::currentDateTimeUtc(); m_startDateTimeUtc = QDateTime::currentDateTimeUtc();
m_connection->setReceiveAudio(true); m_connection->setReceiveAudio(true);
m_voiceServerPositionTimer->start(PositionUpdatesMs); m_voiceServerPositionTimer->start(PositionUpdatesMs); // start for preset values
this->onSettingsChanged(); // make sure all settings are applied this->onSettingsChanged(); // make sure all settings are applied
m_isStarted = true; m_isStarted = true;

View File

@@ -417,6 +417,7 @@ namespace BlackCore
Q_UNUSED(from) Q_UNUSED(from)
BLACK_VERIFY_X(this->getIContextNetwork(), Q_FUNC_INFO, "Missing network context"); BLACK_VERIFY_X(this->getIContextNetwork(), Q_FUNC_INFO, "Missing network context");
// we only change network connection of AFC client here
if (to.isConnected() && this->getIContextNetwork()) if (to.isConnected() && this->getIContextNetwork())
{ {
const CVoiceSetup vs = m_voiceSettings.getThreadLocal(); const CVoiceSetup vs = m_voiceSettings.getThreadLocal();
@@ -427,7 +428,6 @@ namespace BlackCore
} }
else if (to.isDisconnected()) else if (to.isDisconnected())
{ {
m_voiceClient->stopAudio();
m_voiceClient->disconnectFrom(); m_voiceClient->disconnectFrom();
} }
} }