summaryrefslogtreecommitdiff
path: root/devices/gdevbjc.h
blob: 6cc9c510d998cf8a80ec74e54cff8023a20b4705 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
/* Copyright (C) 2001-2023 Artifex Software, Inc.
   All Rights Reserved.

   This software is provided AS-IS with no warranty, either express or
   implied.

   This software is distributed under license and may not be copied,
   modified or distributed except as expressly authorized under the terms
   of the license contained in the file LICENSE in this distribution.

   Refer to licensing information at http://www.artifex.com or contact
   Artifex Software, Inc.,  39 Mesa Street, Suite 108A, San Francisco,
   CA 94129, USA, for further information.
*/


#ifndef gdevbjc_INCLUDED
#  define gdevbjc_INCLUDED

/*
 * Definitions for Canon BJC printers and the associated drivers.
 *
 * Copyright (C) Yves Arrouye <yves.arrouye@usa.net>, 1995, 1996.
 *
 */

/*
 * Please do read the definitions here and change the defaults if needed.
 *
 * Values that can be changed are all called BJC_DEFAULT_* for generic
 * values and BJC600_DEFAULT_* or BJC800_DEFAULT_* for specific values.
 *
 */

#ifndef _GDEV_BJC_H
#define _GDEV_CDJ_H

/*
 * Drivers names. I don't expect you to change them!
 *
 */

#define BJC_BJC600		"bjc600"
#define BJC_BJC800		"bjc800"

#define BJC_BJC600_VERSION	2.1700
#define BJC_BJC600_VERSIONSTR	"2.17.00 5/23/96 Yves Arrouye"

#define BJC_BJC800_VERSION	2.1700
#define BJC_BJC800_VERSIONSTR	"2.17.00 5/23/96 Yves Arrouye"

/*
 * Hardware limits. May be adjusted eventually.
 *
 */

#define BJC_PRINT_LIMIT		(3. / 25.4) 		/* In inches. */
#define BJC_A3_PRINT_LIMIT	(8. / 25.4)             /* In inches. */

#define BJC_HARD_LOWER_LIMIT	(7. / 25.4)		/* In inches. */
#define BJC_USED_LOWER_LIMIT	(9.54 / 25.4)		/* In inches. */
#define BJC_RECD_LOWER_LIMIT	(12.7 / 25.4)		/* In inches. */

#ifdef USE_RECOMMENDED_MARGINS
#define BJC_LOWER_LIMIT		BJC_RECD_LOWER_LIMIT
#undef BJC_DEFAULT_CENTEREDAREA
#define BJC_DEFAULT_CENTEREDAREA
#else
#ifdef USE_TIGHT_MARGINS
#define BJC_LOWER_LIMIT		BJC_HARD_LOWER_LIMIT	/* In inches. */
#else
#define BJC_LOWER_LIMIT		BJC_USED_LOWER_LIMIT	/* In inches. */
#endif
#endif

#ifndef BJC600_MEDIAWEIGHT_THICKLIMIT
#define BJC600_MEDIAWEIGHT_THICKLIMIT	105		/* In g/m2. */
#endif
#ifndef BJC800_MEDIAWEIGHT_THICKLIMIT
#define BJC800_MEDIAWEIGHT_THICKLIMIT	BJC600_MEDIAWEIGHT_THICKLIMIT
#endif

#define BJC_HEAD_ROWS 64	/* Number of heads. Do not change! */

/*
 * Margins resulting from the limits specified above.
 *
 * The margins are Left, Bottom, Right, Top and are expressed in inches.
 * You should not change them, better change the limits above.
 *
 */

#define BJC_MARGINS_LETTER \
    (float)(6.5 / 25.4), (float)BJC_LOWER_LIMIT, \
    (float)(6.5 / 25.4), (float)BJC_PRINT_LIMIT
#define BJC_MARGINS_A4 \
    (float)(3.4 / 25.4), (float)BJC_LOWER_LIMIT, \
    (float)(3.4 / 25.4), (float)BJC_PRINT_LIMIT
#define BJC_MARGINS_A3 \
    (float)(4.0 / 25.4), (float)BJC_LOWER_LIMIT, \
    (float)(4.0 / 25.4), (float)BJC_A3_PRINT_LIMIT

/*
 * Drivers options names.
 *
 */

#define BJC_DEVINFO_VERSION		"Version"
#define BJC_DEVINFO_VERSIONSTRING	"VersionString"

