]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cups/ppd.h
Update svn:keyword properties.
[thirdparty/cups.git] / cups / ppd.h
index 5d944af964cc9cf1d55db58372087d200c8c0a94..dae2560f55881077861a4ce1fc332498fc0b6c93 100644 (file)
@@ -1,26 +1,20 @@
 /*
- * "$Id: ppd.h 5119 2006-02-16 15:52:06Z mike $"
+ * "$Id$"
  *
- *   PostScript Printer Description definitions for the Common UNIX Printing
- *   System (CUPS).
+ *   PostScript Printer Description definitions for CUPS.
  *
- *   Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ *   THESE APIS ARE DEPRECATED. TO COMPILE WITHOUT WARNINGS ADD
+ *   -D_PPD_DEPRECATED="" TO YOUR COMPILE OPTIONS.  THIS HEADER AND THESE
+ *   FUNCTIONS WILL BE REMOVED IN A FUTURE RELEASE OF CUPS.
  *
- *   These coded instructions, statements, and computer programs are the
- *   property of Easy Software Products and are protected by Federal
- *   copyright law.  Distribution and use rights are outlined in the file
- *   "LICENSE.txt" which should have been included with this file.  If this
- *   file is missing or damaged please contact Easy Software Products
- *   at:
- *
- *       Attn: CUPS Licensing Information
- *       Easy Software Products
- *       44141 Airport View Drive, Suite 204
- *       Hollywood, Maryland 20636 USA
+ *   Copyright 2007-2012 by Apple Inc.
+ *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
- *       Voice: (301) 373-9600
- *       EMail: cups-info@cups.org
- *         WWW: http://www.cups.org
+ *   These coded instructions, statements, and computer programs are the
+ *   property of Apple Inc. and are protected by Federal copyright
+ *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ *   which should have been included with this file.  If this file is
+ *   file is missing or damaged, see the license at "http://www.cups.org/".
  *
  *   PostScript is a trademark of Adobe Systems, Inc.
  *
@@ -42,6 +36,7 @@
  */
 
 #  include <stdio.h>
+#  include "cups.h"
 #  include "array.h"
 #  include "file.h"
 
@@ -55,6 +50,28 @@ extern "C" {
 #  endif /* __cplusplus */
 
 
+/*
+ * Define _PPD_DEPRECATED to silence the warnings about PPD functions being
+ * deprecated...
+ */
+
+#  ifndef _PPD_DEPRECATED
+#    if defined(__APPLE__)
+#      if defined(MAC_OS_X_VERSION_10_8) && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
+         /* Building for OS X 10.7 and earlier */
+#        define _PPD_DEPRECATED
+#      elif !defined(MAC_OS_X_VERSION_10_8)
+        /* Building for OS X 10.7 and earlier */
+#        define _PPD_DEPRECATED
+#      else
+#        define _PPD_DEPRECATED _CUPS_DEPRECATED
+#      endif /* MAC_OS_X_VERSION_10_8 && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8 */
+#    else
+#      define _PPD_DEPRECATED _CUPS_DEPRECATED
+#    endif /* __APPLE__ */
+#  endif /* !_PPD_DEPRECATED */
+
+
 /*
  * PPD version...
  */
@@ -102,7 +119,7 @@ typedef enum ppd_cs_e                       /**** Colorspaces ****/
   PPD_CS_N                             /* DeviceN colorspace */
 } ppd_cs_t;
 
-typedef enum ppd_status_e              /**** Status Codes @since CUPS 1.1.19@ ****/
+typedef enum ppd_status_e              /**** Status Codes @since CUPS 1.1.19/OS X 10.3@ ****/
 {
   PPD_OK = 0,                          /* OK */
   PPD_FILE_OPEN_ERROR,                 /* Unable to open PPD file */
@@ -124,16 +141,23 @@ typedef enum ppd_status_e         /**** Status Codes @since CUPS 1.1.19@ ****/
   PPD_ILLEGAL_OPTION_KEYWORD,          /* Illegal option keyword string */
   PPD_ILLEGAL_TRANSLATION,             /* Illegal translation string */
   PPD_ILLEGAL_WHITESPACE,              /* Illegal whitespace character */
-  PPD_BAD_CUSTOM_PARAM                 /* Bad custom parameter */
+  PPD_BAD_CUSTOM_PARAM,                        /* Bad custom parameter */
+  PPD_MISSING_OPTION_KEYWORD,          /* Missing option keyword */
+  PPD_BAD_VALUE,                       /* Bad value string */
+  PPD_MISSING_CLOSE_GROUP,             /* Missing CloseGroup */
+  PPD_MAX_STATUS                       /* @private@ */
 } ppd_status_t;
 
