using BurnOutSharp.Models.Compression.Quantum; namespace BurnOutSharp.Compression.Quantum { /// public class State { /// /// The actual decoding window /// public byte[] Window; /// /// Window size (1Kb through 2Mb) /// public uint WindowSize; /// /// Window size when it was first allocated /// public uint ActualSize; /// /// Current offset within the window /// public uint WindowPosition; #region Models /// /// Model for Model 4 /// public Model Model4; /// /// Model for Model 5 /// public Model Model5; /// /// Model for Model 6 Position /// public Model Model6Position; /// /// Model for Model 6 Length /// public Model Model6Length; /// /// Model for Model 7 /// public Model Model7; /// /// Model for Model 7, Submodel 00 /// public Model Model7Submodel00; /// /// Model for Model 7, Submodel 40 /// public Model Model7Submodel40; /// /// Model for Model 7, Submodel 80 /// public Model Model7Submodel80; /// /// Model for Model 7, Submodel C0 /// public Model Model7SubmodelC0; #endregion #region Symbol Tables /// /// Symbol table for Model 4 /// public ModelSymbol[] Model4Symbols = new ModelSymbol[0x18 + 1]; /// /// Symbol table for Model 5 /// public ModelSymbol[] Model5Symbols = new ModelSymbol[0x24 + 1]; /// /// Symbol table for Model 6 Position /// public ModelSymbol[] Model6PositionSymbols = new ModelSymbol[0x2a + 1]; /// /// Symbol table for Model 6 Length /// public ModelSymbol[] Model6LengthSymbols = new ModelSymbol[0x1b + 1]; /// /// Symbol table for Model 7 /// public ModelSymbol[] Model7Symbols = new ModelSymbol[7 + 1]; /// /// Symbol table for Model 7, Submodel 00 /// public ModelSymbol[] Model7Submodel00Symbols = new ModelSymbol[0x40 + 1]; /// /// Symbol table for Model 7, Submodel 40 /// public ModelSymbol[] Model7Submodel40Symbols = new ModelSymbol[0x40 + 1]; /// /// Symbol table for Model 7, Submodel 80 /// public ModelSymbol[] Model7Submodel80Symbols = new ModelSymbol[0x40 + 1]; /// /// Symbol table for Model 7, Submodel C0 /// public ModelSymbol[] Model7SubmodelC0Symbols = new ModelSymbol[0x40 + 1]; #endregion #region Decompression Tables /// /// XXXXX /// public byte[] q_length_base = new byte[27]; /// /// XXXXX /// public byte[] q_length_extra = new byte[27]; /// /// XXXXX /// public byte[] q_extra_bits = new byte[42]; /// /// XXXXX /// public uint[] q_position_base = new uint[42]; #endregion } }