69
78
_ppd_cups_uiconst_t *constraints; /* Constraints */
70
79
} _ppd_cups_uiconsts_t;
81
typedef enum _pwg_print_color_mode_e /**** PWG print-color-mode indices ****/
83
_PWG_PRINT_COLOR_MODE_MONOCHROME = 0, /* print-color-mode=monochrome */
84
_PWG_PRINT_COLOR_MODE_COLOR, /* print-color-mode=color */
85
/* Other proposed values are not supported by CUPS yet. */
86
_PWG_PRINT_COLOR_MODE_MAX
87
} _pwg_print_color_mode_t;
89
typedef enum _pwg_print_quality_e /**** PWG print-quality indices ****/
91
_PWG_PRINT_QUALITY_DRAFT = 0, /* print-quality=3 */
92
_PWG_PRINT_QUALITY_NORMAL, /* print-quality=4 */
93
_PWG_PRINT_QUALITY_HIGH, /* print-quality=5 */
94
_PWG_PRINT_QUALITY_MAX
95
} _pwg_print_quality_t;
97
struct _ppd_cache_s /**** PPD cache and PWG conversion data ****/
99
int num_bins; /* Number of output bins */
100
_pwg_map_t *bins; /* Output bins */
101
int num_sizes; /* Number of media sizes */
102
_pwg_size_t *sizes; /* Media sizes */
103
int custom_max_width, /* Maximum custom width in 2540ths */
104
custom_max_length, /* Maximum custom length in 2540ths */
105
custom_min_width, /* Minimum custom width in 2540ths */
106
custom_min_length; /* Minimum custom length in 2540ths */
107
char *custom_max_keyword, /* Maximum custom size PWG keyword */
108
*custom_min_keyword, /* Minimum custom size PWG keyword */
109
custom_ppd_size[41]; /* Custom PPD size name */
110
_pwg_size_t custom_size; /* Custom size record */
111
char *source_option; /* PPD option for media source */
112
int num_sources; /* Number of media sources */
113
_pwg_map_t *sources; /* Media sources */
114
int num_types; /* Number of media types */
115
_pwg_map_t *types; /* Media types */
116
int num_presets[_PWG_PRINT_COLOR_MODE_MAX][_PWG_PRINT_QUALITY_MAX];
117
/* Number of print-color-mode/print-quality options */
118
cups_option_t *presets[_PWG_PRINT_COLOR_MODE_MAX][_PWG_PRINT_QUALITY_MAX];
119
/* print-color-mode/print-quality options */
120
char *sides_option, /* PPD option for sides */
121
*sides_1sided, /* Choice for one-sided */
122
*sides_2sided_long, /* Choice for two-sided-long-edge */
123
*sides_2sided_short; /* Choice for two-sided-short-edge */
124
char *product; /* Product value */
125
cups_array_t *filters, /* cupsFilter/cupsFilter2 values */
126
*prefilters; /* cupsPreFilter values */
127
int single_file; /* cupsSingleFile value */
135
extern _ppd_cache_t *_ppdCacheCreateWithFile(const char *filename,
137
extern _ppd_cache_t *_ppdCacheCreateWithPPD(ppd_file_t *ppd);
138
extern void _ppdCacheDestroy(_ppd_cache_t *pc);
139
extern const char *_ppdCacheGetBin(_ppd_cache_t *pc,
140
const char *output_bin);
141
extern const char *_ppdCacheGetInputSlot(_ppd_cache_t *pc, ipp_t *job,
142
const char *keyword);
143
extern const char *_ppdCacheGetMediaType(_ppd_cache_t *pc, ipp_t *job,
144
const char *keyword);
145
extern const char *_ppdCacheGetOutputBin(_ppd_cache_t *pc,
146
const char *keyword);
147
extern const char *_ppdCacheGetPageSize(_ppd_cache_t *pc, ipp_t *job,
148
const char *keyword, int *exact);
149
extern _pwg_size_t *_ppdCacheGetSize(_ppd_cache_t *pc,
150
const char *page_size);
151
extern const char *_ppdCacheGetSource(_ppd_cache_t *pc,
152
const char *input_slot);
153
extern const char *_ppdCacheGetType(_ppd_cache_t *pc,
154
const char *media_type);
155
extern int _ppdCacheWriteFile(_ppd_cache_t *pc,
156
const char *filename, ipp_t *attrs);
77
157
extern void _ppdFreeLanguages(cups_array_t *languages);
78
extern int _ppdGet1284Values(const char *device_id,
79
cups_option_t **values);
80
158
extern cups_encoding_t _ppdGetEncoding(const char *name);
81
159
extern cups_array_t *_ppdGetLanguages(ppd_file_t *ppd);
82
160
extern unsigned _ppdHashName(const char *name);