summaryrefslogtreecommitdiff
path: root/support/dktools/dk4lzwe.h
diff options
context:
space:
mode:
Diffstat (limited to 'support/dktools/dk4lzwe.h')
-rw-r--r--support/dktools/dk4lzwe.h208
1 files changed, 0 insertions, 208 deletions
diff --git a/support/dktools/dk4lzwe.h b/support/dktools/dk4lzwe.h
deleted file mode 100644
index a6087f644d..0000000000
--- a/support/dktools/dk4lzwe.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
-Copyright (C) 2016-2020, Dirk Krause
-SPDX-License-Identifier: BSD-3-Clause
-*/
-
-/*
- WARNING: This file was generated by the dkct program (see
- http://dktools.sourceforge.net/ for details).
- Changes you make here will be lost if dkct is run again!
- You should modify the original source and run dkct on it.
- Original source: dk4lzwe.ctr
-*/
-
-#ifndef DK4LZWE_H_INCLUDED
-/** Avoid multiple inclusions. */
-#define DK4LZWE_H_INCLUDED 1
-
-
-#line 8 "dk4lzwe.ctr"
-
-/** @file dk4lzwe.h LZW encoder to produce PS level 2 output.
-
-- The unit length (input data length) is 8 bits.
-- Code 256 is used for table cleanup, 257 is the end of data marker.
-- EarlyChange is in use: the number of bits per code is increased after
- creating table entries for codes 511, 1023 and 2047.
-- Table entries are created for codes up to 4093. Instead of generating
- an entry for 4094, the table is cleared.
-*/
-
-
-#ifndef DK4CONF_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4conf.h"
-#else
-#include <dktools-4/dk4conf.h>
-#endif
-#endif
-
-#ifndef DK4ERROR_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4error.h"
-#else
-#include <dktools-4/dk4error.h>
-#endif
-#endif
-
-#ifndef DK4BITSH_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4bitsh.h"
-#else
-#include <dktools-4/dk4bitsh.h>
-#endif
-#endif
-
-
-
-/** Table size.
- The table must be large enough to keep 4096 entries. Adding
- 25 percent size significantly decreases the number of lookups.
- A prime number is required to ensure traversal of the entire
- table if necessary.
-*/
-enum {
- LZW_TABLE_SIZE = 5147 /**< Size of LZW compression table. */
-};
-
-
-
-/** One table entry for LZW compression.
-*/
-typedef struct {
- unsigned short os; /**< Current (old) state or code. */
- unsigned short ns; /**< New state after applying input. */
- unsigned char in; /**< Input byte. */
-} dk4_lzw_cell_t;
-
-
-
-/** LZW encoder structure.
-*/
-typedef struct {
- unsigned char ob[8]; /**< Output buffer. */
- dk4_bit_shift_t bs; /**< Bit shifter. */
- dk4_lzw_cell_t *p_tbl; /**< Pointer to dynamically allocated table. */
- size_t obu; /**< Used bytes in output buffer. */
- int mret; /**< Flag: Must retrieve output data. */
- int hst; /**< Flag: Have internal state. */
- unsigned short bits; /**< Number of bits to use for output. */
- unsigned short cs; /**< Current state. */
- unsigned short ns; /**< Next state for new table entry. */
-} dk4_lzwe_t;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/** Initialize LZW encoder, allocate memory for resources.
- @param lzwptr Encoder to initialize.
- @param erp Error report, may be NULL.
- @return 1 on success, 0 on error.
-
- Error codes:
- - DK4_E_INVALID_ARGUMENTS<br>
- if lzwptr is NULL,
- - DK4_E_MATH_OVERFLOW<br>
- on numeric overflow when calculating the
- product of elsize and nelem,
- - DK4_E_MEMORY_ALLOCATION_FAILED<br>
- with mem.elsize and mem.nelem
- set if there is not enough memory available,
- - DK4_E_BUG<br>
- if the dk4bit_shift_add() call indicates an error
- (should not happen as we provide a valid address to the function),
- - DK4_E_BUFFER_TOO_SMALL<br>
- if the output buffer is already full. Typically this means
- that output was not retrieved as expected by the library.
-*/
-
-int
-dk4lzwe_init(
- dk4_lzwe_t *lzwptr,
- dk4_er_t *erp
-);
-
-
-/** Add one byte to the encoder.
- @param lzwptr Encoder to use.
- @param uc Byte to add.
- @param erp Error report, may be NULL.
- @return Operation result, one from:
- - DK4_EDSTM_ACCEPT<br>
- if the input byte was successfully stored in the internal data
- structures without completing a run. No further action
- necessary.
- - DK4_EDSTM_FINISHED<br>
- if output was created. Use dk4lzwe_output() to obtain the
- output data.
- - DK4_EDSTM_ERROR<br>
- if an error occured.
-*/
-
-int
-dk4lzwe_add(
- dk4_lzwe_t *lzwptr,
- unsigned char uc,
- dk4_er_t *erp
-);
-
-
-/** Finish encoded data stream, flush internal state and bits from
- the bit shifter to output buffer and release dynamic memory.
- @param lzwptr Encoder to use.
- @param erp Error report, may be NULL.
- @return Operation result, one from:
- - DK4_EDSTM_ACCEPT<br>
- if the input byte was successfully stored in the internal data
- structures without completing a run. No further action
- necessary.
- - DK4_EDSTM_FINISHED<br>
- if output was created. Use dk4lzwe_output() to obtain the
- output data.
- - DK4_EDSTM_ERROR<br>
- if an error occured.
-
- Error codes:
- - DK4_E_INVALID_ARGUMENTS<br>
- if lzwptr is NULL or lzwptr->s_tbl or lzwptr->i_tbl is NULL,
- - DK4_E_BUG<br>
- if the dk4bit_shift_add() call indicates an error
- (should not happen as we provide a valid address to the function),
- - DK4_E_BUFFER_TOO_SMALL<br>
- if the output buffer is already full. Typically this means
- that output was not retrieved as expected by the library.
-*/
-
-int
-dk4lzwe_finish(
- dk4_lzwe_t *lzwptr,
- dk4_er_t *erp
-);
-
-
-/** Retrieve output from encoder.
- @param dptr Address of result pointer.
- @param szptr Address of result size variable.
- @param lzwptr Encoder to use.
- @param erp Error report, may be NULL.
- @return 1 if data available, 0 otherwise.
-*/
-
-int
-dk4lzwe_output(
- const unsigned char **dptr,
- size_t *szptr,
- dk4_lzwe_t *lzwptr,
- dk4_er_t *erp
-);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/* vim: set ai sw=4 ts=4 : */
-
-#endif