From c1d231db608dd4bff71cb8b5abdf0b5c3491f5c7 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 28 Dec 2022 09:47:25 -0800 Subject: [PATCH] Create Compression models subfolder --- .../LZX/AlignedOffsetBlock.cs | 2 +- .../LZX/BlockHeader.cs | 4 +- BurnOutSharp.Models/Compression/LZX/Enums.cs | 48 ++++++++ .../LZX/Header.cs | 2 +- .../LZX/UncompressedBlock.cs | 2 +- .../LZX/VerbatimBlock.cs | 2 +- .../MSZIP/BlockHeader.cs | 2 +- .../MSZIP/CompressedBlockHeader.cs | 2 +- .../MSZIP/DeflateBlockHeader.cs | 4 +- .../DynamicHuffmanCompressedBlockHeader.cs | 2 +- .../Compression/MSZIP/Enums.cs | 25 ++++ .../FixedHuffmanCompressedBlockHeader.cs | 2 +- .../MSZIP/IBlockDataHeader.cs | 2 +- .../MSZIP/NonCompressedBlockHeader.cs | 2 +- .../Quantum/Archive.cs | 2 +- .../Compression/Quantum/Enums.cs | 45 +++++++ .../Quantum/FileDescriptor.cs | 2 +- .../Quantum/Model.cs | 2 +- .../Quantum/ModelSymbol.cs | 2 +- BurnOutSharp.Models/MicrosoftCabinet/Enums.cs | 112 ------------------ .../MicrosoftCabinet.MSZIP.cs | 34 +++--- BurnOutSharp/FileType/MicrosoftCAB.Quantum.cs | 2 +- 22 files changed, 154 insertions(+), 148 deletions(-) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/LZX/AlignedOffsetBlock.cs (97%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/LZX/BlockHeader.cs (94%) create mode 100644 BurnOutSharp.Models/Compression/LZX/Enums.cs rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/LZX/Header.cs (99%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/LZX/UncompressedBlock.cs (98%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/LZX/VerbatimBlock.cs (97%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/MSZIP/BlockHeader.cs (96%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/MSZIP/CompressedBlockHeader.cs (91%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/MSZIP/DeflateBlockHeader.cs (84%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/MSZIP/DynamicHuffmanCompressedBlockHeader.cs (88%) create mode 100644 BurnOutSharp.Models/Compression/MSZIP/Enums.cs rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/MSZIP/FixedHuffmanCompressedBlockHeader.cs (97%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/MSZIP/IBlockDataHeader.cs (78%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/MSZIP/NonCompressedBlockHeader.cs (90%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/Quantum/Archive.cs (95%) create mode 100644 BurnOutSharp.Models/Compression/Quantum/Enums.cs rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/Quantum/FileDescriptor.cs (94%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/Quantum/Model.cs (77%) rename BurnOutSharp.Models/{MicrosoftCabinet => Compression}/Quantum/ModelSymbol.cs (80%) diff --git a/BurnOutSharp.Models/MicrosoftCabinet/LZX/AlignedOffsetBlock.cs b/BurnOutSharp.Models/Compression/LZX/AlignedOffsetBlock.cs similarity index 97% rename from BurnOutSharp.Models/MicrosoftCabinet/LZX/AlignedOffsetBlock.cs rename to BurnOutSharp.Models/Compression/LZX/AlignedOffsetBlock.cs index 777b04b7..f1ba33ed 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/LZX/AlignedOffsetBlock.cs +++ b/BurnOutSharp.Models/Compression/LZX/AlignedOffsetBlock.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.LZX +namespace BurnOutSharp.Models.Compression.LZX { /// /// An aligned offset block is identical to the verbatim block except for the presence of the aligned offset diff --git a/BurnOutSharp.Models/MicrosoftCabinet/LZX/BlockHeader.cs b/BurnOutSharp.Models/Compression/LZX/BlockHeader.cs similarity index 94% rename from BurnOutSharp.Models/MicrosoftCabinet/LZX/BlockHeader.cs rename to BurnOutSharp.Models/Compression/LZX/BlockHeader.cs index e7a2e431..f13f259f 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/LZX/BlockHeader.cs +++ b/BurnOutSharp.Models/Compression/LZX/BlockHeader.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.LZX +namespace BurnOutSharp.Models.Compression.LZX { /// /// An LZXD block represents a sequence of compressed data that is encoded with the same set of @@ -15,7 +15,7 @@ namespace BurnOutSharp.Models.MicrosoftCabinet.LZX public class BlockHeader { /// 3 bits - public LZXBlockType BlockType; + public BlockType BlockType; /// /// Block size is the high 8 bits of 24 diff --git a/BurnOutSharp.Models/Compression/LZX/Enums.cs b/BurnOutSharp.Models/Compression/LZX/Enums.cs new file mode 100644 index 00000000..0e447b80 --- /dev/null +++ b/BurnOutSharp.Models/Compression/LZX/Enums.cs @@ -0,0 +1,48 @@ +namespace BurnOutSharp.Models.Compression.LZX +{ + /// + /// 3-bit block type + /// + public enum BlockType : byte + { + /// + /// Not valid + /// + INVALID_0 = 0b000, + + /// + /// Verbatim block + /// + Verbatim = 0b001, + + /// + /// Aligned offset block + /// + AlignedOffset = 0b010, + + /// + /// Uncompressed block + /// + Uncompressed = 0b011, + + /// + /// Not valid + /// + INVALID_4 = 0b100, + + /// + /// Not valid + /// + INVALID_5 = 0b101, + + /// + /// Not valid + /// + INVALID_6 = 0b110, + + /// + /// Not valid + /// + INVALID_7 = 0b111, + } +} diff --git a/BurnOutSharp.Models/MicrosoftCabinet/LZX/Header.cs b/BurnOutSharp.Models/Compression/LZX/Header.cs similarity index 99% rename from BurnOutSharp.Models/MicrosoftCabinet/LZX/Header.cs rename to BurnOutSharp.Models/Compression/LZX/Header.cs index acf1a796..88976b25 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/LZX/Header.cs +++ b/BurnOutSharp.Models/Compression/LZX/Header.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.LZX +namespace BurnOutSharp.Models.Compression.LZX { public class Header { diff --git a/BurnOutSharp.Models/MicrosoftCabinet/LZX/UncompressedBlock.cs b/BurnOutSharp.Models/Compression/LZX/UncompressedBlock.cs similarity index 98% rename from BurnOutSharp.Models/MicrosoftCabinet/LZX/UncompressedBlock.cs rename to BurnOutSharp.Models/Compression/LZX/UncompressedBlock.cs index 30b76b48..19706fec 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/LZX/UncompressedBlock.cs +++ b/BurnOutSharp.Models/Compression/LZX/UncompressedBlock.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.LZX +namespace BurnOutSharp.Models.Compression.LZX { /// /// Following the generic block header, an uncompressed block begins with 1 to 16 bits of zero padding diff --git a/BurnOutSharp.Models/MicrosoftCabinet/LZX/VerbatimBlock.cs b/BurnOutSharp.Models/Compression/LZX/VerbatimBlock.cs similarity index 97% rename from BurnOutSharp.Models/MicrosoftCabinet/LZX/VerbatimBlock.cs rename to BurnOutSharp.Models/Compression/LZX/VerbatimBlock.cs index ee2ade76..b7f020b0 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/LZX/VerbatimBlock.cs +++ b/BurnOutSharp.Models/Compression/LZX/VerbatimBlock.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.LZX +namespace BurnOutSharp.Models.Compression.LZX { /// /// The fields of a verbatim block that follow the generic block header diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/BlockHeader.cs b/BurnOutSharp.Models/Compression/MSZIP/BlockHeader.cs similarity index 96% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIP/BlockHeader.cs rename to BurnOutSharp.Models/Compression/MSZIP/BlockHeader.cs index 96d143f8..49f9d4e5 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/BlockHeader.cs +++ b/BurnOutSharp.Models/Compression/MSZIP/BlockHeader.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP +namespace BurnOutSharp.Models.Compression.MSZIP { /// /// Each MSZIP block MUST consist of a 2-byte MSZIP signature and one or more RFC 1951 blocks. The diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/CompressedBlockHeader.cs b/BurnOutSharp.Models/Compression/MSZIP/CompressedBlockHeader.cs similarity index 91% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIP/CompressedBlockHeader.cs rename to BurnOutSharp.Models/Compression/MSZIP/CompressedBlockHeader.cs index a872a0c4..3f78ef13 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/CompressedBlockHeader.cs +++ b/BurnOutSharp.Models/Compression/MSZIP/CompressedBlockHeader.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP +namespace BurnOutSharp.Models.Compression.MSZIP { /// /// Base class for compressed block headers diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DeflateBlockHeader.cs b/BurnOutSharp.Models/Compression/MSZIP/DeflateBlockHeader.cs similarity index 84% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DeflateBlockHeader.cs rename to BurnOutSharp.Models/Compression/MSZIP/DeflateBlockHeader.cs index 441634bd..9ba249a7 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DeflateBlockHeader.cs +++ b/BurnOutSharp.Models/Compression/MSZIP/DeflateBlockHeader.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP +namespace BurnOutSharp.Models.Compression.MSZIP { /// public class DeflateBlockHeader @@ -13,7 +13,7 @@ namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP /// Specifies how the data are compressed /// /// Bits 1-2 - public DeflateCompressionType BTYPE { get; set; } + public CompressionType BTYPE { get; set; } /// /// Block data as defined by the compression type diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DynamicHuffmanCompressedBlockHeader.cs b/BurnOutSharp.Models/Compression/MSZIP/DynamicHuffmanCompressedBlockHeader.cs similarity index 88% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DynamicHuffmanCompressedBlockHeader.cs rename to BurnOutSharp.Models/Compression/MSZIP/DynamicHuffmanCompressedBlockHeader.cs index b4af64d9..a890d693 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DynamicHuffmanCompressedBlockHeader.cs +++ b/BurnOutSharp.Models/Compression/MSZIP/DynamicHuffmanCompressedBlockHeader.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP +namespace BurnOutSharp.Models.Compression.MSZIP { /// /// Compression with dynamic Huffman codes (BTYPE=10) diff --git a/BurnOutSharp.Models/Compression/MSZIP/Enums.cs b/BurnOutSharp.Models/Compression/MSZIP/Enums.cs new file mode 100644 index 00000000..411cdd50 --- /dev/null +++ b/BurnOutSharp.Models/Compression/MSZIP/Enums.cs @@ -0,0 +1,25 @@ +namespace BurnOutSharp.Models.Compression.MSZIP +{ + public enum CompressionType : byte + { + /// + /// no compression + /// + NoCompression = 0b00, + + /// + /// Compressed with fixed Huffman codes + /// + FixedHuffman = 0b01, + + /// + /// Compressed with dynamic Huffman codes + /// + DynamicHuffman = 0b10, + + /// + /// Reserved (error) + /// + Reserved = 0b11, + } +} \ No newline at end of file diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/FixedHuffmanCompressedBlockHeader.cs b/BurnOutSharp.Models/Compression/MSZIP/FixedHuffmanCompressedBlockHeader.cs similarity index 97% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIP/FixedHuffmanCompressedBlockHeader.cs rename to BurnOutSharp.Models/Compression/MSZIP/FixedHuffmanCompressedBlockHeader.cs index 6c7eb51e..0c7b0528 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/FixedHuffmanCompressedBlockHeader.cs +++ b/BurnOutSharp.Models/Compression/MSZIP/FixedHuffmanCompressedBlockHeader.cs @@ -1,6 +1,6 @@ using System; -namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP +namespace BurnOutSharp.Models.Compression.MSZIP { /// /// Compression with fixed Huffman codes (BTYPE=01) diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/IBlockDataHeader.cs b/BurnOutSharp.Models/Compression/MSZIP/IBlockDataHeader.cs similarity index 78% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIP/IBlockDataHeader.cs rename to BurnOutSharp.Models/Compression/MSZIP/IBlockDataHeader.cs index 7825b965..4f89d873 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/IBlockDataHeader.cs +++ b/BurnOutSharp.Models/Compression/MSZIP/IBlockDataHeader.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP +namespace BurnOutSharp.Models.Compression.MSZIP { /// /// Empty interface defining block header types diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/NonCompressedBlockHeader.cs b/BurnOutSharp.Models/Compression/MSZIP/NonCompressedBlockHeader.cs similarity index 90% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIP/NonCompressedBlockHeader.cs rename to BurnOutSharp.Models/Compression/MSZIP/NonCompressedBlockHeader.cs index 642e74fa..92268ed4 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/NonCompressedBlockHeader.cs +++ b/BurnOutSharp.Models/Compression/MSZIP/NonCompressedBlockHeader.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP +namespace BurnOutSharp.Models.Compression.MSZIP { /// /// Non-compressed blocks (BTYPE=00) diff --git a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/Archive.cs b/BurnOutSharp.Models/Compression/Quantum/Archive.cs similarity index 95% rename from BurnOutSharp.Models/MicrosoftCabinet/Quantum/Archive.cs rename to BurnOutSharp.Models/Compression/Quantum/Archive.cs index 04bf57ab..fd01dd76 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/Archive.cs +++ b/BurnOutSharp.Models/Compression/Quantum/Archive.cs @@ -1,6 +1,6 @@ using System.Runtime.InteropServices; -namespace BurnOutSharp.Models.MicrosoftCabinet.Quantum +namespace BurnOutSharp.Models.Compression.Quantum { /// /// Quantum archive file structure diff --git a/BurnOutSharp.Models/Compression/Quantum/Enums.cs b/BurnOutSharp.Models/Compression/Quantum/Enums.cs new file mode 100644 index 00000000..4efd1cc9 --- /dev/null +++ b/BurnOutSharp.Models/Compression/Quantum/Enums.cs @@ -0,0 +1,45 @@ +namespace BurnOutSharp.Models.Compression.Quantum +{ + public enum SelectorModel + { + /// + /// Literal model, 64 entries, start at symbol 0 + /// + SELECTOR_0 = 0, + + /// + /// Literal model, 64 entries, start at symbol 64 + /// + SELECTOR_1 = 1, + + /// + /// Literal model, 64 entries, start at symbol 128 + /// + SELECTOR_2 = 2, + + /// + /// Literal model, 64 entries, start at symbol 192 + /// + SELECTOR_3 = 3, + + /// + /// LZ model, 3 character matches, max 24 entries, start at symbol 0 + /// + SELECTOR_4 = 4, + + /// + /// LZ model, 4 character matches, max 36 entries, start at symbol 0 + /// + SELECTOR_5 = 5, + + /// + /// LZ model, 5+ character matches, max 42 entries, start at symbol 0 + /// + SELECTOR_6_POSITION = 6, + + /// + /// LZ model, 5+ character matches, 27 entries, start at symbol 0 + /// + SELECTOR_6_LENGTH = 7, + } +} \ No newline at end of file diff --git a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/FileDescriptor.cs b/BurnOutSharp.Models/Compression/Quantum/FileDescriptor.cs similarity index 94% rename from BurnOutSharp.Models/MicrosoftCabinet/Quantum/FileDescriptor.cs rename to BurnOutSharp.Models/Compression/Quantum/FileDescriptor.cs index b3c707aa..00d8ed9f 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/FileDescriptor.cs +++ b/BurnOutSharp.Models/Compression/Quantum/FileDescriptor.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.Quantum +namespace BurnOutSharp.Models.Compression.Quantum { /// /// Strings are prefixed with their length. If the length is less than diff --git a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/Model.cs b/BurnOutSharp.Models/Compression/Quantum/Model.cs similarity index 77% rename from BurnOutSharp.Models/MicrosoftCabinet/Quantum/Model.cs rename to BurnOutSharp.Models/Compression/Quantum/Model.cs index dea8adf8..6c8cbf12 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/Model.cs +++ b/BurnOutSharp.Models/Compression/Quantum/Model.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.Quantum +namespace BurnOutSharp.Models.Compression.Quantum { /// public class Model diff --git a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/ModelSymbol.cs b/BurnOutSharp.Models/Compression/Quantum/ModelSymbol.cs similarity index 80% rename from BurnOutSharp.Models/MicrosoftCabinet/Quantum/ModelSymbol.cs rename to BurnOutSharp.Models/Compression/Quantum/ModelSymbol.cs index 00000416..4998a6fd 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/Quantum/ModelSymbol.cs +++ b/BurnOutSharp.Models/Compression/Quantum/ModelSymbol.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet.Quantum +namespace BurnOutSharp.Models.Compression.Quantum { /// public class ModelSymbol diff --git a/BurnOutSharp.Models/MicrosoftCabinet/Enums.cs b/BurnOutSharp.Models/MicrosoftCabinet/Enums.cs index 88037a91..c8eb5ea6 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/Enums.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/Enums.cs @@ -30,29 +30,6 @@ namespace BurnOutSharp.Models.MicrosoftCabinet TYPE_LZX = 0x0003, } - public enum DeflateCompressionType : byte - { - /// - /// no compression - /// - NoCompression = 0b00, - - /// - /// Compressed with fixed Huffman codes - /// - FixedHuffman = 0b01, - - /// - /// Compressed with dynamic Huffman codes - /// - DynamicHuffman = 0b10, - - /// - /// Reserved (error) - /// - Reserved = 0b11, - } - [Flags] public enum FileAttributes : ushort { @@ -138,93 +115,4 @@ namespace BurnOutSharp.Models.MicrosoftCabinet /// RESERVE_PRESENT = 0x0004, } - - /// - /// 3-bit block type - /// - public enum LZXBlockType : byte - { - /// - /// Not valid - /// - INVALID_0 = 0b000, - - /// - /// Verbatim block - /// - Verbatim = 0b001, - - /// - /// Aligned offset block - /// - AlignedOffset = 0b010, - - /// - /// Uncompressed block - /// - Uncompressed = 0b011, - - /// - /// Not valid - /// - INVALID_4 = 0b100, - - /// - /// Not valid - /// - INVALID_5 = 0b101, - - /// - /// Not valid - /// - INVALID_6 = 0b110, - - /// - /// Not valid - /// - INVALID_7 = 0b111, - } - - public enum QuantumSelectorModel - { - /// - /// Literal model, 64 entries, start at symbol 0 - /// - SELECTOR_0 = 0, - - /// - /// Literal model, 64 entries, start at symbol 64 - /// - SELECTOR_1 = 1, - - /// - /// Literal model, 64 entries, start at symbol 128 - /// - SELECTOR_2 = 2, - - /// - /// Literal model, 64 entries, start at symbol 192 - /// - SELECTOR_3 = 3, - - /// - /// LZ model, 3 character matches, max 24 entries, start at symbol 0 - /// - SELECTOR_4 = 4, - - /// - /// LZ model, 4 character matches, max 36 entries, start at symbol 0 - /// - SELECTOR_5 = 5, - - /// - /// LZ model, 5+ character matches, max 42 entries, start at symbol 0 - /// - SELECTOR_6_POSITION = 6, - - /// - /// LZ model, 5+ character matches, 27 entries, start at symbol 0 - /// - SELECTOR_6_LENGTH = 7, - } } diff --git a/BurnOutSharp.Wrappers/MicrosoftCabinet.MSZIP.cs b/BurnOutSharp.Wrappers/MicrosoftCabinet.MSZIP.cs index 6f364e2b..15dad1d0 100644 --- a/BurnOutSharp.Wrappers/MicrosoftCabinet.MSZIP.cs +++ b/BurnOutSharp.Wrappers/MicrosoftCabinet.MSZIP.cs @@ -166,13 +166,13 @@ namespace BurnOutSharp.Wrappers /// BitStream representing the block /// Offset within the array to parse /// Filled block header on success, null on error - private static Models.MicrosoftCabinet.MSZIP.BlockHeader AsBlockHeader(BitStream data) + private static Models.Compression.MSZIP.BlockHeader AsBlockHeader(BitStream data) { // If the data is invalid if (data == null) return null; - var header = new Models.MicrosoftCabinet.MSZIP.BlockHeader(); + var header = new Models.Compression.MSZIP.BlockHeader(); header.Signature = data.ReadAlignedUInt16(); if (header.Signature != 0x4B43) @@ -187,16 +187,16 @@ namespace BurnOutSharp.Wrappers /// Byte array representing the block /// Offset within the array to parse /// Filled deflate block header on success, null on error - private static Models.MicrosoftCabinet.MSZIP.DeflateBlockHeader AsDeflateBlockHeader(BitStream data) + private static Models.Compression.MSZIP.DeflateBlockHeader AsDeflateBlockHeader(BitStream data) { // If the data is invalid if (data == null) return null; - var header = new Models.MicrosoftCabinet.MSZIP.DeflateBlockHeader(); + var header = new Models.Compression.MSZIP.DeflateBlockHeader(); header.BFINAL = data.ReadBits(1)[0]; - header.BTYPE = (Models.MicrosoftCabinet.DeflateCompressionType)data.ReadBits(2).AsByte(); + header.BTYPE = (Models.Compression.MSZIP.CompressionType)data.ReadBits(2).AsByte(); return header; } @@ -207,13 +207,13 @@ namespace BurnOutSharp.Wrappers /// Byte array representing the block /// Offset within the array to parse /// Filled dynamic Huffman compressed block header on success, null on error - private static Models.MicrosoftCabinet.MSZIP.DynamicHuffmanCompressedBlockHeader AsDynamicHuffmanCompressedBlockHeader(BitStream data) + private static Models.Compression.MSZIP.DynamicHuffmanCompressedBlockHeader AsDynamicHuffmanCompressedBlockHeader(BitStream data) { // If the data is invalid if (data == null) return null; - var header = new Models.MicrosoftCabinet.MSZIP.DynamicHuffmanCompressedBlockHeader(); + var header = new Models.Compression.MSZIP.DynamicHuffmanCompressedBlockHeader(); // # of Literal/Length codes - 257 ushort HLIT = (ushort)(data.ReadBits(5).AsUInt16() + 257); @@ -255,13 +255,13 @@ namespace BurnOutSharp.Wrappers /// Byte array representing the block /// Offset within the array to parse /// Filled non-compressed block header on success, null on error - private static Models.MicrosoftCabinet.MSZIP.NonCompressedBlockHeader AsNonCompressedBlockHeader(BitStream data) + private static Models.Compression.MSZIP.NonCompressedBlockHeader AsNonCompressedBlockHeader(BitStream data) { // If the data is invalid if (data == null) return null; - var header = new Models.MicrosoftCabinet.MSZIP.NonCompressedBlockHeader(); + var header = new Models.Compression.MSZIP.NonCompressedBlockHeader(); header.LEN = data.ReadAlignedUInt16(); header.NLEN = data.ReadAlignedUInt16(); @@ -508,18 +508,18 @@ namespace BurnOutSharp.Wrappers List decodedBytes = new List(); // Create the loop variable block - Models.MicrosoftCabinet.MSZIP.DeflateBlockHeader deflateBlockHeader; + Models.Compression.MSZIP.DeflateBlockHeader deflateBlockHeader; do { deflateBlockHeader = AsDeflateBlockHeader(dataStream); // We should never get a reserved block - if (deflateBlockHeader.BTYPE == Models.MicrosoftCabinet.DeflateCompressionType.Reserved) + if (deflateBlockHeader.BTYPE == Models.Compression.MSZIP.CompressionType.Reserved) throw new InvalidOperationException(); // If stored with no compression - if (deflateBlockHeader.BTYPE == Models.MicrosoftCabinet.DeflateCompressionType.NoCompression) + if (deflateBlockHeader.BTYPE == Models.Compression.MSZIP.CompressionType.NoCompression) { // Skip any remaining bits in current partially processed byte dataStream.DiscardBuffer(); @@ -528,7 +528,7 @@ namespace BurnOutSharp.Wrappers deflateBlockHeader.BlockDataHeader = AsNonCompressedBlockHeader(dataStream); // Copy LEN bytes of data to output - var header = deflateBlockHeader.BlockDataHeader as Models.MicrosoftCabinet.MSZIP.NonCompressedBlockHeader; + var header = deflateBlockHeader.BlockDataHeader as Models.Compression.MSZIP.NonCompressedBlockHeader; ushort length = header.LEN; decodedBytes.AddRange(dataStream.ReadAlignedBytes(length)); } @@ -539,15 +539,15 @@ namespace BurnOutSharp.Wrappers // If compressed with dynamic Huffman codes read representation of code trees switch (deflateBlockHeader.BTYPE) { - case Models.MicrosoftCabinet.DeflateCompressionType.FixedHuffman: - deflateBlockHeader.BlockDataHeader = new Models.MicrosoftCabinet.MSZIP.FixedHuffmanCompressedBlockHeader(); + case Models.Compression.MSZIP.CompressionType.FixedHuffman: + deflateBlockHeader.BlockDataHeader = new Models.Compression.MSZIP.FixedHuffmanCompressedBlockHeader(); break; - case Models.MicrosoftCabinet.DeflateCompressionType.DynamicHuffman: + case Models.Compression.MSZIP.CompressionType.DynamicHuffman: deflateBlockHeader.BlockDataHeader = AsDynamicHuffmanCompressedBlockHeader(dataStream); break; } - var header = deflateBlockHeader.BlockDataHeader as Models.MicrosoftCabinet.MSZIP.CompressedBlockHeader; + var header = deflateBlockHeader.BlockDataHeader as Models.Compression.MSZIP.CompressedBlockHeader; // 9 bits per entry, 288 max symbols int[] literalDecodeTable = CreateTable(288, 9, header.LiteralLengths, (1 << 9) + (288 * 2)); diff --git a/BurnOutSharp/FileType/MicrosoftCAB.Quantum.cs b/BurnOutSharp/FileType/MicrosoftCAB.Quantum.cs index fa7f2971..bd7118b4 100644 --- a/BurnOutSharp/FileType/MicrosoftCAB.Quantum.cs +++ b/BurnOutSharp/FileType/MicrosoftCAB.Quantum.cs @@ -1,4 +1,4 @@ -using BurnOutSharp.Models.MicrosoftCabinet.Quantum; +using BurnOutSharp.Models.Compression.Quantum; /// ///