#define BJC_DEVINFO_OUTPUTFACEUP	"OutputFaceUp"

#define BJC_OPTION_MANUALFEED		"ManualFeed"
#define BJC_OPTION_DITHERINGTYPE	"DitheringType"
#define BJC_OPTION_MEDIATYPE		"MediaType"
#define BJC_OPTION_MEDIAWEIGHT		"MediaWeight"
#define BJC_OPTION_PRINTQUALITY		"PrintQuality"
#define BJC_OPTION_COLORCOMPONENTS	"ColorComponents"
#define BJC_OPTION_PRINTCOLORS		"PrintColors"
#define BJC_OPTION_MONOCHROMEPRINT	"MonochromePrint"

/*
 * Definitions of parameters (options) values.
 *
 */

#define BJC_MEDIA_PLAINPAPER		0
#define BJC_MEDIA_COATEDPAPER		1
#define BJC_MEDIA_TRANSPARENCYFILM	2
#define BJC_MEDIA_BACKPRINTFILM		3	/* Unused */
#define BJC_MEDIA_ENVELOPE		8
#define BJC_MEDIA_CARD			9
#define BJC_MEDIA_OTHER			15

#define BJC_DITHER_NONE			0
#define BJC_DITHER_FS			1

#define BJC_QUALITY_NORMAL		0
#define BJC_QUALITY_HIGH		1
#define BJC_QUALITY_DRAFT		2
#define BJC_QUALITY_LOW			3

#define BJC_COLOR_ALLBLACK		0
#define BJC_COLOR_CYAN			1
#define BJC_COLOR_MAGENTA		2
#define BJC_COLOR_YELLOW		4
#define BJC_COLOR_BLACK			8

#define BJC_COLOR_CMY	(BJC_COLOR_CYAN | BJC_COLOR_MAGENTA | BJC_COLOR_YELLOW)
#define BJC_COLOR_CMYK	(BJC_COLOR_CMY | BJC_COLOR_BLACK)

/* Some compilers complain if this is a floating point value.... */
#define BJC_RESOLUTION_BASE		90

#define BJC_RESOLUTION_LOW		(1 * BJC_RESOLUTION_BASE)
#define BJC_RESOLUTION_MEDIUM		(2 * BJC_RESOLUTION_BASE)
#define BJC_RESOLUTION_NORMAL		(4 * BJC_RESOLUTION_BASE)

/*
 * Default values for parameters (long).
 *
 * Generic values are first given, and driver-specific values are by default
 * those generic values.
 *
 */

#ifndef BJC_DEFAULT_MEDIATYPE
#define BJC_DEFAULT_MEDIATYPE		BJC_MEDIA_PLAINPAPER
#endif
#ifndef BJC_DEFAULT_PRINTQUALITY
#define BJC_DEFAULT_PRINTQUALITY	BJC_QUALITY_NORMAL
#endif

#ifndef BJC_DEFAULT_DITHERINGTYPE
#define BJC_DEFAULT_DITHERINGTYPE	BJC_DITHER_FS
#endif

#ifndef BJC_DEFAULT_MANUALFEED
#define BJC_DEFAULT_MANUALFEED		false
#endif
#ifndef BJC_DEFAULT_MONOCHROMEPRINT
#define BJC_DEFAULT_MONOCHROMEPRINT	false
#endif

#ifndef BJC_DEFAULT_RESOLUTION
#define BJC_DEFAULT_RESOLUTION		BJC_RESOLUTION_NORMAL
#endif

/* If you change the bits per pixel, change the color components. For
   bpp = 1 color components = 1, bpp = 8 color components = { 1, 4},
   bpp = { 16, 24, 32 } color components = 4, comps = { 3 }, bpp = { 24 }. */

#ifndef BJC_DEFAULT_BITSPERPIXEL
#define BJC_DEFAULT_BITSPERPIXEL	24
#endif
#ifndef BJC_DEFAULT_COLORCOMPONENTS
#define BJC_DEFAULT_COLORCOMPONENTS	4
#endif

/* You should not have to change these defaults */

#ifndef BJC_DEFAULT_PRINTCOLORS
#define BJC_DEFAULT_PRINTCOLORS		BJC_COLOR_CMYK
#endif
#ifndef BJC_DEFAULT_MONOCHROMEPRINT
#define BJC_DEFAULT_MONOCHROMEPRINT	false
#endif
#ifndef BJC_DEFAULT_SETMEDIAWEIGHT
#define BJC_DEFAULT_SETMEDIAWEIGHT	0
#endif
#ifndef BJC_DEFAULT_MEDIAWEIGHT
#define BJC_DEFAULT_MEDIAWEIGHT		80
#endif

