summaryrefslogtreecommitdiff
path: root/indra/newview/llcallfloater.h
diff options
context:
space:
mode:
authorMike Antipov <mantipov@productengine.com>2009-12-28 17:21:13 +0200
committerMike Antipov <mantipov@productengine.com>2009-12-28 17:21:13 +0200
commit0bf77e227553eee4221cda5ddbe937399f6f61bb (patch)
tree2bba5231bb1d5ff35c04eda4ba2a4d314912c363 /indra/newview/llcallfloater.h
parent1474f3ae335c5286ad6254731dd6882a876e1bf8 (diff)
Work on low task EXT-3682 (Dedicated icon is required for AvaLine callers in the VCP)
-- refactored processing of voice participants in the "Voice control panel". Now list is filled only when voice channel is in CONNECTED state and is cleared otherwise. --HG-- branch : product-engine
Diffstat (limited to 'indra/newview/llcallfloater.h')
-rw-r--r--indra/newview/llcallfloater.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h
index 3df9e333c5..2b856b9c32 100644
--- a/indra/newview/llcallfloater.h
+++ b/indra/newview/llcallfloater.h
@@ -35,6 +35,7 @@
#define LL_LLCALLFLOATER_H
#include "lldockablefloater.h"
+#include "llvoicechannel.h"
#include "llvoiceclient.h"
class LLAvatarList;
@@ -192,6 +193,28 @@ private:
*/
bool validateSpeaker(const LLUUID& speaker_id);
+ /**
+ * Connects to passed channel to be updated according to channel's voice states.
+ */
+ void connectToChannel(LLVoiceChannel* channel);
+
+ /**
+ * Callback to process changing of voice channel's states.
+ */
+ void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state);
+
+ /**
+ * Updates floater according to passed channel's voice state.
+ */
+ void updateState(const LLVoiceChannel::EState& new_state);
+
+ /**
+ * Resets floater to be ready to show voice participants.
+ *
+ * Clears all data from the latest voice session.
+ */
+ void reset();
+
private:
speaker_state_map_t mSpeakerStateMap;
LLSpeakerMgr* mSpeakerManager;
@@ -242,6 +265,16 @@ private:
timers_map mVoiceLeftTimersMap;
S32 mVoiceLeftRemoveDelay;
+
+ /**
+ * Stores reference to current voice channel.
+ *
+ * Is used to ignore voice channel changed callback for the same channel.
+ *
+ * @see sOnCurrentChannelChanged()
+ */
+ static LLVoiceChannel* sCurrentVoiceCanel;
+ boost::signals2::connection mVoiceChannelStateChangeConnection;
};