예제 #1
0
 public OscMessage(string address, params object[] values)
 {
     Address   = new OscString(address);
     Arguments = new List <IOscValue>();
     foreach (object obj in values)
     {
         if (obj is IOscValue)
         {
             Arguments.Add(obj as IOscValue);
         }
         else
         {
             Arguments.Add(OscValue.Wrap(obj));
         }
     }
     Bytes = GetBytes();
 }
예제 #2
0
        public static new OscMessage Parse(BinaryReader reader)
        {
            OscString address  = OscString.Parse(reader);
            OscString typeTags = OscString.Parse(reader);

            int valueCount          = typeTags.Contents.Length - 1;
            List <IOscValue> values = new List <IOscValue>();

            foreach (char current in typeTags.Contents.Substring(1))
            {
                IOscValue value = OscValue.Parse(current, reader);

                values.Add(value);
            }

            return(new OscMessage(address.Contents, values));
        }
예제 #3
0
        public void SendAndReceiveMessage()
        {
            using (var server = new OscServer(9001, new IPEndPoint(IPAddress.Any, 0)))
                using (var client = new OscClient(new IPEndPoint(IPAddress.Loopback, 9001)))
                {
                    var method = new OscMethod(new OscAddress("/abc"), Callback);

                    server.AddMethods(method);
                    server.Start();

                    var addressPattern = new OscAddressPattern("/abc");
                    var arguments      = new OscValue[] { new OscString("Hello World.") };
                    var message        = new OscMessage(addressPattern, arguments);

                    client.Send(message);

                    Thread.Sleep(100);
                }

            Assert.True(messageReceived);
        }