-typedef enum ppd_conform_e             /**** Conformance Levels ****/
+enum ppd_conform_e                     /**** Conformance Levels @since CUPS 1.1.19/OS X 10.3@ ****/
 {
   PPD_CONFORM_RELAXED,                 /* Relax whitespace and control char */
   PPD_CONFORM_STRICT                   /* Require strict conformance */
-} ppd_conform_t;
+};
+
+typedef enum ppd_conform_e ppd_conform_t;
+                                       /**** Conformance Levels @since CUPS 1.1.19/OS X 10.3@ ****/
 
-typedef struct ppd_attr_s              /**** PPD Attribute Structure @since CUPS 1.1.19@ ****/
+typedef struct ppd_attr_s              /**** PPD Attribute Structure @since CUPS 1.1.19/OS X 10.3@ ****/
 {
   char         name[PPD_MAX_NAME];     /* Name of attribute (cupsXYZ) */
   char         spec[PPD_MAX_NAME];     /* Specifier string, if any */
@@ -174,14 +198,14 @@ typedef struct ppd_group_s                /**** Groups ****/
    ****/
   char         text[PPD_MAX_TEXT - PPD_MAX_NAME];
                                        /* Human-readable group name */
-  char         name[PPD_MAX_NAME];     /* Group name @since CUPS 1.1.18@ */
+  char         name[PPD_MAX_NAME];     /* Group name @since CUPS 1.1.18/OS X 10.3@ */
   int          num_options;            /* Number of options */
   ppd_option_t *options;               /* Options */
   int          num_subgroups;          /* Number of sub-groups */
   struct ppd_group_s *subgroups;       /* Sub-groups (max depth = 1) */
 } ppd_group_t;
 
-typedef struct                         /**** Constraints ****/
+typedef struct ppd_const_s             /**** Constraints ****/
 {
   char         option1[PPD_MAX_NAME];  /* First keyword */
   char         choice1[PPD_MAX_NAME];  /* First option/choice (blank for all) */
@@ -219,8 +243,8 @@ typedef struct ppd_profile_s                /**** sRGB Color Profiles ****/
   float                matrix[3][3];           /* Transform matrix */
 } ppd_profile_t;
 
-/**** New in CUPS 1.2 ****/
-typedef enum ppd_cptype_e              /**** Custom Parameter Type @since CUPS 1.2@ ****/
+/**** New in CUPS 1.2/OS X 10.5 ****/
+typedef enum ppd_cptype_e              /**** Custom Parameter Type @since CUPS 1.2/OS X 10.5@ ****/
 {
   PPD_CUSTOM_CURVE,                    /* Curve value for f(x) = x^value */
   PPD_CUSTOM_INT,                      /* Integer number value */
@@ -232,7 +256,19 @@ typedef enum ppd_cptype_e          /**** Custom Parameter Type @since CUPS 1.2@ ****/
   PPD_CUSTOM_STRING                    /* String of characters */
 } ppd_cptype_t;
 
-typedef union ppd_cpvalue_u            /**** Custom Parameter Value @since CUPS 1.2@ ****/
+typedef union ppd_cplimit_u            /**** Custom Parameter Limit @since CUPS 1.2/OS X 10.5@ ****/
+{
+  float                custom_curve;           /* Gamma value */
+  int          custom_int;             /* Integer value */
+  float                custom_invcurve;        /* Gamma value */
+  int          custom_passcode;        /* Passcode length */
+  int          custom_password;        /* Password length */
+  float                custom_points;          /* Measurement value */
+  float                custom_real;            /* Real value */
+  int          custom_string;          /* String length */
+} ppd_cplimit_t;
+
+typedef union ppd_cpvalue_u            /**** Custom Parameter Value @since CUPS 1.2/OS X 10.5@ ****/
 {
   float                custom_curve;           /* Gamma value */
   int          custom_int;             /* Integer value */
@@ -244,18 +280,18 @@ typedef union ppd_cpvalue_u               /**** Custom Parameter Value @since CUPS 1.2@ ****/
   char         *custom_string;         /* String value */
 } ppd_cpvalue_t;
 
