diff options
-rw-r--r-- | autobuild.xml | 14 | ||||
-rw-r--r-- | indra/newview/llconversationview.cpp | 55 | ||||
-rw-r--r-- | indra/newview/llconversationview.h | 3 | ||||
-rw-r--r-- | indra/newview/lloutputmonitorctrl.cpp | 14 | ||||
-rw-r--r-- | indra/newview/lloutputmonitorctrl.h | 5 | ||||
-rwxr-xr-x | indra/newview/viewer_manifest.py | 2 |
6 files changed, 58 insertions, 35 deletions
diff --git a/autobuild.xml b/autobuild.xml index 9b7ff39334..e6c6803d89 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -580,9 +580,9 @@ <key>archive</key> <map> <key>hash</key> - <string>118987b1a5b56214cfdbd0c763e180da</string> + <string>9c219f5fe35161eefb8abe1c6b8524ea</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15127/97748/dullahan-1.1.1080_3.3325.1750.gaabe4c4-darwin64-513449.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/33755/280172/dullahan-1.1.1309_3.3626.1895.g7001d56-darwin64-525191.tar.bz2</string> </map> <key>name</key> <string>darwin64</string> @@ -592,9 +592,9 @@ <key>archive</key> <map> <key>hash</key> - <string>2ecc71350b30a1057091b9cd7af18b1c</string> + <string>4b62b7726ba4b6912711b232539a51ed</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15128/97755/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows-513449.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/33756/280178/dullahan-1.1.1309_3.3626.1895.g7001d56-windows-525191.tar.bz2</string> </map> <key>name</key> <string>windows</string> @@ -604,16 +604,16 @@ <key>archive</key> <map> <key>hash</key> - <string>2ed3e49388514dafb907c59a209d580e</string> + <string>06c3ae1ac1c0b9ce044ad839d95faff8</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15129/97760/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows64-513449.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/33757/280182/dullahan-1.1.1309_3.3626.1895.g7001d56-windows64-525191.tar.bz2</string> </map> <key>name</key> <string>windows64</string> </map> </map> <key>version</key> - <string>1.1.1080_3.3325.1750.gaabe4c4</string> + <string>1.1.1309_3.3626.1895.g7001d56</string> </map> <key>elfio</key> <map> diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp index 59bb9af744..0075b62100 100644 --- a/indra/newview/llconversationview.cpp +++ b/indra/newview/llconversationview.cpp @@ -440,28 +440,23 @@ void LLConversationViewSession::refresh() LLSpeakingIndicatorManager::updateSpeakingIndicators(); // we should show indicator for specified voice session only if this is current channel. EXT-5562. - if (!mIsInActiveVoiceChannel) + if (mSpeakingIndicator) { - if (mSpeakingIndicator) + mSpeakingIndicator->setIsActiveChannel(mIsInActiveVoiceChannel); + mSpeakingIndicator->setShowParticipantsSpeaking(mIsInActiveVoiceChannel); + } + + LLConversationViewParticipant* participant = NULL; + items_t::const_iterator iter; + for (iter = getItemsBegin(); iter != getItemsEnd(); iter++) + { + participant = dynamic_cast<LLConversationViewParticipant*>(*iter); + if (participant) { - mSpeakingIndicator->setVisible(false); - } - LLConversationViewParticipant* participant = NULL; - items_t::const_iterator iter; - for (iter = getItemsBegin(); iter != getItemsEnd(); iter++) - { - participant = dynamic_cast<LLConversationViewParticipant*>(*iter); - if (participant) - { - participant->hideSpeakingIndicator(); - } + participant->allowSpeakingIndicator(mIsInActiveVoiceChannel); } } - - if (mSpeakingIndicator) - { - mSpeakingIndicator->setShowParticipantsSpeaking(mIsInActiveVoiceChannel); - } + requestArrange(); // Do the regular upstream refresh LLFolderViewFolder::refresh(); @@ -473,8 +468,13 @@ void LLConversationViewSession::onCurrentVoiceSessionChanged(const LLUUID& sessi if (vmi) { + bool old_value = mIsInActiveVoiceChannel; mIsInActiveVoiceChannel = vmi->getUUID() == session_id; mCallIconLayoutPanel->setVisible(mIsInActiveVoiceChannel); + if (old_value != mIsInActiveVoiceChannel) + { + refresh(); + } } } @@ -630,10 +630,19 @@ void LLConversationViewParticipant::addToFolder(LLFolderViewFolder* folder) LLFolderViewItem::addToFolder(folder); // Retrieve the folder (conversation) UUID, which is also the speaker session UUID - LLConversationItem* vmi = getParentFolder() ? dynamic_cast<LLConversationItem*>(getParentFolder()->getViewModelItem()) : NULL; - if (vmi) + LLFolderViewFolder *prnt = getParentFolder(); + if (prnt) { - addToSession(vmi->getUUID()); + LLConversationItem* vmi = dynamic_cast<LLConversationItem*>(prnt->getViewModelItem()); + if (vmi) + { + addToSession(vmi->getUUID()); + } + LLConversationViewSession* session = dynamic_cast<LLConversationViewSession*>(prnt); + if (session) + { + allowSpeakingIndicator(session->isInActiveVoiceChannel()); + } } } @@ -763,9 +772,9 @@ LLView* LLConversationViewParticipant::getItemChildView(EAvatarListItemChildInde return child_view; } -void LLConversationViewParticipant::hideSpeakingIndicator() +void LLConversationViewParticipant::allowSpeakingIndicator(bool val) { - mSpeakingIndicator->setVisible(false); + mSpeakingIndicator->setIsActiveChannel(val); } // EOF diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h index 06ffb517bb..420c250dfe 100644 --- a/indra/newview/llconversationview.h +++ b/indra/newview/llconversationview.h @@ -90,6 +90,7 @@ public: void setHighlightState(bool hihglight_state); LLFloater* getSessionFloater(); + bool isInActiveVoiceChannel() { return mIsInActiveVoiceChannel; } private: @@ -145,7 +146,7 @@ public: /*virtual*/ S32 getLabelXPos(); /*virtual*/ BOOL handleMouseDown( S32 x, S32 y, MASK mask ); - void hideSpeakingIndicator(); + void allowSpeakingIndicator(bool val); protected: friend class LLUICtrlFactory; diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp index c5e4593b79..a873ccf98b 100644 --- a/indra/newview/lloutputmonitorctrl.cpp +++ b/indra/newview/lloutputmonitorctrl.cpp @@ -74,6 +74,7 @@ LLOutputMonitorCtrl::LLOutputMonitorCtrl(const LLOutputMonitorCtrl::Params& p) mSpeakerId(p.speaker_id), mIsModeratorMuted(false), mIsAgentControl(false), + mIsActiveChannel(false), mIndicatorToggled(false), mShowParticipantsSpeaking(false) { @@ -256,6 +257,16 @@ BOOL LLOutputMonitorCtrl::handleMouseUp(S32 x, S32 y, MASK mask) return TRUE; } +void LLOutputMonitorCtrl::setIsActiveChannel(bool val) +{ + mIsActiveChannel = val; + if (!val) + { + // switchIndicator will set it to TRUE when channel becomes active + setVisible(FALSE); + } +} + void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id, const LLUUID& session_id/* = LLUUID::null*/, bool show_other_participants_speaking /* = false */) { if (speaker_id.isNull() && mSpeakerId.notNull()) @@ -305,8 +316,7 @@ void LLOutputMonitorCtrl::onChange() // virtual void LLOutputMonitorCtrl::switchIndicator(bool switch_on) { - - if(getVisible() != (BOOL)switch_on) + if (mIsActiveChannel && getVisible() != (BOOL)switch_on) { setVisible(switch_on); diff --git a/indra/newview/lloutputmonitorctrl.h b/indra/newview/lloutputmonitorctrl.h index af52a81b04..307cd30ab3 100644 --- a/indra/newview/lloutputmonitorctrl.h +++ b/indra/newview/lloutputmonitorctrl.h @@ -79,9 +79,11 @@ public: // For the current user, need to know the PTT state to show // correct button image. void setIsAgentControl(bool val) { mIsAgentControl = val; } - void setIsTalking(bool val) { mIsTalking = val; } + // switchIndicator controls visibility, 'active channel' governs if we are allowed to show indicator + void setIsActiveChannel(bool val); + void setShowParticipantsSpeaking(bool show) { mShowParticipantsSpeaking = show; } /** @@ -137,6 +139,7 @@ private: bool mIsModeratorMuted; bool mIsMuted; bool mIsTalking; + bool mIsActiveChannel; bool mShowParticipantsSpeaking; LLPointer<LLUIImage> mImageMute; LLPointer<LLUIImage> mImageOff; diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index c0f642c852..fcb97ded8f 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -635,7 +635,7 @@ class WindowsManifest(ViewerManifest): self.path("dullahan_host.exe") self.path("natives_blob.bin") self.path("snapshot_blob.bin") - self.path("widevinecdmadapter.dll") + self.path("v8_context_snapshot.bin") # MSVC DLLs needed for CEF and have to be in same directory as plugin with self.prefix(src=os.path.join(self.args['build'], os.pardir, |