/// <summary> /// Serialize the packet. /// </summary> /// <returns>The newly serialized packet.</returns> public override byte[] ToByteArray() { List <byte> data = new List <byte>(); data.AddRange(OscPacket.ValueToByteArray(mAddress)); OscPacket.PadNull(data); data.AddRange(OscPacket.ValueToByteArray(mTypeTag)); OscPacket.PadNull(data); foreach (object value in mData) { byte[] bytes = OscPacket.ValueToByteArray(value); if (bytes != null) { data.AddRange(bytes); if (value is string || value is byte[]) { OscPacket.PadNull(data); } } } return(data.ToArray()); }
/// <summary> /// Serialize the packet. /// </summary> /// <returns>The newly serialized packet.</returns> public override byte[] ToByteArray() { List <byte> data = new List <byte>(); data.AddRange(OscPacket.ValueToByteArray(mAddress)); OscPacket.PadNull(data); data.AddRange(OscPacket.ValueToByteArray(TimeStamp)); foreach (object value in mData) { if ((value is OscPacket)) { byte[] packetBytes = ((OscPacket)value).ToByteArray(); Assert.IsTrue(packetBytes.Length % 4 == 0); data.AddRange(OscPacket.ValueToByteArray(packetBytes.Length)); data.AddRange(packetBytes); } } return(data.ToArray()); }
/// <summary> /// Send an OscPacket over the connection. /// </summary> /// <param name="packet">The <see cref="OscPacket"/> to send.</param> public void Send(OscPacket packet) { byte[] packetData = packet.ToByteArray(); Connection.Writer.Write(OscPacket.ValueToByteArray(packetData)); }