| 1 | /* | 
| 2 |  * Raster file definitions for CUPS. | 
| 3 |  * | 
| 4 |  * Copyright © 2007-2018 by Apple Inc. | 
| 5 |  * Copyright © 1997-2006 by Easy Software Products. | 
| 6 |  * | 
| 7 |  * This file is part of the CUPS Imaging library. | 
| 8 |  * | 
| 9 |  * Licensed under Apache License v2.0.  See the file "LICENSE" for more | 
| 10 |  * information. | 
| 11 |  */ | 
| 12 |  | 
| 13 | #ifndef _CUPS_RASTER_H_ | 
| 14 | #  define _CUPS_RASTER_H_ | 
| 15 |  | 
| 16 | /* | 
| 17 |  * Include necessary headers... | 
| 18 |  */ | 
| 19 |  | 
| 20 | #  include "cups.h" | 
| 21 |  | 
| 22 |  | 
| 23 | #  ifdef __cplusplus | 
| 24 | extern "C"  { | 
| 25 | #  endif /* __cplusplus */ | 
| 26 |  | 
| 27 | /* | 
| 28 |  * Every non-PostScript printer driver that supports raster images | 
| 29 |  * should use the application/vnd.cups-raster image file format. | 
| 30 |  * Since both the PostScript RIP (pstoraster, based on GNU/GPL | 
| 31 |  * Ghostscript) and Image RIP (imagetoraster, located in the filter | 
| 32 |  * directory) use it, using this format saves you a lot of work. | 
| 33 |  * Also, the PostScript RIP passes any printer options that are in | 
| 34 |  * a PS file to your driver this way as well... | 
| 35 |  */ | 
| 36 |  | 
| 37 | /* | 
| 38 |  * Constants... | 
| 39 |  */ | 
| 40 |  | 
| 41 | #  define CUPS_RASTER_SYNC	0x52615333	/* RaS3 */ | 
| 42 | #  define CUPS_RASTER_REVSYNC	0x33536152	/* 3SaR */ | 
| 43 |  | 
| 44 | #  define CUPS_RASTER_SYNCv1	0x52615374	/* RaSt */ | 
| 45 | #  define CUPS_RASTER_REVSYNCv1	0x74536152	/* tSaR */ | 
| 46 |  | 
| 47 | #  define CUPS_RASTER_SYNCv2	0x52615332	/* RaS2 */ | 
| 48 | #  define CUPS_RASTER_REVSYNCv2	0x32536152	/* 2SaR */ | 
| 49 |  | 
| 50 | #  define CUPS_RASTER_SYNCapple	0x554E4952	/* UNIR */ | 
| 51 | #  define CUPS_RASTER_REVSYNCapple 0x52494E55	/* RINU */ | 
| 52 |  | 
| 53 | #  define CUPS_RASTER_SYNC_PWG	CUPS_RASTER_SYNCv2 | 
| 54 |  | 
| 55 | /* | 
| 56 |  * The following definition can be used to determine if the | 
| 57 |  * colorimetric colorspaces (CIEXYZ, CIELAB, and ICCn) are | 
| 58 |  * defined... | 
| 59 |  */ | 
| 60 |  | 
| 61 | #  define CUPS_RASTER_HAVE_COLORIMETRIC 1 | 
| 62 |  | 
| 63 | /* | 
| 64 |  * The following definition can be used to determine if the | 
| 65 |  * device colorspaces (DEVICEn) are defined... | 
| 66 |  */ | 
| 67 |  | 
| 68 | #  define CUPS_RASTER_HAVE_DEVICE 1 | 
| 69 |  | 
| 70 | /* | 
| 71 |  * The following definition can be used to determine if PWG Raster is supported. | 
| 72 |  */ | 
| 73 |  | 
| 74 | #  define CUPS_RASTER_HAVE_PWGRASTER 1 | 
| 75 |  | 
| 76 | /* | 
| 77 |  * The following definition can be used to determine if Apple Raster is | 
| 78 |  * supported (beta). | 
| 79 |  */ | 
| 80 |  | 
| 81 | #  define CUPS_RASTER_HAVE_APPLERASTER 1 | 
| 82 |  | 
| 83 | /* | 
| 84 |  * The following PWG 5102.4 definitions specify indices into the | 
| 85 |  * cupsInteger[] array in the raster header. | 
| 86 |  */ | 
| 87 |  | 
| 88 | #  define CUPS_RASTER_PWG_TotalPageCount	0 | 
| 89 | #  define CUPS_RASTER_PWG_CrossFeedTransform	1 | 
| 90 | #  define CUPS_RASTER_PWG_FeedTransform		2 | 
| 91 | #  define CUPS_RASTER_PWG_ImageBoxLeft		3 | 
| 92 | #  define CUPS_RASTER_PWG_ImageBoxTop		4 | 
| 93 | #  define CUPS_RASTER_PWG_ImageBoxRight		5 | 
| 94 | #  define CUPS_RASTER_PWG_ImageBoxBottom	6 | 
| 95 | #  define CUPS_RASTER_PWG_AlternatePrimary	7 | 
| 96 | #  define CUPS_RASTER_PWG_PrintQuality		8 | 
| 97 | #  define CUPS_RASTER_PWG_VendorIdentifier	14 | 
| 98 | #  define CUPS_RASTER_PWG_VendorLength		15 | 
| 99 |  | 
| 100 |  | 
| 101 |  | 
| 102 |  | 
| 103 | /* | 
| 104 |  * Types... | 
| 105 |  */ | 
| 106 |  | 
| 107 | typedef enum cups_adv_e			/**** AdvanceMedia attribute values ****/ | 
| 108 | { | 
| 109 |   CUPS_ADVANCE_NONE = 0,		/* Never advance the roll */ | 
| 110 |   CUPS_ADVANCE_FILE = 1,		/* Advance the roll after this file */ | 
| 111 |   CUPS_ADVANCE_JOB = 2,			/* Advance the roll after this job */ | 
| 112 |   CUPS_ADVANCE_SET = 3,			/* Advance the roll after this set */ | 
| 113 |   CUPS_ADVANCE_PAGE = 4			/* Advance the roll after this page */ | 
| 114 | } cups_adv_t; | 
| 115 |  | 
| 116 | typedef enum cups_bool_e		/**** Boolean type ****/ | 
| 117 | { | 
| 118 |   CUPS_FALSE = 0,			/* Logical false */ | 
| 119 |   CUPS_TRUE = 1				/* Logical true */ | 
| 120 | } cups_bool_t; | 
| 121 |  | 
| 122 | typedef enum cups_cspace_e		/**** cupsColorSpace attribute values ****/ | 
| 123 | { | 
| 124 |   CUPS_CSPACE_W = 0,			/* Luminance (DeviceGray, gamma 2.2 by default) */ | 
| 125 |   CUPS_CSPACE_RGB = 1,			/* Red, green, blue (DeviceRGB, sRGB by default) */ | 
| 126 |   CUPS_CSPACE_RGBA = 2,			/* Red, green, blue, alpha (DeviceRGB, sRGB by default) */ | 
| 127 |   CUPS_CSPACE_K = 3,			/* Black (DeviceK) */ | 
| 128 |   CUPS_CSPACE_CMY = 4,			/* Cyan, magenta, yellow (DeviceCMY) */ | 
| 129 |   CUPS_CSPACE_YMC = 5,			/* Yellow, magenta, cyan @deprecated@ */ | 
| 130 |   CUPS_CSPACE_CMYK = 6,			/* Cyan, magenta, yellow, black (DeviceCMYK) */ | 
| 131 |   CUPS_CSPACE_YMCK = 7,			/* Yellow, magenta, cyan, black @deprecated@ */ | 
| 132 |   CUPS_CSPACE_KCMY = 8,			/* Black, cyan, magenta, yellow @deprecated@ */ | 
| 133 |   CUPS_CSPACE_KCMYcm = 9,		/* Black, cyan, magenta, yellow, light-cyan, light-magenta @deprecated@ */ | 
| 134 |   CUPS_CSPACE_GMCK = 10,		/* Gold, magenta, yellow, black @deprecated@ */ | 
| 135 |   CUPS_CSPACE_GMCS = 11,		/* Gold, magenta, yellow, silver @deprecated@ */ | 
| 136 |   CUPS_CSPACE_WHITE = 12,		/* White ink (as black) @deprecated@ */ | 
| 137 |   CUPS_CSPACE_GOLD = 13,		/* Gold foil @deprecated@ */ | 
| 138 |   CUPS_CSPACE_SILVER = 14,		/* Silver foil @deprecated@ */ | 
| 139 |  | 
| 140 |   CUPS_CSPACE_CIEXYZ = 15,		/* CIE XYZ @since CUPS 1.1.19/macOS 10.3@ */ | 
| 141 |   CUPS_CSPACE_CIELab = 16,		/* CIE Lab @since CUPS 1.1.19/macOS 10.3@ */ | 
| 142 |   CUPS_CSPACE_RGBW = 17,		/* Red, green, blue, white (DeviceRGB, sRGB by default) @since CUPS 1.2/macOS 10.5@ */ | 
| 143 |   CUPS_CSPACE_SW = 18,			/* Luminance (gamma 2.2) @since CUPS 1.4.5@ */ | 
| 144 |   CUPS_CSPACE_SRGB = 19,		/* Red, green, blue (sRGB) @since CUPS 1.4.5@ */ | 
| 145 |   CUPS_CSPACE_ADOBERGB = 20,		/* Red, green, blue (Adobe RGB) @since CUPS 1.4.5@ */ | 
| 146 |  | 
| 147 |   CUPS_CSPACE_ICC1 = 32,		/* ICC-based, 1 color @since CUPS 1.1.19/macOS 10.3@ */ | 
| 148 |   CUPS_CSPACE_ICC2 = 33,		/* ICC-based, 2 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 149 |   CUPS_CSPACE_ICC3 = 34,		/* ICC-based, 3 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 150 |   CUPS_CSPACE_ICC4 = 35,		/* ICC-based, 4 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 151 |   CUPS_CSPACE_ICC5 = 36,		/* ICC-based, 5 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 152 |   CUPS_CSPACE_ICC6 = 37,		/* ICC-based, 6 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 153 |   CUPS_CSPACE_ICC7 = 38,		/* ICC-based, 7 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 154 |   CUPS_CSPACE_ICC8 = 39,		/* ICC-based, 8 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 155 |   CUPS_CSPACE_ICC9 = 40,		/* ICC-based, 9 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 156 |   CUPS_CSPACE_ICCA = 41,		/* ICC-based, 10 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 157 |   CUPS_CSPACE_ICCB = 42,		/* ICC-based, 11 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 158 |   CUPS_CSPACE_ICCC = 43,		/* ICC-based, 12 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 159 |   CUPS_CSPACE_ICCD = 44,		/* ICC-based, 13 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 160 |   CUPS_CSPACE_ICCE = 45,		/* ICC-based, 14 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 161 |   CUPS_CSPACE_ICCF = 46,		/* ICC-based, 15 colors @since CUPS 1.1.19/macOS 10.3@ */ | 
| 162 |  | 
| 163 |   CUPS_CSPACE_DEVICE1 = 48,		/* DeviceN, 1 color @since CUPS 1.4.5@ */ | 
| 164 |   CUPS_CSPACE_DEVICE2 = 49,		/* DeviceN, 2 colors @since CUPS 1.4.5@ */ | 
| 165 |   CUPS_CSPACE_DEVICE3 = 50,		/* DeviceN, 3 colors @since CUPS 1.4.5@ */ | 
| 166 |   CUPS_CSPACE_DEVICE4 = 51,		/* DeviceN, 4 colors @since CUPS 1.4.5@ */ | 
| 167 |   CUPS_CSPACE_DEVICE5 = 52,		/* DeviceN, 5 colors @since CUPS 1.4.5@ */ | 
| 168 |   CUPS_CSPACE_DEVICE6 = 53,		/* DeviceN, 6 colors @since CUPS 1.4.5@ */ | 
| 169 |   CUPS_CSPACE_DEVICE7 = 54,		/* DeviceN, 7 colors @since CUPS 1.4.5@ */ | 
| 170 |   CUPS_CSPACE_DEVICE8 = 55,		/* DeviceN, 8 colors @since CUPS 1.4.5@ */ | 
| 171 |   CUPS_CSPACE_DEVICE9 = 56,		/* DeviceN, 9 colors @since CUPS 1.4.5@ */ | 
| 172 |   CUPS_CSPACE_DEVICEA = 57,		/* DeviceN, 10 colors @since CUPS 1.4.5@ */ | 
| 173 |   CUPS_CSPACE_DEVICEB = 58,		/* DeviceN, 11 colors @since CUPS 1.4.5@ */ | 
| 174 |   CUPS_CSPACE_DEVICEC = 59,		/* DeviceN, 12 colors @since CUPS 1.4.5@ */ | 
| 175 |   CUPS_CSPACE_DEVICED = 60,		/* DeviceN, 13 colors @since CUPS 1.4.5@ */ | 
| 176 |   CUPS_CSPACE_DEVICEE = 61,		/* DeviceN, 14 colors @since CUPS 1.4.5@ */ | 
| 177 |   CUPS_CSPACE_DEVICEF = 62		/* DeviceN, 15 colors @since CUPS 1.4.5@ */ | 
| 178 | } cups_cspace_t; | 
| 179 |  | 
| 180 | typedef enum cups_cut_e			/**** CutMedia attribute values ****/ | 
| 181 | { | 
| 182 |   CUPS_CUT_NONE = 0,			/* Never cut the roll */ | 
| 183 |   CUPS_CUT_FILE = 1,			/* Cut the roll after this file */ | 
| 184 |   CUPS_CUT_JOB = 2,			/* Cut the roll after this job */ | 
| 185 |   CUPS_CUT_SET = 3,			/* Cut the roll after this set */ | 
| 186 |   CUPS_CUT_PAGE = 4			/* Cut the roll after this page */ | 
| 187 | } cups_cut_t; | 
| 188 |  | 
| 189 | typedef enum cups_edge_e		/**** LeadingEdge attribute values ****/ | 
| 190 | { | 
| 191 |   CUPS_EDGE_TOP = 0,			/* Leading edge is the top of the page */ | 
| 192 |   CUPS_EDGE_RIGHT = 1,			/* Leading edge is the right of the page */ | 
| 193 |   CUPS_EDGE_BOTTOM = 2,			/* Leading edge is the bottom of the page */ | 
| 194 |   CUPS_EDGE_LEFT = 3			/* Leading edge is the left of the page */ | 
| 195 | } cups_edge_t; | 
| 196 |  | 
| 197 | typedef enum cups_jog_e			/**** Jog attribute values ****/ | 
| 198 | { | 
| 199 |   CUPS_JOG_NONE = 0,			/* Never move pages */ | 
| 200 |   CUPS_JOG_FILE = 1,			/* Move pages after this file */ | 
| 201 |   CUPS_JOG_JOB = 2,			/* Move pages after this job */ | 
| 202 |   CUPS_JOG_SET = 3			/* Move pages after this set */ | 
| 203 | } cups_jog_t; | 
| 204 |  | 
| 205 | enum cups_mode_e			/**** cupsRasterOpen modes ****/ | 
| 206 | { | 
| 207 |   CUPS_RASTER_READ = 0,			/* Open stream for reading */ | 
| 208 |   CUPS_RASTER_WRITE = 1,		/* Open stream for writing */ | 
| 209 |   CUPS_RASTER_WRITE_COMPRESSED = 2,	/* Open stream for compressed writing @since CUPS 1.3/macOS 10.5@ */ | 
| 210 |   CUPS_RASTER_WRITE_PWG = 3,		/* Open stream for compressed writing in PWG Raster mode @since CUPS 1.5/macOS 10.7@ */ | 
| 211 |   CUPS_RASTER_WRITE_APPLE = 4		/* Open stream for compressed writing in AppleRaster mode (beta) @private@ */ | 
| 212 | }; | 
| 213 |  | 
| 214 | typedef enum cups_mode_e cups_mode_t;	/**** cupsRasterOpen modes ****/ | 
| 215 |  | 
| 216 | typedef enum cups_order_e		/**** cupsColorOrder attribute values ****/ | 
| 217 | { | 
| 218 |   CUPS_ORDER_CHUNKED = 0,		/* CMYK CMYK CMYK ... */ | 
| 219 |   CUPS_ORDER_BANDED = 1,		/* CCC MMM YYY KKK ... */ | 
| 220 |   CUPS_ORDER_PLANAR = 2			/* CCC ... MMM ... YYY ... KKK ... */ | 
| 221 | } cups_order_t; | 
| 222 |  | 
| 223 | typedef enum cups_orient_e		/**** Orientation attribute values ****/ | 
| 224 | { | 
| 225 |   CUPS_ORIENT_0 = 0,			/* Don't rotate the page */ | 
| 226 |   CUPS_ORIENT_90 = 1,			/* Rotate the page counter-clockwise */ | 
| 227 |   CUPS_ORIENT_180 = 2,			/* Turn the page upside down */ | 
| 228 |   CUPS_ORIENT_270 = 3			/* Rotate the page clockwise */ | 
| 229 | } cups_orient_t; | 
| 230 |  | 
| 231 |  | 
| 232 | /* | 
| 233 |  * The page header structure contains the standard PostScript page device | 
| 234 |  * dictionary, along with some CUPS-specific parameters that are provided | 
| 235 |  * by the RIPs... | 
| 236 |  * | 
| 237 |  * The API supports a "version 1" (from CUPS 1.0 and 1.1) and a "version 2" | 
| 238 |  * (from CUPS 1.2 and higher) page header, for binary compatibility. | 
| 239 |  */ | 
| 240 |  | 
| 241 | typedef struct 	/**** Version 1 page header @deprecated@ ****/ | 
| 242 | { | 
| 243 |   /**** Standard Page Device Dictionary String Values ****/ | 
| 244 |   char		[64];		/* MediaClass string */ | 
| 245 |   char		[64];		/* MediaColor string */ | 
| 246 |   char		[64];		/* MediaType string */ | 
| 247 |   char		[64];		/* OutputType string */ | 
| 248 |  | 
| 249 |   /**** Standard Page Device Dictionary Integer Values ****/ | 
| 250 |   unsigned	;	/* AdvanceDistance value in points */ | 
| 251 |   cups_adv_t	;		/* AdvanceMedia value (@link cups_adv_t@) */ | 
| 252 |   cups_bool_t	;		/* Collated copies value */ | 
| 253 |   cups_cut_t	;		/* CutMedia value (@link cups_cut_t@) */ | 
| 254 |   cups_bool_t	;			/* Duplexed (double-sided) value */ | 
| 255 |   unsigned	[2];	/* Resolution in dots-per-inch */ | 
| 256 |   unsigned	[4];	/* Pixel region that is painted (points, left, bottom, right, top) */ | 
| 257 |   cups_bool_t	;		/* InsertSheet value */ | 
| 258 |   cups_jog_t	;			/* Jog value (@link cups_jog_t@) */ | 
| 259 |   cups_edge_t	;		/* LeadingEdge value (@link cups_edge_t@) */ | 
| 260 |   unsigned	[2];		/* Lower-lefthand margins in points */ | 
| 261 |   cups_bool_t	;		/* ManualFeed value */ | 
| 262 |   unsigned	;		/* MediaPosition value */ | 
| 263 |   unsigned	;		/* MediaWeight value in grams/m^2 */ | 
| 264 |   cups_bool_t	;		/* MirrorPrint value */ | 
| 265 |   cups_bool_t	;		/* NegativePrint value */ | 
| 266 |   unsigned	;		/* Number of copies to produce */ | 
| 267 |   cups_orient_t	;		/* Orientation value (@link cups_orient_t@) */ | 
| 268 |   cups_bool_t	;		/* OutputFaceUp value */ | 
| 269 |   unsigned	[2];		/* Width and length of page in points */ | 
| 270 |   cups_bool_t	;		/* Separations value */ | 
| 271 |   cups_bool_t	;		/* TraySwitch value */ | 
| 272 |   cups_bool_t	;			/* Tumble value */ | 
| 273 |  | 
| 274 |   /**** CUPS Page Device Dictionary Values ****/ | 
| 275 |   unsigned	;		/* Width of page image in pixels */ | 
| 276 |   unsigned	;		/* Height of page image in pixels */ | 
| 277 |   unsigned	;		/* Media type code */ | 
| 278 |   unsigned	;	/* Number of bits for each color */ | 
| 279 |   unsigned	;	/* Number of bits for each pixel */ | 
| 280 |   unsigned	;	/* Number of bytes per line */ | 
| 281 |   cups_order_t	;		/* Order of colors */ | 
| 282 |   cups_cspace_t	;		/* True colorspace */ | 
| 283 |   unsigned	;	/* Device compression to use */ | 
| 284 |   unsigned	;		/* Rows per band */ | 
| 285 |   unsigned	;		/* Feed between bands */ | 
| 286 |   unsigned	;		/* Spacing between lines */ | 
| 287 | } ; | 
| 288 |  | 
| 289 | /**** New in CUPS 1.2 ****/ | 
| 290 | typedef struct 	/**** Version 2 page header @since CUPS 1.2/macOS 10.5@ ****/ | 
| 291 | { | 
| 292 |   /**** Standard Page Device Dictionary String Values ****/ | 
| 293 |   char		[64];		/* MediaClass string */ | 
| 294 |   char		[64];		/* MediaColor string */ | 
| 295 |   char		[64];		/* MediaType string */ | 
| 296 |   char		[64];		/* OutputType string */ | 
| 297 |  | 
| 298 |   /**** Standard Page Device Dictionary Integer Values ****/ | 
| 299 |   unsigned	;	/* AdvanceDistance value in points */ | 
| 300 |   cups_adv_t	;		/* AdvanceMedia value (@link cups_adv_t@) */ | 
| 301 |   cups_bool_t	;		/* Collated copies value */ | 
| 302 |   cups_cut_t	;		/* CutMedia value (@link cups_cut_t@) */ | 
| 303 |   cups_bool_t	;			/* Duplexed (double-sided) value */ | 
| 304 |   unsigned	[2];	/* Resolution in dots-per-inch */ | 
| 305 |   unsigned	[4];	/* Pixel region that is painted (points, left, bottom, right, top) */ | 
| 306 |   cups_bool_t	;		/* InsertSheet value */ | 
| 307 |   cups_jog_t	;			/* Jog value (@link cups_jog_t@) */ | 
| 308 |   cups_edge_t	;		/* LeadingEdge value (@link cups_edge_t@) */ | 
| 309 |   unsigned	[2];		/* Lower-lefthand margins in points */ | 
| 310 |   cups_bool_t	;		/* ManualFeed value */ | 
| 311 |   unsigned	;		/* MediaPosition value */ | 
| 312 |   unsigned	;		/* MediaWeight value in grams/m^2 */ | 
| 313 |   cups_bool_t	;		/* MirrorPrint value */ | 
| 314 |   cups_bool_t	;		/* NegativePrint value */ | 
| 315 |   unsigned	;		/* Number of copies to produce */ | 
| 316 |   cups_orient_t	;		/* Orientation value (@link cups_orient_t@) */ | 
| 317 |   cups_bool_t	;		/* OutputFaceUp value */ | 
| 318 |   unsigned	[2];		/* Width and length of page in points */ | 
| 319 |   cups_bool_t	;		/* Separations value */ | 
| 320 |   cups_bool_t	;		/* TraySwitch value */ | 
| 321 |   cups_bool_t	;			/* Tumble value */ | 
| 322 |  | 
| 323 |   /**** CUPS Page Device Dictionary Values ****/ | 
| 324 |   unsigned	;		/* Width of page image in pixels */ | 
| 325 |   unsigned	;		/* Height of page image in pixels */ | 
| 326 |   unsigned	;		/* Media type code */ | 
| 327 |   unsigned	;	/* Number of bits for each color */ | 
| 328 |   unsigned	;	/* Number of bits for each pixel */ | 
| 329 |   unsigned	;	/* Number of bytes per line */ | 
| 330 |   cups_order_t	;		/* Order of colors */ | 
| 331 |   cups_cspace_t	;		/* True colorspace */ | 
| 332 |   unsigned	;	/* Device compression to use */ | 
| 333 |   unsigned	;		/* Rows per band */ | 
| 334 |   unsigned	;		/* Feed between bands */ | 
| 335 |   unsigned	;		/* Spacing between lines */ | 
| 336 |  | 
| 337 |   /**** Version 2 Dictionary Values ****/ | 
| 338 |   unsigned	;		/* Number of color compoents @since CUPS 1.2/macOS 10.5@ */ | 
| 339 |   float		; | 
| 340 | 					/* Scaling that was applied to page data @since CUPS 1.2/macOS 10.5@ */ | 
| 341 |   float		[2];	/* Floating point PageSize (scaling * | 
| 342 |   					 * factor not applied) @since CUPS 1.2/macOS 10.5@ */ | 
| 343 |   float		[4];	/* Floating point ImagingBoundingBox | 
| 344 | 					 * (scaling factor not applied, left, | 
| 345 | 					 * bottom, right, top) @since CUPS 1.2/macOS 10.5@ */ | 
| 346 |   unsigned	[16];	/* User-defined integer values @since CUPS 1.2/macOS 10.5@ */ | 
| 347 |   float		[16];		/* User-defined floating-point values @since CUPS 1.2/macOS 10.5@ */ | 
| 348 |   char		[16][64];	/* User-defined string values @since CUPS 1.2/macOS 10.5@ */ | 
| 349 |   char		[64];	/* Ink/toner type @since CUPS 1.2/macOS 10.5@ */ | 
| 350 |   char		[64];/* Color rendering intent @since CUPS 1.2/macOS 10.5@ */ | 
| 351 |   char		[64];	/* PageSize name @since CUPS 1.2/macOS 10.5@ */ | 
| 352 | } ; | 
| 353 |  | 
| 354 | typedef struct _cups_raster_s cups_raster_t; | 
| 355 | 					/**** Raster stream data ****/ | 
| 356 |  | 
| 357 | /**** New in CUPS 1.5 ****/ | 
| 358 | typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t length); | 
| 359 | 					/**** cupsRasterOpenIO callback function | 
| 360 | 					 * | 
| 361 | 					 * This function is specified when | 
| 362 | 					 * creating a raster stream with | 
| 363 | 					 * @link cupsRasterOpenIO@ and handles | 
| 364 | 					 * generic reading and writing of raster | 
| 365 | 					 * data. It must return -1 on error or | 
| 366 | 					 * the number of bytes specified by | 
| 367 | 					 * "length" on success. | 
| 368 | 					 ****/ | 
| 369 |  | 
| 370 |  | 
| 371 | /* | 
| 372 |  * Prototypes... | 
| 373 |  */ | 
| 374 |  | 
| 375 | extern void		cupsRasterClose(cups_raster_t *r) _CUPS_PUBLIC; | 
| 376 | extern cups_raster_t	*cupsRasterOpen(int fd, cups_mode_t mode) _CUPS_PUBLIC; | 
| 377 | extern unsigned		(cups_raster_t *r, cups_page_header_t *h) _CUPS_DEPRECATED_MSG("Use cupsRasterReadHeader2 instead." ) _CUPS_PUBLIC; | 
| 378 | extern unsigned		cupsRasterReadPixels(cups_raster_t *r, unsigned char *p, unsigned len) _CUPS_PUBLIC; | 
| 379 | extern unsigned		(cups_raster_t *r, cups_page_header_t *h) _CUPS_DEPRECATED_MSG("Use cupsRasterWriteHeader2 instead." ) _CUPS_PUBLIC; | 
| 380 | extern unsigned		cupsRasterWritePixels(cups_raster_t *r, unsigned char *p, unsigned len) _CUPS_PUBLIC; | 
| 381 |  | 
| 382 | /**** New in CUPS 1.2 ****/ | 
| 383 | extern unsigned		(cups_raster_t *r, cups_page_header2_t *h) _CUPS_API_1_2; | 
| 384 | extern unsigned		(cups_raster_t *r, cups_page_header2_t *h) _CUPS_API_1_2; | 
| 385 |  | 
| 386 | /**** New in CUPS 1.3 ****/ | 
| 387 | extern const char	*cupsRasterErrorString(void) _CUPS_API_1_3; | 
| 388 |  | 
| 389 | /**** New in CUPS 1.5 ****/ | 
| 390 | extern cups_raster_t	*cupsRasterOpenIO(cups_raster_iocb_t iocb, void *ctx, cups_mode_t mode) _CUPS_API_1_5; | 
| 391 |  | 
| 392 | /**** New in CUPS 2.2/macOS 10.12 ****/ | 
| 393 | extern int		(cups_page_header2_t *h, pwg_media_t *media, const char *type, int xdpi, int ydpi, const char *sides, const char *sheet_back) _CUPS_API_2_2; | 
| 394 |  | 
| 395 | #  ifdef __cplusplus | 
| 396 | } | 
| 397 | #  endif /* __cplusplus */ | 
| 398 |  | 
| 399 | #endif /* !_CUPS_RASTER_H_ */ | 
| 400 |  |