-typedef struct ppd_cparam_s            /**** Custom Parameter @since CUPS 1.2@ ****/
+typedef struct ppd_cparam_s            /**** Custom Parameter @since CUPS 1.2/OS X 10.5@ ****/
 {
   char         name[PPD_MAX_NAME];     /* Parameter name */
   char         text[PPD_MAX_TEXT];     /* Human-readable text */
   int          order;                  /* Order (0 to N) */
   ppd_cptype_t type;                   /* Parameter type */
-  ppd_cpvalue_t        minimum,                /* Minimum value */
-               maximum,                /* Maximum value */
-               current;                /* Current value */
+  ppd_cplimit_t        minimum,                /* Minimum value */
+               maximum;                /* Maximum value */
+  ppd_cpvalue_t        current;                /* Current value */
 } ppd_cparam_t;
 
-typedef struct ppd_coption_s           /**** Custom Option @since CUPS 1.2@ ****/
+typedef struct ppd_coption_s           /**** Custom Option @since CUPS 1.2/OS X 10.5@ ****/
 {
   char         keyword[PPD_MAX_NAME];  /* Name of option that is being extended... */
   ppd_option_t *option;                /* Option that is being extended... */
@@ -263,6 +299,9 @@ typedef struct ppd_coption_s                /**** Custom Option @since CUPS 1.2@ ****/
   cups_array_t *params;                /* Parameters */
 } ppd_coption_t;
 
+typedef struct _ppd_cache_s _ppd_cache_t;
+                                       /**** PPD cache and mapping data @since CUPS 1.5/OS X 10.7@ @private@ ****/
+
 typedef struct ppd_file_s              /**** PPD File ****/
 {
   int          language_level;         /* Language level of device */
@@ -300,25 +339,34 @@ typedef struct ppd_file_s         /**** PPD File ****/
   ppd_const_t  *consts;                /* UI/Non-UI constraints */
   int          num_fonts;              /* Number of pre-loaded fonts */
   char         **fonts;                /* Pre-loaded fonts */
-  int          num_profiles;           /* Number of sRGB color profiles */
-  ppd_profile_t        *profiles;              /* sRGB color profiles */
+  int          num_profiles;           /* Number of sRGB color profiles @deprecated@ */
+  ppd_profile_t        *profiles;              /* sRGB color profiles @deprecated@ */
   int          num_filters;            /* Number of filters */
   char         **filters;              /* Filter strings... */
 
   /**** New in CUPS 1.1 ****/
-  int          flip_duplex;            /* 1 = Flip page for back sides @since CUPS 1.1@ */
+  int          flip_duplex;            /* 1 = Flip page for back sides @deprecated@ */
 
   /**** New in CUPS 1.1.19 ****/
-  char         *protocols;             /* Protocols (BCP, TBCP) string @since CUPS 1.1.19@ */
-  char         *pcfilename;            /* PCFileName string @since CUPS 1.1.19@ */
-  int          num_attrs;              /* Number of attributes @since CUPS 1.1.19@ @private@ */
-  int          cur_attr;               /* Current attribute @since CUPS 1.1.19@ @private@ */
-  ppd_attr_t   **attrs;                /* Attributes @since CUPS 1.1.19@ @private@ */
-
-  /**** New in CUPS 1.2 ****/
-  cups_array_t *sorted_attrs;          /* Attribute lookup array @since CUPS 1.2@ @private@ */
-  cups_array_t *options;               /* Option lookup array @since CUPS 1.2@ @private@ */
-  cups_array_t *coptions;              /* Custom options array @since CUPS 1.2@ @private@ */
+  char         *protocols;             /* Protocols (BCP, TBCP) string @since CUPS 1.1.19/OS X 10.3@ */
+  char         *pcfilename;            /* PCFileName string @since CUPS 1.1.19/OS X 10.3@ */
+  int          num_attrs;              /* Number of attributes @since CUPS 1.1.19/OS X 10.3@ @private@ */
+  int          cur_attr;               /* Current attribute @since CUPS 1.1.19/OS X 10.3@ @private@ */
+  ppd_attr_t   **attrs;                /* Attributes @since CUPS 1.1.19/OS X 10.3@ @private@ */
+
+  /**** New in CUPS 1.2/OS X 10.5 ****/
+  cups_array_t *sorted_attrs;          /* Attribute lookup array @since CUPS 1.2/OS X 10.5@ @private@ */
+  cups_array_t *options;               /* Option lookup array @since CUPS 1.2/OS X 10.5@ @private@ */
+  cups_array_t *coptions;              /* Custom options array @since CUPS 1.2/OS X 10.5@ @private@ */
+
+  /**** New in CUPS 1.3/OS X 10.5 ****/
+  cups_array_t *marked;                /* Marked choices @since CUPS 1.3/OS X 10.5@ @private@ */
+
+  /**** New in CUPS 1.4/OS X 10.6 ****/
+  cups_array_t *cups_uiconstraints;    /* cupsUIConstraints @since CUPS 1.4/OS X 10.6@ @private@ */
+
+  /**** New in CUPS 1.5 ****/
+  _ppd_cache_t *cache;                 /* PPD cache and mapping data @since CUPS 1.5/OS X 10.7@ @private@ */
 } ppd_file_t;
 
 
