/// <summary> /// Create packet that contain raw audio data into buffer. /// </summary> /// <param name="buff">buffer to load the packet</param> /// <param name="chat_room_index">index of chat room</param> /// <param name="data">audio data</param> /// <param name="data_size">size of audio data</param> /// <returns>size of packet</returns> public static int CreateAudioPacket(byte[] buff, int chat_room_index, byte[] data, int data_size) { if (buff == null || data == null) { throw new ArgumentNullException(); } if (buff.Length < data_size + PACKET_HEADER_SIZE) { return(-1); } int packet_size = 0; ArrayUtility.ZeroByteArray(buff); buff[0] = (byte)Commands.AudioData; buff[1] = (byte)chat_room_index; packet_size += 2; byte[] data_size_num_to_bytes = BitConverter.GetBytes(data_size); packet_size += ArrayUtility.CopyByteArray( buff, packet_size, data_size_num_to_bytes, 0, data_size_num_to_bytes.Length ); packet_size += ArrayUtility.CopyByteArray(buff, packet_size, data, 0, data_size); return(packet_size); }
public int GetPacketBody(byte[] buff) { return(ArrayUtility.CopyByteArray(buff, 0, this.packet, PACKET_HEADER_SIZE, this.getDataSize() + PACKET_HEADER_SIZE)); }
public void SetPacket(byte[] buff) { ArrayUtility.CopyByteArray(this.packet, 0, buff, 0, buff.Length); }