/*
 * Default values for the specific BJC drivers.
 *
 */

#ifndef BJC600_DEFAULT_MEDIATYPE
#define BJC600_DEFAULT_MEDIATYPE        BJC_DEFAULT_MEDIATYPE
#endif
#ifndef BJC600_DEFAULT_PRINTQUALITY
#define BJC600_DEFAULT_PRINTQUALITY	BJC_DEFAULT_PRINTQUALITY
#endif
#ifndef BJC600_DEFAULT_DITHERINGTYPE
#define BJC600_DEFAULT_DITHERINGTYPE	BJC_DEFAULT_DITHERINGTYPE
#endif
#ifndef BJC600_DEFAULT_MANUALFEED
#define BJC600_DEFAULT_MANUALFEED	BJC_DEFAULT_MANUALFEED
#endif
#ifndef BJC600_DEFAULT_MONOCHROMEPRINT
#define BJC600_DEFAULT_MONOCHROMEPRINT	BJC_DEFAULT_MONOCHROMEPRINT
#endif
#ifndef BJC600_DEFAULT_RESOLUTION
#define BJC600_DEFAULT_RESOLUTION	BJC_DEFAULT_RESOLUTION
#endif
#ifndef BJC600_DEFAULT_BITSPERPIXEL
#define BJC600_DEFAULT_BITSPERPIXEL	BJC_DEFAULT_BITSPERPIXEL
#endif
#ifndef BJC600_DEFAULT_COLORCOMPONENTS
#define BJC600_DEFAULT_COLORCOMPONENTS	BJC_DEFAULT_COLORCOMPONENTS
#endif
#ifndef BJC600_DEFAULT_PRINTCOLORS
#define BJC600_DEFAULT_PRINTCOLORS	BJC_DEFAULT_PRINTCOLORS
#endif
#ifndef BJC600_DEFAULT_SETMEDIAWEIGHT
#define BJC600_DEFAULT_SETMEDIAWEIGHT	BJC_DEFAULT_SETMEDIAWEIGHT
#endif
#ifndef BJC600_DEFAULT_MEDIAWEIGHT
#define BJC600_DEFAULT_MEDIAWEIGHT	BJC_DEFAULT_MEDIAWEIGHT
#endif

#ifndef BJC800_DEFAULT_MEDIATYPE
#define BJC800_DEFAULT_MEDIATYPE        BJC_DEFAULT_MEDIATYPE
#endif
#ifndef BJC800_DEFAULT_PRINTQUALITY
#define BJC800_DEFAULT_PRINTQUALITY	BJC_DEFAULT_PRINTQUALITY
#endif
#ifndef BJC800_DEFAULT_DITHERINGTYPE
#define BJC800_DEFAULT_DITHERINGTYPE	BJC_DEFAULT_DITHERINGTYPE
#endif
#ifndef BJC800_DEFAULT_MANUALFEED
#define BJC800_DEFAULT_MANUALFEED	BJC_DEFAULT_MANUALFEED
#endif
#ifndef BJC800_DEFAULT_RESOLUTION
#define BJC800_DEFAULT_RESOLUTION	BJC_DEFAULT_RESOLUTION
#endif
#ifndef BJC800_DEFAULT_BITSPERPIXEL
#define BJC800_DEFAULT_BITSPERPIXEL	BJC_DEFAULT_BITSPERPIXEL
#endif
#ifndef BJC800_DEFAULT_COLORCOMPONENTS
#define BJC800_DEFAULT_COLORCOMPONENTS	BJC_DEFAULT_COLORCOMPONENTS
#endif
#ifndef BJC800_DEFAULT_PRINTCOLORS
#define BJC800_DEFAULT_PRINTCOLORS	BJC_DEFAULT_PRINTCOLORS
#endif
#ifndef BJC800_DEFAULT_SETMEDIAWEIGHT
#define BJC800_DEFAULT_SETMEDIAWEIGHT	BJC_DEFAULT_SETMEDIAWEIGHT
#endif
#ifndef BJC800_DEFAULT_MEDIAWEIGHT
#define BJC800_DEFAULT_MEDIAWEIGHT	BJC_DEFAULT_MEDIAWEIGHT
#endif

#endif /* _GDEVBJC_H */

#endif				/* gdevbjc_INCLUDED */