Example #1
0
        public static Message FromOSC(Stream stream)
        {
            var ms = new MemoryStream();
            stream.CopyTo(ms);
            var bytes = ms.ToArray();
            var start = 0;
            var bundle = OSCBundle.Unpack(bytes, ref start, (int)stream.Length);

            var message = new Message();

            foreach (OSCMessage m in bundle.Values)
            {
                var binList = new BinList();
                binList.AssignFrom(m.Values); // does not clone implicitly

                var address = m.Address.Split('/');
                var name = address[address.Length - 1];
                address[address.Length - 1] = "";
                var messageAddress = "";

                foreach (var part in address)
                {
                    if (part.Trim() != "") messageAddress += "." + part;
                }

                message.Address = messageAddress.Substring(1);
                message[name] = binList;
            }

            return message;
        }
Example #2
0
        public new BinList Clone()
        {
            var clone = new BinList();
            clone.AssignFrom(this);

            return clone;
        }
Example #3
0
        public new BinList Clone()
        {
            BinList c = new BinList();
            c.AssignFrom(this);

            return c;
        }
Example #4
0
        public new BinList Clone()
        {
            var clone = new BinList();

            clone.AssignFrom(this);

            return(clone);
        }
Example #5
0
        public static Message FromOSC(Stream stream)
        {
            MemoryStream ms = new MemoryStream();
            stream.CopyTo(ms);
            byte[] bytes = ms.ToArray();
            int start = 0;
            OSCBundle bundle = OSCBundle.Unpack(bytes, ref start, (int)stream.Length);

            Message message = new Message();

            //			yet unsupported:
            //			message.TimeStamp = DateTime.FromFileTime(bundle.getTimeStamp());
            foreach (OSCMessage m in bundle.Values) {
                BinList bl = new BinList();

                bl.AssignFrom(m.Values); // does not clone implicitly

                string[] address = m.Address.Split('/');
                string name = address[address.Length-1];
                address[address.Length-1] = "";

                string messageAddress = "";
                foreach (string part in address) {
                    if (part.Trim() != "") messageAddress += "."+part;
                }
                message.Address = messageAddress.Substring(1);
                message[name] = bl;
            }
            return message;
        }