dsdecmp/CSharp/PluginDistro/DSDecmp.xml
barubary 4ddd87206b C#: the composite formats that were added in r48 should now be supported by the program. Not yet tested though.
Added support for the 'NULL' compression format; a built-in Nitro format that only contains plaintext (but includes the nitro compression header with magic byte 0)
2011-12-22 22:59:37 +00:00

1141 lines
60 KiB
XML

<?xml version="1.0"?>
<doc>
<assembly>
<name>DSDecmp</name>
</assembly>
<members>
<member name="T:DSDecmp.TooMuchInputException">
<summary>
An exception indication that the input has more data than required in order
to decompress it. This may indicate that more sub-files are present in the file.
</summary>
</member>
<member name="M:DSDecmp.TooMuchInputException.#ctor(System.Int64,System.Int64)">
<summary>
Creates a new exception indicating that the input has more data than necessary for
decompressing th stream. It may indicate that other data is present after the compressed
stream.
</summary>
<param name="readBytes">The number of bytes read by the decompressor.</param>
<param name="totLength">The indicated length of the input stream.</param>
</member>
<member name="P:DSDecmp.TooMuchInputException.ReadBytes">
<summary>
Gets the number of bytes read by the decompressed to decompress the stream.
</summary>
</member>
<member name="T:DSDecmp.InputTooLargeException">
<summary>
An exception indicating that the file cannot be compressed, because the decompressed size
cannot be represented in the current compression format.
</summary>
</member>
<member name="M:DSDecmp.InputTooLargeException.#ctor">
<summary>
Creates a new exception that indicates that the input is too big to be compressed.
</summary>
</member>
<member name="T:DSDecmp.IOUtils">
<summary>
Class for I/O-related utility methods.
</summary>
</member>
<member name="M:DSDecmp.IOUtils.ToNDSu32(System.Byte[],System.Int32)">
<summary>
Returns a 4-byte unsigned integer as used on the NDS converted from four bytes
at a specified position in a byte array.
</summary>
<param name="buffer">The source of the data.</param>
<param name="offset">The location of the data in the source.</param>
<returns>The indicated 4 bytes converted to uint</returns>
</member>
<member name="M:DSDecmp.IOUtils.ToNDSs32(System.Byte[],System.Int32)">
<summary>
Returns a 4-byte signed integer as used on the NDS converted from four bytes
at a specified position in a byte array.
</summary>
<param name="buffer">The source of the data.</param>
<param name="offset">The location of the data in the source.</param>
<returns>The indicated 4 bytes converted to int</returns>
</member>
<member name="M:DSDecmp.IOUtils.FromNDSu32(System.UInt32)">
<summary>
Converts a u32 value into a sequence of bytes that would make ToNDSu32 return
the given input value.
</summary>
</member>
<member name="M:DSDecmp.IOUtils.ToNDSu24(System.Byte[],System.Int32)">
<summary>
Returns a 3-byte integer as used in the built-in compression
formats in the DS, convrted from three bytes at a specified position in a byte array,
</summary>
<param name="buffer">The source of the data.</param>
<param name="offset">The location of the data in the source.</param>
<returns>The indicated 3 bytes converted to an integer.</returns>
</member>
<member name="M:DSDecmp.IOUtils.LoadCompressionPlugin(System.String,System.Boolean)">
<summary>
(Attempts to) load compression formats from the given file.
</summary>
<param name="file">The dll file to load.</param>
<param name="printFailures">If formats without an empty contrsuctor should get a print.</param>
<returns>A list with an instance of all compression formats found in the given dll file.</returns>
<exception cref="T:System.IO.FileNotFoundException">If the given file does not exist.</exception>
<exception cref="T:System.IO.FileLoadException">If the file could not be loaded.</exception>
<exception cref="T:System.BadImageFormatException">If the file is not a valid assembly, or the loaded
assembly is compiled with a higher version of .NET.</exception>
</member>
<member name="M:DSDecmp.IOUtils.LoadCompressionPlugins(System.String)">
<summary>
Loads all compression formats found in the given folder.
</summary>
<param name="folder">The folder to load plugins from.</param>
<returns>A list with an instance of all compression formats found in the given folder.</returns>
</member>
<member name="M:DSDecmp.IOUtils.GetParent(System.String)">
<summary>
Gets the full path to the parent directory of the given path.
</summary>
<param name="path">The path to get the parent directory path of.</param>
<returns>The full path to the parent directory of teh given path.</returns>
</member>
<member name="T:DSDecmp.CompressionFormat">
<summary>
Base class for all compression formats.
</summary>
</member>
<member name="M:DSDecmp.CompressionFormat.Supports(System.String)">
<summary>
Checks if the decompressor for this format supports the given file. Assumes the
file exists. Returns false when it is certain that the given file is not supported.
False positives may occur, as this method should not do any decompression, and
may mis-interpret a similar file format as compressed.
</summary>
<param name="file">The name of the file to check.</param>
<returns>False if the file can certainly not be decompressed using this decompressor.
True if the file may potentially be decompressed using this decompressor.</returns>
</member>
<member name="M:DSDecmp.CompressionFormat.Supports(System.IO.Stream,System.Int64)">
<summary>
Checks if the decompressor for this format supports the data from the given stream.
Returns false when it is certain that the given data is not supported.
False positives may occur, as this method should not do any decompression, and may
mis-interpret a similar data format as compressed.
</summary>
<param name="stream">The stream that may or may not contain compressed data. The
position of this stream may change during this call, but will be returned to its
original position when the method returns.</param>
<param name="inLength">The length of the input stream.</param>
<returns>False if the data can certainly not be decompressed using this decompressor.
True if the data may potentially be decompressed using this decompressor.</returns>
</member>
<member name="M:DSDecmp.CompressionFormat.Decompress(System.String,System.String)">
<summary>
Decompresses the given file, writing the deocmpressed data to the given output file.
The output file will be overwritten if it already exists.
Assumes <code>Supports(infile)</code> returns <code>true</code>.
</summary>
<param name="infile">The file to decompress.</param>
<param name="outfile">The target location of the decompressed file.</param>
</member>
<member name="M:DSDecmp.CompressionFormat.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Decompresses the given stream, writing the decompressed data to the given output stream.
Assumes <code>Supports(instream)</code> returns <code>true</code>.
After this call, the input stream will be positioned at the end of the compressed stream,
or at the initial position + <code>inLength</code>, whichever comes first.
</summary>
<param name="instream">The stream to decompress. At the end of this method, the position
of this stream is directly after the compressed data.</param>
<param name="inLength">The length of the input data. Not necessarily all of the
input data may be read (if there is padding, for example), however never more than
this number of bytes is read from the input stream.</param>
<param name="outstream">The stream to write the decompressed data to.</param>
<returns>The length of the output data.</returns>
<exception cref="T:DSDecmp.NotEnoughDataException">When the given length of the input data
is not enough to properly decompress the input.</exception>
</member>
<member name="M:DSDecmp.CompressionFormat.Compress(System.String,System.String)">
<summary>
Compresses the given input file, and writes the compressed data to the given
output file.
</summary>
<param name="infile">The file to compress.</param>
<param name="outfile">The file to write the compressed data to.</param>
<returns>The size of the compressed file. If -1, the file could not be compressed.</returns>
</member>
<member name="M:DSDecmp.CompressionFormat.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Compresses the next <code>inLength</code> bytes from the input stream,
and writes the compressed data to the given output stream.
</summary>
<param name="instream">The stream to read plaintext data from.</param>
<param name="inLength">The length of the plaintext data.</param>
<param name="outstream">The stream to write the compressed data to.</param>
<returns>The size of the compressed stream. If -1, the file could not be compressed.</returns>
</member>
<member name="M:DSDecmp.CompressionFormat.ParseCompressionOptions(System.String[])">
<summary>
Parses any input specific for this format. Does nothing by default.
</summary>
<param name="args">Any arguments that may be used by the format.</param>
<returns>The number of input arguments consumed by this format.</returns>
</member>
<member name="P:DSDecmp.CompressionFormat.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.CompressionFormat.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.CompressionFormat.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="P:DSDecmp.CompressionFormat.SupportsDecompression">
<summary>
Gets if this format supports decompressing a file.
</summary>
</member>
<member name="P:DSDecmp.CompressionFormat.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="T:DSDecmp.LZUtil">
<summary>
Utility class for compression using LZ-like compression schemes.
</summary>
</member>
<member name="M:DSDecmp.LZUtil.GetOccurrenceLength(System.Byte*,System.Int32,System.Byte*,System.Int32,System.Int32@,System.Int32)">
<summary>
Determine the maximum size of a LZ-compressed block starting at newPtr, using the already compressed data
starting at oldPtr. Takes O(inLength * oldLength) = O(n^2) time.
</summary>
<param name="newPtr">The start of the data that needs to be compressed.</param>
<param name="newLength">The number of bytes that still need to be compressed.
(or: the maximum number of bytes that _may_ be compressed into one block)</param>
<param name="oldPtr">The start of the raw file.</param>
<param name="oldLength">The number of bytes already compressed.</param>
<param name="disp">The offset of the start of the longest block to refer to.</param>
<param name="minDisp">The minimum allowed value for 'disp'.</param>
<returns>The length of the longest sequence of bytes that can be copied from the already decompressed data.</returns>
</member>
<member name="T:DSDecmp.Formats.Nitro.NitroCFormat">
<summary>
Base class for Nitro-based decompressors. Uses the 1-byte magic and 3-byte decompression
size format.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.NitroCFormat.SkipLargePlaintexts">
<summary>
If true, Nitro Decompressors will not decompress files that have a decompressed
size (plaintext size) larger than MaxPlaintextSize.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.NitroCFormat.MaxPlaintextSize">
<summary>
The maximum allowed size of the decompressed file (plaintext size) allowed for Nitro
Decompressors. Only used when SkipLargePlaintexts = true.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.NitroCFormat.magicByte">
<summary>
The first byte of every file compressed with the format for this particular
Nitro Dcompressor instance.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.NitroCFormat.#ctor(System.Byte)">
<summary>
Creates a new instance of the Nitro Compression Format base class.
</summary>
<param name="magicByte">The expected first byte of the file for this format.</param>
</member>
<member name="M:DSDecmp.Formats.Nitro.NitroCFormat.Supports(System.IO.Stream,System.Int64)">
<summary>
Checks if the first four (or eight) bytes match the format used in nitro compression formats.
</summary>
</member>
<member name="T:DSDecmp.Formats.CompositeFormat">
<summary>
A format that is composed of multiple formats.
When compressing, the input is compressed using the best contained format.
When decompressing, all contained formats will try to decompress the file, until one succeeds.
</summary>
</member>
<member name="F:DSDecmp.Formats.CompositeFormat.formats">
<summary>
The actual list of formats this format is somposed of.
</summary>
</member>
<member name="M:DSDecmp.Formats.CompositeFormat.#ctor(System.Collections.Generic.IEnumerable{DSDecmp.CompressionFormat})">
<summary>
Creates a new composite format based on the given sequence of formats.
</summary>
</member>
<member name="M:DSDecmp.Formats.CompositeFormat.#ctor(DSDecmp.CompressionFormat[])">
<summary>
Creates a new composite format based on the given formats.
</summary>
</member>
<member name="M:DSDecmp.Formats.CompositeFormat.Supports(System.IO.Stream,System.Int64)">
<summary>
Checks if any of the contained formats supports the given input.
</summary>
</member>
<member name="M:DSDecmp.Formats.CompositeFormat.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Attempts to decompress the given input by letting all contained formats
try to decompress the input.
</summary>
</member>
<member name="M:DSDecmp.Formats.CompositeFormat.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Compresses the given input using the contained format that yields the best results in terms of
size reduction.
</summary>
</member>
<member name="M:DSDecmp.Formats.CompositeFormat.ParseCompressionOptions(System.String[])">
<summary>
Handles the compression options for each of the contained compression formats.
</summary>
</member>
<member name="P:DSDecmp.Formats.CompositeFormat.LastUsedCompressFormatString">
<summary>
Gets the ShortFormatString of the last CompressionFormat that was used to compress input.
</summary>
</member>
<member name="T:DSDecmp.StreamTooShortException">
<summary>
An exception thrown by the compression or decompression function, indicating that the
given input length was too large for the given input stream.
</summary>
</member>
<member name="M:DSDecmp.StreamTooShortException.#ctor">
<summary>
Creates a new exception that indicates that the stream was shorter than the given input length.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.LZ11">
<summary>
Compressor and decompressor for the LZ-0x11 format used in many of the games for the
newer Nintendo consoles and handhelds.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ11.#ctor">
<summary>
Creates a new instance of the LZ-11 compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ11.ParseCompressionOptions(System.String[])">
<summary>
Checks if the given aguments have the '-opt' option, which makes this format
compress using (near-)optimal compression instead of the original compression algorithm.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ11.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Decompresses the input using the LZ-11 compression scheme.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ11.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Compresses the input using the 'original', unoptimized compression algorithm.
This algorithm should yield files that are the same as those found in the games.
(delegates to the optimized method if LookAhead is set)
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ11.CompressWithLA(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Variation of the original compression method, making use of Dynamic Programming to 'look ahead'
and determine the optimal 'length' values for the compressed blocks. Is not 100% optimal,
as the flag-bytes are not taken into account.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ11.GetOptimalCompressionLengths(System.Byte*,System.Int32,System.Int32[]@,System.Int32[]@)">
<summary>
Gets the optimal compression lengths for each start of a compressed block using Dynamic Programming.
This takes O(n^2) time, although in practice it will often be O(n^3) since one of the constants is 0x10110
(the maximum length of a compressed block)
</summary>
<param name="indata">The data to compress.</param>
<param name="inLength">The length of the data to compress.</param>
<param name="lengths">The optimal 'length' of the compressed blocks. For each byte in the input data,
this value is the optimal 'length' value. If it is 1, the block should not be compressed.</param>
<param name="disps">The 'disp' values of the compressed blocks. May be 0, in which case the
corresponding length will never be anything other than 1.</param>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ11.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ11.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ11.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ11.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ11.LookAhead">
<summary>
Sets the flag that determines if 'look-ahead'/DP should be used when compressing
with the LZ-11 format. The default is false, which is what is used in the original
implementation.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.LZ10">
<summary>
Compressor and decompressor for the LZ-0x10 format used in many of the games for the
newer Nintendo consoles and handhelds.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ10.#ctor">
<summary>
Creates a new instance of the LZ-10 compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ10.ParseCompressionOptions(System.String[])">
<summary>
Checks if the given aguments have the '-opt' option, which makes this format
compress using (near-)optimal compression instead of the original compression algorithm.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ10.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Decompress a stream that is compressed in the LZ-10 format.
</summary>
<param name="instream">The compressed stream.</param>
<param name="inLength">The length of the input stream.</param>
<param name="outstream">The output stream, where the decompressed data is written to.</param>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ10.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Compresses the input using the 'original', unoptimized compression algorithm.
This algorithm should yield files that are the same as those found in the games.
(delegates to the optimized method if LookAhead is set)
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ10.CompressWithLA(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Variation of the original compression method, making use of Dynamic Programming to 'look ahead'
and determine the optimal 'length' values for the compressed blocks. Is not 100% optimal,
as the flag-bytes are not taken into account.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.LZ10.GetOptimalCompressionLengths(System.Byte*,System.Int32,System.Int32[]@,System.Int32[]@)">
<summary>
Gets the optimal compression lengths for each start of a compressed block using Dynamic Programming.
This takes O(n^2) time.
</summary>
<param name="indata">The data to compress.</param>
<param name="inLength">The length of the data to compress.</param>
<param name="lengths">The optimal 'length' of the compressed blocks. For each byte in the input data,
this value is the optimal 'length' value. If it is 1, the block should not be compressed.</param>
<param name="disps">The 'disp' values of the compressed blocks. May be 0, in which case the
corresponding length will never be anything other than 1.</param>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ10.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ10.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ10.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ10.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.LZ10.LookAhead">
<summary>
Sets the flag that determines if 'look-ahead'/DP should be used when compressing
with the LZ-10 format. The default is false, which is what is used in the original
implementation.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.RLE">
<summary>
Compressor and decompressor for the RLE format used in several of the games for the
newer Nintendo consoles and handhelds.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.RLE.#ctor">
<summary>
Creates a new instance of the RLE compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.RLE.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Decompresses the input using the RLE compression scheme.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.RLE.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Compresses the input using the RLE compression scheme.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.RLE.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.RLE.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.RLE.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.RLE.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="T:DSDecmp.Formats.LZOvl">
<summary>
The LZ-Overlay compression format. Compresses part of the file from end to start.
Is used for the 'overlay' files in NDS games, as well as arm9.bin.
Note that the last 12 bytes should not be included in the 'inLength' argument when
decompressing arm9.bin. This is done automatically if a file is given instead of a stream.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.ParseCompressionOptions(System.String[])">
<summary>
Checks if the given aguments have the '-opt' option, which makes this format
compress using (near-)optimal compression instead of the original compression algorithm.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.Supports(System.String)">
<summary>
Checks if this format supports decompressing the given file.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.Supports(System.IO.Stream,System.Int64)">
<summary>
Checks if this format supports decompressing the given input.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.Decompress(System.String,System.String)">
<summary>
Decompresses the given input file to the given output file using the LZ-Overlay compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Decompresses the given input using the LZ-Overlay compression scheme.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Compresses the input using the LZ-Overlay compression scheme.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.CompressNormal(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Compresses the given input stream with the LZ-Ovl compression, but compresses _forward_
instad of backwards.
</summary>
<param name="instream">The input stream to compress.</param>
<param name="inLength">The length of the input stream.</param>
<param name="outstream">The stream to write to.</param>
</member>
<member name="M:DSDecmp.Formats.LZOvl.CompressWithLA(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Variation of the original compression method, making use of Dynamic Programming to 'look ahead'
and determine the optimal 'length' values for the compressed blocks. Is not 100% optimal,
as the flag-bytes are not taken into account.
</summary>
</member>
<member name="M:DSDecmp.Formats.LZOvl.GetOptimalCompressionLengths(System.Byte*,System.Int32,System.Int32[]@,System.Int32[]@)">
<summary>
Gets the optimal compression lengths for each start of a compressed block using Dynamic Programming.
This takes O(n^2) time.
</summary>
<param name="indata">The data to compress.</param>
<param name="inLength">The length of the data to compress.</param>
<param name="lengths">The optimal 'length' of the compressed blocks. For each byte in the input data,
this value is the optimal 'length' value. If it is 1, the block should not be compressed.</param>
<param name="disps">The 'disp' values of the compressed blocks. May be less than 3, in which case the
corresponding length will never be anything other than 1.</param>
</member>
<member name="M:DSDecmp.Formats.LZOvl.GetOptimalCompressionPartLength(System.Int32[])">
<summary>
Gets the 'optimal' length of the compressed part of the file.
Or rather: the length in such a way that compressing any more will not
result in a shorter file.
</summary>
<param name="blocklengths">The lengths of the compressed blocks, as gotten from GetOptimalCompressionLengths.</param>
<returns>The 'optimal' length of the compressed part of the file.</returns>
</member>
<member name="P:DSDecmp.Formats.LZOvl.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.LZOvl.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.Formats.LZOvl.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="P:DSDecmp.Formats.LZOvl.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="P:DSDecmp.Formats.LZOvl.LookAhead">
<summary>
Sets the flag that determines if 'look-ahead'/DP should be used when compressing
with the LZ-Ovl format. The default is false, which is what is used in the original
implementation.
</summary>
</member>
<member name="M:DSDecmp.NewestProgram.Compress(System.String[],DSDecmp.CompressionFormat)">
<summary>
(Attempts to) Compress the given input to the given output, using the given format.
</summary>
<param name="ioArgs">The I/O arguments from the program input.</param>
<param name="format">The desired format to compress with.</param>
</member>
<member name="M:DSDecmp.NewestProgram.ParseIOArguments(System.String[],System.Boolean,System.String[]@,System.String@,System.Boolean@)">
<summary>
Parses the IO arguments of the input.
</summary>
<param name="ioArgs">The arguments to parse.</param>
<param name="compress">If the arguments are used for compression. If not, decompression is assumed. (used for default output folder name)</param>
<param name="inputFiles">The files to handle as input.</param>
<param name="outputDir">The directory to save the handled files in. If this is null,
the files should be overwritten. If this does not exist, it is the output file
(the input may only contain one file if that si the case).</param>
<param name="copyErrors">If files that cannot be handled (properly) should be copied to the output directory.</param>
<returns>True iff parsing of the arguments succeeded.</returns>
</member>
<member name="M:DSDecmp.NewestProgram.GuessExtension(System.Byte[],System.String)">
<summary>
Guess the extension of a file by looking at the given magic bytes of a file.
If they are alphanumeric (without accents), they could indicate the type of file.
If no sensible extension could be found from the magic bytes, the given default extension is returned.
</summary>
</member>
<member name="M:DSDecmp.NewestProgram.Copy(System.String,System.String)">
<summary>
Copies the source file to the destination path.
</summary>
</member>
<member name="M:DSDecmp.NewestProgram.GetFormat(System.String)">
<summary>
Gets the compression format corresponding to the given format string.
</summary>
</member>
<member name="M:DSDecmp.NewestProgram.GetAllFormats(System.Boolean)">
<summary>
Gets a sequence over all compression formats currently supported; both built-in and plugin-based.
</summary>
</member>
<member name="M:DSDecmp.NewestProgram.GetBuiltInFormats(System.Boolean)">
<summary>
Gets a sequence over all built-in compression formats.
</summary>
<param name="alsoCompositeFormats">If the built-in composite formats should also be part of the sequence.</param>
</member>
<member name="M:DSDecmp.NewestProgram.GetPluginFormats">
<summary>
Gets a sequence over all formats that can be used from plugins.
</summary>
</member>
<member name="M:DSDecmp.NewestProgram.FirstOrDefault``1(System.Collections.Generic.IEnumerable{``0})">
<summary>
Gets the first item from the given sequence, or the default value of the type in the sequence
if it is empty.
</summary>
</member>
<member name="T:DSDecmp.NotEnoughDataException">
<summary>
An exception that is thrown by the decompression functions when there
is not enough data available in order to properly decompress the input.
</summary>
</member>
<member name="M:DSDecmp.NotEnoughDataException.#ctor(System.Int64,System.Int64)">
<summary>
Creates a new NotEnoughDataException.
</summary>
<param name="currentOutSize">The actual number of written bytes.</param>
<param name="totalOutSize">The desired number of written bytes.</param>
</member>
<member name="P:DSDecmp.NotEnoughDataException.WrittenLength">
<summary>
Gets the actual number of written bytes.
</summary>
</member>
<member name="P:DSDecmp.NotEnoughDataException.DesiredLength">
<summary>
Gets the number of bytes that was supposed to be written.
</summary>
</member>
<member name="T:DSDecmp.SimpleReversedPrioQueue`2">
<summary>
Very simplistic implementation of a priority queue that returns items with lowest priority first.
This is not the most efficient implementation, but required the least work while using the classes
from the .NET collections, and without requiring importing another dll or several more class files
in order to make it work.
</summary>
<typeparam name="TPrio">The type of the priority values.</typeparam>
<typeparam name="TValue">The type of item to put into the queue.</typeparam>
</member>
<member name="M:DSDecmp.SimpleReversedPrioQueue`2.#ctor">
<summary>
Creates a new, empty reverse priority queue.
</summary>
</member>
<member name="M:DSDecmp.SimpleReversedPrioQueue`2.Enqueue(`0,`1)">
<summary>
Enqueues the given value, using the given priority.
</summary>
<param name="priority">The priority of the value.</param>
<param name="value">The value to enqueue.</param>
</member>
<member name="M:DSDecmp.SimpleReversedPrioQueue`2.Peek(`0@)">
<summary>
Gets the current value with the lowest priority from this queue, without dequeueing the value.
</summary>
<param name="priority">The priority of the returned value.</param>
<returns>The current value with the lowest priority.</returns>
<exception cref="T:System.IndexOutOfRangeException">If there are no items left in this queue.</exception>
</member>
<member name="M:DSDecmp.SimpleReversedPrioQueue`2.Dequeue(`0@)">
<summary>
Dequeues the current value at the head of thisreverse priority queue.
</summary>
<param name="priority">The priority of the dequeued value.</param>
<returns>The dequeued value, that used to be at the head of this queue.</returns>
<exception cref="T:System.IndexOutOfRangeException">If this queue does not contain any items.</exception>
</member>
<member name="P:DSDecmp.SimpleReversedPrioQueue`2.Count">
<summary>
Gets the number of items in this queue.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.CompositeGBAFormat">
<summary>
A composite format with all formats supported natively by the GBA.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.CompositeGBAFormat.#ctor">
<summary>
Creates a new instance of the format composed of all native GBA compression formats.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeGBAFormat.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeGBAFormat.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeGBAFormat.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeGBAFormat.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.CompositeNDSFormat">
<summary>
A composite format with all formats supported natively by the NDS (but not LZ-Overlay)
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.CompositeNDSFormat.#ctor">
<summary>
Creates a new instance of the format composed of all native NDS compression formats.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeNDSFormat.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeNDSFormat.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeNDSFormat.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.CompositeNDSFormat.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.Huffman">
<summary>
Compressor and decompressor for the Huffman format used in many of the games for the
newer Nintendo consoles and handhelds.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman.#ctor(DSDecmp.Formats.Nitro.Huffman.BlockSize)">
<summary>
Creates a new generic instance of the Huffman compression format.
</summary>
<param name="blockSize">The block size used.</param>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Decompresses the given stream, writing the decompressed data to the given output stream.
Assumes <code>Supports(instream)</code> returns <code>true</code>.
After this call, the input stream will be positioned at the end of the compressed stream,
or at the initial position + <code>inLength</code>, whichever comes first.
</summary>
<param name="instream">The stream to decompress. At the end of this method, the position
of this stream is directly after the compressed data.</param>
<param name="inLength">The length of the input data. Not necessarily all of the
input data may be read (if there is padding, for example), however never more than
this number of bytes is read from the input stream.</param>
<param name="outstream">The stream to write the decompressed data to.</param>
<returns>The length of the output data.</returns>
<exception cref="T:DSDecmp.NotEnoughDataException">When the given length of the input data
is not enough to properly decompress the input.</exception>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman.GetLowest(DSDecmp.SimpleReversedPrioQueue{System.Int32,DSDecmp.Formats.Nitro.Huffman.HuffTreeNode},DSDecmp.SimpleReversedPrioQueue{System.Int32,DSDecmp.Formats.Nitro.Huffman.HuffTreeNode},System.Int32@)">
<summary>
Gets the tree node with the lowest priority (frequency) from the leaf and node queues.
If the priority is the same for both head items in the queues, the node from the leaf queue is picked.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.CompressBlockSize">
<summary>
Sets the block size used when using the Huffman format to compress.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.SupportsCompression">
<summary>
Gets if this format supports compression. Always returns true.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.Huffman.BlockSize">
<summary>
The possible data sizes used in Huffman compression formats on the GBA/NDS.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.BlockSize.FOURBIT">
<summary>
Each data block is four bits long.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.BlockSize.EIGHTBIT">
<summary>
Each data block is eight bits long.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode">
<summary>
A single node in a Huffman tree.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.data">
<summary>
The data contained in this node. May not mean anything when <code>isData == false</code>
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.isFilled">
<summary>
A flag indicating if this node has been filled.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.isData">
<summary>
A flag indicating if this node contains data. If not, this is not a leaf node.
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.child0">
<summary>
The child of this node at side 0
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.child1">
<summary>
The child of this node at side 1
</summary>
</member>
<member name="F:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.index">
<summary>
The index of this node in the array for building the proper ordering.
If -1, this node has not yet been placed in the array.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.#ctor(System.Byte,System.Boolean,DSDecmp.Formats.Nitro.Huffman.HuffTreeNode,DSDecmp.Formats.Nitro.Huffman.HuffTreeNode)">
<summary>
Manually creates a new node for a huffman tree.
</summary>
<param name="data">The data for this node.</param>
<param name="isData">If this node represents data.</param>
<param name="child0">The child of this node on the 0 side.</param>
<param name="child1">The child of this node on the 1 side.</param>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.#ctor(System.IO.Stream,System.Boolean,System.Int64,System.Int64)">
<summary>
Creates a new node in the Huffman tree.
</summary>
<param name="stream">The stream to read from. It is assumed that there is (at least)
one more byte available to read.</param>
<param name="isData">If this node is a data-node.</param>
<param name="relOffset">The offset of this node in the source data, relative to the start
of the compressed file.</param>
<param name="maxStreamPos">The indicated end of the huffman tree. If the stream is past
this position, the tree is invalid.</param>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.ToString">
<summary>
Generates and returns a string-representation of the huffman tree starting at this node.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.Data">
<summary>
The data contained in this node. May not mean anything when <code>isData == false</code>.
Throws a NullReferenceException when this node has not been defined (ie: reference was outside the
bounds of the tree definition)
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.IsData">
<summary>
Returns true if this node represents data.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.Child0">
<summary>
The child of this node at side 0
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.Child1">
<summary>
The child of this node at side 1
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.Parent">
<summary>
The parent node of this node.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.IsChild0">
<summary>
Determines if this is the Child0 of the parent node. Assumes there is a parent.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.IsChild1">
<summary>
Determines if this is the Child1 of the parent node. Assumes there is a parent.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.Depth">
<summary>
Get or set the depth of this node. Will not be set automatically, but
will be set recursively (the depth of all child nodes will be updated when this is set).
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman.HuffTreeNode.Size">
<summary>
Calculates the size of the sub-tree with this node as root.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.Huffman4">
<summary>
The Huffman compression scheme using 4-bit data blocks.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman4.#ctor">
<summary>
Creates a new instance of the 4-bit Huffman compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman4.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Applies Huffman compression with a datablock size of 4 bits.
</summary>
<param name="instream">The stream to compress.</param>
<param name="inLength">The length of the input stream.</param>
<param name="outstream">The stream to write the decompressed data to.</param>
<returns>The size of the decompressed data.</returns>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman4.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman4.Description">
<summary>
Gets a short description of this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman4.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.Huffman8">
<summary>
The Huffman compression scheme using 8-bit data blocks.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman8.#ctor">
<summary>
Creates a new instance of the 4-bit Huffman compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman8.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
Applies Huffman compression with a datablock size of 8 bits.
</summary>
<param name="instream">The stream to compress.</param>
<param name="inLength">The length of the input stream.</param>
<param name="outstream">The stream to write the decompressed data to.</param>
<returns>The size of the decompressed data.</returns>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman8.Insert(DSDecmp.Formats.Nitro.Huffman.HuffTreeNode,DSDecmp.Formats.Nitro.Huffman.HuffTreeNode[],System.Int32)">
<summary>
Inserts the given node into the given array, in such a location that
the offset to both of its children is at most the given maximum, and as large as possible.
In order to do this, the contents of the array may be shifted to the right.
</summary>
<param name="node">The node to insert.</param>
<param name="array">The array to insert the node in.</param>
<param name="maxOffset">The maximum offset between parent and children.</param>
</member>
<member name="M:DSDecmp.Formats.Nitro.Huffman8.ShiftRight(DSDecmp.Formats.Nitro.Huffman.HuffTreeNode[],System.Int32,System.Int32)">
<summary>
Shifts the node at the given index one to the right.
If the distance between parent and child becomes too large due to this shift, the parent is shifted as well.
</summary>
<param name="array">The array to shift the node in.</param>
<param name="idx">The index of the node to shift.</param>
<param name="maxOffset">The maximum distance between parent and children.</param>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman8.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman8.Description">
<summary>
Gets a short description of this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.Huffman8.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.HuffmanAny">
<summary>
Composite compression format representing both Huffman compression schemes.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.HuffmanAny.#ctor">
<summary>
Creates a new instance of the general Huffman compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.HuffmanAny.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.HuffmanAny.Description">
<summary>
Gets a short description of this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.HuffmanAny.SupportsCompression">
<summary>
Gets if this format supports compression. Always returns true.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.HuffmanAny.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
<member name="T:DSDecmp.Formats.Nitro.NullCompression">
<summary>
'Compression' format without any compression whatsoever.
Compression using this format will only prepend 0x00 plus the original file size to the file.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.NullCompression.#ctor">
<summary>
Creates a new instance of the NULL-compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.NullCompression.Supports(System.IO.Stream,System.Int64)">
<summary>
Checks if the given stream is (or could be) 'compressed' using the NULL compression format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.NullCompression.Decompress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
'Decompresses' the given input stream using the NULL format.
</summary>
</member>
<member name="M:DSDecmp.Formats.Nitro.NullCompression.Compress(System.IO.Stream,System.Int64,System.IO.Stream)">
<summary>
'Compresses' the given input stream using the NULL format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.NullCompression.ShortFormatString">
<summary>
Gets a short string identifying this compression format.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.NullCompression.Description">
<summary>
Gets a short description of this compression format (used in the program usage).
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.NullCompression.SupportsCompression">
<summary>
Gets if this format supports compressing a file.
</summary>
</member>
<member name="P:DSDecmp.Formats.Nitro.NullCompression.CompressionFlag">
<summary>
Gets the value that must be given on the command line in order to compress using this format.
</summary>
</member>
</members>
</doc>