summaryrefslogtreecommitdiff
path: root/scheduler
diff options
context:
space:
mode:
authorMichael Sweet <michael.r.sweet@gmail.com>2016-05-16 19:54:35 -0400
committerMichael Sweet <michael.r.sweet@gmail.com>2016-05-16 19:54:35 -0400
commit71d227bf28c2fb6c7c0210bb02dfb991434d4674 (patch)
treefe270788c2331f05bcc25aad712d6741490e3883 /scheduler
parent75c86da7a721554caea2dcc22a2f84b2fff465e8 (diff)
The scheduler now advertises PWG Raster attributes for IPP Everywhere clients
(Issue #4428)
Diffstat (limited to 'scheduler')
-rw-r--r--scheduler/printers.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/scheduler/printers.c b/scheduler/printers.c
index 62f846c52..7aa7bd8f2 100644
--- a/scheduler/printers.c
+++ b/scheduler/printers.c
@@ -3809,6 +3809,12 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
margins[16]; /* media-*-margin-supported values */
const char *filter, /* Current filter */
*mandatory; /* Current mandatory attribute */
+ static const char * const pwg_raster_document_types[] =
+ {
+ "black_1",
+ "sgray_8",
+ "srgb_8"
+ };
static const char * const sides[3] = /* sides-supported values */
{
"one-sided",
@@ -4413,6 +4419,7 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
"print-color-mode-supported", 2, NULL, color_modes);
ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
"print-color-mode-default", NULL, "color");
+ ippAddStrings(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "pwg-raster-document-type-supported", 3, NULL, pwg_raster_document_types);
}
else
{
@@ -4420,6 +4427,7 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
"print-color-mode-supported", NULL, "monochrome");
ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
"print-color-mode-default", NULL, "monochrome");
+ ippAddStrings(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "pwg-raster-document-type-supported", 2, NULL, pwg_raster_document_types);
}
/*
@@ -4457,10 +4465,7 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
* Report all supported resolutions...
*/
- attr = ippAddResolutions(p->ppd_attrs, IPP_TAG_PRINTER,
- "printer-resolution-supported",
- resolution->num_choices, IPP_RES_PER_INCH,
- NULL, NULL);
+ attr = ippAddResolutions(p->ppd_attrs, IPP_TAG_PRINTER, "printer-resolution-supported", resolution->num_choices, IPP_RES_PER_INCH, NULL, NULL);
for (i = 0, choice = resolution->choices;
i < resolution->num_choices;
@@ -4483,9 +4488,10 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
attr->values[i].resolution.units = IPP_RES_PER_INCH;
if (choice->marked)
- ippAddResolution(p->ppd_attrs, IPP_TAG_PRINTER,
- "printer-resolution-default", IPP_RES_PER_INCH,
- xdpi, ydpi);
+ ippAddResolution(p->ppd_attrs, IPP_TAG_PRINTER, "printer-resolution-default", IPP_RES_PER_INCH, xdpi, ydpi);
+
+ if (i == 0)
+ ippAddResolution(p->ppd_attrs, IPP_TAG_PRINTER, "pwg-raster-document-resolution-supported", IPP_RES_PER_INCH, xdpi, ydpi);
}
}
else if ((ppd_attr = ppdFindAttr(ppd, "DefaultResolution", NULL)) != NULL &&
@@ -4518,6 +4524,7 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
ippAddResolution(p->ppd_attrs, IPP_TAG_PRINTER,
"printer-resolution-supported", IPP_RES_PER_INCH,
xdpi, ydpi);
+ ippAddResolution(p->ppd_attrs, IPP_TAG_PRINTER, "pwg-raster-document-resolution-supported", IPP_RES_PER_INCH, xdpi, ydpi);
}
else
{
@@ -4531,6 +4538,7 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
ippAddResolution(p->ppd_attrs, IPP_TAG_PRINTER,
"printer-resolution-supported", IPP_RES_PER_INCH,
300, 300);
+ ippAddResolution(p->ppd_attrs, IPP_TAG_PRINTER, "pwg-raster-document-resolution-supported", IPP_RES_PER_INCH, 300, 300);
}
/*
@@ -4550,6 +4558,8 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
{
p->type |= CUPS_PRINTER_DUPLEX;
+ ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "pwg-raster-document-sheet-back", NULL, "normal");
+
ippAddStrings(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
"sides-supported", 3, NULL, sides);