diff options
author | Rider Linden <rider@lindenlab.com> | 2016-01-06 12:56:55 -0800 |
---|---|---|
committer | Rider Linden <rider@lindenlab.com> | 2016-01-06 12:56:55 -0800 |
commit | 334d13f332eadab26d51ed42a482633a3ffe46bf (patch) | |
tree | 05c0c05dc414b7f4daccf903565047ee8c7981a5 /indra | |
parent | 27bc0e049b896973a0269751cc7622a681b190e9 (diff) |
MAINT-5976: Handle connect and disconnect for P2P calls.
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/newview/llvoicevivox.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index e1d8c232d7..2627c37bf6 100755 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -1433,12 +1433,12 @@ bool LLVivoxVoiceClient::addAndJoinSession(sessionState *nextSession) mSpatialJoiningNum++; } - // joinedAudioSession() will transition from here to stateSessionJoined. if (!mVoiceEnabled && mIsInitialized) { mIsJoiningSession = false; // User bailed out during connect -- jump straight to teardown. terminateAudioSession(true); + notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED); return false; } else if (mSessionTerminateRequested) @@ -1451,6 +1451,7 @@ bool LLVivoxVoiceClient::addAndJoinSession(sessionState *nextSession) { terminateAudioSession(true); mIsJoiningSession = false; + notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL); return false; } } @@ -1484,10 +1485,10 @@ bool LLVivoxVoiceClient::addAndJoinSession(sessionState *nextSession) added = true; else if (message == "joined") joined = true; - else if (message == "failed") - { + else if ((message == "failed") || (message == "removed")) + { // we will get a removed message if a voice call is declined. + notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL); mIsJoiningSession = false; - setState(stateJoinSessionFailed); return false; } } @@ -1598,7 +1599,6 @@ bool LLVivoxVoiceClient::terminateAudioSession(bool wait) } notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL); - setState(stateSessionTerminated); // Always reset the terminate request flag when we get here. // Some slower PCs have a race condition where they can switch to an incoming P2P call faster than the state machine leaves @@ -1699,7 +1699,6 @@ bool LLVivoxVoiceClient::waitForChannel() bool LLVivoxVoiceClient::runSession(sessionState *session) { LL_INFOS("Voice") << "running new voice session " << session->mHandle << LL_ENDL; - bool doTerminate(true); if (!addAndJoinSession(session)) { @@ -1792,7 +1791,7 @@ bool LLVivoxVoiceClient::runSession(sessionState *session) if (message == "removed") { - doTerminate = false; + notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL); break; } } @@ -1800,8 +1799,8 @@ bool LLVivoxVoiceClient::runSession(sessionState *session) } mIsInChannel = false; - if (doTerminate) - terminateAudioSession(true); + terminateAudioSession(true); + return true; } @@ -3764,7 +3763,7 @@ void LLVivoxVoiceClient::participantUpdatedEvent( if(participant) { - LL_INFOS("Voice") << "Participant Update for " << participant->mDisplayName << LL_ENDL; + //LL_INFOS("Voice") << "Participant Update for " << participant->mDisplayName << LL_ENDL; participant->mIsSpeaking = isSpeaking; participant->mIsModeratorMuted = isModeratorMuted; |