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; }
public new BinList Clone() { var clone = new BinList(); clone.AssignFrom(this); return clone; }
public new BinList Clone() { BinList c = new BinList(); c.AssignFrom(this); return c; }
public new BinList Clone() { var clone = new BinList(); clone.AssignFrom(this); return(clone); }
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; }