diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPBlock.cs b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/Block.cs similarity index 95% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIPBlock.cs rename to BurnOutSharp.Models/MicrosoftCabinet/MSZIP/Block.cs index f7ec4037..603cc9af 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPBlock.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/Block.cs @@ -1,4 +1,4 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet +namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP { /// /// Each MSZIP block MUST consist of a 2-byte MSZIP signature and one or more RFC 1951 blocks. The @@ -6,7 +6,7 @@ namespace BurnOutSharp.Models.MicrosoftCabinet /// the first 2 bytes in the MSZIP block.The MSZIP signature is shown in the following packet diagram. /// /// - public class MSZIPBlock + public class Block { /// /// 'CK' diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPCompressedBlock.cs b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/CompressedBlock.cs similarity index 81% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIPCompressedBlock.cs rename to BurnOutSharp.Models/MicrosoftCabinet/MSZIP/CompressedBlock.cs index a94271ca..4a802c10 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPCompressedBlock.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/CompressedBlock.cs @@ -1,10 +1,10 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet +namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP { /// /// Base class for compressed blocks /// /// - public abstract class MSZIPCompressedBlock : IMSZIPBlockData + public abstract class CompressedBlock : IBlockData { /// /// Huffman code lengths for the literal / length alphabet diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPDeflateBlock.cs b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DeflateBlock.cs similarity index 80% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIPDeflateBlock.cs rename to BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DeflateBlock.cs index 35e872fd..d8e02db7 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPDeflateBlock.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DeflateBlock.cs @@ -1,7 +1,7 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet +namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP { /// - public class MSZIPDeflateBlock + public class DeflateBlock { /// /// Set if and only if this is the last block of the data set. @@ -18,6 +18,6 @@ namespace BurnOutSharp.Models.MicrosoftCabinet /// /// Block data as defined by the compression type /// - public IMSZIPBlockData BlockData { get; set; } + public IBlockData BlockData { get; set; } } } \ No newline at end of file diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPDynamicHuffmanCompressedBlock.cs b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DynamicHuffmanCompressedBlock.cs similarity index 73% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIPDynamicHuffmanCompressedBlock.cs rename to BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DynamicHuffmanCompressedBlock.cs index 10bb3324..14e4155f 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPDynamicHuffmanCompressedBlock.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/DynamicHuffmanCompressedBlock.cs @@ -1,10 +1,10 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet +namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP { /// /// Compression with dynamic Huffman codes (BTYPE=10) /// /// - public class MSZIPDynamicHuffmanCompressedBlock : MSZIPCompressedBlock + public class DynamicHuffmanCompressedBlock : CompressedBlock { /// public override int[] LiteralLengths { get; set; } diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPFixedHuffmanCompressedBlock.cs b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/FixedHuffmanCompressedBlock.cs similarity index 95% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIPFixedHuffmanCompressedBlock.cs rename to BurnOutSharp.Models/MicrosoftCabinet/MSZIP/FixedHuffmanCompressedBlock.cs index bb6e7265..e310627e 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPFixedHuffmanCompressedBlock.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/FixedHuffmanCompressedBlock.cs @@ -1,13 +1,13 @@ using System; -namespace BurnOutSharp.Models.MicrosoftCabinet +namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP { /// /// Compression with fixed Huffman codes (BTYPE=01) /// /// /// - public class MSZIPFixedHuffmanCompressedBlock : MSZIPCompressedBlock + public class FixedHuffmanCompressedBlock : CompressedBlock { #region Properties diff --git a/BurnOutSharp.Models/MicrosoftCabinet/IMSZIPBlockData.cs b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/IBlockData.cs similarity index 62% rename from BurnOutSharp.Models/MicrosoftCabinet/IMSZIPBlockData.cs rename to BurnOutSharp.Models/MicrosoftCabinet/MSZIP/IBlockData.cs index 6c038108..5bef0b4d 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/IMSZIPBlockData.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/IBlockData.cs @@ -1,8 +1,8 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet +namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP { /// /// Empty interface defining block types /// /// - public interface IMSZIPBlockData { } + public interface IBlockData { } } \ No newline at end of file diff --git a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPNonCompressedBlock.cs b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/NonCompressedBlock.cs similarity index 84% rename from BurnOutSharp.Models/MicrosoftCabinet/MSZIPNonCompressedBlock.cs rename to BurnOutSharp.Models/MicrosoftCabinet/MSZIP/NonCompressedBlock.cs index 76649468..18ec4e12 100644 --- a/BurnOutSharp.Models/MicrosoftCabinet/MSZIPNonCompressedBlock.cs +++ b/BurnOutSharp.Models/MicrosoftCabinet/MSZIP/NonCompressedBlock.cs @@ -1,10 +1,10 @@ -namespace BurnOutSharp.Models.MicrosoftCabinet +namespace BurnOutSharp.Models.MicrosoftCabinet.MSZIP { /// /// Non-compressed blocks (BTYPE=00) /// /// - public class MSZIPNonCompressedBlock : IMSZIPBlockData + public class NonCompressedBlock : IBlockData { /// /// The number of data bytes in the block diff --git a/BurnOutSharp/FileType/MicrosoftCAB.MSZIP.cs b/BurnOutSharp/FileType/MicrosoftCAB.MSZIP.cs index fdcf7cf2..3f0d769b 100644 --- a/BurnOutSharp/FileType/MicrosoftCAB.MSZIP.cs +++ b/BurnOutSharp/FileType/MicrosoftCAB.MSZIP.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using BurnOutSharp.Models.MicrosoftCabinet; +using BurnOutSharp.Models.MicrosoftCabinet.MSZIP; using BurnOutSharp.Utilities; /// @@ -10,12 +11,12 @@ namespace BurnOutSharp.FileType { public static class MSZIPBlockBuilder { - public static MSZIPBlock Create(byte[] data) + public static Block Create(byte[] data) { if (data == null) return null; - MSZIPBlock block = new MSZIPBlock(); + Block block = new Block(); int offset = 0; block.Signature = data.ReadUInt16(ref offset); @@ -30,9 +31,9 @@ namespace BurnOutSharp.FileType public static class MSZIPDeflateBlockBuilder { - public static MSZIPDeflateBlock Create(ulong data) + public static DeflateBlock Create(ulong data) { - MSZIPDeflateBlock deflateBlock = new MSZIPDeflateBlock(); + DeflateBlock deflateBlock = new DeflateBlock(); deflateBlock.BFINAL = (data & 0b100) != 0; deflateBlock.BTYPE = (DeflateCompressionType)(data & 0b011); @@ -43,9 +44,9 @@ namespace BurnOutSharp.FileType public static class MSZIPDynamicHuffmanCompressedBlockBuilder { - public static MSZIPDynamicHuffmanCompressedBlock Create(MSZIPDeflateStream stream) + public static DynamicHuffmanCompressedBlock Create(MSZIPDeflateStream stream) { - MSZIPDynamicHuffmanCompressedBlock dynamicHuffmanCompressedBlock = new MSZIPDynamicHuffmanCompressedBlock(); + DynamicHuffmanCompressedBlock dynamicHuffmanCompressedBlock = new DynamicHuffmanCompressedBlock(); // # of Literal/Length codes - 257 ulong HLIT = stream.ReadBitsLSB(5) + 257; @@ -152,13 +153,13 @@ namespace BurnOutSharp.FileType public static class MSZIPNonCompressedBlockBuilder { - public static MSZIPNonCompressedBlock Create(byte[] data) + public static NonCompressedBlock Create(byte[] data) { // If we have invalid header data if (data == null || data.Length < 4) throw new ArgumentException(); - MSZIPNonCompressedBlock nonCompressedBlock = new MSZIPNonCompressedBlock(); + NonCompressedBlock nonCompressedBlock = new NonCompressedBlock(); int offset = 0; nonCompressedBlock.LEN = data.ReadUInt16(ref offset); @@ -334,7 +335,7 @@ namespace BurnOutSharp.FileType List decodedBytes = new List(); // Create the loop variable block - MSZIPDeflateBlock block; + DeflateBlock block; do { @@ -356,9 +357,9 @@ namespace BurnOutSharp.FileType block.BlockData = MSZIPNonCompressedBlockBuilder.Create(nonCompressedHeader); // Copy LEN bytes of data to output - ushort length = ((MSZIPNonCompressedBlock)block.BlockData).LEN; - ((MSZIPNonCompressedBlock)block.BlockData).Data = data.ReadBytesLSB(length); - decodedBytes.AddRange(((MSZIPNonCompressedBlock)block.BlockData).Data); + ushort length = ((NonCompressedBlock)block.BlockData).LEN; + ((NonCompressedBlock)block.BlockData).Data = data.ReadBytesLSB(length); + decodedBytes.AddRange(((NonCompressedBlock)block.BlockData).Data); } // Otherwise @@ -367,10 +368,10 @@ namespace BurnOutSharp.FileType // If compressed with dynamic Huffman codes // read representation of code trees block.BlockData = block.BTYPE == DeflateCompressionType.DynamicHuffman - ? (IMSZIPBlockData)MSZIPDynamicHuffmanCompressedBlockBuilder.Create(data) - : (IMSZIPBlockData)new MSZIPFixedHuffmanCompressedBlock(); + ? (IBlockData)MSZIPDynamicHuffmanCompressedBlockBuilder.Create(data) + : (IBlockData)new FixedHuffmanCompressedBlock(); - var compressedBlock = (block.BlockData as MSZIPCompressedBlock); + var compressedBlock = (block.BlockData as CompressedBlock); // 9 bits per entry, 288 max symbols int[] literalDecodeTable = CreateTable(compressedBlock.LiteralLengths); @@ -439,7 +440,7 @@ namespace BurnOutSharp.FileType /// initially in tree[I].Len; the codes are produced in /// tree[I].Code. /// - public static void CreateTable(MSZIPCompressedBlock tree) + public static void CreateTable(CompressedBlock tree) { // Count the number of codes for each code length. Let // bl_count[N] be the number of codes of length N, N >= 1.