/// <summary> /// Deserialize the packet. /// </summary> /// <param name="sourceEndPoint">The packet origin.</param> /// <param name="data">The serialized packet.</param> /// <param name="start">The starting index into the serialized data stream.</param> /// <param name="end">The ending index into the serialized data stream.</param> /// <returns>The newly deserialized packet.</returns> public static new OscBundle FromByteArray(IPEndPoint sourceEndPoint, byte[] data, ref int start, int end) { string address = OscPacket.ValueFromByteArray <string>(data, ref start); Assert.IsTrue(address == BundlePrefix); OscTimeTag timeStamp = OscPacket.ValueFromByteArray <OscTimeTag>(data, ref start); OscBundle bundle = new OscBundle(sourceEndPoint, timeStamp); while (start < end) { int length = OscPacket.ValueFromByteArray <int>(data, ref start); int packetEnd = start + length; bundle.Append(OscPacket.FromByteArray(sourceEndPoint, data, ref start, packetEnd)); } return(bundle); }