diff options
| -rw-r--r-- | indra/llwebrtc/llwebrtc.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llvoicewebrtc.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llvoicewebrtc.h | 2 | 
3 files changed, 13 insertions, 5 deletions
| diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp index 862325c3f1..93981e4076 100644 --- a/indra/llwebrtc/llwebrtc.cpp +++ b/indra/llwebrtc/llwebrtc.cpp @@ -37,6 +37,8 @@  namespace llwebrtc  { +const float VOLUME_SCALE_WEBRTC = 3.0f; +  void LLWebRTCImpl::init()  {      mAnswerReceived = false; @@ -356,7 +358,7 @@ void LLWebRTCImpl::setSpeakerVolume(float volume)                  {                      webrtc::AudioTrackInterface* audio_track = static_cast<webrtc::AudioTrackInterface*>(track);                      webrtc::AudioSourceInterface* source = audio_track->GetSource(); -                    source->SetVolume(10.0 * volume); +                    source->SetVolume(VOLUME_SCALE_WEBRTC * volume);                  }              } diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp index bbe54018e8..d66435e2bc 100644 --- a/indra/newview/llvoicewebrtc.cpp +++ b/indra/newview/llvoicewebrtc.cpp @@ -833,7 +833,6 @@ void LLWebRTCVoiceClient::OnVoiceAccountProvisioned(const LLSD& result)                         << (voicePassword.empty() ? "not set" : "set") << " channel sdp " << channelSDP << LL_ENDL;      setLoginInfo(voiceUserName, voicePassword, channelSDP); -    setVoiceControlStateUnless(VOICE_STATE_SESSION_ESTABLISHED, VOICE_STATE_SESSION_RETRY);  }  void LLWebRTCVoiceClient::OnVoiceAccountProvisionFailure(std::string url, int retries, LLSD body, const LLSD& result) @@ -1518,6 +1517,10 @@ bool LLWebRTCVoiceClient::runSession(const sessionStatePtr_t &session)          {              return false;          } +        if (getVoiceControlState() == VOICE_STATE_SESSION_RETRY)  +		{ +			break;  +		}          if (mSessionTerminateRequested)          { @@ -2825,17 +2828,20 @@ void LLWebRTCVoiceClient::OnAudioEstablished(llwebrtc::LLWebRTCAudioInterface *  {      LL_INFOS("Voice") << "On AudioEstablished." << LL_ENDL;      mWebRTCAudioInterface = audio_interface; +    float speaker_volume  = 0;      audio_interface->setMute(true);      {          LLMutexLock lock(&mVoiceStateMutex); - -        audio_interface->setSpeakerVolume(mSpeakerVolume); +        speaker_volume = mSpeakerVolume;      } +	audio_interface->setSpeakerVolume(mSpeakerVolume); +    setVoiceControlStateUnless(VOICE_STATE_SESSION_ESTABLISHED, VOICE_STATE_SESSION_RETRY);  }  void LLWebRTCVoiceClient::OnRenegotiationNeeded()  {      LL_INFOS("Voice") << "On Renegotiation Needed." << LL_ENDL; +    mRelogRequested = TRUE;      setVoiceControlStateUnless(VOICE_STATE_SESSION_RETRY);  } diff --git a/indra/newview/llvoicewebrtc.h b/indra/newview/llvoicewebrtc.h index e040552ab2..0dad2909d4 100644 --- a/indra/newview/llvoicewebrtc.h +++ b/indra/newview/llvoicewebrtc.h @@ -829,7 +829,7 @@ private:  	bool		mSpeakerVolumeDirty;  	bool		mSpeakerMuteDirty; -	int			mSpeakerVolume; +	float		mSpeakerVolume;  	int			mMicVolume;  	bool		mMicVolumeDirty; | 
