override protected void pack() { List <byte> data = new List <byte>(); oscString oAddress = this.address; oscDateTime oTimestamp = this.timestamp; addBytes(data, oAddress.pack()); padNull(data); addBytes(data, oTimestamp.pack()); // fixed point, 8 bytes padNull(data); foreach (OSCPacket oscPacket in this.Values) { if (oscPacket != null) { byte[] bs = oscPacket.BinaryData; oscInt len = bs.Length; addBytes(data, len.pack()); addBytes(data, bs); } else { // TODO } } this.binaryData = (byte[])data.ToArray(); }
public static oscStream unpack(byte[] bytes, ref int start) { oscInt length = (oscInt)oscInt.unpack(bytes, ref start); byte[] buffer = new byte[length]; Array.Copy(bytes, start, buffer, 0, length); start += length; start = (start + 3) / 4 * 4; return((oscStream) new MemoryStream(buffer)); }
public byte[] pack() { var mem = new MemoryStream(); value.Seek(0, SeekOrigin.Begin); value.CopyTo(mem); byte[] valueData = mem.ToArray(); var lData = new List <byte>(); oscInt i = valueData.Length; var length = i.pack(); lData.AddRange(length); lData.AddRange(valueData); return((byte[])lData.ToArray()); }