Beispiel #1
0
 void PersonalMessageReceivedDelegate(BasicMumbleProtocol proto, PersonalMessage message)
 {
     tbLog.BeginInvoke((MethodInvoker)(() =>
     {
         tbLog.AppendText(string.Format("[{0:HH:mm:ss}] {1} to you: {2}\n", DateTime.Now, message.Sender.Name, message.Text));
     }));
 }
Beispiel #2
0
 void ServerConfigDelegate(BasicMumbleProtocol proto, MumbleProto.ServerConfig serverConfig)
 {
     tbLog.BeginInvoke((MethodInvoker)(() =>
     {
         tbLog.AppendText(string.Format("{0}\n", serverConfig.WelcomeText));
     }));
 }
Beispiel #3
0
        void ChannelJoinedDelegate(BasicMumbleProtocol proto, Channel channel)
        {
            TreeNode <ChannelInfo> channelNode = null;

            if (tvUsers.Nodes.Count > 0)
            {
                channelNode = (TreeNode <ChannelInfo>)GetChannelNode(channel.Id, tvUsers.Nodes[0]);
            }

            if (channelNode == null)
            {
                channelNode = (TreeNode <ChannelInfo>)MakeChannelNode(channel);

                TreeNode <ChannelInfo> channeParentlNode = null;
                if (channel.Id > 0)
                {
                    if (tvUsers.Nodes.Count > 0)
                    {
                        channeParentlNode = (TreeNode <ChannelInfo>)GetChannelNode(channel.Parent, tvUsers.Nodes[0]);
                    }
                }

                if (channeParentlNode == null)
                {
                    tvUsers.Nodes.Add(channelNode);
                }
                else
                {
                    channeParentlNode.Nodes.Add(channelNode);
                }
            }
        }
Beispiel #4
0
        //--------------------------

        void EncodedVoiceDelegate(BasicMumbleProtocol proto, byte[] data, uint userId, long sequence, MumbleSharp.Audio.Codecs.IVoiceCodec codec, MumbleSharp.Audio.SpeechTarget target)
        {
            User user = proto.Users.FirstOrDefault(u => u.Id == userId);

            AddPlayback(user);

            TreeNode <UserInfo> userNode = null;

            foreach (TreeNode <ChannelInfo> chanelNode in tvUsers.Nodes)
            {
                foreach (TreeNode <UserInfo> subNode in chanelNode.Nodes.OfType <TreeNode <UserInfo> >())
                {
                    if (subNode.Value.Id == user.Id)
                    {
                        userNode = (TreeNode <UserInfo>)subNode;
                    }
                }

                if (userNode != null)
                {
                    break;
                }
            }

            if (userNode != null)
            {
                tvUsers.AddNotifyingNode(userNode, " [SPEAK]", TimeSpan.FromMilliseconds(500));
            }
        }
Beispiel #5
0
        //--------------------------

        void EncodedVoiceDelegate(BasicMumbleProtocol proto, byte[] data, uint userId, long sequence, MumbleSharp.Audio.Codecs.IVoiceCodec codec, MumbleSharp.Audio.SpeechTarget target)
        {
            User user = proto.Users.FirstOrDefault(u => u.Id == userId);
            TreeNode <UserInfo> userNode = null;

            foreach (TreeNode <ChannelInfo> chanelNode in tvUsers.Nodes)
            {
                foreach (TreeNode <UserInfo> subNode in chanelNode.Nodes)
                {
                    if (subNode.Value.Id == user.Id)
                    {
                        userNode = subNode;
                    }
                }

                if (userNode != null)
                {
                    break;
                }
            }

            if (userNode != null)
            {
                //userNode.BeginInvoke((MethodInvoker)(() =>
                //    {
                //        userNode.Text = user.Name + " [SPEAK]";
                //    }));
            }
        }
