xref: /plan9/sys/src/cmd/gs/src/gxcllzw.c (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
17dd7cddfSDavid du Colombier /* Copyright (C) 1997 Aladdin Enterprises.  All rights reserved.
27dd7cddfSDavid du Colombier 
3*593dc095SDavid du Colombier   This software is provided AS-IS with no warranty, either express or
4*593dc095SDavid du Colombier   implied.
57dd7cddfSDavid du Colombier 
6*593dc095SDavid du Colombier   This software is distributed under license and may not be copied,
7*593dc095SDavid du Colombier   modified or distributed except as expressly authorized under the terms
8*593dc095SDavid du Colombier   of the license contained in the file LICENSE in this distribution.
97dd7cddfSDavid du Colombier 
10*593dc095SDavid du Colombier   For more information about licensing, please refer to
11*593dc095SDavid du Colombier   http://www.ghostscript.com/licensing/. For information on
12*593dc095SDavid du Colombier   commercial licensing, go to http://www.artifex.com/licensing/ or
13*593dc095SDavid du Colombier   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14*593dc095SDavid du Colombier   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
157dd7cddfSDavid du Colombier */
167dd7cddfSDavid du Colombier 
17*593dc095SDavid du Colombier /* $Id: gxcllzw.c,v 1.4 2002/02/21 22:24:53 giles Exp $ */
187dd7cddfSDavid du Colombier /* LZW filter initialization for RAM-based band lists */
197dd7cddfSDavid du Colombier #include "std.h"
207dd7cddfSDavid du Colombier #include "gstypes.h"
217dd7cddfSDavid du Colombier #include "gsmemory.h"
227dd7cddfSDavid du Colombier #include "gxclmem.h"
237dd7cddfSDavid du Colombier #include "slzwx.h"
247dd7cddfSDavid du Colombier 
257dd7cddfSDavid du Colombier private stream_LZW_state cl_LZWE_state;
267dd7cddfSDavid du Colombier private stream_LZW_state cl_LZWD_state;
277dd7cddfSDavid du Colombier 
287dd7cddfSDavid du Colombier /* Initialize the states to be copied. */
297dd7cddfSDavid du Colombier void
gs_cl_lzw_init(gs_memory_t * mem)307dd7cddfSDavid du Colombier gs_cl_lzw_init(gs_memory_t * mem)
317dd7cddfSDavid du Colombier {
327dd7cddfSDavid du Colombier     s_LZW_set_defaults((stream_state *) & cl_LZWE_state);
337dd7cddfSDavid du Colombier     cl_LZWE_state.template = &s_LZWE_template;
347dd7cddfSDavid du Colombier     s_LZW_set_defaults((stream_state *) & cl_LZWD_state);
357dd7cddfSDavid du Colombier     cl_LZWD_state.template = &s_LZWD_template;
367dd7cddfSDavid du Colombier }
377dd7cddfSDavid du Colombier 
387dd7cddfSDavid du Colombier /* Return the prototypes for compressing/decompressing the band list. */
397dd7cddfSDavid du Colombier const stream_state *
clist_compressor_state(void * client_data)407dd7cddfSDavid du Colombier clist_compressor_state(void *client_data)
417dd7cddfSDavid du Colombier {
427dd7cddfSDavid du Colombier     return (const stream_state *)&cl_LZWE_state;
437dd7cddfSDavid du Colombier }
447dd7cddfSDavid du Colombier const stream_state *
clist_decompressor_state(void * client_data)457dd7cddfSDavid du Colombier clist_decompressor_state(void *client_data)
467dd7cddfSDavid du Colombier {
477dd7cddfSDavid du Colombier     return (const stream_state *)&cl_LZWD_state;
487dd7cddfSDavid du Colombier }
49