]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - filter/raster.h
Remove svn:keywords since they cause svn_load_dirs.pl to complain about every file.
[thirdparty/cups.git] / filter / raster.h
index 2b1510d0d9d82814d7f7018dcd3e2a4160d12f13..16e11f0d43e0f856c9b75211c9c0311c9e15c8f8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$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).
  *
@@ -40,7 +40,7 @@
  * Include necessary headers...
  */
 
-#  include <cups/ppd.h>
+#  include <cups/cups.h>
 
 #  ifdef __cplusplus
 extern "C" {
@@ -60,12 +60,15 @@ 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
@@ -83,7 +86,8 @@ extern "C" {
 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 ****/
@@ -288,27 +292,25 @@ typedef struct cups_page_header2_s        /**** Version 2 Page Header @since CUPS 1.2@
   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);
 
 
 /*
@@ -328,7 +330,10 @@ extern unsigned            cupsRasterWritePixels(cups_raster_t *r,
 
 /**** 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,
@@ -341,5 +346,5 @@ 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 $".
  */