namespace ICSharpCode.SharpZipLib.Lzw
{
	/// 
	/// This class contains constants used for LZW
	/// 
	sealed public class LzwConstants
	{
		/// 
		/// Magic number found at start of LZW header: 0x1f 0x9d
		/// 
		public const int MAGIC = 0x1f9d;
		/// 
		/// Maximum number of bits per code
		/// 
		public const int MAX_BITS = 16;
		/* 3rd header byte:
         * bit 0..4 Number of compression bits
         * bit 5    Extended header
         * bit 6    Free
         * bit 7    Block mode
         */
		/// 
		/// Mask for 'number of compression bits'
		/// 
		public const int BIT_MASK = 0x1f;
		/// 
		/// Indicates the presence of a fourth header byte
		/// 
		public const int EXTENDED_MASK = 0x20;
		//public const int FREE_MASK      = 0x40;
		/// 
		/// Reserved bits
		/// 
		public const int RESERVED_MASK = 0x60;
		/// 
		/// Block compression: if table is full and compression rate is dropping,
		/// clear the dictionary.
		/// 
		public const int BLOCK_MODE_MASK = 0x80;
		/// 
		/// LZW file header size (in bytes)
		/// 
		public const int HDR_SIZE = 3;
		/// 
		/// Initial number of bits per code
		/// 
		public const int INIT_BITS = 9;
		LzwConstants()
		{
		}
	}
}