1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3 <!-- SECTION: Programming -->
5 <title>PPD Compiler API
</title>
6 <meta name=
"keywords" content=
"Programming">
7 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8">
8 <meta name=
"creator" content=
"Mini-XML v2.7">
9 <style type=
"text/css"><!--
11 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
14 H1, H2, H3, H4, H5, H6, P, TD, TH {
15 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
19 font-family: monaco, courier, monospace;
24 font-family: monaco, courier, monospace;
28 border: dotted thin #7f7f7f;
44 border: dotted thin #999999;
49 PRE.command EM, PRE.example EM {
50 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
54 font-family: monaco, courier, monospace;
65 border: solid thin #999999;
76 -moz-border-radius: 10px;
81 text-decoration: none;
84 A:link:hover, A:visited:hover, A:active {
85 text-decoration: underline;
92 TR.data, TD.data, TR.data TD {
95 border-bottom: solid 1pt #999999;
99 border-bottom: solid 1pt #999999;
106 border: solid thin #999999;
107 border-collapse: collapse;
123 border: solid thin #cccccc;
130 border-bottom: solid thin #999999;
139 caption-side: bottom;
163 border: thin solid black;
171 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
180 border-bottom: solid 2pt #000000;
183 DIV.indent, TABLE.indent {
191 border-collapse: collapse;
194 TABLE.indent TD, TABLE.indent TH {
199 border-collapse: collapse;
207 border-bottom: solid thin #cccccc;
212 vertical-align: bottom;
221 border-bottom: solid thin #eeeeee;
226 TABLE.list TR:nth-child(even) {
230 TABLE.list TR:nth-child(odd) {
249 font-family: monaco, courier, monospace;
253 border: solid thin #999999;
254 border-collapse: collapse;
259 DIV.summary TABLE TD, DIV.summary TABLE TH {
260 border: solid thin #999999;
266 DIV.summary TABLE THEAD TH {
270 /* API documentation styles... */
277 div.body h3, div.body h4, div.body h5 {
278 margin-bottom: 0.5em;
281 .class, .enumeration, .function, .struct, .typedef, .union {
282 border-bottom: solid thin #999999;
289 code, p.code, pre, ul.code li {
290 font-family: monaco, courier, monospace;
293 ul.code, ul.contents, ul.subcontents {
294 list-style-type: none;
304 ul.contents li ul.code, ul.contents li ul.subcontents {
317 margin-bottom: 0.5em;
320 /* This is just for the HTML files generated with the framedhelp target */
323 border: solid thin black;
332 div.contents ul.contents {
335 div.contents ul.subcontents li {
344 "$Id: api-array.header 8087 2008-10-27 21:37:05Z mike $"
346 PPD Compiler API header for CUPS.
348 Copyright 2009 by Apple Inc.
350 These coded instructions, statements, and computer programs are the
351 property of Apple Inc. and are protected by Federal copyright
352 law. Distribution and use rights are outlined in the file "LICENSE.txt"
353 which should have been included with this file. If this file is
354 file is missing or damaged, see the license at "http://www.cups.org/".
357 <h1 class='title'
>PPD Compiler API
</h1>
359 <div class='summary'
><table summary='General Information'
>
373 <td>Programming:
<a href='api-overview.html' target='_top'
>Introduction to CUPS Programming
</a></td>
377 <h2 class=
"title">Contents
</h2>
378 <ul class=
"contents">
379 <li><a href=
"#OVERVIEW">Overview
</a></li>
380 <li><a href=
"#CLASSES">Classes
</a><ul class=
"code">
381 <li><a href=
"#ppdcArray" title=
"// Shared Array">ppdcArray
</a></li>
382 <li><a href=
"#ppdcAttr" title=
"// Attribute">ppdcAttr
</a></li>
383 <li><a href=
"#ppdcCatalog" title=
"// Translation catalog">ppdcCatalog
</a></li>
384 <li><a href=
"#ppdcChoice" title=
"// Option Choice">ppdcChoice
</a></li>
385 <li><a href=
"#ppdcConstraint" title=
"// Constraint">ppdcConstraint
</a></li>
386 <li><a href=
"#ppdcDriver" title=
"// Printer Driver Data">ppdcDriver
</a></li>
387 <li><a href=
"#ppdcFile" title=
"// File">ppdcFile
</a></li>
388 <li><a href=
"#ppdcFilter" title=
"// Filter Program">ppdcFilter
</a></li>
389 <li><a href=
"#ppdcFont" title=
"// Shared Font">ppdcFont
</a></li>
390 <li><a href=
"#ppdcGroup" title=
"// Group of Options">ppdcGroup
</a></li>
391 <li><a href=
"#ppdcInteger" title=
"// Shared integer">ppdcInteger
</a></li>
392 <li><a href=
"#ppdcMediaSize" title=
"// Media Size">ppdcMediaSize
</a></li>
393 <li><a href=
"#ppdcMessage" title=
"// Translation message">ppdcMessage
</a></li>
394 <li><a href=
"#ppdcOption" title=
"// Option">ppdcOption
</a></li>
395 <li><a href=
"#ppdcProfile" title=
"// Color Profile">ppdcProfile
</a></li>
396 <li><a href=
"#ppdcShared" title=
"// Shared Data Value">ppdcShared
</a></li>
397 <li><a href=
"#ppdcSource" title=
"// Source File">ppdcSource
</a></li>
398 <li><a href=
"#ppdcString" title=
"// Shared String">ppdcString
</a></li>
399 <li><a href=
"#ppdcVariable" title=
"// Variable Definition">ppdcVariable
</a></li>
401 <li><a href=
"#TYPES">Data Types
</a><ul class=
"code">
402 <li><a href=
"#ppdc_cs_t" title=
"">ppdc_cs_t
</a></li>
404 <li><a href=
"#VARIABLES">Variables
</a><ul class=
"code">
405 <li><a href=
"#ppdcSource" title=
"// Printer Driver Data">ppdcSource
</a></li>
407 <li><a href=
"#ENUMERATIONS">Constants
</a><ul class=
"code">
408 <li><a href=
"#ppdcCondFlags" title=
"// Condition flags">ppdcCondFlags
</a></li>
409 <li><a href=
"#ppdcDrvType" title=
"// Driver type">ppdcDrvType
</a></li>
410 <li><a href=
"#ppdcFontStatus" title=
"// Load status of font">ppdcFontStatus
</a></li>
411 <li><a href=
"#ppdcLineEnding" title=
"// Line endings">ppdcLineEnding
</a></li>
412 <li><a href=
"#ppdcOptSection" title=
"// Option section">ppdcOptSection
</a></li>
413 <li><a href=
"#ppdcOptType" title=
"// Option type">ppdcOptType
</a></li>
417 "$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
419 PPD Compiler API introduction for CUPS.
421 Copyright 2009 by Apple Inc.
423 These coded instructions, statements, and computer programs are the
424 property of Apple Inc. and are protected by Federal copyright
425 law. Distribution and use rights are outlined in the file "LICENSE.txt"
426 which should have been included with this file. If this file is
427 file is missing or damaged, see the license at "http://www.cups.org/".
430 <h2 class='title'
><a name='OVERVIEW'
>Overview
</a></h2>
432 <p>The PPD Compiler API provides access to CUPS driver information files and
433 methods for generating and importing PPD files.
</p>
434 <h2 class=
"title"><a name=
"CLASSES">Classes
</a></h2>
435 <h3 class=
"class"><a name=
"ppdcArray">ppdcArray
</a></h3>
436 <p class=
"description">// Shared Array
</p>
437 <p class=
"code">class ppdcArray : public ppdcShared {
<br>
438 public:
<br>
439 int count, alloc, current;
<br>
440 <a href=
"#ppdcShared">ppdcShared
</a> **data;
<br>
442 <h4 class=
"members">Members
</h4>
445 <dd class=
"description">Current element
</dd>
447 <dd class=
"description">Elements
</dd>
449 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
450 <p class=
"description"></p>
453 void add(
<a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
455 <h5 class=
"parameters">Parameters
</h5>
459 <h4 class=
"method"><a name=
"add">add
</a></h4>
460 <p class=
"description"></p>
463 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
465 <h5 class=
"parameters">Parameters
</h5>
469 <h4 class=
"method"><a name=
"first">first
</a></h4>
470 <p class=
"description">Return the first element in the array.
</p>
472 <a href=
"#ppdcShared">ppdcShared
</a> *first (void);
</p>
473 <h5 class=
"returnvalue">Return Value
</h5>
474 <p class=
"description"></p>
475 <h4 class=
"method"><a name=
"next">next
</a></h4>
476 <p class=
"description">Return the next element in the array.
</p>
478 <a href=
"#ppdcShared">ppdcShared
</a> *next (void);
</p>
479 <h5 class=
"returnvalue">Return Value
</h5>
480 <p class=
"description"></p>
481 <h4 class=
"method"><a name=
"ppdcArray">ppdcArray
</a></h4>
482 <p class=
"description"></p>
485 <a href=
"#ppdcArray">ppdcArray
</a> *a
<br>
487 <h5 class=
"parameters">Parameters
</h5>
491 <h4 class=
"method"><a name=
"remove">remove
</a></h4>
492 <p class=
"description"></p>
495 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
497 <h5 class=
"parameters">Parameters
</h5>
500 <dd class=
"description">Data element
</dd>
502 <h4 class=
"method"><a name=
"~ppdcArray">~ppdcArray
</a></h4>
503 <p class=
"description"></p>
505 void ~ppdcArray (void);
</p>
506 <h3 class=
"class"><a name=
"ppdcAttr">ppdcAttr
</a></h3>
507 <p class=
"description">// Attribute
</p>
508 <p class=
"code">class ppdcAttr : public ppdcShared {
<br>
509 public:
<br>
510 bool localizable;
<br>
511 <a href=
"#ppdcString">ppdcString
</a> *name, *selector, *text, *value;
<br>
513 <h4 class=
"members">Members
</h4>
515 <dt>localizable
</dt>
516 <dd class=
"description">Should this attribute be localized?
</dd>
518 <dd class=
"description">Value string
</dd>
520 <h4 class=
"method"><a name=
"ppdcAttr">ppdcAttr
</a></h4>
521 <p class=
"description"></p>
524 const char *n,
<br>
525 const char *s,
<br>
526 const char *t,
<br>
527 const char *v,
<br>
528 bool loc
<br>
530 <h5 class=
"parameters">Parameters
</h5>
533 <dd class=
"description">Name
</dd>
535 <dd class=
"description">Spec string
</dd>
537 <dd class=
"description">Human-readable text
</dd>
539 <dd class=
"description">Value
</dd>
541 <dd class=
"description">Localize this attribute?
</dd>
543 <h4 class=
"method"><a name=
"~ppdcAttr">~ppdcAttr
</a></h4>
544 <p class=
"description"></p>
546 void ~ppdcAttr (void);
</p>
547 <h3 class=
"class"><a name=
"ppdcCatalog">ppdcCatalog
</a></h3>
548 <p class=
"description">// Translation catalog
</p>
549 <p class=
"code">class ppdcCatalog : public ppdcShared {
<br>
550 public:
<br>
551 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
552 <a href=
"#ppdcString">ppdcString
</a> *locale;
<br>
553 <a href=
"#ppdcArray">ppdcArray
</a> *messages;
<br>
555 <h4 class=
"members">Members
</h4>
558 <dd class=
"description">Name of translation file
</dd>
560 <dd class=
"description">Name of locale
</dd>
562 <dd class=
"description">Array of translation messages
</dd>
564 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
565 <p class=
"description"></p>
568 void add_message(const char *id,
<br>
569 const char *string = NULL
<br>
571 <h5 class=
"parameters">Parameters
</h5>
576 <h4 class=
"method"><a name=
"add_message">add_message
</a></h4>
577 <p class=
"description"></p>
579 void add_message (
<br>
580 const char *id,
<br>
581 const char *string
<br>
583 <h5 class=
"parameters">Parameters
</h5>
586 <dd class=
"description">Message ID to add
</dd>
588 <dd class=
"description">Translation string
</dd>
590 <h4 class=
"method"><a name=
"find_message">find_message
</a></h4>
591 <p class=
"description"></p>
593 const char *find_message (
<br>
594 const char *id
<br>
596 <h5 class=
"parameters">Parameters
</h5>
599 <dd class=
"description">Message ID
</dd>
601 <h5 class=
"returnvalue">Return Value
</h5>
602 <p class=
"description">Message text
</p>
603 <h4 class=
"method"><a name=
"load_messages">load_messages
</a></h4>
604 <p class=
"description"></p>
606 int load_messages (
<br>
607 const char *f
<br>
609 <h5 class=
"parameters">Parameters
</h5>
612 <dd class=
"description">Message catalog file
</dd>
614 <h5 class=
"returnvalue">Return Value
</h5>
615 <p class=
"description">0 on success, -
1 on failure
</p>
616 <h4 class=
"method"><a name=
"ppdcCatalog">ppdcCatalog
</a></h4>
617 <p class=
"description"></p>
619 void ppdcCatalog (
<br>
620 const char *l,
<br>
621 const char *f
<br>
623 <h5 class=
"parameters">Parameters
</h5>
626 <dd class=
"description">Locale
</dd>
628 <dd class=
"description">Message catalog file
</dd>
630 <h4 class=
"method"><a name=
"save_messages">save_messages
</a></h4>
631 <p class=
"description"></p>
633 int save_messages (
<br>
634 const char *f
<br>
636 <h5 class=
"parameters">Parameters
</h5>
639 <dd class=
"description">File to save to
</dd>
641 <h5 class=
"returnvalue">Return Value
</h5>
642 <p class=
"description">0 on success, -
1 on error
</p>
643 <h4 class=
"method"><a name=
"~ppdcCatalog">~ppdcCatalog
</a></h4>
644 <p class=
"description"></p>
646 void ~ppdcCatalog (void);
</p>
647 <h3 class=
"class"><a name=
"ppdcChoice">ppdcChoice
</a></h3>
648 <p class=
"description">// Option Choice
</p>
649 <p class=
"code">class ppdcChoice : public ppdcShared {
<br>
650 public:
<br>
651 <a href=
"#ppdcString">ppdcString
</a> *name, *text, *code;
<br>
653 <h4 class=
"members">Members
</h4>
656 <dd class=
"description">PS code of choice
</dd>
658 <h4 class=
"method"><a name=
"ppdcChoice">ppdcChoice
</a></h4>
659 <p class=
"description"></p>
661 void ppdcChoice (
<br>
662 const char *n,
<br>
663 const char *t,
<br>
664 const char *c
<br>
666 <h5 class=
"parameters">Parameters
</h5>
669 <dd class=
"description">Name of choice
</dd>
671 <dd class=
"description">Text of choice
</dd>
673 <dd class=
"description">Code of choice
</dd>
675 <h4 class=
"method"><a name=
"~ppdcChoice">~ppdcChoice
</a></h4>
676 <p class=
"description"></p>
678 void ~ppdcChoice (void);
</p>
679 <h3 class=
"class"><a name=
"ppdcConstraint">ppdcConstraint
</a></h3>
680 <p class=
"description">// Constraint
</p>
681 <p class=
"code">class ppdcConstraint : public ppdcShared {
<br>
682 public:
<br>
683 <a href=
"#ppdcString">ppdcString
</a> *option1, *choice1, *option2, *choice2;
<br>
685 <h4 class=
"members">Members
</h4>
688 <dd class=
"description">Second choice
</dd>
690 <h4 class=
"method"><a name=
"ppdcConstraint">ppdcConstraint
</a></h4>
691 <p class=
"description"></p>
693 void ppdcConstraint (
<br>
694 const char *o1,
<br>
695 const char *c1,
<br>
696 const char *o2,
<br>
697 const char *c2
<br>
699 <h5 class=
"parameters">Parameters
</h5>
702 <dd class=
"description">First option
</dd>
704 <dd class=
"description">First choice
</dd>
706 <dd class=
"description">Second option
</dd>
708 <dd class=
"description">Second choice
</dd>
710 <h4 class=
"method"><a name=
"~ppdcConstraint">~ppdcConstraint
</a></h4>
711 <p class=
"description"></p>
713 void ~ppdcConstraint (void);
</p>
714 <h3 class=
"class"><a name=
"ppdcDriver">ppdcDriver
</a></h3>
715 <p class=
"description">// Printer Driver Data
</p>
716 <p class=
"code">class ppdcDriver : public ppdcShared {
<br>
717 public:
<br>
718 <a href=
"#ppdcArray">ppdcArray
</a> *copyright;
<br>
719 <a href=
"#ppdcString">ppdcString
</a> *custom_size_code;
<br>
720 <a href=
"#ppdcString">ppdcString
</a> *default_font, *default_size;
<br>
721 float left_margin, bottom_margin, right_margin, top_margin, max_width, max_length, min_width, min_length;
<br>
722 <a href=
"#ppdcArray">ppdcArray
</a> *attrs, *constraints, *filters, *fonts, *groups, *profiles, *sizes;
<br>
723 int model_number, manual_copies, color_device, throughput;
<br>
724 <a href=
"#ppdcDrvType">ppdcDrvType
</a> type;
<br>
725 int variable_paper_size;
<br>
726 <a href=
"#ppdcString">ppdcString
</a> *manufacturer, *model_name, *file_name, *pc_file_name, *version;
<br>
728 <h4 class=
"members">Members
</h4>
731 <dd class=
"description">Copyright strings
</dd>
732 <dt>custom_size_code
</dt>
733 <dd class=
"description">Custom page size code, if any
</dd>
734 <dt>default_size
</dt>
735 <dd class=
"description">Default size option
</dd>
737 <dd class=
"description">Minimum length (points)
</dd>
739 <dd class=
"description">Fixed sizes
</dd>
741 <dd class=
"description">Throughput in pages per minute
</dd>
743 <dd class=
"description">Driver type
</dd>
744 <dt>variable_paper_size
</dt>
745 <dd class=
"description">Support variable sizes?
</dd>
747 <dd class=
"description">Version number
</dd>
749 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
750 <p class=
"description"></p>
753 void add_attr(
<a href=
"#ppdcAttr">ppdcAttr
</a> *a
<br>
755 <h5 class=
"parameters">Parameters
</h5>
759 <h4 class=
"method"><a name=
"add_constraint">add_constraint
</a></h4>
760 <p class=
"description"></p>
762 void add_constraint (
<br>
763 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *c
<br>
765 <h5 class=
"parameters">Parameters
</h5>
769 <h4 class=
"method"><a name=
"add_copyright">add_copyright
</a></h4>
770 <p class=
"description"></p>
772 void add_copyright (
<br>
773 const char *c
<br>
775 <h5 class=
"parameters">Parameters
</h5>
779 <h4 class=
"method"><a name=
"add_filter">add_filter
</a></h4>
780 <p class=
"description"></p>
782 void add_filter (
<br>
783 <a href=
"#ppdcFilter">ppdcFilter
</a> *f
<br>
785 <h5 class=
"parameters">Parameters
</h5>
789 <h4 class=
"method"><a name=
"add_font">add_font
</a></h4>
790 <p class=
"description"></p>
793 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
795 <h5 class=
"parameters">Parameters
</h5>
799 <h4 class=
"method"><a name=
"add_group">add_group
</a></h4>
800 <p class=
"description"></p>
803 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
805 <h5 class=
"parameters">Parameters
</h5>
809 <h4 class=
"method"><a name=
"add_profile">add_profile
</a></h4>
810 <p class=
"description"></p>
812 void add_profile (
<br>
813 <a href=
"#ppdcProfile">ppdcProfile
</a> *p
<br>
815 <h5 class=
"parameters">Parameters
</h5>
819 <h4 class=
"method"><a name=
"add_size">add_size
</a></h4>
820 <p class=
"description"></p>
823 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
825 <h5 class=
"parameters">Parameters
</h5>
829 <h4 class=
"method"><a name=
"find_attr">find_attr
</a></h4>
830 <p class=
"description"></p>
832 <a href=
"#ppdcAttr">ppdcAttr
</a> *find_attr (
<br>
833 const char *k,
<br>
834 const char *s
<br>
836 <h5 class=
"parameters">Parameters
</h5>
839 <dd class=
"description">Keyword string
</dd>
841 <dd class=
"description">Spec string
</dd>
843 <h5 class=
"returnvalue">Return Value
</h5>
844 <p class=
"description">Attribute or NULL
</p>
845 <h4 class=
"method"><a name=
"find_group">find_group
</a></h4>
846 <p class=
"description"></p>
848 <a href=
"#ppdcGroup">ppdcGroup
</a> *find_group (
<br>
849 const char *n
<br>
851 <h5 class=
"parameters">Parameters
</h5>
854 <dd class=
"description">Group name
</dd>
856 <h5 class=
"returnvalue">Return Value
</h5>
857 <p class=
"description">Matching group or NULL
</p>
858 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
859 <p class=
"description"></p>
861 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
862 const char *n
<br>
864 <h5 class=
"parameters">Parameters
</h5>
867 <dd class=
"description">Option name
</dd>
869 <h5 class=
"returnvalue">Return Value
</h5>
870 <p class=
"description">Matching option or NULL
</p>
871 <h4 class=
"method"><a name=
"find_option_group">find_option_group
</a></h4>
872 <p class=
"description"></p>
874 <a href=
"#ppdcOption">ppdcOption
</a> *find_option_group (
<br>
875 const char *n,
<br>
876 <a href=
"#ppdcGroup">ppdcGroup
</a> **mg
<br>
878 <h5 class=
"parameters">Parameters
</h5>
881 <dd class=
"description">Option name
</dd>
883 <dd class=
"description">Matching group or NULL
</dd>
885 <h5 class=
"returnvalue">Return Value
</h5>
886 <p class=
"description">Matching option or NULL
</p>
887 <h4 class=
"method"><a name=
"ppdcDriver">ppdcDriver
</a></h4>
888 <p class=
"description"></p>
890 void ppdcDriver (
<br>
891 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
893 <h5 class=
"parameters">Parameters
</h5>
896 <dd class=
"description">Printer driver template
</dd>
898 <h4 class=
"method"><a name=
"set_custom_size_code">set_custom_size_code
</a></h4>
899 <p class=
"description"></p>
901 void set_custom_size_code (
<br>
902 const char *c
<br>
904 <h5 class=
"parameters">Parameters
</h5>
907 <dd class=
"description">CustomPageSize code
</dd>
909 <h4 class=
"method"><a name=
"set_default_font">set_default_font
</a></h4>
910 <p class=
"description"></p>
912 void set_default_font (
<br>
913 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
915 <h5 class=
"parameters">Parameters
</h5>
918 <dd class=
"description">Font
</dd>
920 <h4 class=
"method"><a name=
"set_default_size">set_default_size
</a></h4>
921 <p class=
"description"></p>
923 void set_default_size (
<br>
924 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
926 <h5 class=
"parameters">Parameters
</h5>
929 <dd class=
"description">Media size
</dd>
931 <h4 class=
"method"><a name=
"set_file_name">set_file_name
</a></h4>
932 <p class=
"description"></p>
934 void set_file_name (
<br>
935 const char *f
<br>
937 <h5 class=
"parameters">Parameters
</h5>
940 <dd class=
"description">Filename
</dd>
942 <h4 class=
"method"><a name=
"set_manufacturer">set_manufacturer
</a></h4>
943 <p class=
"description"></p>
945 void set_manufacturer (
<br>
946 const char *m
<br>
948 <h5 class=
"parameters">Parameters
</h5>
951 <dd class=
"description">Model name
</dd>
953 <h4 class=
"method"><a name=
"set_model_name">set_model_name
</a></h4>
954 <p class=
"description"></p>
956 void set_model_name (
<br>
957 const char *m
<br>
959 <h5 class=
"parameters">Parameters
</h5>
962 <dd class=
"description">Model name
</dd>
964 <h4 class=
"method"><a name=
"set_pc_file_name">set_pc_file_name
</a></h4>
965 <p class=
"description"></p>
967 void set_pc_file_name (
<br>
968 const char *f
<br>
970 <h5 class=
"parameters">Parameters
</h5>
973 <dd class=
"description">Filename
</dd>
975 <h4 class=
"method"><a name=
"set_version">set_version
</a></h4>
976 <p class=
"description"></p>
978 void set_version (
<br>
979 const char *v
<br>
981 <h5 class=
"parameters">Parameters
</h5>
984 <dd class=
"description">Version
</dd>
986 <h4 class=
"method"><a name=
"write_ppd_file">write_ppd_file
</a></h4>
987 <p class=
"description"></p>
989 int write_ppd_file (
<br>
990 cups_file_t *fp,
<br>
991 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *catalog,
<br>
992 <a href=
"#ppdcArray">ppdcArray
</a> *locales,
<br>
993 <a href=
"#ppdcSource">ppdcSource
</a> *src,
<br>
994 <a href=
"#ppdcLineEnding">ppdcLineEnding
</a> le
<br>
996 <h5 class=
"parameters">Parameters
</h5>
999 <dd class=
"description">PPD file
</dd>
1001 <dd class=
"description">Message catalog
</dd>
1003 <dd class=
"description">Additional languages to add
</dd>
1005 <dd class=
"description">Driver source
</dd>
1007 <dd class=
"description">Line endings to use
</dd>
1009 <h5 class=
"returnvalue">Return Value
</h5>
1010 <p class=
"description">0 on success, -
1 on failure
</p>
1011 <h4 class=
"method"><a name=
"~ppdcDriver">~ppdcDriver
</a></h4>
1012 <p class=
"description"></p>
1014 void ~ppdcDriver (void);
</p>
1015 <h3 class=
"class"><a name=
"ppdcFile">ppdcFile
</a></h3>
1016 <p class=
"description">// File
</p>
1017 <p class=
"code">class ppdcFile {
<br>
1018 public:
<br>
1019 bool close_on_delete;
<br>
1020 const char *filename;
<br>
1021 cups_file_t *fp;
<br>
1022 int line;
<br>
1024 <h4 class=
"members">Members
</h4>
1026 <dt>close_on_delete
</dt>
1027 <dd class=
"description">Close file on delete?
</dd>
1029 <dd class=
"description">Filename
</dd>
1031 <dd class=
"description">File pointer
</dd>
1033 <dd class=
"description">Line in file
</dd>
1035 <h4 class=
"method"><a name=
"get">get
</a></h4>
1036 <p class=
"description">Get a character from a file.
</p>
1039 <h5 class=
"returnvalue">Return Value
</h5>
1040 <p class=
"description"></p>
1041 <h4 class=
"method"><a name=
"peek">peek
</a></h4>
1042 <p class=
"description"></p>
1044 int peek (void);
</p>
1045 <h5 class=
"returnvalue">Return Value
</h5>
1046 <p class=
"description">Next character in file
</p>
1047 <h4 class=
"method"><a name=
"ppdcFile">ppdcFile
</a></h4>
1048 <p class=
"description"></p>
1051 const char *f,
<br>
1052 cups_file_t *ffp
<br>
1054 <h5 class=
"parameters">Parameters
</h5>
1057 <dd class=
"description">File to open
</dd>
1059 <dd class=
"description">File pointer to use
</dd>
1061 <h4 class=
"method"><a name=
"~ppdcFile">~ppdcFile
</a></h4>
1062 <p class=
"description"></p>
1064 void ~ppdcFile (void);
</p>
1065 <h3 class=
"class"><a name=
"ppdcFilter">ppdcFilter
</a></h3>
1066 <p class=
"description">// Filter Program
</p>
1067 <p class=
"code">class ppdcFilter : public ppdcShared {
<br>
1068 public:
<br>
1069 int cost;
<br>
1070 <a href=
"#ppdcString">ppdcString
</a> *mime_type, *program;
<br>
1072 <h4 class=
"members">Members
</h4>
1075 <dd class=
"description">Relative cost of filter
</dd>
1077 <dd class=
"description">Filter program
</dd>
1079 <h4 class=
"method"><a name=
"ppdcFilter">ppdcFilter
</a></h4>
1080 <p class=
"description"></p>
1082 void ppdcFilter (
<br>
1083 const char *t,
<br>
1084 const char *p,
<br>
1085 int c
<br>
1087 <h5 class=
"parameters">Parameters
</h5>
1090 <dd class=
"description">MIME type
</dd>
1092 <dd class=
"description">Filter program
</dd>
1094 <dd class=
"description">Relative cost
</dd>
1096 <h4 class=
"method"><a name=
"~ppdcFilter">~ppdcFilter
</a></h4>
1097 <p class=
"description"></p>
1099 void ~ppdcFilter (void);
</p>
1100 <h3 class=
"class"><a name=
"ppdcFont">ppdcFont
</a></h3>
1101 <p class=
"description">// Shared Font
</p>
1102 <p class=
"code">class ppdcFont : public ppdcShared {
<br>
1103 public:
<br>
1104 <a href=
"#ppdcString">ppdcString
</a> *name, *encoding, *version, *charset;
<br>
1105 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> status;
<br>
1107 <h4 class=
"members">Members
</h4>
1110 <dd class=
"description">Font charset
</dd>
1112 <dd class=
"description">Font status (ROM or Disk)
</dd>
1114 <h4 class=
"method"><a name=
"ppdcFont">ppdcFont
</a></h4>
1115 <p class=
"description"></p>
1118 const char *n,
<br>
1119 const char *e,
<br>
1120 const char *v,
<br>
1121 const char *c,
<br>
1122 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> s
<br>
1124 <h5 class=
"parameters">Parameters
</h5>
1127 <dd class=
"description">Name of font
</dd>
1129 <dd class=
"description">Font encoding
</dd>
1131 <dd class=
"description">Font version
</dd>
1133 <dd class=
"description">Font charset
</dd>
1135 <dd class=
"description">Font status
</dd>
1137 <h4 class=
"method"><a name=
"~ppdcFont">~ppdcFont
</a></h4>
1138 <p class=
"description"></p>
1140 void ~ppdcFont (void);
</p>
1141 <h3 class=
"class"><a name=
"ppdcGroup">ppdcGroup
</a></h3>
1142 <p class=
"description">// Group of Options
</p>
1143 <p class=
"code">class ppdcGroup : public ppdcShared {
<br>
1144 public:
<br>
1145 <a href=
"#ppdcArray">ppdcArray
</a> *options;
<br>
1146 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1148 <h4 class=
"members">Members
</h4>
1151 <dd class=
"description">Options
</dd>
1153 <dd class=
"description">Human-readable text of option
</dd>
1155 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1156 <p class=
"description"></p>
1158 void PPDC_NAME (
<br>
1159 void add_option(
<a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1161 <h5 class=
"parameters">Parameters
</h5>
1165 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
1166 <p class=
"description">Find an option in a group.
</p>
1168 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
1169 const char *n
<br>
1171 <h5 class=
"parameters">Parameters
</h5>
1174 <dd class=
"description">Name of option
</dd>
1176 <h5 class=
"returnvalue">Return Value
</h5>
1177 <p class=
"description"></p>
1178 <h4 class=
"method"><a name=
"ppdcGroup">ppdcGroup
</a></h4>
1179 <p class=
"description"></p>
1181 void ppdcGroup (
<br>
1182 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1184 <h5 class=
"parameters">Parameters
</h5>
1187 <dd class=
"description">Group template
</dd>
1189 <h4 class=
"method"><a name=
"~ppdcGroup">~ppdcGroup
</a></h4>
1190 <p class=
"description"></p>
1192 void ~ppdcGroup (void);
</p>
1193 <h3 class=
"class"><a name=
"ppdcInteger">ppdcInteger
</a></h3>
1194 <p class=
"description">// Shared integer
</p>
1195 <p class=
"code">class ppdcInteger : public ppdcShared {
<br>
1196 public:
<br>
1197 int *value;
<br>
1199 <h4 class=
"members">Members
</h4>
1202 <dd class=
"description">Integer value
</dd>
1204 <h4 class=
"method"><a name=
"ppdcInteger">ppdcInteger
</a></h4>
1205 <p class=
"description">Integer value
</p>
1207 void ppdcInteger (
<br>
1208 int *v
<br>
1210 <h5 class=
"parameters">Parameters
</h5>
1214 <h3 class=
"class"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h3>
1215 <p class=
"description">// Media Size
</p>
1216 <p class=
"code">class ppdcMediaSize : public ppdcShared {
<br>
1217 public:
<br>
1218 <a href=
"#ppdcString">ppdcString
</a> *size_code, *region_code;
<br>
1219 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1220 float width, length, left, bottom, right, top;
<br>
1222 <h4 class=
"members">Members
</h4>
1224 <dt>region_code
</dt>
1225 <dd class=
"description">PageRegion code, if any
</dd>
1227 <dd class=
"description">Human-readable text
</dd>
1229 <dd class=
"description">Top limit in points
</dd>
1231 <h4 class=
"method"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h4>
1232 <p class=
"description"></p>
1234 void ppdcMediaSize (
<br>
1235 const char *n,
<br>
1236 const char *t,
<br>
1237 float w,
<br>
1238 float l,
<br>
1239 float lm,
<br>
1240 float bm,
<br>
1241 float rm,
<br>
1242 float tm,
<br>
1243 const char *sc,
<br>
1244 const char *rc
<br>
1246 <h5 class=
"parameters">Parameters
</h5>
1249 <dd class=
"description">Name of media size
</dd>
1251 <dd class=
"description">Text of media size
</dd>
1253 <dd class=
"description">Width in points
</dd>
1255 <dd class=
"description">Length in points
</dd>
1257 <dd class=
"description">Left margin in points
</dd>
1259 <dd class=
"description">Bottom margin in points
</dd>
1261 <dd class=
"description">Right margin in points
</dd>
1263 <dd class=
"description">Top margin in points
</dd>
1265 <dd class=
"description">PageSize code, if any
</dd>
1267 <dd class=
"description">PageRegion code, if any
</dd>
1269 <h4 class=
"method"><a name=
"~ppdcMediaSize">~ppdcMediaSize
</a></h4>
1270 <p class=
"description"></p>
1272 void ~ppdcMediaSize (void);
</p>
1273 <h3 class=
"class"><a name=
"ppdcMessage">ppdcMessage
</a></h3>
1274 <p class=
"description">// Translation message
</p>
1275 <p class=
"code">class ppdcMessage : public ppdcShared {
<br>
1276 public:
<br>
1277 <a href=
"#ppdcString">ppdcString
</a> *id, *string;
<br>
1279 <h4 class=
"members">Members
</h4>
1282 <dd class=
"description">Translation string
</dd>
1284 <h4 class=
"method"><a name=
"ppdcMessage">ppdcMessage
</a></h4>
1285 <p class=
"description"></p>
1287 void ppdcMessage (
<br>
1288 const char *i,
<br>
1289 const char *s
<br>
1291 <h5 class=
"parameters">Parameters
</h5>
1294 <dd class=
"description">ID
</dd>
1296 <dd class=
"description">Text
</dd>
1298 <h4 class=
"method"><a name=
"~ppdcMessage">~ppdcMessage
</a></h4>
1299 <p class=
"description"></p>
1301 void ~ppdcMessage (void);
</p>
1302 <h3 class=
"class"><a name=
"ppdcOption">ppdcOption
</a></h3>
1303 <p class=
"description">// Option
</p>
1304 <p class=
"code">class ppdcOption : public ppdcShared {
<br>
1305 public:
<br>
1306 <a href=
"#ppdcArray">ppdcArray
</a> *choices;
<br>
1307 <a href=
"#ppdcString">ppdcString
</a> *defchoice;
<br>
1308 float order;
<br>
1309 <a href=
"#ppdcOptSection">ppdcOptSection
</a> section;
<br>
1310 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1311 <a href=
"#ppdcOptType">ppdcOptType
</a> type;
<br>
1313 <h4 class=
"members">Members
</h4>
1316 <dd class=
"description">Choices
</dd>
1318 <dd class=
"description">Default choice
</dd>
1320 <dd class=
"description">Order number
</dd>
1322 <dd class=
"description">Section for option code
</dd>
1324 <dd class=
"description">Human-readable text of option
</dd>
1326 <dd class=
"description">Type of option
</dd>
1328 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1329 <p class=
"description"></p>
1331 void PPDC_NAME (
<br>
1332 void add_choice(
<a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1334 <h5 class=
"parameters">Parameters
</h5>
1338 <h4 class=
"method"><a name=
"find_choice">find_choice
</a></h4>
1339 <p class=
"description"></p>
1341 <a href=
"#ppdcChoice">ppdcChoice
</a> *find_choice (
<br>
1342 const char *n
<br>
1344 <h5 class=
"parameters">Parameters
</h5>
1347 <dd class=
"description">Name of choice
</dd>
1349 <h5 class=
"returnvalue">Return Value
</h5>
1350 <p class=
"description">Choice or NULL
</p>
1351 <h4 class=
"method"><a name=
"ppdcOption">ppdcOption
</a></h4>
1352 <p class=
"description"></p>
1354 void ppdcOption (
<br>
1355 <a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1357 <h5 class=
"parameters">Parameters
</h5>
1360 <dd class=
"description">Template option
</dd>
1362 <h4 class=
"method"><a name=
"set_defchoice">set_defchoice
</a></h4>
1363 <p class=
"description"></p>
1365 void set_defchoice (
<br>
1366 <a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1368 <h5 class=
"parameters">Parameters
</h5>
1371 <dd class=
"description">Choice
</dd>
1373 <h4 class=
"method"><a name=
"~ppdcOption">~ppdcOption
</a></h4>
1374 <p class=
"description"></p>
1376 void ~ppdcOption (void);
</p>
1377 <h3 class=
"class"><a name=
"ppdcProfile">ppdcProfile
</a></h3>
1378 <p class=
"description">// Color Profile
</p>
1379 <p class=
"code">class ppdcProfile : public ppdcShared {
<br>
1380 public:
<br>
1381 <a href=
"#ppdcString">ppdcString
</a> *resolution, *media_type;
<br>
1382 float density, gamma, profile[
9];
<br>
1384 <h4 class=
"members">Members
</h4>
1386 <dt>media_type
</dt>
1387 <dd class=
"description">Media type name
</dd>
1388 <dt>profile[
9]
</dt>
1389 <dd class=
"description">Color profile matrix
</dd>
1391 <h4 class=
"method"><a name=
"ppdcProfile">ppdcProfile
</a></h4>
1392 <p class=
"description"></p>
1394 void ppdcProfile (
<br>
1395 const char *r,
<br>
1396 const char *m,
<br>
1397 float d,
<br>
1398 float g,
<br>
1399 const float *p
<br>
1401 <h5 class=
"parameters">Parameters
</h5>
1404 <dd class=
"description">Resolution name
</dd>
1406 <dd class=
"description">Media type name
</dd>
1408 <dd class=
"description">Density
</dd>
1410 <dd class=
"description">Gamma
</dd>
1412 <dd class=
"description">3x3 transform matrix
</dd>
1414 <h4 class=
"method"><a name=
"~ppdcProfile">~ppdcProfile
</a></h4>
1415 <p class=
"description"></p>
1417 void ~ppdcProfile (void);
</p>
1418 <h3 class=
"class"><a name=
"ppdcShared">ppdcShared
</a></h3>
1419 <p class=
"description">// Shared Data Value
</p>
1420 <p class=
"code">class ppdcShared {
<br>
1421 private:
<br>
1422 int use;
<br>
1424 <h4 class=
"members">Members
</h4>
1427 <dd class=
"description">Use count (delete when
0)
</dd>
1429 <h4 class=
"method"><a name=
"class_name">class_name
</a></h4>
1430 <p class=
"description"></p>
1432 virtual const char *class_name (void);
</p>
1433 <h5 class=
"returnvalue">Return Value
</h5>
1434 <p class=
"description"></p>
1435 <h4 class=
"method"><a name=
"ppdcShared">ppdcShared
</a></h4>
1436 <p class=
"description"></p>
1438 void ppdcShared (void);
</p>
1439 <h4 class=
"method"><a name=
"release">release
</a></h4>
1440 <p class=
"description"></p>
1442 void release (void);
</p>
1443 <h4 class=
"method"><a name=
"retain">retain
</a></h4>
1444 <p class=
"description"></p>
1446 void retain (void);
</p>
1447 <h4 class=
"method"><a name=
"~ppdcShared">~ppdcShared
</a></h4>
1448 <p class=
"description"></p>
1450 void ~ppdcShared (void);
</p>
1451 <h3 class=
"class"><a name=
"ppdcSource">ppdcSource
</a></h3>
1452 <p class=
"description">// Source File
</p>
1453 <p class=
"code">class ppdcSource : public ppdcShared {
<br>
1454 public:
<br>
1455 int cond_state, *cond_current, cond_stack[
101];
<br>
1456 static const char *driver_types[];
<br>
1457 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
1458 static
<a href=
"#ppdcArray">ppdcArray
</a> *includes;
<br>
1459 <a href=
"#ppdcArray">ppdcArray
</a> *base_fonts, *drivers, *po_files, *sizes, *vars;
<br>
1461 <h4 class=
"members">Members
</h4>
1463 <dt>cond_stack[
101]
</dt>
1464 <dd class=
"description">#if state stack
</dd>
1465 <dt>driver_types[]
</dt>
1466 <dd class=
"description">Driver types
</dd>
1468 <dd class=
"description">Filename
</dd>
1470 <dd class=
"description">Include directories
</dd>
1472 <dd class=
"description">Defined variables
</dd>
1474 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1475 <p class=
"description"></p>
1477 void PPDC_NAME (
<br>
1478 static void add_include(const char *d
<br>
1480 <h5 class=
"parameters">Parameters
</h5>
1484 <h4 class=
"method"><a name=
"add_include">add_include
</a></h4>
1485 <p class=
"description"></p>
1487 void add_include (
<br>
1488 const char *d
<br>
1490 <h5 class=
"parameters">Parameters
</h5>
1493 <dd class=
"description">Include directory
</dd>
1495 <h4 class=
"method"><a name=
"find_driver">find_driver
</a></h4>
1496 <p class=
"description"></p>
1498 <a href=
"#ppdcDriver">ppdcDriver
</a> *find_driver (
<br>
1499 const char *f
<br>
1501 <h5 class=
"parameters">Parameters
</h5>
1504 <dd class=
"description">Driver file name
</dd>
1506 <h5 class=
"returnvalue">Return Value
</h5>
1507 <p class=
"description">Driver
</p>
1508 <h4 class=
"method"><a name=
"find_include">find_include
</a></h4>
1509 <p class=
"description"></p>
1511 char *find_include (
<br>
1512 const char *f,
<br>
1513 const char *base,
<br>
1514 char *n,
<br>
1515 int nlen
<br>
1517 <h5 class=
"parameters">Parameters
</h5>
1520 <dd class=
"description">Include filename
</dd>
1522 <dd class=
"description">Current directory
</dd>
1524 <dd class=
"description">Path buffer
</dd>
1526 <dd class=
"description">Path buffer length
</dd>
1528 <h5 class=
"returnvalue">Return Value
</h5>
1529 <p class=
"description">Found path or NULL
</p>
1530 <h4 class=
"method"><a name=
"find_po">find_po
</a></h4>
1531 <p class=
"description"></p>
1533 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *find_po (
<br>
1534 const char *l
<br>
1536 <h5 class=
"parameters">Parameters
</h5>
1539 <dd class=
"description">Locale name
</dd>
1541 <h5 class=
"returnvalue">Return Value
</h5>
1542 <p class=
"description">Message catalog or NULL
</p>
1543 <h4 class=
"method"><a name=
"find_size">find_size
</a></h4>
1544 <p class=
"description"></p>
1546 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *find_size (
<br>
1547 const char *s
<br>
1549 <h5 class=
"parameters">Parameters
</h5>
1552 <dd class=
"description">Size name
</dd>
1554 <h5 class=
"returnvalue">Return Value
</h5>
1555 <p class=
"description">Size
</p>
1556 <h4 class=
"method"><a name=
"find_variable">find_variable
</a></h4>
1557 <p class=
"description"></p>
1559 <a href=
"#ppdcVariable">ppdcVariable
</a> *find_variable (
<br>
1560 const char *n
<br>
1562 <h5 class=
"parameters">Parameters
</h5>
1565 <dd class=
"description">Variable name
</dd>
1567 <h5 class=
"returnvalue">Return Value
</h5>
1568 <p class=
"description">Variable
</p>
1569 <h4 class=
"method"><a name=
"get_attr">get_attr
</a></h4>
1570 <p class=
"description"></p>
1572 <a href=
"#ppdcAttr">ppdcAttr
</a> *get_attr (
<br>
1573 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1574 bool loc
<br>
1576 <h5 class=
"parameters">Parameters
</h5>
1579 <dd class=
"description">File to read
</dd>
1581 <dd class=
"description">Localize this attribute?
</dd>
1583 <h5 class=
"returnvalue">Return Value
</h5>
1584 <p class=
"description">Attribute
</p>
1585 <h4 class=
"method"><a name=
"get_boolean">get_boolean
</a></h4>
1586 <p class=
"description"></p>
1588 int get_boolean (
<br>
1589 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1591 <h5 class=
"parameters">Parameters
</h5>
1594 <dd class=
"description">File to read
</dd>
1596 <h5 class=
"returnvalue">Return Value
</h5>
1597 <p class=
"description">Boolean value
</p>
1598 <h4 class=
"method"><a name=
"get_choice">get_choice
</a></h4>
1599 <p class=
"description"></p>
1601 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_choice (
<br>
1602 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1604 <h5 class=
"parameters">Parameters
</h5>
1607 <dd class=
"description">File to read
</dd>
1609 <h5 class=
"returnvalue">Return Value
</h5>
1610 <p class=
"description">Choice data
</p>
1611 <h4 class=
"method"><a name=
"get_color_model">get_color_model
</a></h4>
1612 <p class=
"description"></p>
1614 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_color_model (
<br>
1615 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1617 <h5 class=
"parameters">Parameters
</h5>
1620 <dd class=
"description">File to read
</dd>
1622 <h5 class=
"returnvalue">Return Value
</h5>
1623 <p class=
"description">Choice data
</p>
1624 <h4 class=
"method"><a name=
"get_color_order">get_color_order
</a></h4>
1625 <p class=
"description"></p>
1627 int get_color_order (
<br>
1628 const char *co
<br>
1630 <h5 class=
"parameters">Parameters
</h5>
1633 <dd class=
"description">Color order string
</dd>
1635 <h5 class=
"returnvalue">Return Value
</h5>
1636 <p class=
"description">Color order value
</p>
1637 <h4 class=
"method"><a name=
"get_color_profile">get_color_profile
</a></h4>
1638 <p class=
"description"></p>
1640 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_color_profile (
<br>
1641 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1643 <h5 class=
"parameters">Parameters
</h5>
1646 <dd class=
"description">File to read
</dd>
1648 <h5 class=
"returnvalue">Return Value
</h5>
1649 <p class=
"description">Color profile
</p>
1650 <h4 class=
"method"><a name=
"get_color_space">get_color_space
</a></h4>
1651 <p class=
"description"></p>
1653 int get_color_space (
<br>
1654 const char *cs
<br>
1656 <h5 class=
"parameters">Parameters
</h5>
1659 <dd class=
"description">Colorspace string
</dd>
1661 <h5 class=
"returnvalue">Return Value
</h5>
1662 <p class=
"description">Colorspace value
</p>
1663 <h4 class=
"method"><a name=
"get_constraint">get_constraint
</a></h4>
1664 <p class=
"description"></p>
1666 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *get_constraint (
<br>
1667 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1669 <h5 class=
"parameters">Parameters
</h5>
1672 <dd class=
"description">File to read
</dd>
1674 <h5 class=
"returnvalue">Return Value
</h5>
1675 <p class=
"description">Constraint
</p>
1676 <h4 class=
"method"><a name=
"get_custom_size">get_custom_size
</a></h4>
1677 <p class=
"description"></p>
1679 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_custom_size (
<br>
1680 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1682 <h5 class=
"parameters">Parameters
</h5>
1685 <dd class=
"description">File to read
</dd>
1687 <h5 class=
"returnvalue">Return Value
</h5>
1688 <p class=
"description">Media size
</p>
1689 <h4 class=
"method"><a name=
"get_duplex">get_duplex
</a></h4>
1690 <p class=
"description"></p>
1692 void get_duplex (
<br>
1693 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1694 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1696 <h5 class=
"parameters">Parameters
</h5>
1699 <dd class=
"description">File to read from
</dd>
1701 <dd class=
"description">Current driver
</dd>
1703 <h4 class=
"method"><a name=
"get_filter">get_filter
</a></h4>
1704 <p class=
"description"></p>
1706 <a href=
"#ppdcFilter">ppdcFilter
</a> *get_filter (
<br>
1707 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1709 <h5 class=
"parameters">Parameters
</h5>
1712 <dd class=
"description">File to read
</dd>
1714 <h5 class=
"returnvalue">Return Value
</h5>
1715 <p class=
"description">Filter
</p>
1716 <h4 class=
"method"><a name=
"get_float">get_float
</a></h4>
1717 <p class=
"description"></p>
1719 float get_float (
<br>
1720 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1722 <h5 class=
"parameters">Parameters
</h5>
1725 <dd class=
"description">File to read
</dd>
1727 <h5 class=
"returnvalue">Return Value
</h5>
1728 <p class=
"description">Number
</p>
1729 <h4 class=
"method"><a name=
"get_font">get_font
</a></h4>
1730 <p class=
"description"></p>
1732 <a href=
"#ppdcFont">ppdcFont
</a> *get_font (
<br>
1733 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1735 <h5 class=
"parameters">Parameters
</h5>
1738 <dd class=
"description">File to read
</dd>
1740 <h5 class=
"returnvalue">Return Value
</h5>
1741 <p class=
"description">Font data
</p>
1742 <h4 class=
"method"><a name=
"get_generic">get_generic
</a></h4>
1743 <p class=
"description"></p>
1745 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_generic (
<br>
1746 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1747 const char *keyword,
<br>
1748 const char *tattr,
<br>
1749 const char *nattr
<br>
1751 <h5 class=
"parameters">Parameters
</h5>
1754 <dd class=
"description">File to read
</dd>
1756 <dd class=
"description">Keyword name
</dd>
1758 <dd class=
"description">Text attribute
</dd>
1760 <dd class=
"description">Numeric attribute
</dd>
1762 <h5 class=
"returnvalue">Return Value
</h5>
1763 <p class=
"description">Choice data
</p>
1764 <h4 class=
"method"><a name=
"get_group">get_group
</a></h4>
1765 <p class=
"description"></p>
1767 <a href=
"#ppdcGroup">ppdcGroup
</a> *get_group (
<br>
1768 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1769 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1771 <h5 class=
"parameters">Parameters
</h5>
1774 <dd class=
"description">File to read
</dd>
1776 <dd class=
"description">Printer driver
</dd>
1778 <h5 class=
"returnvalue">Return Value
</h5>
1779 <p class=
"description">Group
</p>
1780 <h4 class=
"method"><a name=
"get_installable">get_installable
</a></h4>
1781 <p class=
"description"></p>
1783 <a href=
"#ppdcOption">ppdcOption
</a> *get_installable (
<br>
1784 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1786 <h5 class=
"parameters">Parameters
</h5>
1789 <dd class=
"description">File to read
</dd>
1791 <h5 class=
"returnvalue">Return Value
</h5>
1792 <p class=
"description">Option
</p>
1793 <h4 class=
"method"><a name=
"get_integer">get_integer
</a></h4>
1794 <p class=
"description"></p>
1796 int get_integer (
<br>
1797 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1799 <h5 class=
"parameters">Parameters
</h5>
1802 <dd class=
"description">File to read
</dd>
1804 <h5 class=
"returnvalue">Return Value
</h5>
1805 <p class=
"description">Integer value
</p>
1806 <h4 class=
"method"><a name=
"get_measurement">get_measurement
</a></h4>
1807 <p class=
"description"></p>
1809 float get_measurement (
<br>
1810 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1812 <h5 class=
"parameters">Parameters
</h5>
1815 <dd class=
"description">File to read
</dd>
1817 <h5 class=
"returnvalue">Return Value
</h5>
1818 <p class=
"description">Measurement value in points
</p>
1819 <h4 class=
"method"><a name=
"get_option">get_option
</a></h4>
1820 <p class=
"description"></p>
1822 <a href=
"#ppdcOption">ppdcOption
</a> *get_option (
<br>
1823 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1824 <a href=
"#ppdcDriver">ppdcDriver
</a> *d,
<br>
1825 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1827 <h5 class=
"parameters">Parameters
</h5>
1830 <dd class=
"description">File to read
</dd>
1832 <dd class=
"description">Printer driver
</dd>
1834 <dd class=
"description">Current group
</dd>
1836 <h5 class=
"returnvalue">Return Value
</h5>
1837 <p class=
"description">Option
</p>
1838 <h4 class=
"method"><a name=
"get_po">get_po
</a></h4>
1839 <p class=
"description"></p>
1841 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *get_po (
<br>
1842 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1844 <h5 class=
"parameters">Parameters
</h5>
1847 <dd class=
"description">File to read
</dd>
1849 <h5 class=
"returnvalue">Return Value
</h5>
1850 <p class=
"description">Message catalog
</p>
1851 <h4 class=
"method"><a name=
"get_resolution">get_resolution
</a></h4>
1852 <p class=
"description"></p>
1854 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_resolution (
<br>
1855 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1857 <h5 class=
"parameters">Parameters
</h5>
1860 <dd class=
"description">File to read
</dd>
1862 <h5 class=
"returnvalue">Return Value
</h5>
1863 <p class=
"description">Choice data
</p>
1864 <h4 class=
"method"><a name=
"get_simple_profile">get_simple_profile
</a></h4>
1865 <p class=
"description"></p>
1867 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_simple_profile (
<br>
1868 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1870 <h5 class=
"parameters">Parameters
</h5>
1873 <dd class=
"description">File to read
</dd>
1875 <h5 class=
"returnvalue">Return Value
</h5>
1876 <p class=
"description">Color profile
</p>
1877 <h4 class=
"method"><a name=
"get_size">get_size
</a></h4>
1878 <p class=
"description"></p>
1880 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_size (
<br>
1881 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1883 <h5 class=
"parameters">Parameters
</h5>
1886 <dd class=
"description">File to read
</dd>
1888 <h5 class=
"returnvalue">Return Value
</h5>
1889 <p class=
"description">Media size
</p>
1890 <h4 class=
"method"><a name=
"get_token">get_token
</a></h4>
1891 <p class=
"description"></p>
1893 char *get_token (
<br>
1894 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1895 char *buffer,
<br>
1896 int buflen
<br>
1898 <h5 class=
"parameters">Parameters
</h5>
1901 <dd class=
"description">File to read
</dd>
1903 <dd class=
"description">Buffer
</dd>
1905 <dd class=
"description">Length of buffer
</dd>
1907 <h5 class=
"returnvalue">Return Value
</h5>
1908 <p class=
"description">Token string or NULL
</p>
1909 <h4 class=
"method"><a name=
"get_variable">get_variable
</a></h4>
1910 <p class=
"description"></p>
1912 <a href=
"#ppdcVariable">ppdcVariable
</a> *get_variable (
<br>
1913 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1915 <h5 class=
"parameters">Parameters
</h5>
1918 <dd class=
"description">File to read
</dd>
1920 <h5 class=
"returnvalue">Return Value
</h5>
1921 <p class=
"description">Variable
</p>
1922 <h4 class=
"method"><a name=
"import_ppd">import_ppd
</a></h4>
1923 <p class=
"description"></p>
1925 int import_ppd (
<br>
1926 const char *f
<br>
1928 <h5 class=
"parameters">Parameters
</h5>
1931 <dd class=
"description">Filename
</dd>
1933 <h5 class=
"returnvalue">Return Value
</h5>
1934 <p class=
"description">1 on success,
0 on failure
</p>
1935 <h4 class=
"method"><a name=
"ppdcSource">ppdcSource
</a></h4>
1936 <p class=
"description"></p>
1938 void ppdcSource (
<br>
1939 const char *f,
<br>
1940 cups_file_t *ffp
<br>
1942 <h5 class=
"parameters">Parameters
</h5>
1945 <dd class=
"description">File to read
</dd>
1947 <dd class=
"description">File pointer to use
</dd>
1949 <h4 class=
"method"><a name=
"quotef">quotef
</a></h4>
1950 <p class=
"description"></p>
1953 cups_file_t *fp,
<br>
1954 const char *format,
<br>
1955 ...
<br>
1957 <h5 class=
"parameters">Parameters
</h5>
1960 <dd class=
"description">File to write to
</dd>
1962 <dd class=
"description">Printf-style format string
</dd>
1964 <dd class=
"description">Additional args as needed
</dd>
1966 <h5 class=
"returnvalue">Return Value
</h5>
1967 <p class=
"description">Number bytes on success, -
1 on failure
</p>
1968 <h4 class=
"method"><a name=
"read_file">read_file
</a></h4>
1969 <p class=
"description"></p>
1971 void read_file (
<br>
1972 const char *f,
<br>
1973 cups_file_t *ffp
<br>
1975 <h5 class=
"parameters">Parameters
</h5>
1978 <dd class=
"description">File to read
</dd>
1980 <dd class=
"description">File pointer to use
</dd>
1982 <h4 class=
"method"><a name=
"scan_file">scan_file
</a></h4>
1983 <p class=
"description"></p>
1985 void scan_file (
<br>
1986 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1987 <a href=
"#ppdcDriver">ppdcDriver
</a> *td,
<br>
1988 bool inc
<br>
1990 <h5 class=
"parameters">Parameters
</h5>
1993 <dd class=
"description">File to read
</dd>
1995 <dd class=
"description">Driver template
</dd>
1997 <dd class=
"description">Including?
</dd>
1999 <h4 class=
"method"><a name=
"set_variable">set_variable
</a></h4>
2000 <p class=
"description"></p>
2002 <a href=
"#ppdcVariable">ppdcVariable
</a> *set_variable (
<br>
2003 const char *name,
<br>
2004 const char *value
<br>
2006 <h5 class=
"parameters">Parameters
</h5>
2009 <dd class=
"description">Name
</dd>
2011 <dd class=
"description">Value
</dd>
2013 <h5 class=
"returnvalue">Return Value
</h5>
2014 <p class=
"description">Variable
</p>
2015 <h4 class=
"method"><a name=
"write_file">write_file
</a></h4>
2016 <p class=
"description"></p>
2018 int write_file (
<br>
2019 const char *f
<br>
2021 <h5 class=
"parameters">Parameters
</h5>
2024 <dd class=
"description">File to write
</dd>
2026 <h5 class=
"returnvalue">Return Value
</h5>
2027 <p class=
"description">0 on success, -
1 on error
</p>
2028 <h4 class=
"method"><a name=
"~ppdcSource">~ppdcSource
</a></h4>
2029 <p class=
"description"></p>
2031 void ~ppdcSource (void);
</p>
2032 <h3 class=
"class"><a name=
"ppdcString">ppdcString
</a></h3>
2033 <p class=
"description">// Shared String
</p>
2034 <p class=
"code">class ppdcString : public ppdcShared {
<br>
2035 public:
<br>
2036 char *value;
<br>
2038 <h4 class=
"members">Members
</h4>
2041 <dd class=
"description">String value
</dd>
2043 <h4 class=
"method"><a name=
"ppdcString">ppdcString
</a></h4>
2044 <p class=
"description"></p>
2046 void ppdcString (
<br>
2047 const char *v
<br>
2049 <h5 class=
"parameters">Parameters
</h5>
2052 <dd class=
"description">String
</dd>
2054 <h4 class=
"method"><a name=
"~ppdcString">~ppdcString
</a></h4>
2055 <p class=
"description"></p>
2057 void ~ppdcString (void);
</p>
2058 <h3 class=
"class"><a name=
"ppdcVariable">ppdcVariable
</a></h3>
2059 <p class=
"description">// Variable Definition
</p>
2060 <p class=
"code">class ppdcVariable : public ppdcShared {
<br>
2061 public:
<br>
2062 <a href=
"#ppdcString">ppdcString
</a> *name, *value;
<br>
2064 <h4 class=
"members">Members
</h4>
2067 <dd class=
"description">Value of variable
</dd>
2069 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
2070 <p class=
"description"></p>
2072 void PPDC_NAME (
<br>
2073 void set_value(const char *v
<br>
2075 <h5 class=
"parameters">Parameters
</h5>
2079 <h4 class=
"method"><a name=
"ppdcVariable">ppdcVariable
</a></h4>
2080 <p class=
"description"></p>
2082 void ppdcVariable (
<br>
2083 const char *n,
<br>
2084 const char *v
<br>
2086 <h5 class=
"parameters">Parameters
</h5>
2089 <dd class=
"description">Name of variable
</dd>
2091 <dd class=
"description">Value of variable
</dd>
2093 <h4 class=
"method"><a name=
"set_value">set_value
</a></h4>
2094 <p class=
"description"></p>
2096 void set_value (
<br>
2097 const char *v
<br>
2099 <h5 class=
"parameters">Parameters
</h5>
2103 <h4 class=
"method"><a name=
"~ppdcVariable">~ppdcVariable
</a></h4>
2104 <p class=
"description"></p>
2106 void ~ppdcVariable (void);
</p>
2107 <h2 class=
"title"><a name=
"TYPES">Data Types
</a></h2>
2108 <h3 class=
"typedef"><a name=
"ppdc_cs_t">ppdc_cs_t
</a></h3>
2109 <p class=
"description"></p>
2111 typedef enum ppdc_cs_t;
2113 <h2 class=
"title"><a name=
"VARIABLES">Variables
</a></h2>
2114 <h3 class=
"variable"><a name=
"ppdcSource">ppdcSource
</a></h3>
2115 <p class=
"description">// Printer Driver Data
</p>
2116 <p class=
"code">class ppdcSource;
</p>
2117 <h2 class=
"title"><a name=
"ENUMERATIONS">Constants
</a></h2>
2118 <h3 class=
"enumeration"><a name=
"ppdcCondFlags">ppdcCondFlags
</a></h3>
2119 <p class=
"description">// Condition flags
</p>
2120 <h4 class=
"constants">Constants
</h4>
2122 <dt>PPDC_COND_NORMAL
</dt>
2123 <dd class=
"description">Normal state
</dd>
2124 <dt>PPDC_COND_SATISFIED
</dt>
2125 <dd class=
"description">At least one condition satisfied
</dd>
2126 <dt>PPDC_COND_SKIP
</dt>
2127 <dd class=
"description">Skip state
</dd>
2129 <h3 class=
"enumeration"><a name=
"ppdcDrvType">ppdcDrvType
</a></h3>
2130 <p class=
"description">// Driver type
</p>
2131 <h4 class=
"constants">Constants
</h4>
2133 <dt>PPDC_DRIVER_CUSTOM
</dt>
2134 <dd class=
"description">Custom driver
</dd>
2135 <dt>PPDC_DRIVER_EPSON
</dt>
2136 <dd class=
"description">rastertoepson driver
</dd>
2137 <dt>PPDC_DRIVER_ESCP
</dt>
2138 <dd class=
"description">rastertoescpx driver
</dd>
2139 <dt>PPDC_DRIVER_HP
</dt>
2140 <dd class=
"description">rastertohp driver
</dd>
2141 <dt>PPDC_DRIVER_LABEL
</dt>
2142 <dd class=
"description">rastertolabel/rastertodymo driver
</dd>
2143 <dt>PPDC_DRIVER_MAX
</dt>
2144 <dd class=
"description">Number of driver types defined
</dd>
2145 <dt>PPDC_DRIVER_PCL
</dt>
2146 <dd class=
"description">rastertopclx driver
</dd>
2147 <dt>PPDC_DRIVER_PS
</dt>
2148 <dd class=
"description">PostScript driver
</dd>
2150 <h3 class=
"enumeration"><a name=
"ppdcFontStatus">ppdcFontStatus
</a></h3>
2151 <p class=
"description">// Load status of font
</p>
2152 <h4 class=
"constants">Constants
</h4>
2154 <dt>PPDC_FONT_DISK
</dt>
2155 <dd class=
"description">Font is on disk
</dd>
2156 <dt>PPDC_FONT_ROM
</dt>
2157 <dd class=
"description">Font is in ROM
</dd>
2159 <h3 class=
"enumeration"><a name=
"ppdcLineEnding">ppdcLineEnding
</a></h3>
2160 <p class=
"description">// Line endings
</p>
2161 <h4 class=
"constants">Constants
</h4>
2164 <dd class=
"description">CR + LF
</dd>
2165 <dt>PPDC_CRONLY
</dt>
2166 <dd class=
"description">CR only
</dd>
2167 <dt>PPDC_LFONLY
</dt>
2168 <dd class=
"description">LF only
</dd>
2170 <h3 class=
"enumeration"><a name=
"ppdcOptSection">ppdcOptSection
</a></h3>
2171 <p class=
"description">// Option section
</p>
2172 <h4 class=
"constants">Constants
</h4>
2174 <dt>PPDC_SECTION_ANY
</dt>
2175 <dd class=
"description">AnySetup
</dd>
2176 <dt>PPDC_SECTION_DOCUMENT
</dt>
2177 <dd class=
"description">DocumentSetup
</dd>
2178 <dt>PPDC_SECTION_EXIT
</dt>
2179 <dd class=
"description">ExitServer
</dd>
2180 <dt>PPDC_SECTION_JCL
</dt>
2181 <dd class=
"description">JCLSetup
</dd>
2182 <dt>PPDC_SECTION_PAGE
</dt>
2183 <dd class=
"description">PageSetup
</dd>
2184 <dt>PPDC_SECTION_PROLOG
</dt>
2185 <dd class=
"description">Prolog
</dd>
2187 <h3 class=
"enumeration"><a name=
"ppdcOptType">ppdcOptType
</a></h3>
2188 <p class=
"description">// Option type
</p>
2189 <h4 class=
"constants">Constants
</h4>
2191 <dt>PPDC_BOOLEAN
</dt>
2192 <dd class=
"description">True/false option
</dd>
2193 <dt>PPDC_PICKMANY
</dt>
2194 <dd class=
"description">Multiple choices from list
</dd>
2195 <dt>PPDC_PICKONE
</dt>
2196 <dd class=
"description">Single choice from list
</dd>