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