xref: /plan9-contrib/sys/src/cmd/gs/src/zfbcp.c (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
13ff48bf5SDavid du Colombier /* Copyright (C) 1994, 2000 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: zfbcp.c,v 1.5 2002/02/21 22:24:54 giles Exp $ */
187dd7cddfSDavid du Colombier /* (T)BCP filter creation */
197dd7cddfSDavid du Colombier #include "memory_.h"
207dd7cddfSDavid du Colombier #include "ghost.h"
217dd7cddfSDavid du Colombier #include "oper.h"
227dd7cddfSDavid du Colombier #include "gsstruct.h"
237dd7cddfSDavid du Colombier #include "ialloc.h"
247dd7cddfSDavid du Colombier #include "stream.h"
257dd7cddfSDavid du Colombier #include "strimpl.h"
263ff48bf5SDavid du Colombier #include "sbcp.h"
277dd7cddfSDavid du Colombier #include "ifilter.h"
287dd7cddfSDavid du Colombier 
297dd7cddfSDavid du Colombier /* Define null handlers for the BCP out-of-band signals. */
307dd7cddfSDavid du Colombier private int
no_bcp_signal_interrupt(stream_state * st)317dd7cddfSDavid du Colombier no_bcp_signal_interrupt(stream_state * st)
327dd7cddfSDavid du Colombier {
337dd7cddfSDavid du Colombier     return 0;
347dd7cddfSDavid du Colombier }
357dd7cddfSDavid du Colombier private int
no_bcp_request_status(stream_state * st)367dd7cddfSDavid du Colombier no_bcp_request_status(stream_state * st)
377dd7cddfSDavid du Colombier {
387dd7cddfSDavid du Colombier     return 0;
397dd7cddfSDavid du Colombier }
407dd7cddfSDavid du Colombier 
417dd7cddfSDavid du Colombier /* <source> BCPEncode/filter <file> */
427dd7cddfSDavid du Colombier /* <source> <dict> BCPEncode/filter <file> */
437dd7cddfSDavid du Colombier private int
zBCPE(i_ctx_t * i_ctx_p)447dd7cddfSDavid du Colombier zBCPE(i_ctx_t *i_ctx_p)
457dd7cddfSDavid du Colombier {
467dd7cddfSDavid du Colombier     return filter_write_simple(i_ctx_p, &s_BCPE_template);
477dd7cddfSDavid du Colombier }
487dd7cddfSDavid du Colombier 
497dd7cddfSDavid du Colombier /* <target> BCPDecode/filter <file> */
507dd7cddfSDavid du Colombier /* <target> <dict> BCPDecode/filter <file> */
517dd7cddfSDavid du Colombier private int
zBCPD(i_ctx_t * i_ctx_p)527dd7cddfSDavid du Colombier zBCPD(i_ctx_t *i_ctx_p)
537dd7cddfSDavid du Colombier {
547dd7cddfSDavid du Colombier     stream_BCPD_state state;
557dd7cddfSDavid du Colombier 
567dd7cddfSDavid du Colombier     state.signal_interrupt = no_bcp_signal_interrupt;
577dd7cddfSDavid du Colombier     state.request_status = no_bcp_request_status;
587dd7cddfSDavid du Colombier     return filter_read(i_ctx_p, 0, &s_BCPD_template, (stream_state *)&state, 0);
597dd7cddfSDavid du Colombier }
607dd7cddfSDavid du Colombier 
617dd7cddfSDavid du Colombier /* <source> TBCPEncode/filter <file> */
627dd7cddfSDavid du Colombier /* <source> <dict> TBCPEncode/filter <file> */
637dd7cddfSDavid du Colombier private int
zTBCPE(i_ctx_t * i_ctx_p)647dd7cddfSDavid du Colombier zTBCPE(i_ctx_t *i_ctx_p)
657dd7cddfSDavid du Colombier {
667dd7cddfSDavid du Colombier     return filter_write_simple(i_ctx_p, &s_TBCPE_template);
677dd7cddfSDavid du Colombier }
687dd7cddfSDavid du Colombier 
697dd7cddfSDavid du Colombier /* <target> TBCPDecode/filter <file> */
707dd7cddfSDavid du Colombier /* <target> <dict> TBCPDecode/filter <file> */
717dd7cddfSDavid du Colombier private int
zTBCPD(i_ctx_t * i_ctx_p)727dd7cddfSDavid du Colombier zTBCPD(i_ctx_t *i_ctx_p)
737dd7cddfSDavid du Colombier {
747dd7cddfSDavid du Colombier     stream_BCPD_state state;
757dd7cddfSDavid du Colombier 
767dd7cddfSDavid du Colombier     state.signal_interrupt = no_bcp_signal_interrupt;
777dd7cddfSDavid du Colombier     state.request_status = no_bcp_request_status;
787dd7cddfSDavid du Colombier     return filter_read(i_ctx_p, 0, &s_TBCPD_template, (stream_state *)&state, 0);
797dd7cddfSDavid du Colombier }
807dd7cddfSDavid du Colombier 
817dd7cddfSDavid du Colombier /* ------ Initialization procedure ------ */
827dd7cddfSDavid du Colombier 
837dd7cddfSDavid du Colombier const op_def zfbcp_op_defs[] =
847dd7cddfSDavid du Colombier {
857dd7cddfSDavid du Colombier     op_def_begin_filter(),
867dd7cddfSDavid du Colombier     {"1BCPEncode", zBCPE},
877dd7cddfSDavid du Colombier     {"1BCPDecode", zBCPD},
887dd7cddfSDavid du Colombier     {"1TBCPEncode", zTBCPE},
897dd7cddfSDavid du Colombier     {"1TBCPDecode", zTBCPD},
907dd7cddfSDavid du Colombier     op_def_end(0)
917dd7cddfSDavid du Colombier };
92