Пример #1
0
        public static T TestOSCValueParser <T>(T value, Func <BinaryReader, IOSCValue <T> > parser)
        {
            IOSCValue <T> val    = OSCValue.Wrap(value) as IOSCValue <T>;
            BinaryReader  reader = new BinaryReader(new MemoryStream(val.Bytes));
            IOSCValue <T> parsed = parser.Invoke(reader);

            Assert.Equal(reader.BaseStream.Position, reader.BaseStream.Length);
            return(parsed.Contents);
        }
Пример #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));
        }