diff options
author | Roxie Linden <roxie@lindenlab.com> | 2024-08-09 11:59:31 -0700 |
---|---|---|
committer | Roxie Linden <roxie@lindenlab.com> | 2024-08-09 12:04:19 -0700 |
commit | 227b212dc67998098d09b7f15e852ed6cd7ac83a (patch) | |
tree | 8186343e4dcdc5e3f4a46415b3b04ff266a77749 /indra/newview/llvoiceclient.cpp | |
parent | 4e0819b2dc2f062a68cc32d5b1ec22214fb1fd28 (diff) |
Teleport to a region with a different voice server type causes failure in voice
When teleporting, the viewer 'hides' voice, effectively disabling it, until the teleport
has completed. It does this by instructing the voice module to hide and then unhide.
The problem was, it would instruct one voice module for one voice server type to hide,
and then after teleport, it would instruct the other voice module for the other voice
server type to unhide, resulting in one voice module being hidden.
When the user transitions back to a region with the initial voice module, it's hidden,
hence voice doesn't work.
The solution is to hide/unhide both voice modules.
Diffstat (limited to 'indra/newview/llvoiceclient.cpp')
-rw-r--r-- | indra/newview/llvoiceclient.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 495d521894..5132b9bb07 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -281,10 +281,8 @@ void LLVoiceClient::setNonSpatialVoiceModule(const std::string &voice_server_typ void LLVoiceClient::setHidden(bool hidden) { - if (mSpatialVoiceModule) - { - mSpatialVoiceModule->setHidden(hidden); - } + LLWebRTCVoiceClient::getInstance()->setHidden(hidden); + LLVivoxVoiceClient::getInstance()->setHidden(hidden); } void LLVoiceClient::terminate() |