Voice was not renegotiating when re-enabled.

meow-7.2.2
Roxie Linden 2023-12-04 15:39:36 -08:00
parent 63dcf25452
commit ec7bd371f6
1 changed files with 9 additions and 3 deletions

View File

@ -357,6 +357,8 @@ void LLWebRTCVoiceClient::cleanUp()
{
LL_DEBUGS("Voice") << LL_ENDL;
mNextAudioSession.reset();
mAudioSession.reset();
sessionState::deleteAllSessions();
LL_DEBUGS("Voice") << "exiting" << LL_ENDL;
}
@ -470,16 +472,19 @@ void LLWebRTCVoiceClient::voiceConnectionCoro()
{
while (!sShuttingDown)
{
llcoro::suspendUntilTimeout(UPDATE_THROTTLE_SECONDS);
if (!mVoiceEnabled)
{
continue;
}
// add session for region or parcel voice.
LLViewerRegion *regionp = gAgent.getRegion();
if (!regionp)
{
llcoro::suspendUntilTimeout(UPDATE_THROTTLE_SECONDS);
continue;
}
if (regionp->getRegionID().isNull())
{
llcoro::suspendUntilTimeout(UPDATE_THROTTLE_SECONDS);
continue;
}
if (!mAudioSession || mAudioSession->mIsSpatial)
@ -503,7 +508,6 @@ void LLWebRTCVoiceClient::voiceConnectionCoro()
sessionState::for_each(boost::bind(predProcessSessionStates, _1));
sendPositionAndVolumeUpdate(true);
updateOwnVolume();
llcoro::suspendUntilTimeout(UPDATE_THROTTLE_SECONDS);
}
}
catch (const LLCoros::Stop&)
@ -1801,6 +1805,7 @@ void LLWebRTCVoiceClient::setVoiceEnabled(bool enabled)
LLVoiceChannel::getCurrentVoiceChannel()->deactivate();
gAgent.setVoiceConnected(false);
status = LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED;
cleanUp();
}
notifyStatusObservers(status);
@ -2261,6 +2266,7 @@ void LLWebRTCVoiceClient::deleteSession(const sessionStatePtr_t &session)
void LLWebRTCVoiceClient::sessionState::deleteAllSessions()
{
mSessions.clear();
}
void LLWebRTCVoiceClient::verifySessionState(void)