xref: /plan9/sys/src/cmd/gs/src/gdevfax.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 2000 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: gdevfax.h,v 1.5 2002/06/16 07:25:26 lpd Exp $ */
18 /* Definitions and interface for fax devices */
19 
20 #ifndef gdevfax_INCLUDED
21 #  define gdevfax_INCLUDED
22 
23 /* Define the default device parameters. */
24 #define X_DPI 204
25 #define Y_DPI 196
26 
27 /* Define the structure for fax devices. */
28 /* Precede this by gx_device_common and gx_prn_device_common. */
29 #define gx_fax_device_common\
30     int AdjustWidth		/* 0 = no adjust, 1 = adjust to fax values */
31 typedef struct gx_device_fax_s {
32     gx_device_common;
33     gx_prn_device_common;
34     gx_fax_device_common;
35 } gx_device_fax;
36 
37 #define FAX_DEVICE_BODY(dtype, procs, dname, print_page)\
38     prn_device_std_body(dtype, procs, dname,\
39 			DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,\
40 			X_DPI, Y_DPI,\
41 			0, 0, 0, 0,	/* margins */\
42 			1, print_page),\
43     1				/* AdjustWidth */
44 
45 /* Procedures defined in gdevfax.c */
46 
47 /* Driver procedures */
48 dev_proc_open_device(gdev_fax_open);
49 dev_proc_get_params(gdev_fax_get_params); /* adds AdjustWidth */
50 dev_proc_put_params(gdev_fax_put_params); /* adds AdjustWidth */
51 extern const gx_device_procs gdev_fax_std_procs;
52 
53 /* Other procedures */
54 void gdev_fax_init_state(stream_CFE_state *ss, const gx_device_fax *fdev);
55 void gdev_fax_init_fax_state(stream_CFE_state *ss,
56 			     const gx_device_fax *fdev);
57 int gdev_fax_print_strip(gx_device_printer * pdev, FILE * prn_stream,
58 			 const stream_template * temp, stream_state * ss,
59 			 int width, int row_first,
60 			 int row_end /* last + 1 */);
61 int gdev_fax_print_page(gx_device_printer *pdev, FILE *prn_stream,
62 			stream_CFE_state *ss);
63 
64 #endif /* gdevfax_INCLUDED */
65