示例#1
0
 public async void Send(OscPacket packet)
 {
     if (Host != null && Port != null)
     {
         await Send(packet, Host, Port.Value);
     }
     else
     {
         throw new InvalidOperationException("No destination was supplied");
     }
 }
示例#2
0
        public static new OscBundle Parse(BinaryReader reader)
        {
            OscString  bundleString = OscString.Parse(reader);
            OscTimeTag timeTag      = OscTimeTag.Parse(reader);

            List <OscPacket> contents = new List <OscPacket>();

            while (reader.BaseStream.Position < reader.BaseStream.Length)
            {
                OscInt    size   = OscInt.Parse(reader);
                OscPacket packet = OscPacket.Parse(reader);
                contents.Add(packet);
            }

            return(new OscBundle(timeTag.Contents, contents));
        }
示例#3
0
        public OscReceiver()
        {
            AddressOnMessageReceived = new Dictionary <string, EventHandler <OSCMessageReceivedArgs> >();
            receiver = new UdpSocketReceiver();

            receiver.MessageReceived += (sender, args) =>
            {
                OscPacket packet = OscPacket.Parse(args.ByteData);
                if (packet is OscBundle)
                {
                    OscBundle bundle = packet as OscBundle;
                    OnBundleReceived(bundle, args.RemoteAddress);
                }
                else
                {
                    OscMessage message = packet as OscMessage;
                    OnMessageReceived(message, args.RemoteAddress);
                }
            };
        }
示例#4
0
 public async Task Send(OscPacket packet, string hostname, int port)
 {
     await sender.SendToAsync(packet.Bytes, packet.Bytes.Length, hostname, port);
 }