@@ -326,6 +374,8 @@ typedef struct ppd_file_s           /**** PPD File ****/
  * Prototypes...
  */
 
+extern int             cupsMarkOptions(ppd_file_t *ppd, int num_options,
+                                       cups_option_t *options);
 extern void            ppdClose(ppd_file_t *ppd);
 extern int             ppdCollect(ppd_file_t *ppd, ppd_section_t section,
                                   ppd_choice_t  ***choices);
@@ -337,7 +387,8 @@ extern int          ppdEmitFd(ppd_file_t *ppd, int fd,
 extern int             ppdEmitJCL(ppd_file_t *ppd, FILE *fp, int job_id,
                                   const char *user, const char *title);
 extern ppd_choice_t    *ppdFindChoice(ppd_option_t *o, const char *option);
-extern ppd_choice_t    *ppdFindMarkedChoice(ppd_file_t *ppd, const char *keyword);
+extern ppd_choice_t    *ppdFindMarkedChoice(ppd_file_t *ppd,
+                                            const char *keyword);
 extern ppd_option_t    *ppdFindOption(ppd_file_t *ppd, const char *keyword);
 extern int             ppdIsMarked(ppd_file_t *ppd, const char *keyword,
                                    const char *option);
@@ -352,33 +403,67 @@ extern ppd_size_t *ppdPageSize(ppd_file_t *ppd, const char *name);
 extern float           ppdPageWidth(ppd_file_t *ppd, const char *name);
 
 /**** New in CUPS 1.1.19 ****/
-extern const char      *ppdErrorString(ppd_status_t status);
+extern const char      *ppdErrorString(ppd_status_t status) _PPD_DEPRECATED;
 extern ppd_attr_t      *ppdFindAttr(ppd_file_t *ppd, const char *name,
-                                    const char *spec);
+                                    const char *spec) _PPD_DEPRECATED;
 extern ppd_attr_t      *ppdFindNextAttr(ppd_file_t *ppd, const char *name,
-                                        const char *spec);
-extern ppd_status_t    ppdLastError(int *line);
+                                        const char *spec) _PPD_DEPRECATED;
+extern ppd_status_t    ppdLastError(int *line) _PPD_DEPRECATED;
 
 /**** New in CUPS 1.1.20 ****/
