libmspack

- Main Page
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Data Fields

Data Fields
mskwaj_compressor Struct Reference

A compressor for the KWAJ file format. More...

`#include <mspack.h>`

## Data Fields

int(* | compress )(struct mskwaj_compressor *self, const char *input, const char *output, off_t length)
| Reads an input file and creates a compressed output file in the KWAJ compressed file format.
int(* | set_param )(struct mskwaj_compressor *self, int param, unsigned int value)
| Sets an KWAJ compression engine parameter.
int(* | set_filename )(struct mskwaj_compressor *self, const char *filename)
| Sets the original filename of the file before compression, which will be stored in the header of the output file.
int(* | set_extra_data )(struct mskwaj_compressor *self, void *data, size_t bytes)
| Sets arbitrary data that will be stored in the header of the output file, uncompressed.
int(* | last_error )(struct mschm_decompressor *self)
| Returns the error code set by the most recently called method.

## Detailed Description

A compressor for the KWAJ file format.

All fields are READ ONLY.

See also:
  mspack_create_kwaj_compressor(), mspack_destroy_kwaj_compressor()

## Field Documentation

int(* mskwaj_compressor::compress)(struct mskwaj_compressor *self, const char *input, const char *output, off_t length)

Reads an input file and creates a compressed output file in the KWAJ compressed file format.

The KWAJ compression format is quick but gives poor compression. It is possible for the compressed output file to be larger than the input file.

Parameters:

  self | a self-referential pointer to the mskwaj_compressor instance being called
  input | the name of the file to compressed. This is passed passed directly to mspack_system::open()
  output | the name of the file to write compressed data to. This is passed directly to mspack_system::open().
  length | the length of the uncompressed file, or -1 to indicate that this should be determined automatically by using mspack_system::seek() on the input file.

Returns:
  an error code, or MSPACK_ERR_OK if successful

See also:
  set_param()

int(* mskwaj_compressor::last_error)(struct mschm_decompressor *self)

Returns the error code set by the most recently called method.

Parameters:

  self | a self-referential pointer to the mskwaj_compressor instance being called

Returns:
  the most recent error code

See also:
  compress()

int(* mskwaj_compressor::set_extra_data)(struct mskwaj_compressor *self, void *data, size_t bytes)

Sets arbitrary data that will be stored in the header of the output file, uncompressed.

It can be up to roughly 64 kilobytes, as the overall size of the header must not exceed 65535 bytes. The data can contain null bytes if desired.

If NULL is passed as the data pointer, or zero is passed as the length, no extra data is included in the header. This is the default.

Parameters:

  self | a self-referential pointer to the mskwaj_compressor instance being called
  data | a pointer to the data to be stored in the header
  bytes | the length of the data in bytes

Returns:
  MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS extra data is too long

int(* mskwaj_compressor::set_filename)(struct mskwaj_compressor *self, const char *filename)

Sets the original filename of the file before compression, which will be stored in the header of the output file.

The filename should be a null-terminated string, it must be an MS-DOS "8.3" type filename (up to 8 bytes for the filename, then optionally a "." and up to 3 bytes for a filename extension).

If NULL is passed as the filename, no filename is included in the header. This is the default.

Parameters:

  self | a self-referential pointer to the mskwaj_compressor instance being called
  filename | the original filename to use

Returns:
  MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if the filename is too long

int(* mskwaj_compressor::set_param)(struct mskwaj_compressor *self, int param, unsigned int value)

Sets an KWAJ compression engine parameter.

The following parameters are defined:

- MSKWAJC_PARAM_COMP_TYPE: the compression method to use. Must be one of #MSKWAJC_COMP_NONE, #MSKWAJC_COMP_XOR, MSKWAJ_COMP_SZDD or MSKWAJ_COMP_LZH. The default is MSKWAJ_COMP_LZH.

- MSKWAJC_PARAM_INCLUDE_LENGTH: a boolean; should the compressed output file should include the uncompressed length of the input file in the header? This adds 4 bytes to the size of the output file. A value of zero says "no", non-zero says "yes". The default is "no".

Parameters:

  self | a self-referential pointer to the mskwaj_compressor instance being called
  param | the parameter to set
  value | the value to set the parameter to

Returns:
  MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if there is a problem with either parameter or value.

See also:
  generate()

The documentation for this struct was generated from the following file:

- mspack.h

All Data Structures Files Functions Variables Defines