diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-02-11 10:58:20 +0000 |
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-02-11 10:58:20 +0000 |
| commit | fc1af768b800c890cda8ef3e8b9ee2537ca1d92a (patch) | |
| tree | 40474e1e2ee190cae30603ce960e58238929c445 /indra/newview/llvoicechannel.cpp | |
| parent | 4805c9bea7a0f316dbb95bd04b5b0cec7052602e (diff) | |
| parent | de7ca5abb26930025b16c7f50aa7469c3b33c09e (diff) | |
PE merge.
Diffstat (limited to 'indra/newview/llvoicechannel.cpp')
| -rw-r--r-- | indra/newview/llvoicechannel.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp index bb09a18cc3..dfd67d0c38 100644 --- a/indra/newview/llvoicechannel.cpp +++ b/indra/newview/llvoicechannel.cpp @@ -122,7 +122,8 @@ LLVoiceChannel::LLVoiceChannel(const LLUUID& session_id, const std::string& sess mState(STATE_NO_CHANNEL_INFO), mSessionName(session_name), mCallDirection(OUTGOING_CALL), - mIgnoreNextSessionLeave(FALSE) + mIgnoreNextSessionLeave(FALSE), + mCallEndedByAgent(false) { mNotifyArgs["VOICE_CHANNEL_NAME"] = mSessionName; @@ -412,7 +413,7 @@ void LLVoiceChannel::doSetState(const EState& new_state) EState old_state = mState; mState = new_state; if (!mStateChangedCallback.empty()) - mStateChangedCallback(old_state, mState, mCallDirection); + mStateChangedCallback(old_state, mState, mCallDirection, mCallEndedByAgent); } //static @@ -779,7 +780,8 @@ void LLVoiceChannelP2P::handleStatusChange(EStatusType type) } else { - // other user hung up + // other user hung up, so we didn't end the call + mCallEndedByAgent = false; } deactivate(); } @@ -810,6 +812,9 @@ void LLVoiceChannelP2P::activate() { if (callStarted()) return; + //call will be counted as ended by user unless this variable is changed in handleStatusChange() + mCallEndedByAgent = true; + LLVoiceChannel::activate(); if (callStarted()) |
