Merge branch 'release/2025.08' of https://github.com/secondlife/viewer

master
Ansariel 2025-10-22 13:52:45 +02:00
commit 1a80805ef8
3 changed files with 24 additions and 5 deletions

View File

@ -1011,6 +1011,7 @@ void LLPluginProcessParent::poll(F64 timeout)
} }
// Remove instances in the done state from the sInstances map. // Remove instances in the done state from the sInstances map.
LLCoros::LockType lock(*sInstancesMutex);
mapInstances_t::iterator itClean = sInstances.begin(); mapInstances_t::iterator itClean = sInstances.begin();
while (itClean != sInstances.end()) while (itClean != sInstances.end())
{ {

View File

@ -1710,6 +1710,11 @@ void LLFloaterIMContainer::showConversation(const LLUUID& session_id)
if (session_floater) if (session_floater)
{ {
session_floater->restoreFloater(); session_floater->restoreFloater();
if (session_floater->isTornOff() && session_floater->isMinimized())
{
session_floater->setMinimized(false);
session_floater->setFocus(true);
}
} }
} }

View File

@ -396,7 +396,7 @@ void LLWebRTCVoiceClient::updateSettings()
config.mNoiseSuppressionLevel = noiseSuppressionLevel; config.mNoiseSuppressionLevel = noiseSuppressionLevel;
audioConfigChanged = true; audioConfigChanged = true;
} }
if (audioConfigChanged) if (audioConfigChanged && mWebRTCDeviceInterface)
{ {
mWebRTCDeviceInterface->setAudioConfig(config); mWebRTCDeviceInterface->setAudioConfig(config);
} }
@ -804,8 +804,11 @@ void LLWebRTCVoiceClient::setRenderDevice(const std::string& name)
void LLWebRTCVoiceClient::tuningStart() void LLWebRTCVoiceClient::tuningStart()
{ {
if (!mIsInTuningMode) if (!mIsInTuningMode)
{
if (mWebRTCDeviceInterface)
{ {
mWebRTCDeviceInterface->setTuningMode(true); mWebRTCDeviceInterface->setTuningMode(true);
}
mIsInTuningMode = true; mIsInTuningMode = true;
} }
} }
@ -813,8 +816,11 @@ void LLWebRTCVoiceClient::tuningStart()
void LLWebRTCVoiceClient::tuningStop() void LLWebRTCVoiceClient::tuningStop()
{ {
if (mIsInTuningMode) if (mIsInTuningMode)
{
if (mWebRTCDeviceInterface)
{ {
mWebRTCDeviceInterface->setTuningMode(false); mWebRTCDeviceInterface->setTuningMode(false);
}
mIsInTuningMode = false; mIsInTuningMode = false;
} }
} }
@ -847,6 +853,10 @@ void LLWebRTCVoiceClient::tuningSetSpeakerVolume(float volume)
float LLWebRTCVoiceClient::tuningGetEnergy(void) float LLWebRTCVoiceClient::tuningGetEnergy(void)
{ {
if (!mWebRTCDeviceInterface)
{
return 0.f;
}
float rms = mWebRTCDeviceInterface->getTuningAudioLevel(); float rms = mWebRTCDeviceInterface->getTuningAudioLevel();
return TUNING_LEVEL_START_POINT - TUNING_LEVEL_SCALE * rms; return TUNING_LEVEL_START_POINT - TUNING_LEVEL_SCALE * rms;
} }
@ -874,8 +884,11 @@ void LLWebRTCVoiceClient::refreshDeviceLists(bool clearCurrentList)
clearCaptureDevices(); clearCaptureDevices();
clearRenderDevices(); clearRenderDevices();
} }
if (mWebRTCDeviceInterface)
{
mWebRTCDeviceInterface->refreshDevices(); mWebRTCDeviceInterface->refreshDevices();
} }
}
void LLWebRTCVoiceClient::setHidden(bool hidden) void LLWebRTCVoiceClient::setHidden(bool hidden)
@ -1182,7 +1195,7 @@ void LLWebRTCVoiceClient::sendPositionUpdate(bool force)
void LLWebRTCVoiceClient::updateOwnVolume() void LLWebRTCVoiceClient::updateOwnVolume()
{ {
F32 audio_level = 0.0f; F32 audio_level = 0.0f;
if (!mMuteMic) if (!mMuteMic && mWebRTCDeviceInterface)
{ {
float rms = mWebRTCDeviceInterface->getPeerConnectionAudioLevel(); float rms = mWebRTCDeviceInterface->getPeerConnectionAudioLevel();
audio_level = LEVEL_START_POINT - LEVEL_SCALE * rms; audio_level = LEVEL_START_POINT - LEVEL_SCALE * rms;