diff options
| author | Roxie Linden <roxie@lindenlab.com> | 2023-12-25 17:41:48 -0800 | 
|---|---|---|
| committer | Roxie Linden <roxie@lindenlab.com> | 2024-02-22 23:11:36 -0800 | 
| commit | 1cdc25750c86c36ebad7cca711217a3cf8a30a8e (patch) | |
| tree | 1b9d582906c31dea6db0ec725efe06233789fb10 | |
| parent | 28b3e530821f06df6c447e139bae57a976f10b7e (diff) | |
Fix enable/disable issue when connecting to multiple regions
| -rw-r--r-- | indra/newview/llvoicewebrtc.cpp | 10 | 
1 files changed, 4 insertions, 6 deletions
| diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp index 305868e415..0c15dbccaf 100644 --- a/indra/newview/llvoicewebrtc.cpp +++ b/indra/newview/llvoicewebrtc.cpp @@ -362,6 +362,7 @@ void LLWebRTCVoiceClient::cleanUp()      mNextAudioSession.reset();      mAudioSession.reset(); +    mNeighboringRegions.clear();      sessionState::for_each(boost::bind(predShutdownSession, _1));      LL_DEBUGS("Voice") << "exiting" << LL_ENDL;  } @@ -510,7 +511,6 @@ void LLWebRTCVoiceClient::voiceConnectionCoro()              {                  continue;              } -            mNeighboringRegions.insert(regionp->getRegionID());              bool voiceEnabled = mVoiceEnabled && regionp->isVoiceEnabled();              // check to see if parcel changed.              std::string channelID = "Estate"; @@ -1215,6 +1215,7 @@ bool LLWebRTCVoiceClient::setSpatialChannel(  	}  	else  	{ +        mNeighboringRegions.insert(gAgent.getRegion()->getRegionID());          return switchChannel(uri, parcel_local_id == INVALID_PARCEL_ID ? sessionState::SESSION_TYPE_ESTATE : sessionState::SESSION_TYPE_PARCEL, parcel_local_id);  	}  } @@ -1535,10 +1536,7 @@ void LLWebRTCVoiceClient::updatePosition(void)          enforceTether(); -        if (mSpatialCoordsDirty) -        { -            updateNeighboringRegions(); -        } +        updateNeighboringRegions();  	}  } @@ -2843,7 +2841,7 @@ bool LLVoiceWebRTCConnection::breakVoiceConnection(bool corowait)      if (!regionp || !regionp->capabilitiesReceived())      {          LL_DEBUGS("Voice") << "no capabilities for voice provisioning; waiting " << LL_ENDL; -        setVoiceConnectionState(VOICE_STATE_WAIT_FOR_EXIT); +        setVoiceConnectionState(VOICE_STATE_SESSION_EXIT);          return false;      } | 
