diff options
| author | Mike Antipov <mantipov@productengine.com> | 2010-02-23 13:20:43 +0200 | 
|---|---|---|
| committer | Mike Antipov <mantipov@productengine.com> | 2010-02-23 13:20:43 +0200 | 
| commit | d5a0fd7997352c80273ccb172a40250204ee0b34 (patch) | |
| tree | 5c5dc87ef00965a392cf97413fbe159d8c931a9a | |
| parent | d47ca7a671255adf6c4f16114516effde507ae3a (diff) | |
Work on major bug EXT-5562 (Misleading Active Voice Indicators in Group Chat Window, when Speakers are in Spatial Chat Only)
- updated interfaces of LLSpeakingIndicatorManager::registerSpeakingIndicator & LLOutputMonitorCtrl::setSpeakerId
    to take a target session id for which registered indicator should be shown.
--HG--
branch : product-engine
| -rw-r--r-- | indra/newview/lloutputmonitorctrl.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/lloutputmonitorctrl.h | 10 | ||||
| -rw-r--r-- | indra/newview/llspeakingindicatormanager.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llspeakingindicatormanager.h | 6 | 
4 files changed, 25 insertions, 7 deletions
| diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp index 9857e37bc3..f2253f89aa 100644 --- a/indra/newview/lloutputmonitorctrl.cpp +++ b/indra/newview/lloutputmonitorctrl.cpp @@ -247,7 +247,7 @@ void LLOutputMonitorCtrl::draw()  		gl_rect_2d(0, monh, monw, 0, sColorBound, FALSE);  } -void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id) +void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id, const LLUUID& session_id/* = LLUUID::null*/)  {  	if (speaker_id.isNull() && mSpeakerId.notNull())  	{ diff --git a/indra/newview/lloutputmonitorctrl.h b/indra/newview/lloutputmonitorctrl.h index 2bbfa251e9..b7454a5066 100644 --- a/indra/newview/lloutputmonitorctrl.h +++ b/indra/newview/lloutputmonitorctrl.h @@ -86,7 +86,15 @@ public:  	void			setIsTalking(bool val) { mIsTalking = val; } -	void			setSpeakerId(const LLUUID& speaker_id); +	/** +	 * Sets avatar UUID to interact with voice channel. +	 * +	 * @param speaker_id LLUUID of an avatar whose voice level is displayed. +	 * @param session_id session UUID for which indicator should be shown only. Passed to LLSpeakingIndicatorManager +	 *		If this parameter is set registered indicator will be shown only in voice channel +	 *		which has the same session id (EXT-5562). +	 */ +	void			setSpeakerId(const LLUUID& speaker_id, const LLUUID& session_id = LLUUID::null);  	//called by mute list  	virtual void onChange(); diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp index d33c050ee4..74b45217d3 100644 --- a/indra/newview/llspeakingindicatormanager.cpp +++ b/indra/newview/llspeakingindicatormanager.cpp @@ -65,8 +65,12 @@ public:  	 *  	 * @param speaker_id LLUUID of an avatar whose speaking indicator is registered.  	 * @param speaking_indicator instance of the speaking indicator to be registered. +	 * @param session_id session UUID for which indicator should be shown only. +	 *		If this parameter is set registered indicator will be shown only in voice channel +	 *		which has the same session id (EXT-5562).  	 */ -	void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator); +	void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator, +		const LLUUID& session_id = LLUUID::null);  	/**  	 * Removes passed speaking indicator from observing. @@ -138,7 +142,8 @@ private:  //////////////////////////////////////////////////////////////////////////  // PUBLIC SECTION  ////////////////////////////////////////////////////////////////////////// -void SpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator) +void SpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator, +														 const LLUUID& session_id)  {  	// do not exclude agent's indicators. They should be processed in the same way as others. See EXT-3889. @@ -274,9 +279,10 @@ void SpeakingIndicatorManager::ensureInstanceDoesNotExist(LLSpeakingIndicator* c  /*         LLSpeakingIndicatorManager namespace implementation          */  /************************************************************************/ -void LLSpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator) +void LLSpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator, +														   const LLUUID& session_id/* = LLUUID::null*/)  { -	SpeakingIndicatorManager::instance().registerSpeakingIndicator(speaker_id, speaking_indicator); +	SpeakingIndicatorManager::instance().registerSpeakingIndicator(speaker_id, speaking_indicator, session_id);  }  void LLSpeakingIndicatorManager::unregisterSpeakingIndicator(const LLUUID& speaker_id, const LLSpeakingIndicator* const speaking_indicator) diff --git a/indra/newview/llspeakingindicatormanager.h b/indra/newview/llspeakingindicatormanager.h index ce0158f7d8..cd72b85bfd 100644 --- a/indra/newview/llspeakingindicatormanager.h +++ b/indra/newview/llspeakingindicatormanager.h @@ -52,8 +52,12 @@ namespace LLSpeakingIndicatorManager  	 *  	 * @param speaker_id LLUUID of an avatar whose speaker indicator is registered.  	 * @param speaking_indicator instance of the speaker indicator to be registered. +	 * @param session_id session UUID for which indicator should be shown only. +	 *		If this parameter is set registered indicator will be shown only in voice channel +	 *		which has the same session id (EXT-5562).  	 */ -	void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator); +	void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator, +								   const LLUUID& session_id = LLUUID::null);  	/**  	 * Removes passed speaking indicator from observing. | 
