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
}
}