コード例 #1
0
				public byte DecodeNormal(RangeCoderDecoder rangeDecoder)
				{
					uint symbol = 1;
					do
						symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
					while (symbol < 0x100);
					return (byte)symbol;
				}
コード例 #2
0
ファイル: LzmaDecoder.cs プロジェクト: xuan2261/DotNetPatcher
            public byte DecodeNormal(RangeCoderDecoder rangeDecoder)
            {
                uint symbol = 1;

                do
                {
                    symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
                }while (symbol < 0x100);
                return((byte)symbol);
            }
コード例 #3
0
			public uint Decode(RangeCoderDecoder rangeDecoder, uint posState)
			{
				if (m_Choice.Decode(rangeDecoder) == 0)
					return m_LowCoder[posState].Decode(rangeDecoder);
				else
				{
					uint symbol = LZMABase.kNumLowLenSymbols;
					if (m_Choice2.Decode(rangeDecoder) == 0)
						symbol += m_MidCoder[posState].Decode(rangeDecoder);
					else
					{
						symbol += LZMABase.kNumMidLenSymbols;
						symbol += m_HighCoder.Decode(rangeDecoder);
					}
					return symbol;
				}
			}
コード例 #4
0
				public byte DecodeWithMatchByte(RangeCoderDecoder rangeDecoder, byte matchByte)
				{
					uint symbol = 1;
					do
					{
						uint matchBit = (uint)(matchByte >> 7) & 1;
						matchByte <<= 1;
						uint bit = m_Decoders[((1 + matchBit) << 8) + symbol].Decode(rangeDecoder);
						symbol = (symbol << 1) | bit;
						if (matchBit != bit)
						{
							while (symbol < 0x100)
								symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
							break;
						}
					}
					while (symbol < 0x100);
					return (byte)symbol;
				}
コード例 #5
0
ファイル: LzmaDecoder.cs プロジェクト: xuan2261/DotNetPatcher
            public byte DecodeWithMatchByte(RangeCoderDecoder rangeDecoder, byte matchByte)
            {
                uint symbol = 1;

                do
                {
                    uint matchBit = (uint)(matchByte >> 7) & 1;
                    matchByte <<= 1;
                    uint bit = m_Decoders[((1 + matchBit) << 8) + symbol].Decode(rangeDecoder);
                    symbol = (symbol << 1) | bit;
                    if (matchBit != bit)
                    {
                        while (symbol < 0x100)
                        {
                            symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
                        }
                        break;
                    }
                }while (symbol < 0x100);
                return((byte)symbol);
            }
コード例 #6
0
ファイル: LzmaDecoder.cs プロジェクト: xuan2261/DotNetPatcher
 public uint Decode(RangeCoderDecoder rangeDecoder, uint posState)
 {
     if (m_Choice.Decode(rangeDecoder) == 0)
     {
         return(m_LowCoder[posState].Decode(rangeDecoder));
     }
     else
     {
         uint symbol = LZMABase.kNumLowLenSymbols;
         if (m_Choice2.Decode(rangeDecoder) == 0)
         {
             symbol += m_MidCoder[posState].Decode(rangeDecoder);
         }
         else
         {
             symbol += LZMABase.kNumMidLenSymbols;
             symbol += m_HighCoder.Decode(rangeDecoder);
         }
         return(symbol);
     }
 }
コード例 #7
0
ファイル: LzmaDecoder.cs プロジェクト: xuan2261/DotNetPatcher
 public byte DecodeWithMatchByte(RangeCoderDecoder rangeDecoder, uint pos, byte prevByte, byte matchByte)
 {
     return(m_Coders[GetState(pos, prevByte)].DecodeWithMatchByte(rangeDecoder, matchByte));
 }
コード例 #8
0
ファイル: LzmaDecoder.cs プロジェクト: xuan2261/DotNetPatcher
 public byte DecodeNormal(RangeCoderDecoder rangeDecoder, uint pos, byte prevByte)
 {
     return(m_Coders[GetState(pos, prevByte)].DecodeNormal(rangeDecoder));
 }
コード例 #9
0
			public byte DecodeWithMatchByte(RangeCoderDecoder rangeDecoder, uint pos, byte prevByte, byte matchByte)
			{ return m_Coders[GetState(pos, prevByte)].DecodeWithMatchByte(rangeDecoder, matchByte); }
コード例 #10
0
			public byte DecodeNormal(RangeCoderDecoder rangeDecoder, uint pos, byte prevByte)
			{ return m_Coders[GetState(pos, prevByte)].DecodeNormal(rangeDecoder); }