/// <summary> /// Parse TS_PLAY_SOUND_PDU_DATA /// (parser index is updated according to parsed length) /// </summary> /// <param name="data">data to be parsed</param> /// <param name="currentIndex">current parser index</param> /// <returns>TS_PLAY_SOUND_PDU_DATA</returns> private TS_PLAY_SOUND_PDU_DATA ParseTsPlaySoundPduData(byte[] data, ref int currentIndex) { TS_PLAY_SOUND_PDU_DATA pdu = new TS_PLAY_SOUND_PDU_DATA(); // TS_PLAY_SOUND_PDU_DATA: shareDataHeader pdu.shareDataHeader = ParseTsShareDataHeader(data, ref currentIndex); // TS_PLAY_SOUND_PDU_DATA: duration pdu.duration = ParseUInt32(data, ref currentIndex, false); // TS_PLAY_SOUND_PDU_DATA: frequency pdu.frequency = ParseUInt32(data, ref currentIndex, false); return pdu; }
private byte[] EncodePlaySoundData(TS_PLAY_SOUND_PDU_DATA playSoundPduData) { List<byte> dataBuffer = new List<byte>(); RdpbcgrEncoder.EncodeStructure(dataBuffer, playSoundPduData.shareDataHeader); RdpbcgrEncoder.EncodeStructure(dataBuffer, playSoundPduData.duration); RdpbcgrEncoder.EncodeStructure(dataBuffer, playSoundPduData.frequency); return dataBuffer.ToArray(); }