Create new Compression library (nw)

This commit is contained in:
Matt Nadareski
2022-12-28 14:18:50 -08:00
parent 283672e909
commit 81d7151f8f
11 changed files with 82 additions and 19 deletions

View File

@@ -0,0 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
<Title>BurnOutSharp.Compression</Title>
<AssemblyName>BurnOutSharp.Compression</AssemblyName>
<Authors>Matt Nadareski</Authors>
<Product>BurnOutSharp</Product>
<Copyright>Copyright (c)2022 Matt Nadareski</Copyright>
<RepositoryUrl>https://github.com/mnadareski/BurnOutSharp</RepositoryUrl>
<Version>2.5</Version>
<AssemblyVersion>2.5</AssemblyVersion>
<FileVersion>2.5</FileVersion>
<IncludeSource>true</IncludeSource>
<IncludeSymbols>true</IncludeSymbols>
</PropertyGroup>
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SharpCompress" Version="0.32.2" />
<PackageReference Include="SharpZipLib" Version="1.4.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BurnOutSharp.Models\BurnOutSharp.Models.csproj" />
<ProjectReference Include="..\BurnOutSharp.Utilities\BurnOutSharp.Utilities.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,10 @@
using BurnOutSharp.Models.Compression.LZ;
namespace BurnOutSharp.Compression
{
/// <see href="https://github.com/wine-mirror/wine/blob/master/dlls/kernel32/lzexpand.c"/>
public class LZ
{
// TODO: Implement LZ decompression
}
}

View File

@@ -0,0 +1,9 @@
using BurnOutSharp.Models.Compression.LZX;
namespace BurnOutSharp.Compression
{
public class LZX
{
// TODO: Implement LZX decompression
}
}

View File

@@ -1,12 +1,17 @@
using System;
using System.Collections.Generic;
using BurnOutSharp.Models.Compression.MSZIP;
using BurnOutSharp.Utilities;
using ICSharpCode.SharpZipLib.Zip.Compression;
namespace BurnOutSharp.Wrappers
namespace BurnOutSharp.Compression
{
public partial class MicrosoftCabinet : WrapperBase
public class MSZIP
{
// TODO: Implement MSZIP decompression
// The below is a first attempt at implementation that is not working. It likely needs to be replaced by
// a zlib wrapper and/or a proper implementation
#region Constants
/// <summary>
@@ -609,4 +614,4 @@ namespace BurnOutSharp.Wrappers
#endregion
}
}
}

View File

@@ -0,0 +1,9 @@
using BurnOutSharp.Models.Compression.Quantum;
namespace BurnOutSharp.Compression
{
public class Quantum
{
// TODO: Implement Quantum decompression
}
}

View File

@@ -27,6 +27,7 @@
<ItemGroup>
<ProjectReference Include="..\BurnOutSharp.ASN1\BurnOutSharp.ASN1.csproj" />
<ProjectReference Include="..\BurnOutSharp.Builders\BurnOutSharp.Builders.csproj" />
<ProjectReference Include="..\BurnOutSharp.Compression\BurnOutSharp.Compression.csproj" />
<ProjectReference Include="..\BurnOutSharp.Models\BurnOutSharp.Models.csproj" />
</ItemGroup>

View File

@@ -1,7 +0,0 @@
namespace BurnOutSharp.Wrappers
{
public partial class MicrosoftCabinet : WrapperBase
{
// TODO: Implement LZX decompression
}
}

View File

@@ -1,7 +0,0 @@
namespace BurnOutSharp.Wrappers
{
public partial class MicrosoftCabinet : WrapperBase
{
// TODO: Implement Quantum decompression
}
}

View File

@@ -5,7 +5,7 @@ using System.Linq;
namespace BurnOutSharp.Wrappers
{
public partial class MicrosoftCabinet : WrapperBase
public class MicrosoftCabinet : WrapperBase
{
#region Pass-Through Properties
@@ -229,7 +229,8 @@ namespace BurnOutSharp.Wrappers
decompressed = dataBlock.CompressedData;
break;
case Models.MicrosoftCabinet.CompressionType.TYPE_MSZIP:
decompressed = DecompressMSZIPData(dataBlock.CompressedData);
// TODO: UNIMPLEMENTED
decompressed = dataBlock.CompressedData;
break;
case Models.MicrosoftCabinet.CompressionType.TYPE_QUANTUM:
// TODO: UNIMPLEMENTED

View File

@@ -36,6 +36,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BurnOutSharp.Utilities", "B
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BurnOutSharp.ASN1", "BurnOutSharp.ASN1\BurnOutSharp.ASN1.csproj", "{D5407F3A-236C-45B5-BE3A-1505412DCB22}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BurnOutSharp.Compression", "BurnOutSharp.Compression\BurnOutSharp.Compression.csproj", "{B55206B2-58FD-4A47-AADC-74982FEA8FAD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -90,6 +92,10 @@ Global
{D5407F3A-236C-45B5-BE3A-1505412DCB22}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5407F3A-236C-45B5-BE3A-1505412DCB22}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5407F3A-236C-45B5-BE3A-1505412DCB22}.Release|Any CPU.Build.0 = Release|Any CPU
{B55206B2-58FD-4A47-AADC-74982FEA8FAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B55206B2-58FD-4A47-AADC-74982FEA8FAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B55206B2-58FD-4A47-AADC-74982FEA8FAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B55206B2-58FD-4A47-AADC-74982FEA8FAD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -65,6 +65,10 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<ProjectReference Include="..\BurnOutSharp.Compression\BurnOutSharp.Compression.csproj">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<ProjectReference Include="..\BurnOutSharp.Matching\BurnOutSharp.Matching.csproj">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>