1/*
2 * Copyright 1990 Network Computing Devices
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of Network Computing Devices not be
9 * used in advertising or publicity pertaining to distribution of the
10 * software without specific, written prior permission.  Network Computing
11 * Devices makes no representations about the suitability of this software
12 * for any purpose.  It is provided "as is" without express or implied
13 * warranty.
14 *
15 * NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
16 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
17 * IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
18 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
19 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
20 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
21 * OR PERFORMANCE OF THIS SOFTWARE.
22 *
23 * Author:  	Dave Lemke, Network Computing Devices, Inc
24 *
25 */
26
27#ifndef _FSERVE_H_
28#define _FSERVE_H_
29/*
30 * font server data structures
31 */
32
33/* types of block records */
34#define	FS_OPEN_FONT		1
35#define	FS_LOAD_GLYPHS		2
36#define	FS_LIST_FONTS		3
37#define	FS_LIST_WITH_INFO	4
38
39/* states of OpenFont */
40#define	FS_OPEN_REPLY		0
41#define	FS_INFO_REPLY		1
42#define	FS_EXTENT_REPLY		2
43#define	FS_GLYPHS_REPLY		3
44#define	FS_DONE_REPLY		4
45#define FS_DEPENDING		5
46
47/* status of ListFontsWithInfo */
48#define	FS_LFWI_WAITING		0
49#define	FS_LFWI_REPLY		1
50#define	FS_LFWI_FINISHED	2
51
52/* states of connection */
53#define FS_CONN_CLOSED		0
54#define FS_CONN_CONNECTING	1
55#define FS_CONN_READ_HEADER	2
56#define FS_CONN_READ_DATA	3
57
58#define	AccessDone	0x400
59
60typedef struct _fs_font_data *FSFontDataPtr;
61typedef struct _fs_blocked_font *FSBlockedFontPtr;
62typedef struct _fs_blocked_glyphs *FSBlockedGlyphPtr;
63typedef struct _fs_blocked_list *FSBlockedListPtr;
64typedef struct _fs_blocked_list_info *FSBlockedListInfoPtr;
65typedef struct _fs_block_data *FSBlockDataPtr;
66typedef struct _fs_font_table *FSFontTablePtr;
67typedef struct _fs_fpe_data *FSFpePtr;
68
69typedef struct _fs_blocked_bitmaps *FSBlockedBitmapPtr;
70typedef struct _fs_blocked_extents *FSBlockedExtentPtr;
71
72extern void _fs_convert_char_info ( fsXCharInfo *src, xCharInfo *dst );
73extern void _fs_free_props (FontInfoPtr pfi);
74extern FontPtr fs_create_font (FontPathElementPtr   fpe,
75			       const char	    *name,
76			       int		    namelen,
77			       fsBitmapFormat	    format,
78			       fsBitmapFormatMask   fmask);
79
80extern int fs_load_all_glyphs ( FontPtr pfont );
81
82#endif				/* _FSERVE_H_ */
83