Beispiel #6
0
 void ChannelMessageReceivedDelegate(BasicMumbleProtocol proto, ChannelMessage message)
 {
     if (message.Channel.Equals(proto.LocalUser.Channel))
     {
         tbLog.BeginInvoke((MethodInvoker)(() =>
         {
             tbLog.AppendText(string.Format("[{0:HH:mm:ss}] {1} to {2}: {3}\n", DateTime.Now, message.Sender.Name, message.Channel.Name, message.Text));
         }));
     }
 }
Beispiel #7
0
        void UserJoinedDelegate(BasicMumbleProtocol proto, User user)
        {
            TreeNode <UserInfo> userNode = null;

            if (tvUsers.Nodes.Count > 0)
            {
                userNode = (TreeNode <UserInfo>)GetUserNode(user.Id, tvUsers.Nodes[0]);
            }

            if (userNode == null)
            {
                userNode = (TreeNode <UserInfo>)MakeUserNode(user);

                TreeNode channelNode = GetChannelNode(user.Channel.Id, tvUsers.Nodes[0]);
                if (channelNode == null)
                {
                    channelNode = MakeChannelNode(user.Channel);

                    TreeNode parentChannelNode = GetChannelNode(user.Channel.Parent, tvUsers.Nodes[0]);
                    parentChannelNode.Nodes.Add(channelNode);
                }
                channelNode.Nodes.Add(userNode);
            }
            else
            {
                if (userNode.Value.Channel != user.Channel.Id)
                {
                    TreeNode channelNode = GetChannelNode(userNode.Value.Channel, tvUsers.Nodes[0]);
                    channelNode.Nodes.Remove(userNode);

                    channelNode = GetChannelNode(user.Channel.Id, tvUsers.Nodes[0]);
                    channelNode.Nodes.Add(userNode);
                }

                userNode.Value = GetUserInfo(user);
            }

            if (!_players.ContainsKey(user))
            {
                _players.Add(user, new AudioPlayer(user.Voice));
            }
            else
            {
                _players[user] = new AudioPlayer(user.Voice);
            }
        }
Beispiel #8
0
        public Form1()
        {
            InitializeComponent();

            connection = new MumbleConnection("mumble.placeholder-software.co.uk", 64738);
            protocol   = connection.Connect <BasicMumbleProtocol>("testuser", "", "mumble.placeholder-software.co.uk");
            protocol.MessageRecieved += Protocol_MessageRecieved;
            while (connection.Protocol.LocalUser == null)
            {
                connection.Process();
            }

            Dictionary <uint, ChannelTree> channels = new Dictionary <uint, ChannelTree>();

            foreach (var channel in protocol.Channels)
            {
                channels.Add(channel.Id, new ChannelTree(channel));
            }
            foreach (var channelTree in channels.Values)
            {
                if (channelTree.Channel.Id != 0)
                {
                    channelTree.Parent = channels[channelTree.Channel.Parent];
                    channelTree.Parent.Children.Add(channelTree);
                }
            }
            foreach (var user in protocol.Users)
            {
                channels[user.Channel.Id].Users.Add(user);
            }
            ChannelTree RootChannel = channels[0];

            tvUsers.Nodes.Add(MakeNode(RootChannel));
            tvUsers.ExpandAll();

            //MessageBox.Show("Connected as " + connection.Protocol.LocalUser.Id);
        }
Beispiel #9
0
        void UserLeftDelegate(BasicMumbleProtocol proto, User user)
        {
            DeleteUserNode(user.Id, tvUsers.Nodes[0]);

            SpeakerPlayback.RemovePlayer(user.Id);
        }
Beispiel #10
0
 void ChannelLeftDelegate(BasicMumbleProtocol proto, Channel channel)
 {
     DeleteChannelNode(channel.Id, tvUsers.Nodes[0]);
 }
Beispiel #11
0
        void UserLeftDelegate(BasicMumbleProtocol proto, User user)
        {
            DeleteUserNode(user.Id, tvUsers.Nodes[0]);

            _players.Remove(user);
        }