summaryrefslogtreecommitdiff
path: root/indra/newview/llvoiceclient.cpp
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2024-08-09 11:59:31 -0700
committerRoxie Linden <roxie@lindenlab.com>2024-08-09 12:04:19 -0700
commit227b212dc67998098d09b7f15e852ed6cd7ac83a (patch)
tree8186343e4dcdc5e3f4a46415b3b04ff266a77749 /indra/newview/llvoiceclient.cpp
parent4e0819b2dc2f062a68cc32d5b1ec22214fb1fd28 (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.cpp6
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()