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.