summaryrefslogtreecommitdiff
path: root/indra/newview/llcallfloater.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llcallfloater.h')
-rw-r--r--indra/newview/llcallfloater.h41
1 files changed, 38 insertions, 3 deletions
diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h
index b2288a42ff..21fba433c6 100644
--- a/indra/newview/llcallfloater.h
+++ b/indra/newview/llcallfloater.h
@@ -38,6 +38,7 @@
#include "llvoiceclient.h"
class LLAvatarList;
+class LLAvatarListItem;
class LLNonAvatarCaller;
class LLOutputMonitorCtrl;
class LLParticipantList;
@@ -70,6 +71,8 @@ public:
*/
/*virtual*/ void onChange();
+ static void sOnCurrentChannelChanged(const LLUUID& session_id);
+
private:
typedef enum e_voice_controls_type
{
@@ -79,6 +82,16 @@ private:
VC_PEER_TO_PEER
}EVoiceControls;
+ typedef enum e_speaker_state
+ {
+ STATE_UNKNOWN,
+ STATE_INVITED,
+ STATE_JOINED,
+ STATE_LEFT,
+ } ESpeakerState;
+
+ typedef std::map<LLUUID, ESpeakerState> speaker_state_map_t;
+
void leaveCall();
/**
@@ -93,13 +106,32 @@ private:
* Refreshes participant list according to current Voice Channel
*/
void refreshPartisipantList();
- void onCurrentChannelChanged(const LLUUID& session_id);
+ void onAvatarListRefreshed();
+
+
void updateTitle();
void initAgentData();
void setModeratorMutedVoice(bool moderator_muted);
- void updateModeratorState();
+ void updateAgentModeratorState();
+
+ void initParticipantsVoiceState();
+ void updateParticipantsVoiceState();
+ void setState(LLAvatarListItem* item, ESpeakerState state);
+ void setState(const LLUUID& speaker_id, ESpeakerState state)
+ {
+ lldebugs << "Storing state: " << speaker_id << ", " << state << llendl;
+ mSpeakerStateMap[speaker_id] = state;
+ }
+
+ ESpeakerState getState(const LLUUID& speaker_id)
+ {
+ lldebugs << "Getting state: " << speaker_id << ", " << mSpeakerStateMap[speaker_id] << llendl;
+
+ return mSpeakerStateMap[speaker_id];
+ }
private:
+ speaker_state_map_t mSpeakerStateMap;
LLSpeakerMgr* mSpeakerManager;
LLParticipantList* mPaticipants;
LLAvatarList* mAvatarList;
@@ -109,7 +141,10 @@ private:
LLOutputMonitorCtrl* mSpeakingIndicator;
bool mIsModeratorMutedVoice;
- boost::signals2::connection mChannelChangedConnection;
+ bool mInitParticipantsVoiceState;
+
+ boost::signals2::connection mAvatarListRefreshConnection;
+
};