/*
- * "$Id: raster.h 4903 2006-01-10 20:02:46Z mike $"
+ * "$Id: raster.h 181 2006-06-22 20:01:18Z jlovell $"
*
* Raster file definitions for the Common UNIX Printing System (CUPS).
*
* Include necessary headers...
*/
-# include <cups/ppd.h>
+# include <cups/cups.h>
# ifdef __cplusplus
extern "C" {
* Constants...
*/
-# define CUPS_RASTER_SYNC 0x52615332 /* RaS2 */
-# define CUPS_RASTER_REVSYNC 0x32536152 /* 2SaR */
+# define CUPS_RASTER_SYNC 0x52615333 /* RaS3 */
+# define CUPS_RASTER_REVSYNC 0x33536152 /* 3SaR */
# define CUPS_RASTER_SYNCv1 0x52615374 /* RaSt */
# define CUPS_RASTER_REVSYNCv1 0x74536152 /* tSaR */
+# define CUPS_RASTER_SYNCv2 0x52615332 /* RaS2 */
+# define CUPS_RASTER_REVSYNCv2 0x32536152 /* 2SaR */
+
/*
* The following definition can be used to determine if the
typedef enum cups_mode_e /**** Raster modes ****/
{
CUPS_RASTER_READ = 0, /* Open stream for reading */
- CUPS_RASTER_WRITE = 1 /* Open stream for writing */
+ CUPS_RASTER_WRITE = 1, /* Open stream for writing */
+ CUPS_RASTER_WRITE_COMPRESSED = 2 /* Open stream for compressed writing @since CUPS 1.3@ */
} cups_mode_t;
typedef enum cups_bool_e /**** Boolean type ****/
unsigned cupsRowStep; /* Spacing between lines */
/**** Version 2 Dictionary Values ****/
- unsigned cupsNumColors; /* Number of colors */
- unsigned cupsInteger[16]; /* User-defined integer values */
- float cupsReal[16]; /* User-defined floating-point values */
- char cupsString[16][64]; /* User-defined string values */
- char cupsMarkerType[64]; /* Ink/toner type */
- char cupsRenderingIntent[64];/* Color rendering intent */
+ unsigned cupsNumColors; /* Number of colors @since CUPS 1.2@ */
+ float cupsBorderlessScalingFactor;
+ /* Scaling that was applied to page data @since CUPS 1.2@ */
+ float cupsPageSize[2]; /* Floating point PageSize (scaling *
+ * factor not applied) @since CUPS 1.2@ */
+ float cupsImagingBBox[4]; /* Floating point ImagingBoundingBox *
+ * (scaling factor not applied) @since CUPS 1.2@ */
+ unsigned cupsInteger[16]; /* User-defined integer values @since CUPS 1.2@ */
+ float cupsReal[16]; /* User-defined floating-point values @since CUPS 1.2@ */
+ char cupsString[16][64]; /* User-defined string values @since CUPS 1.2@ */
+ char cupsMarkerType[64]; /* Ink/toner type @since CUPS 1.2@ */
+ char cupsRenderingIntent[64];/* Color rendering intent @since CUPS 1.2@ */
+ char cupsPageSizeName[64]; /* PageSize name @since CUPS 1.2@ */
} cups_page_header2_t;
-typedef struct _cups_raster_s /**** Raster stream data ****/
-{
- unsigned sync; /* Sync word from start of stream */
- int fd; /* File descriptor */
- cups_mode_t mode; /* Read/write mode */
- cups_page_header2_t header; /* Raster header for current page */
- int count, /* Current row run-length count */
- remaining, /* Remaining rows in page image */
- bpp; /* Bytes per pixel/color */
- unsigned char *pixels, /* Pixels for current row */
- *pend, /* End of pixel buffer */
- *pcurrent; /* Current byte in pixel buffer */
-} cups_raster_t;
+typedef struct _cups_raster_s cups_raster_t;
+ /**** Raster stream data ****/
+
+typedef int (*cups_interpret_cb_t)(cups_page_header2_t *header, int preferred_bits);
/*
/**** New in CUPS 1.2 ****/
extern int cupsRasterInterpretPPD(cups_page_header2_t *h,
- ppd_file_t *ppd);
+ ppd_file_t *ppd,
+ int num_options,
+ cups_option_t *options,
+ cups_interpret_cb_t func);
extern unsigned cupsRasterReadHeader2(cups_raster_t *r,
cups_page_header2_t *h);
extern unsigned cupsRasterWriteHeader2(cups_raster_t *r,
#endif /* !_CUPS_RASTER_H_ */
/*
- * End of "$Id: raster.h 4903 2006-01-10 20:02:46Z mike $".
+ * End of "$Id: raster.h 181 2006-06-22 20:01:18Z jlovell $".
*/