From: Michael R Sweet Date: Mon, 8 Mar 2021 00:58:57 +0000 (-0500) Subject: Add media-col-ready and media-ready. X-Git-Tag: v2.4b1~188^2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b781c7a95d0cbf5bdb6658b5c3fe164f3665c26f;p=thirdparty%2Fcups.git Add media-col-ready and media-ready. --- diff --git a/scheduler/printers.c b/scheduler/printers.c index 4f5b60e299..e88574177e 100644 --- a/scheduler/printers.c +++ b/scheduler/printers.c @@ -3882,6 +3882,9 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */ margins[16]; /* media-*-margin-supported values */ const char *filter, /* Current filter */ *mandatory; /* Current mandatory attribute */ + const char *ready_size; /* Current ReadyPaperSizes value */ + ipp_attribute_t *media_col_ready, /* media-col-ready attribute */ + *media_ready; /* media-ready attribute */ int num_urf; /* Number of urf-supported values */ const char *urf[16]; /* urf-supported values */ char urf_rs[32]; /* RS (resolution) value */ @@ -4352,6 +4355,36 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */ ippDelete(col); } } + + /* + * media[-col]-ready + */ + + for (media_col_ready = NULL, media_ready = NULL, ready_size = (char *)cupsArrayFirst(ReadyPaperSizes); ready_size; ready_size = (char *)cupsArrayNext(ReadyPaperSizes)) + { + for (i = p->pc->num_sizes, pwgsize = p->pc->sizes; i > 0; i --, pwgsize --) + { + if (!strcasecmp(ready_size, pwgsize->map.ppd)) + break; + } + + if (i) + { + ipp_t *col = new_media_col(pwgsize); + + if (media_ready) + ippSetString(p->ppd_attrs, &media_ready, ippGetCount(media_ready), pwgsize->map.pwg); + else + media_ready = ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "media-ready", NULL, pwgsize->map.pwg); + + if (media_col_ready) + ippSetCollection(p->ppd_attrs, &media_col_ready, ippGetCount(media_col_ready), col); + else + media_col_ready = ippAddCollection(p->ppd_attrs, IPP_TAG_PRINTER, "media-col-ready", col); + + ippDelete(col); + } + } } ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_TEXT), "mopria-certified", NULL, "1.3");