diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llvoicevivox.cpp | 80 | 
1 files changed, 33 insertions, 47 deletions
| diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 358396632c..7d9085a214 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -1038,8 +1038,6 @@ bool LLVivoxVoiceClient::provisionVoiceAccount()  bool LLVivoxVoiceClient::establishVoiceConnection()  { -    LLEventPump &voiceConnectPump = LLEventPumps::instance().obtain("vivoxClientPump"); -      if (!mVoiceEnabled && mIsInitialized)      {          LL_WARNS("Voice") << "cannot establish connection; enabled "<<mVoiceEnabled<<" initialized "<<mIsInitialized<<LL_ENDL; @@ -1056,7 +1054,7 @@ bool LLVivoxVoiceClient::establishVoiceConnection()      connectorCreate();      do      { -        result = llcoro::suspendUntilEventOn(voiceConnectPump); +        result = llcoro::suspendUntilEventOn(mVivoxPump);          LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;          if (result.has("connector")) @@ -1108,7 +1106,6 @@ bool LLVivoxVoiceClient::establishVoiceConnection()  bool LLVivoxVoiceClient::breakVoiceConnection(bool corowait)  {      LL_DEBUGS("Voice") << "( wait=" << corowait << ")" << LL_ENDL; -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");      bool retval(true);      mShutdownComplete = false; @@ -1118,7 +1115,7 @@ bool LLVivoxVoiceClient::breakVoiceConnection(bool corowait)      {          LLSD timeoutResult(LLSDMap("connector", "timeout")); -        LLSD result = llcoro::suspendUntilEventOnWithTimeout(voicePump, LOGOUT_ATTEMPT_TIMEOUT, timeoutResult); +        LLSD result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, LOGOUT_ATTEMPT_TIMEOUT, timeoutResult);          LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;          retval = result.has("connector"); @@ -1140,7 +1137,7 @@ bool LLVivoxVoiceClient::breakVoiceConnection(bool corowait)              {                  mConnected = false;                  LLSD vivoxevent(LLSDMap("connector", LLSD::Boolean(false))); -                LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +                mVivoxPump.post(vivoxevent);              }              mShutdownComplete = true;          } @@ -1157,8 +1154,6 @@ bool LLVivoxVoiceClient::breakVoiceConnection(bool corowait)  bool LLVivoxVoiceClient::loginToVivox()  { -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump"); -      LLSD timeoutResult(LLSDMap("login", "timeout"));      int loginRetryCount(0); @@ -1176,7 +1171,7 @@ bool LLVivoxVoiceClient::loginToVivox()              send_login = false;          } -        LLSD result = llcoro::suspendUntilEventOnWithTimeout(voicePump, LOGIN_ATTEMPT_TIMEOUT, timeoutResult); +        LLSD result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, LOGIN_ATTEMPT_TIMEOUT, timeoutResult);          LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;          if (result.has("login")) @@ -1259,15 +1254,14 @@ void LLVivoxVoiceClient::logoutOfVivox(bool wait)          if (wait)          { -            LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");              LLSD timeoutResult(LLSDMap("logout", "timeout"));              LL_DEBUGS("Voice")                  << "waiting for logout response on " -                << voicePump.getName() +                << mVivoxPump.getName()                  << LL_ENDL; -            LLSD result = llcoro::suspendUntilEventOnWithTimeout(voicePump, LOGOUT_ATTEMPT_TIMEOUT, timeoutResult); +            LLSD result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, LOGOUT_ATTEMPT_TIMEOUT, timeoutResult);              LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;          } @@ -1283,8 +1277,6 @@ void LLVivoxVoiceClient::logoutOfVivox(bool wait)  bool LLVivoxVoiceClient::retrieveVoiceFonts()  { -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump"); -      // Request the set of available voice fonts.      refreshVoiceEffectLists(true); @@ -1292,7 +1284,7 @@ bool LLVivoxVoiceClient::retrieveVoiceFonts()      LLSD result;      do       { -        result = llcoro::suspendUntilEventOn(voicePump); +        result = llcoro::suspendUntilEventOn(mVivoxPump);          LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;          if (result.has("voice_fonts")) @@ -1408,7 +1400,6 @@ bool LLVivoxVoiceClient::requestParcelVoiceInfo()  bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession)  { -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");      mIsJoiningSession = true;      sessionStatePtr_t oldSession = mAudioSession; @@ -1497,7 +1488,7 @@ bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession)      // We are about to start a whole new session.  Anything that MIGHT still be in our       // maildrop is going to be stale and cause us much wailing and gnashing of teeth.        // Just flush it all out and start new. -    voicePump.flush(); +    mVivoxPump.flush();      // It appears that I need to wait for BOTH the SessionGroup.AddSession response and the SessionStateChangeEvent with state 4      // before continuing from this state.  They can happen in either order, and if I don't wait for both, things can get stuck. @@ -1505,7 +1496,7 @@ bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession)      // This is a cheap way to make sure both have happened before proceeding.      do      { -        result = llcoro::suspendUntilEventOnWithTimeout(voicePump, SESSION_JOIN_TIMEOUT, timeoutResult); +        result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, SESSION_JOIN_TIMEOUT, timeoutResult);          LL_INFOS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;          if (result.has("session")) @@ -1619,13 +1610,12 @@ bool LLVivoxVoiceClient::terminateAudioSession(bool wait)                  if (wait)                  { -                    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");                      LLSD result;                      do                      {                          LLSD timeoutResult(LLSDMap("session", "timeout")); -                        result = llcoro::suspendUntilEventOnWithTimeout(voicePump, LOGOUT_ATTEMPT_TIMEOUT, timeoutResult); +                        result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, LOGOUT_ATTEMPT_TIMEOUT, timeoutResult);                          LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;                          if (result.has("session")) @@ -1822,7 +1812,6 @@ bool LLVivoxVoiceClient::runSession(const sessionStatePtr_t &session)      LLSD timeoutEvent(LLSDMap("timeout", LLSD::Boolean(true))); -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");      mIsInChannel = true;      mMuteMicDirty = true; @@ -1874,7 +1863,7 @@ bool LLVivoxVoiceClient::runSession(const sessionStatePtr_t &session)          sendLocalAudioUpdates();          mIsInitialized = true; -        LLSD result = llcoro::suspendUntilEventOnWithTimeout(voicePump, UPDATE_THROTTLE_SECONDS, timeoutEvent); +        LLSD result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, UPDATE_THROTTLE_SECONDS, timeoutEvent);          if (!result.has("timeout")) // logging the timeout event spams the log          {              LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL; @@ -1945,14 +1934,13 @@ void LLVivoxVoiceClient::sendCaptureAndRenderDevices()  void LLVivoxVoiceClient::recordingAndPlaybackMode()  {      LL_INFOS("Voice") << "In voice capture/playback mode." << LL_ENDL; -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");      while (true)      {          LLSD command;          do          { -            command = llcoro::suspendUntilEventOn(voicePump); +            command = llcoro::suspendUntilEventOn(mVivoxPump);              LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(command) << LL_ENDL;          } while (!command.has("recplay")); @@ -1985,7 +1973,6 @@ int LLVivoxVoiceClient::voiceRecordBuffer()      LL_INFOS("Voice") << "Recording voice buffer" << LL_ENDL; -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");      LLSD result;      captureBufferRecordStartSendMessage(); @@ -1993,7 +1980,7 @@ int LLVivoxVoiceClient::voiceRecordBuffer()      do      { -        result = llcoro::suspendUntilEventOnWithTimeout(voicePump, CAPTURE_BUFFER_MAX_TIME, timeoutResult); +        result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, CAPTURE_BUFFER_MAX_TIME, timeoutResult);          LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;      } while (!result.has("recplay")); @@ -2015,7 +2002,6 @@ int LLVivoxVoiceClient::voicePlaybackBuffer()      LL_INFOS("Voice") << "Playing voice buffer" << LL_ENDL; -    LLEventPump &voicePump = LLEventPumps::instance().obtain("vivoxClientPump");      LLSD result;      do @@ -2030,7 +2016,7 @@ int LLVivoxVoiceClient::voicePlaybackBuffer()              // Update UI, should really use a separate callback.              notifyVoiceFontObservers(); -            result = llcoro::suspendUntilEventOnWithTimeout(voicePump, CAPTURE_BUFFER_MAX_TIME, timeoutResult); +            result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, CAPTURE_BUFFER_MAX_TIME, timeoutResult);              LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL;          } while (!result.has("recplay")); @@ -3214,7 +3200,7 @@ void LLVivoxVoiceClient::connectorCreateResponse(int statusCode, std::string &st          result["connector"] = LLSD::Boolean(false);      } -    LLEventPumps::instance().post("vivoxClientPump", result); +    mVivoxPump.post(result);  }  void LLVivoxVoiceClient::loginResponse(int statusCode, std::string &statusString, std::string &accountHandle, int numberOfAliases) @@ -3244,7 +3230,7 @@ void LLVivoxVoiceClient::loginResponse(int statusCode, std::string &statusString          result["login"] = LLSD::String("response_ok");  	} -    LLEventPumps::instance().post("vivoxClientPump", result); +    mVivoxPump.post(result);  } @@ -3270,7 +3256,7 @@ void LLVivoxVoiceClient::sessionCreateResponse(std::string &requestId, int statu                          ("session", "failed")                          ("reason", LLSD::Integer(statusCode))); -                LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +                mVivoxPump.post(vivoxevent);              }  			else  			{ @@ -3288,7 +3274,7 @@ void LLVivoxVoiceClient::sessionCreateResponse(std::string &requestId, int statu          LLSD vivoxevent(LLSDMap("handle", LLSD::String(sessionHandle))                  ("session", "created")); -        LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +        mVivoxPump.post(vivoxevent);  	}  } @@ -3313,7 +3299,7 @@ void LLVivoxVoiceClient::sessionGroupAddSessionResponse(std::string &requestId,                  LLSD vivoxevent(LLSDMap("handle", LLSD::String(sessionHandle))                      ("session", "failed")); -                LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +                mVivoxPump.post(vivoxevent);  			}  			else  			{ @@ -3332,7 +3318,7 @@ void LLVivoxVoiceClient::sessionGroupAddSessionResponse(std::string &requestId,          LLSD vivoxevent(LLSDMap("handle", LLSD::String(sessionHandle))              ("session", "added")); -        LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +        mVivoxPump.post(vivoxevent);  	}  } @@ -3375,7 +3361,7 @@ void LLVivoxVoiceClient::logoutResponse(int statusCode, std::string &statusStrin  	}      LLSD vivoxevent(LLSDMap("logout", LLSD::Boolean(true))); -    LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +    mVivoxPump.post(vivoxevent);  }  void LLVivoxVoiceClient::connectorShutdownResponse(int statusCode, std::string &statusString) @@ -3391,7 +3377,7 @@ void LLVivoxVoiceClient::connectorShutdownResponse(int statusCode, std::string &      LLSD vivoxevent(LLSDMap("connector", LLSD::Boolean(false))); -    LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +    mVivoxPump.post(vivoxevent);  }  void LLVivoxVoiceClient::sessionAddedEvent( @@ -3500,7 +3486,7 @@ void LLVivoxVoiceClient::joinedAudioSession(const sessionStatePtr_t &session)          LLSD vivoxevent(LLSDMap("handle", LLSD::String(session->mHandle))                  ("session", "joined")); -        LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +        mVivoxPump.post(vivoxevent);  		// Add the current user as a participant here.          participantStatePtr_t participant(session->addParticipant(sipURIFromName(mAccountName))); @@ -3644,7 +3630,7 @@ void LLVivoxVoiceClient::leftAudioSession(const sessionStatePtr_t &session)          LLSD vivoxevent(LLSDMap("handle", LLSD::String(session->mHandle))              ("session", "removed")); -        LLEventPumps::instance().post("vivoxClientPump", vivoxevent); +        mVivoxPump.post(vivoxevent);      }  } @@ -3672,7 +3658,7 @@ void LLVivoxVoiceClient::accountLoginStateChangeEvent(  		case 1:              levent["login"] = LLSD::String("account_login"); -            LLEventPumps::instance().post("vivoxClientPump", levent); +            mVivoxPump.post(levent);              break;          case 2:              break; @@ -3680,7 +3666,7 @@ void LLVivoxVoiceClient::accountLoginStateChangeEvent(          case 3:              levent["login"] = LLSD::String("account_loggingOut"); -            LLEventPumps::instance().post("vivoxClientPump", levent); +            mVivoxPump.post(levent);              break;          case 4: @@ -3693,7 +3679,7 @@ void LLVivoxVoiceClient::accountLoginStateChangeEvent(          case 0:              levent["login"] = LLSD::String("account_logout"); -            LLEventPumps::instance().post("vivoxClientPump", levent); +            mVivoxPump.post(levent);              break;          default: @@ -3728,7 +3714,7 @@ void LLVivoxVoiceClient::mediaCompletionEvent(std::string &sessionGroupHandle, s  	}      if (!result.isUndefined()) -        LLEventPumps::instance().post("vivoxClientPump", result); +        mVivoxPump.post(result);  }  void LLVivoxVoiceClient::mediaStreamUpdatedEvent( @@ -6540,7 +6526,7 @@ void LLVivoxVoiceClient::accountGetSessionFontsResponse(int statusCode, const st          // receiving the last one.          LLSD result(LLSDMap("voice_fonts", LLSD::Boolean(true))); -        LLEventPumps::instance().post("vivoxClientPump", result); +        mVivoxPump.post(result);      }  	notifyVoiceFontObservers();  	mVoiceFontsReceived = true; @@ -6691,7 +6677,7 @@ void LLVivoxVoiceClient::enablePreviewBuffer(bool enable)      else          result["recplay"] = "quit"; -    LLEventPumps::instance().post("vivoxClientPump", result); +    mVivoxPump.post(result);  	if(mCaptureBufferMode && mIsInChannel)  	{ @@ -6712,7 +6698,7 @@ void LLVivoxVoiceClient::recordPreviewBuffer()  	mCaptureBufferRecording = true;      LLSD result(LLSDMap("recplay", "record")); -    LLEventPumps::instance().post("vivoxClientPump", result); +    mVivoxPump.post(result);  }  void LLVivoxVoiceClient::playPreviewBuffer(const LLUUID& effect_id) @@ -6735,7 +6721,7 @@ void LLVivoxVoiceClient::playPreviewBuffer(const LLUUID& effect_id)  	mCaptureBufferPlaying = true;      LLSD result(LLSDMap("recplay", "playback")); -    LLEventPumps::instance().post("vivoxClientPump", result); +    mVivoxPump.post(result);  }  void LLVivoxVoiceClient::stopPreviewBuffer() @@ -6744,7 +6730,7 @@ void LLVivoxVoiceClient::stopPreviewBuffer()  	mCaptureBufferPlaying = false;      LLSD result(LLSDMap("recplay", "quit")); -    LLEventPumps::instance().post("vivoxClientPump", result); +    mVivoxPump.post(result);  }  bool LLVivoxVoiceClient::isPreviewRecording() | 
