protected void OnWisperTalkStatusChanged(TalkStatusEventArgsBase args) { if (WisperTalkStatusChanged != null) { WisperTalkStatusChanged(this, args); } }
protected void OnChannelTalkStatusChanged(TalkStatusEventArgsBase args) { if (ChannelTalkStatusChanged != null) { ChannelTalkStatusChanged(this, args); } }
private void Notifications_ChannelTalkStatusChanged(object sender, TalkStatusEventArgsBase e) { lock (ThreadLocker) { StringBuilder debugchannels = new StringBuilder(); StringBuilder debugTalking = new StringBuilder(); //API.Log(API.LogType.Debug, "Teamspeak.ddl: ChannelTalkStatusEvent" + e.ClientId + " " + e.TalkStatus); bool found = talking.ContainsKey(e.ClientId); if (found) { if (e.TalkStatus == TalkStatus.TalkFinished) { talking.Remove(e.ClientId); } } else { if (e.TalkStatus == TalkStatus.TalkStarted) { if (ChannelClientList.ContainsKey(e.ClientId)) { talking.Add(e.ClientId, ChannelClientList[e.ClientId].Nickname); } else { //this means someone in your channel is not in the channelClientList but is talking //-> ChannelClientList is not complete API.Log(API.LogType.Debug, "Teamspeak.ddl: Talking client not in ChannelList " + e.ClientId + "\r\n" + debugchannels.ToString()); if (ThreadPool.QueueUserWorkItem(new WaitCallback(updateOutput))) { API.Log(API.LogType.Debug, "Teamspeak.ddl: Talking UpdateOutput queued, searching for phantom user"); } else { API.Log(API.LogType.Debug, "Teamspeak.ddl: Talking Failed to queue UpdateOutput"); } } } } WhoIsTalking = ""; foreach (KeyValuePair <uint, string> kvp in talking) { WhoIsTalking += kvp.Value + " "; } } }
private void Notifications_ChannelTalkStatusChanged(object sender, TalkStatusEventArgsBase e) { LogTextBox.AppendText(e.GetDumpString()); LogTextBox.ScrollToEnd(); }