ICSharpCode.SharpZipLib.Zip.Compression.DeflaterHuffman.Tree.WriteSymbol C# (CSharp) Method

WriteSymbol() public method

public WriteSymbol ( int code ) : void
code int
return void
            public void WriteSymbol(int code)
            {
                //				if (DeflaterConstants.DEBUGGING) {
                //					freqs[code]--;
                //					//  	  Console.Write("writeSymbol("+freqs.length+","+code+"): ");
                //				}
                dh.pending.WriteBits(codes[code] & 0xffff, length[code]);
            }

Usage Example

            public void WriteTree(DeflaterHuffman.Tree blTree)
            {
                int num = -1;
                int i   = 0;

                while (i < this.numCodes)
                {
                    int num2 = 1;
                    int num3 = (int)this.length[i];
                    int num4;
                    int num5;
                    if (num3 == 0)
                    {
                        num4 = 138;
                        num5 = 3;
                    }
                    else
                    {
                        num4 = 6;
                        num5 = 3;
                        if (num != num3)
                        {
                            blTree.WriteSymbol(num3);
                            num2 = 0;
                        }
                    }
                    num = num3;
                    i++;
                    while (i < this.numCodes && num == (int)this.length[i])
                    {
                        i++;
                        if (++num2 >= num4)
                        {
                            break;
                        }
                    }
                    if (num2 < num5)
                    {
                        while (num2-- > 0)
                        {
                            blTree.WriteSymbol(num);
                        }
                    }
                    else if (num != 0)
                    {
                        blTree.WriteSymbol(16);
                        this.dh.pending.WriteBits(num2 - 3, 2);
                    }
                    else if (num2 <= 10)
                    {
                        blTree.WriteSymbol(17);
                        this.dh.pending.WriteBits(num2 - 3, 3);
                    }
                    else
                    {
                        blTree.WriteSymbol(18);
                        this.dh.pending.WriteBits(num2 - 11, 7);
                    }
                }
            }
All Usage Examples Of ICSharpCode.SharpZipLib.Zip.Compression.DeflaterHuffman.Tree::WriteSymbol