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. |