void LLIMSpeakerMgr::processSessionUpdate(const LLSD& session_update) { if (mReverseVoiceModeratedAvatarID.isNull()) return; if (session_update.has("moderated_mode") && session_update["moderated_mode"].has("voice")) { BOOL voice_moderated = session_update["moderated_mode"]["voice"]; moderateVoiceParticipant(mReverseVoiceModeratedAvatarID, voice_moderated); mReverseVoiceModeratedAvatarID = LLUUID::null; } }
void LLIMSpeakerMgr::forceVoiceModeratedMode(bool should_be_muted) { for (speaker_map_t::iterator speaker_it = mSpeakers.begin(); speaker_it != mSpeakers.end(); ++speaker_it) { LLUUID speaker_id = speaker_it->first; LLSpeaker* speakerp = speaker_it->second; // participant does not match requested state if (should_be_muted != (bool)speakerp->mModeratorMutedVoice) { moderateVoiceParticipant(speaker_id, !should_be_muted); } } }
void LLParticipantList::LLParticipantListMenu::moderateVoice(const LLSD& userdata) { if (!gAgent.getRegion()) return; bool moderate_selected = userdata.asString() == "selected"; if (moderate_selected) { const LLUUID& selected_avatar_id = mUUIDs.front(); bool is_muted = isMuted(selected_avatar_id); moderateVoiceParticipant(selected_avatar_id, is_muted); } else { bool unmute_all = userdata.asString() == "unmute_all"; moderateVoiceAllParticipants(unmute_all); } }