/*
* Printer routines for the CUPS scheduler.
*
- * Copyright 2007-2017 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright © 2007-2018 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
- * Licensed under Apache License v2.0. See the file "LICENSE" for more information.
+ * Licensed under Apache License v2.0. See the file "LICENSE" for more
+ * information.
*/
/*
struct statfs spoolinfo; /* FS info for spool directory */
double spoolsize; /* FS size */
#endif /* HAVE_STATVFS */
- static const int nups[] = /* number-up-supported values */
+ static const char * const page_delivery[] =
+ { /* page-delivery-supported values */
+ "reverse-order",
+ "same-order"
+ };
+ static const char * const print_scaling[] =
+ { /* print-scaling-supported values */
+ "auto",
+ "auto-fit",
+ "fill",
+ "fit",
+ "none"
+ };
+ static const int number_up[] = /* number-up-supported values */
{ 1, 2, 4, 6, 9, 16 };
+ static const char * const number_up_layout[] =
+ { /* number-up-layout-supported values */
+ "btlr",
+ "btrl",
+ "lrbt",
+ "lrtb",
+ "rlbt",
+ "rltb",
+ "tblr",
+ "tbrl"
+ };
static const int orients[4] =/* orientation-requested-supported values */
{
IPP_PORTRAIT,
{ /* job-creation-attributes-supported */
"copies",
"finishings",
+ "finishings-col",
"ipp-attribute-fidelity",
"job-hold-until",
"job-name",
"media-col",
"multiple-document-handling",
"number-up",
- "output-bin",
+ "number-up-layout",
"orientation-requested",
+ "output-bin",
+ "page-delivery",
"page-ranges",
"print-color-mode",
"print-quality",
+ "print-scaling",
"printer-resolution",
"sides"
};
/* number-up-supported */
ippAddIntegers(CommonData, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
- "number-up-supported", sizeof(nups) / sizeof(nups[0]), nups);
+ "number-up-supported", sizeof(number_up) / sizeof(number_up[0]), number_up);
+
+ /* number-up-layout-supported */
+ ippAddStrings(CommonData, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "number-up-layout-supported", sizeof(number_up_layout) / sizeof(number_up_layout[0]), NULL, number_up_layout);
/* operations-supported */
ippAddIntegers(CommonData, IPP_TAG_PRINTER, IPP_TAG_ENUM,
ippAddIntegers(CommonData, IPP_TAG_PRINTER, IPP_TAG_ENUM,
"orientation-requested-supported", 4, orients);
+ /* page-delivery-supported */
+ ippAddStrings(CommonData, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "page-delivery-supported", sizeof(page_delivery) / sizeof(page_delivery[0]), NULL, page_delivery);
+
/* page-ranges-supported */
ippAddBoolean(CommonData, IPP_TAG_PRINTER, "page-ranges-supported", 1);
ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
"pdl-override-supported", NULL, "attempted");
+ /* print-scaling-supported */
+ ippAddStrings(CommonData, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "print-scaling-supported", sizeof(print_scaling) / sizeof(print_scaling[0]), NULL, print_scaling);
+
/* printer-get-attributes-supported */
ippAddString(CommonData, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "printer-get-attributes-supported", NULL, "document-format");