Exemple #1
0
 protected void OnWisperTalkStatusChanged(TalkStatusEventArgsBase args)
 {
     if (WisperTalkStatusChanged != null)
     {
         WisperTalkStatusChanged(this, args);
     }
 }
Exemple #2
0
 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 + " ";
                }
            }
        }
Exemple #4
0
 private void Notifications_ChannelTalkStatusChanged(object sender, TalkStatusEventArgsBase e)
 {
     LogTextBox.AppendText(e.GetDumpString());
     LogTextBox.ScrollToEnd();
 }