Merge branch 'DRTVWR-516-maint' of https://bitbucket.org/lindenlab/viewer

master
Ansariel 2021-06-25 12:04:06 +02:00
commit f81b6d0003
5 changed files with 49 additions and 48 deletions

View File

@ -1,5 +1,10 @@
if (INSTALL_PROPRIETARY)
set(USE_BUGSPLAT ON CACHE BOOL "Use the BugSplat crash reporting system")
# Note that viewer_manifest.py makes decision based on BUGSPLAT_DB and not USE_BUGSPLAT
if (BUGSPLAT_DB)
set(USE_BUGSPLAT ON CACHE BOOL "Use the BugSplat crash reporting system")
else (BUGSPLAT_DB)
set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system")
endif (BUGSPLAT_DB)
else (INSTALL_PROPRIETARY)
set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system")
endif (INSTALL_PROPRIETARY)

View File

@ -18091,8 +18091,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>VivoxVadSensitivity</key>
<map>
<key>Comment</key>
<string>
A dimensionless value between 0 and 100, indicating the 'sensitivity of the VAD'. Increasing this value corresponds to decreasing the sensitivity of the VAD and 0 is turned off altogether</string>
<string>A dimensionless value between 0 and 100, indicating the 'sensitivity of the VAD'. Increasing this value corresponds to decreasing the sensitivity of the VAD and 0 is turned off altogether</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>

View File

@ -749,12 +749,15 @@ void LLVivoxVoiceClient::voiceControlCoro()
gSavedSettings.getControl("VivoxVadNoiseFloor")->getSignal()->connect(boost::bind(&LLVivoxVoiceClient::onVADSettingsChange, this));
gSavedSettings.getControl("VivoxVadSensitivity")->getSignal()->connect(boost::bind(&LLVivoxVoiceClient::onVADSettingsChange, this));
if (mTuningMode)
if (mTuningMode && !sShuttingDown)
{
performMicTuning();
}
waitForChannel(); // this doesn't normally return unless relog is needed or shutting down
if (!sShuttingDown)
{
waitForChannel(); // this doesn't normally return unless relog is needed or shutting down
}
LL_DEBUGS("Voice") << "lost channel RelogRequested=" << mRelogRequested << LL_ENDL;
endAndDisconnectSession();
@ -1144,7 +1147,14 @@ bool LLVivoxVoiceClient::provisionVoiceAccount()
{
F32 timeout = pow(PROVISION_RETRY_TIMEOUT, static_cast<float>(retryCount));
LL_WARNS("Voice") << "Provision CAP 404. Retrying in " << timeout << " seconds." << LL_ENDL;
llcoro::suspendUntilTimeout(timeout);
if (sShuttingDown)
{
return false;
}
else
{
llcoro::suspendUntilTimeout(timeout);
}
}
else if (!status)
{
@ -1371,8 +1381,13 @@ bool LLVivoxVoiceClient::loginToVivox()
// tell the user there is a problem
LL_WARNS("Voice") << "login " << loginresp << " will retry login in " << timeout << " seconds." << LL_ENDL;
llcoro::suspendUntilTimeout(timeout);
if (!sShuttingDown)
{
// Todo: this is way to long, viewer can get stuck waiting during shutdown
// either make it listen to pump or split in smaller waits with checks for shutdown
llcoro::suspendUntilTimeout(timeout);
}
}
else if (loginresp == "failed")
{
@ -1682,6 +1697,12 @@ bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession)
{
result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, SESSION_JOIN_TIMEOUT, timeoutResult);
if (sShuttingDown)
{
mIsJoiningSession = false;
return false;
}
LL_INFOS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;
if (result.has("session"))
{
@ -1925,7 +1946,7 @@ bool LLVivoxVoiceClient::waitForChannel()
// the parcel is changed, or we have no pending audio sessions,
// so try to request the parcel voice info
// if we have the cap, we move to the appropriate state
requestParcelVoiceInfo();
requestParcelVoiceInfo(); //suspends for http reply
}
else if (sessionNeedsRelog(mNextAudioSession))
{
@ -1937,7 +1958,7 @@ bool LLVivoxVoiceClient::waitForChannel()
{
sessionStatePtr_t joinSession = mNextAudioSession;
mNextAudioSession.reset();
if (!runSession(joinSession))
if (!runSession(joinSession)) //suspends
{
LL_DEBUGS("Voice") << "runSession returned false; leaving inner loop" << LL_ENDL;
break;
@ -1952,7 +1973,7 @@ bool LLVivoxVoiceClient::waitForChannel()
}
}
if (!mNextAudioSession)
if (!mNextAudioSession && !sShuttingDown)
{
llcoro::suspendUntilTimeout(1.0);
}
@ -2025,7 +2046,12 @@ bool LLVivoxVoiceClient::runSession(const sessionStatePtr_t &session)
while (mVoiceEnabled && isGatewayRunning() && !mSessionTerminateRequested && !mTuningMode)
{
sendCaptureAndRenderDevices();
sendCaptureAndRenderDevices(); // suspends
if (mSessionTerminateRequested)
{
break;
}
if (mAudioSession && mAudioSession->mParticipantsChanged)
{
mAudioSession->mParticipantsChanged = false;
@ -2252,7 +2278,7 @@ bool LLVivoxVoiceClient::performMicTuning()
mIsInTuningMode = true;
llcoro::suspend();
while (mTuningMode)
while (mTuningMode && !sShuttingDown)
{
if (mCaptureDeviceDirty || mRenderDeviceDirty)
@ -2288,9 +2314,12 @@ bool LLVivoxVoiceClient::performMicTuning()
tuningCaptureStartSendMessage(1); // 1-loop, zero, don't loop
//---------------------------------------------------------------------
llcoro::suspend();
if (!sShuttingDown)
{
llcoro::suspend();
}
while (mTuningMode && !mCaptureDeviceDirty && !mRenderDeviceDirty)
while (mTuningMode && !mCaptureDeviceDirty && !mRenderDeviceDirty && !sShuttingDown)
{
// process mic/speaker volume changes
if (mTuningMicVolumeDirty || mTuningSpeakerVolumeDirty)
@ -2330,7 +2359,7 @@ bool LLVivoxVoiceClient::performMicTuning()
// transition out of mic tuning
tuningCaptureStopSendMessage();
if (mCaptureDeviceDirty || mRenderDeviceDirty)
if ((mCaptureDeviceDirty || mRenderDeviceDirty) && !sShuttingDown)
{
llcoro::suspendUntilTimeout(UPDATE_THROTTLE_SECONDS);
}

View File

@ -234,32 +234,6 @@
left_pad="32"
name="image_right"
top="0" />
<text
follows="left|top"
font="SansSerifLarge"
text_color="White"
height="64"
name="image_caption_left"
left="0"
halign="center"
top="408"
word_wrap="true"
width="400">
Your first step is Learning Island. Find the exit portal!
</text>
<text
follows="left|top"
font="SansSerifLarge"
text_color="White"
height="64"
name="image_caption_right"
left="432"
halign="center"
top="408"
word_wrap="true"
width="400">
Then explore Social Island and meet other new residents!
</text>
</layout_panel>
<layout_panel
height="100"

View File

@ -782,12 +782,6 @@ class WindowsManifest(ViewerManifest):
self.path("libvlccore.dll")
self.path("plugins/")
if not self.args.get('bugsplat'): # don't include the win_crash_logger if we are using BugSplat
# pull in the crash logger from other projects
# tag:"crash-logger" here as a cue to the exporter
self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'],
dst="win_crash_logger.exe")
if not self.is_packaging_viewer():
self.package_file = "copied_deps"