Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpbcgr.TS_FP_UPDATE_PDU.EncodePalette C# (CSharp) Method

EncodePalette() private method

private EncodePalette ( TS_FP_UPDATE_PALETTE paletteData ) : byte[]
paletteData TS_FP_UPDATE_PALETTE
return byte[]
        private byte[] EncodePalette(TS_FP_UPDATE_PALETTE paletteData)
        {
            List<byte> totalBuffer = new List<byte>();

            List<byte> buffer = new List<byte>();
            RdpbcgrEncoder.EncodeStructure(buffer, (ushort)paletteData.paletteUpdateData.updateType);
            RdpbcgrEncoder.EncodeStructure(buffer, paletteData.paletteUpdateData.pad2Octets);
            RdpbcgrEncoder.EncodeStructure(buffer, paletteData.paletteUpdateData.numberColors);
            if (paletteData.paletteUpdateData.paletteEntries != null)
            {
                for (int i = 0; i < paletteData.paletteUpdateData.paletteEntries.Length; ++i)
                {
                    RdpbcgrEncoder.EncodeStructure(buffer, paletteData.paletteUpdateData.paletteEntries[i].red);
                    RdpbcgrEncoder.EncodeStructure(buffer, paletteData.paletteUpdateData.paletteEntries[i].green);
                    RdpbcgrEncoder.EncodeStructure(buffer, paletteData.paletteUpdateData.paletteEntries[i].blue);
                }
            }

            if (paletteData.compressionFlags != compressedType_Values.None)
            {
                RdpbcgrEncoder.EncodeBytes(
                    totalBuffer, serverSessionContext.Compress(paletteData.compressionFlags, buffer.ToArray()));
            }
            else
            {
                RdpbcgrEncoder.EncodeBytes(totalBuffer, buffer.ToArray());
            }
            return totalBuffer.ToArray();
        }