-extern void            ppdSetConformance(ppd_conform_t c);
+extern void            ppdSetConformance(ppd_conform_t c) _PPD_DEPRECATED;
 
 /**** New in CUPS 1.2 ****/
 extern int             ppdCollect2(ppd_file_t *ppd, ppd_section_t section,
-                                   float min_order, ppd_choice_t  ***choices);
+                                   float min_order, ppd_choice_t  ***choices)
+                                   _PPD_DEPRECATED;
 extern int             ppdEmitAfterOrder(ppd_file_t *ppd, FILE *fp,
                                          ppd_section_t section, int limit,
-                                         float min_order);
-extern int             ppdEmitJCLEnd(ppd_file_t *ppd, FILE *fp);
+                                         float min_order) _PPD_DEPRECATED;
+extern int             ppdEmitJCLEnd(ppd_file_t *ppd, FILE *fp) _PPD_DEPRECATED;
+extern char            *ppdEmitString(ppd_file_t *ppd, ppd_section_t section,
+                                      float min_order) _PPD_DEPRECATED;
 extern ppd_coption_t   *ppdFindCustomOption(ppd_file_t *ppd,
-                                            const char *keyword);
+                                            const char *keyword) _PPD_DEPRECATED;
 extern ppd_cparam_t    *ppdFindCustomParam(ppd_coption_t *opt,
-                                           const char *name);
-extern ppd_cparam_t    *ppdFirstCustomParam(ppd_coption_t *opt);
-extern ppd_option_t    *ppdFirstOption(ppd_file_t *ppd);
-extern ppd_cparam_t    *ppdNextCustomParam(ppd_coption_t *opt);
-extern ppd_option_t    *ppdNextOption(ppd_file_t *ppd);
-extern int             ppdLocalize(ppd_file_t *ppd);
-extern ppd_file_t      *ppdOpen2(cups_file_t *fp);
+                                           const char *name) _PPD_DEPRECATED;
+extern ppd_cparam_t    *ppdFirstCustomParam(ppd_coption_t *opt) _PPD_DEPRECATED;
+extern ppd_option_t    *ppdFirstOption(ppd_file_t *ppd) _PPD_DEPRECATED;
+extern ppd_cparam_t    *ppdNextCustomParam(ppd_coption_t *opt) _PPD_DEPRECATED;
+extern ppd_option_t    *ppdNextOption(ppd_file_t *ppd) _PPD_DEPRECATED;
+extern int             ppdLocalize(ppd_file_t *ppd) _PPD_DEPRECATED;
+extern ppd_file_t      *ppdOpen2(cups_file_t *fp) _PPD_DEPRECATED;
+
+/**** New in CUPS 1.3/OS X 10.5 ****/
+extern const char      *ppdLocalizeIPPReason(ppd_file_t *ppd,
+                                             const char *reason,
+                                             const char *scheme,
+                                             char *buffer,
+                                             size_t bufsize) _PPD_DEPRECATED;
+
+/**** New in CUPS 1.4/OS X 10.6 ****/
+extern int             cupsGetConflicts(ppd_file_t *ppd, const char *option,
+                                        const char *choice,
+                                        cups_option_t **options)
+                                            _PPD_DEPRECATED;
+extern int             cupsResolveConflicts(ppd_file_t *ppd,
+                                            const char *option,
+                                            const char *choice,
+                                            int *num_options,
+                                            cups_option_t **options)
+                                            _PPD_DEPRECATED;
+extern int             ppdInstallableConflict(ppd_file_t *ppd,
+                                              const char *option,
+                                              const char *choice)
+                                                  _PPD_DEPRECATED;
+extern ppd_attr_t      *ppdLocalizeAttr(ppd_file_t *ppd, const char *keyword,
+                                        const char *spec) _PPD_DEPRECATED;
+extern const char      *ppdLocalizeMarkerName(ppd_file_t *ppd,
+                                              const char *name)
+                                              _PPD_DEPRECATED;
+extern int             ppdPageSizeLimits(ppd_file_t *ppd,
+                                         ppd_size_t *minimum,
+                                         ppd_size_t *maximum) _PPD_DEPRECATED;
 
 
 /*
@@ -391,5 +476,5 @@ extern ppd_file_t   *ppdOpen2(cups_file_t *fp);
 #endif /* !_CUPS_PPD_H_ */
 
 /*
- * End of "$Id: ppd.h 5119 2006-02-16 15:52:06Z mike $".
+ * End of "$Id$".
  */