Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 public int GetPacketBody(byte[] buff)
 {
     return(ArrayUtility.CopyByteArray(buff, 0, this.packet, PACKET_HEADER_SIZE, this.getDataSize() + PACKET_HEADER_SIZE));
 }
Beispiel #3
0
 public void SetPacket(byte[] buff)
 {
     ArrayUtility.CopyByteArray(this.packet, 0, buff, 0, buff.Length);
 }