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

EncodeSurfCmds() private method

private EncodeSurfCmds ( TS_FP_SURFCMDS surfCmdsData ) : byte[]
surfCmdsData TS_FP_SURFCMDS
return byte[]
        private byte[] EncodeSurfCmds(TS_FP_SURFCMDS surfCmdsData)
        {
            List<byte> totalBuffer = new List<byte>();
            List<byte> buffer = new List<byte>();

            if (surfCmdsData.surfaceCommands != null)
            {
                for (int i = 0; i < surfCmdsData.surfaceCommands.Length; ++i)
                {
                    if (surfCmdsData.surfaceCommands[i].GetType() == typeof(TS_SURFCMD_SET_SURF_BITS))
                    {
                        RdpbcgrEncoder.EncodeBytes(
                            buffer, EncodeSurfBits((TS_SURFCMD_SET_SURF_BITS)surfCmdsData.surfaceCommands[i]));
                    }
                    else if (surfCmdsData.surfaceCommands[i].GetType() == typeof(TS_SURFCMD_STREAM_SURF_BITS))
                    {
                        RdpbcgrEncoder.EncodeBytes(
                            buffer, EncodeSurfStream((TS_SURFCMD_STREAM_SURF_BITS)surfCmdsData.surfaceCommands[i]));
                    }
                    else
                    {
                        RdpbcgrEncoder.EncodeBytes(
                            buffer, EncodeSurfFrameMaker((TS_FRAME_MARKER)surfCmdsData.surfaceCommands[i]));
                    }

                }
            }

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

            return totalBuffer.ToArray();
        }