diff --git a/libmspack/msoab_compressor.cs b/libmspack/msoab_compressor.cs
index d1ed2bf..bbe93ca 100644
--- a/libmspack/msoab_compressor.cs
+++ b/libmspack/msoab_compressor.cs
@@ -9,6 +9,8 @@ namespace SabreTools.Compression.libmspack
///
public abstract class msoab_compressor
{
+ public mspack_system system { get; set; }
+
///
/// Compress a full OAB file.
///
diff --git a/libmspack/msoab_decompressor.cs b/libmspack/msoab_decompressor.cs
index 82432c4..a9f2466 100644
--- a/libmspack/msoab_decompressor.cs
+++ b/libmspack/msoab_decompressor.cs
@@ -9,6 +9,10 @@ namespace SabreTools.Compression.libmspack
///
public abstract class msoab_decompressor
{
+ public mspack_system system { get; set; }
+
+ public int buf_size { get; set; }
+
///
/// Decompresses a full Offline Address Book file.
///
@@ -56,7 +60,7 @@ namespace SabreTools.Compression.libmspack
///
/// An error code, or MSPACK_ERR_OK if successful
public abstract MSPACK_ERR decompress_incremental(in string input, in string @base, in string output);
-
+
///
/// Sets an OAB decompression engine parameter. Available only in OAB
/// decompressor version 2 and above.
diff --git a/libmspack/oab.cs b/libmspack/oab.cs
new file mode 100644
index 0000000..f868a43
--- /dev/null
+++ b/libmspack/oab.cs
@@ -0,0 +1,32 @@
+namespace SabreTools.Compression.libmspack
+{
+ public static class oab
+ {
+ public const int oabhead_VersionHi = 0x0000;
+ public const int oabhead_VersionLo = 0x0004;
+ public const int oabhead_BlockMax = 0x0008;
+ public const int oabhead_TargetSize = 0x000c;
+ public const int oabhead_SIZEOF = 0x0010;
+
+ public const int oabblk_Flags = 0x0000;
+ public const int oabblk_CompSize = 0x0004;
+ public const int oabblk_UncompSize = 0x0008;
+ public const int oabblk_CRC = 0x000c;
+ public const int oabblk_SIZEOF = 0x0010;
+
+ public const int patchhead_VersionHi = 0x0000;
+ public const int patchhead_VersionLo = 0x0004;
+ public const int patchhead_BlockMax = 0x0008;
+ public const int patchhead_SourceSize = 0x000c;
+ public const int patchhead_TargetSize = 0x0010;
+ public const int patchhead_SourceCRC = 0x0014;
+ public const int patchhead_TargetCRC = 0x0018;
+ public const int patchhead_SIZEOF = 0x001c;
+
+ public const int patchblk_PatchSize = 0x0000;
+ public const int patchblk_TargetSize = 0x0004;
+ public const int patchblk_SourceSize = 0x0008;
+ public const int patchblk_CRC = 0x000c;
+ public const int patchblk_SIZEOF = 0x0010;
+ }
+}
\ No newline at end of file