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;
56 border: dotted thin #999999;
61 PRE.command EM, PRE.example EM {
62 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
66 font-family: monaco, courier, monospace;
77 border: solid thin #999999;
88 -moz-border-radius: 10px;
93 text-decoration: none;
96 A:link:hover, A:visited:hover, A:active {
97 text-decoration: underline;
104 TR.data, TD.data, TR.data TD {
107 border-bottom: solid 1pt #999999;
111 border-bottom: solid 1pt #999999;
118 border: solid thin #999999;
119 border-collapse: collapse;
135 border: solid thin #cccccc;
142 border-bottom: solid thin #999999;
151 caption-side: bottom;
175 border: thin solid black;
183 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
192 border-bottom: solid 2pt #000000;
195 DIV.indent, TABLE.indent {
203 border-collapse: collapse;
206 TABLE.indent TD, TABLE.indent TH {
211 border-collapse: collapse;
219 border-bottom: solid thin #cccccc;
224 vertical-align: bottom;
233 border-bottom: solid thin #eeeeee;
238 TABLE.list TR:nth-child(even) {
242 TABLE.list TR:nth-child(odd) {
261 font-family: monaco, courier, monospace;
265 border: solid thin #999999;
266 border-collapse: collapse;
271 DIV.summary TABLE TD, DIV.summary TABLE TH {
272 border: solid thin #999999;
278 DIV.summary TABLE THEAD TH {
282 /* API documentation styles... */
289 div.body h3, div.body h4, div.body h5 {
290 margin-bottom: 0.5em;
293 .class, .enumeration, .function, .struct, .typedef, .union {
294 border-bottom: solid thin #999999;
301 code, p.code, pre, ul.code li {
302 font-family: monaco, courier, monospace;
305 ul.code, ul.contents, ul.subcontents {
306 list-style-type: none;
316 ul.contents li ul.code, ul.contents li ul.subcontents {
329 margin-bottom: 0.5em;
332 /* This is just for the HTML files generated with the framedhelp target */
335 border: solid thin black;
344 div.contents ul.contents {
347 div.contents ul.subcontents li {
356 PPD Compiler API header for CUPS.
358 Copyright 2009 by Apple Inc.
360 These coded instructions, statements, and computer programs are the
361 property of Apple Inc. and are protected by Federal copyright
362 law. Distribution and use rights are outlined in the file "LICENSE.txt"
363 which should have been included with this file. If this file is
364 file is missing or damaged, see the license at "http://www.cups.org/".
367 <h1 class='title'
>PPD Compiler API
</h1>
369 <div class='summary'
><table summary='General Information'
>
383 <td>Programming:
<a href='api-overview.html' target='_top'
>Introduction to CUPS Programming
</a></td>
387 <h2 class=
"title">Contents
</h2>
388 <ul class=
"contents">
389 <li><a href=
"#OVERVIEW">Overview
</a></li>
390 <li><a href=
"#CLASSES">Classes
</a><ul class=
"code">
391 <li><a href=
"#ppdcArray" title=
"// Shared Array">ppdcArray
</a></li>
392 <li><a href=
"#ppdcAttr" title=
"// Attribute">ppdcAttr
</a></li>
393 <li><a href=
"#ppdcCatalog" title=
"// Translation catalog">ppdcCatalog
</a></li>
394 <li><a href=
"#ppdcChoice" title=
"// Option Choice">ppdcChoice
</a></li>
395 <li><a href=
"#ppdcConstraint" title=
"// Constraint">ppdcConstraint
</a></li>
396 <li><a href=
"#ppdcDriver" title=
"// Printer Driver Data">ppdcDriver
</a></li>
397 <li><a href=
"#ppdcFile" title=
"// File">ppdcFile
</a></li>
398 <li><a href=
"#ppdcFilter" title=
"// Filter Program">ppdcFilter
</a></li>
399 <li><a href=
"#ppdcFont" title=
"// Shared Font">ppdcFont
</a></li>
400 <li><a href=
"#ppdcGroup" title=
"// Group of Options">ppdcGroup
</a></li>
401 <li><a href=
"#ppdcInteger" title=
"// Shared integer">ppdcInteger
</a></li>
402 <li><a href=
"#ppdcMediaSize" title=
"// Media Size">ppdcMediaSize
</a></li>
403 <li><a href=
"#ppdcMessage" title=
"// Translation message">ppdcMessage
</a></li>
404 <li><a href=
"#ppdcOption" title=
"// Option">ppdcOption
</a></li>
405 <li><a href=
"#ppdcProfile" title=
"// Color Profile">ppdcProfile
</a></li>
406 <li><a href=
"#ppdcShared" title=
"// Shared Data Value">ppdcShared
</a></li>
407 <li><a href=
"#ppdcSource" title=
"// Source File">ppdcSource
</a></li>
408 <li><a href=
"#ppdcString" title=
"// Shared String">ppdcString
</a></li>
409 <li><a href=
"#ppdcVariable" title=
"// Variable Definition">ppdcVariable
</a></li>
411 <li><a href=
"#TYPES">Data Types
</a><ul class=
"code">
412 <li><a href=
"#ppdc_cs_t" title=
"">ppdc_cs_t
</a></li>
414 <li><a href=
"#VARIABLES">Variables
</a><ul class=
"code">
415 <li><a href=
"#ppdcSource" title=
"// Printer Driver Data">ppdcSource
</a></li>
417 <li><a href=
"#ENUMERATIONS">Constants
</a><ul class=
"code">
418 <li><a href=
"#ppdcCondFlags" title=
"// Condition flags">ppdcCondFlags
</a></li>
419 <li><a href=
"#ppdcDrvType" title=
"// Driver type">ppdcDrvType
</a></li>
420 <li><a href=
"#ppdcFontStatus" title=
"// Load status of font">ppdcFontStatus
</a></li>
421 <li><a href=
"#ppdcLineEnding" title=
"// Line endings">ppdcLineEnding
</a></li>
422 <li><a href=
"#ppdcOptSection" title=
"// Option section">ppdcOptSection
</a></li>
423 <li><a href=
"#ppdcOptType" title=
"// Option type">ppdcOptType
</a></li>
427 PPD Compiler API introduction for CUPS.
429 Copyright 2009 by Apple Inc.
431 These coded instructions, statements, and computer programs are the
432 property of Apple Inc. and are protected by Federal copyright
433 law. Distribution and use rights are outlined in the file "LICENSE.txt"
434 which should have been included with this file. If this file is
435 file is missing or damaged, see the license at "http://www.cups.org/".
438 <h2 class='title'
><a name='OVERVIEW'
>Overview
</a></h2>
440 <p>The PPD Compiler API provides access to CUPS driver information files and
441 methods for generating and importing PPD files.
</p>
442 <h2 class=
"title"><a name=
"CLASSES">Classes
</a></h2>
443 <h3 class=
"class"><a name=
"ppdcArray">ppdcArray
</a></h3>
444 <p class=
"description">// Shared Array
</p>
445 <p class=
"code">class ppdcArray : public ppdcShared {
<br>
446 public:
<br>
447 int count, alloc, current;
<br>
448 <a href=
"#ppdcShared">ppdcShared
</a> **data;
<br>
450 <h4 class=
"members">Members
</h4>
453 <dd class=
"description">Current element
</dd>
455 <dd class=
"description">Elements
</dd>
457 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
458 <p class=
"description"></p>
461 void add(
<a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
463 <h5 class=
"parameters">Parameters
</h5>
467 <h4 class=
"method"><a name=
"add">add
</a></h4>
468 <p class=
"description"></p>
471 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
473 <h5 class=
"parameters">Parameters
</h5>
477 <h4 class=
"method"><a name=
"first">first
</a></h4>
478 <p class=
"description">Return the first element in the array.
</p>
480 <a href=
"#ppdcShared">ppdcShared
</a> *first (void);
</p>
481 <h5 class=
"returnvalue">Return Value
</h5>
482 <p class=
"description"></p>
483 <h4 class=
"method"><a name=
"next">next
</a></h4>
484 <p class=
"description">Return the next element in the array.
</p>
486 <a href=
"#ppdcShared">ppdcShared
</a> *next (void);
</p>
487 <h5 class=
"returnvalue">Return Value
</h5>
488 <p class=
"description"></p>
489 <h4 class=
"method"><a name=
"ppdcArray">ppdcArray
</a></h4>
490 <p class=
"description"></p>
493 <a href=
"#ppdcArray">ppdcArray
</a> *a
<br>
495 <h5 class=
"parameters">Parameters
</h5>
499 <h4 class=
"method"><a name=
"remove">remove
</a></h4>
500 <p class=
"description"></p>
503 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
505 <h5 class=
"parameters">Parameters
</h5>
508 <dd class=
"description">Data element
</dd>
510 <h4 class=
"method"><a name=
"~ppdcArray">~ppdcArray
</a></h4>
511 <p class=
"description"></p>
513 void ~ppdcArray (void);
</p>
514 <h3 class=
"class"><a name=
"ppdcAttr">ppdcAttr
</a></h3>
515 <p class=
"description">// Attribute
</p>
516 <p class=
"code">class ppdcAttr : public ppdcShared {
<br>
517 public:
<br>
518 bool localizable;
<br>
519 <a href=
"#ppdcString">ppdcString
</a> *name, *selector, *text, *value;
<br>
521 <h4 class=
"members">Members
</h4>
523 <dt>localizable
</dt>
524 <dd class=
"description">Should this attribute be localized?
</dd>
526 <dd class=
"description">Value string
</dd>
528 <h4 class=
"method"><a name=
"ppdcAttr">ppdcAttr
</a></h4>
529 <p class=
"description"></p>
532 const char *n,
<br>
533 const char *s,
<br>
534 const char *t,
<br>
535 const char *v,
<br>
536 bool loc
<br>
538 <h5 class=
"parameters">Parameters
</h5>
541 <dd class=
"description">Name
</dd>
543 <dd class=
"description">Spec string
</dd>
545 <dd class=
"description">Human-readable text
</dd>
547 <dd class=
"description">Value
</dd>
549 <dd class=
"description">Localize this attribute?
</dd>
551 <h4 class=
"method"><a name=
"~ppdcAttr">~ppdcAttr
</a></h4>
552 <p class=
"description"></p>
554 void ~ppdcAttr (void);
</p>
555 <h3 class=
"class"><a name=
"ppdcCatalog">ppdcCatalog
</a></h3>
556 <p class=
"description">// Translation catalog
</p>
557 <p class=
"code">class ppdcCatalog : public ppdcShared {
<br>
558 public:
<br>
559 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
560 <a href=
"#ppdcString">ppdcString
</a> *locale;
<br>
561 <a href=
"#ppdcArray">ppdcArray
</a> *messages;
<br>
563 <h4 class=
"members">Members
</h4>
566 <dd class=
"description">Name of translation file
</dd>
568 <dd class=
"description">Name of locale
</dd>
570 <dd class=
"description">Array of translation messages
</dd>
572 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
573 <p class=
"description"></p>
576 void add_message(const char *id,
<br>
577 const char *string = NULL
<br>
579 <h5 class=
"parameters">Parameters
</h5>
584 <h4 class=
"method"><a name=
"add_message">add_message
</a></h4>
585 <p class=
"description"></p>
587 void add_message (
<br>
588 const char *id,
<br>
589 const char *string
<br>
591 <h5 class=
"parameters">Parameters
</h5>
594 <dd class=
"description">Message ID to add
</dd>
596 <dd class=
"description">Translation string
</dd>
598 <h4 class=
"method"><a name=
"find_message">find_message
</a></h4>
599 <p class=
"description"></p>
601 const char *find_message (
<br>
602 const char *id
<br>
604 <h5 class=
"parameters">Parameters
</h5>
607 <dd class=
"description">Message ID
</dd>
609 <h5 class=
"returnvalue">Return Value
</h5>
610 <p class=
"description">Message text
</p>
611 <h4 class=
"method"><a name=
"load_messages">load_messages
</a></h4>
612 <p class=
"description"></p>
614 int load_messages (
<br>
615 const char *f
<br>
617 <h5 class=
"parameters">Parameters
</h5>
620 <dd class=
"description">Message catalog file
</dd>
622 <h5 class=
"returnvalue">Return Value
</h5>
623 <p class=
"description">0 on success, -
1 on failure
</p>
624 <h4 class=
"method"><a name=
"ppdcCatalog">ppdcCatalog
</a></h4>
625 <p class=
"description"></p>
627 void ppdcCatalog (
<br>
628 const char *l,
<br>
629 const char *f
<br>
631 <h5 class=
"parameters">Parameters
</h5>
634 <dd class=
"description">Locale
</dd>
636 <dd class=
"description">Message catalog file
</dd>
638 <h4 class=
"method"><a name=
"save_messages">save_messages
</a></h4>
639 <p class=
"description"></p>
641 int save_messages (
<br>
642 const char *f
<br>
644 <h5 class=
"parameters">Parameters
</h5>
647 <dd class=
"description">File to save to
</dd>
649 <h5 class=
"returnvalue">Return Value
</h5>
650 <p class=
"description">0 on success, -
1 on error
</p>
651 <h4 class=
"method"><a name=
"~ppdcCatalog">~ppdcCatalog
</a></h4>
652 <p class=
"description"></p>
654 void ~ppdcCatalog (void);
</p>
655 <h3 class=
"class"><a name=
"ppdcChoice">ppdcChoice
</a></h3>
656 <p class=
"description">// Option Choice
</p>
657 <p class=
"code">class ppdcChoice : public ppdcShared {
<br>
658 public:
<br>
659 <a href=
"#ppdcString">ppdcString
</a> *name, *text, *code;
<br>
661 <h4 class=
"members">Members
</h4>
664 <dd class=
"description">PS code of choice
</dd>
666 <h4 class=
"method"><a name=
"ppdcChoice">ppdcChoice
</a></h4>
667 <p class=
"description"></p>
669 void ppdcChoice (
<br>
670 const char *n,
<br>
671 const char *t,
<br>
672 const char *c
<br>
674 <h5 class=
"parameters">Parameters
</h5>
677 <dd class=
"description">Name of choice
</dd>
679 <dd class=
"description">Text of choice
</dd>
681 <dd class=
"description">Code of choice
</dd>
683 <h4 class=
"method"><a name=
"~ppdcChoice">~ppdcChoice
</a></h4>
684 <p class=
"description"></p>
686 void ~ppdcChoice (void);
</p>
687 <h3 class=
"class"><a name=
"ppdcConstraint">ppdcConstraint
</a></h3>
688 <p class=
"description">// Constraint
</p>
689 <p class=
"code">class ppdcConstraint : public ppdcShared {
<br>
690 public:
<br>
691 <a href=
"#ppdcString">ppdcString
</a> *option1, *choice1, *option2, *choice2;
<br>
693 <h4 class=
"members">Members
</h4>
696 <dd class=
"description">Second choice
</dd>
698 <h4 class=
"method"><a name=
"ppdcConstraint">ppdcConstraint
</a></h4>
699 <p class=
"description"></p>
701 void ppdcConstraint (
<br>
702 const char *o1,
<br>
703 const char *c1,
<br>
704 const char *o2,
<br>
705 const char *c2
<br>
707 <h5 class=
"parameters">Parameters
</h5>
710 <dd class=
"description">First option
</dd>
712 <dd class=
"description">First choice
</dd>
714 <dd class=
"description">Second option
</dd>
716 <dd class=
"description">Second choice
</dd>
718 <h4 class=
"method"><a name=
"~ppdcConstraint">~ppdcConstraint
</a></h4>
719 <p class=
"description"></p>
721 void ~ppdcConstraint (void);
</p>
722 <h3 class=
"class"><a name=
"ppdcDriver">ppdcDriver
</a></h3>
723 <p class=
"description">// Printer Driver Data
</p>
724 <p class=
"code">class ppdcDriver : public ppdcShared {
<br>
725 public:
<br>
726 <a href=
"#ppdcArray">ppdcArray
</a> *copyright;
<br>
727 <a href=
"#ppdcString">ppdcString
</a> *custom_size_code;
<br>
728 <a href=
"#ppdcString">ppdcString
</a> *default_font, *default_size;
<br>
729 float left_margin, bottom_margin, right_margin, top_margin, max_width, max_length, min_width, min_length;
<br>
730 <a href=
"#ppdcArray">ppdcArray
</a> *attrs, *constraints, *filters, *fonts, *groups, *profiles, *sizes;
<br>
731 int model_number, manual_copies, color_device, throughput;
<br>
732 <a href=
"#ppdcDrvType">ppdcDrvType
</a> type;
<br>
733 int variable_paper_size;
<br>
734 <a href=
"#ppdcString">ppdcString
</a> *manufacturer, *model_name, *file_name, *pc_file_name, *version;
<br>
736 <h4 class=
"members">Members
</h4>
739 <dd class=
"description">Copyright strings
</dd>
740 <dt>custom_size_code
</dt>
741 <dd class=
"description">Custom page size code, if any
</dd>
742 <dt>default_size
</dt>
743 <dd class=
"description">Default size option
</dd>
745 <dd class=
"description">Minimum length (points)
</dd>
747 <dd class=
"description">Fixed sizes
</dd>
749 <dd class=
"description">Throughput in pages per minute
</dd>
751 <dd class=
"description">Driver type
</dd>
752 <dt>variable_paper_size
</dt>
753 <dd class=
"description">Support variable sizes?
</dd>
755 <dd class=
"description">Version number
</dd>
757 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
758 <p class=
"description"></p>
761 void add_attr(
<a href=
"#ppdcAttr">ppdcAttr
</a> *a
<br>
763 <h5 class=
"parameters">Parameters
</h5>
767 <h4 class=
"method"><a name=
"add_constraint">add_constraint
</a></h4>
768 <p class=
"description"></p>
770 void add_constraint (
<br>
771 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *c
<br>
773 <h5 class=
"parameters">Parameters
</h5>
777 <h4 class=
"method"><a name=
"add_copyright">add_copyright
</a></h4>
778 <p class=
"description"></p>
780 void add_copyright (
<br>
781 const char *c
<br>
783 <h5 class=
"parameters">Parameters
</h5>
787 <h4 class=
"method"><a name=
"add_filter">add_filter
</a></h4>
788 <p class=
"description"></p>
790 void add_filter (
<br>
791 <a href=
"#ppdcFilter">ppdcFilter
</a> *f
<br>
793 <h5 class=
"parameters">Parameters
</h5>
797 <h4 class=
"method"><a name=
"add_font">add_font
</a></h4>
798 <p class=
"description"></p>
801 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
803 <h5 class=
"parameters">Parameters
</h5>
807 <h4 class=
"method"><a name=
"add_group">add_group
</a></h4>
808 <p class=
"description"></p>
811 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
813 <h5 class=
"parameters">Parameters
</h5>
817 <h4 class=
"method"><a name=
"add_profile">add_profile
</a></h4>
818 <p class=
"description"></p>
820 void add_profile (
<br>
821 <a href=
"#ppdcProfile">ppdcProfile
</a> *p
<br>
823 <h5 class=
"parameters">Parameters
</h5>
827 <h4 class=
"method"><a name=
"add_size">add_size
</a></h4>
828 <p class=
"description"></p>
831 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
833 <h5 class=
"parameters">Parameters
</h5>
837 <h4 class=
"method"><a name=
"find_attr">find_attr
</a></h4>
838 <p class=
"description"></p>
840 <a href=
"#ppdcAttr">ppdcAttr
</a> *find_attr (
<br>
841 const char *k,
<br>
842 const char *s
<br>
844 <h5 class=
"parameters">Parameters
</h5>
847 <dd class=
"description">Keyword string
</dd>
849 <dd class=
"description">Spec string
</dd>
851 <h5 class=
"returnvalue">Return Value
</h5>
852 <p class=
"description">Attribute or NULL
</p>
853 <h4 class=
"method"><a name=
"find_group">find_group
</a></h4>
854 <p class=
"description"></p>
856 <a href=
"#ppdcGroup">ppdcGroup
</a> *find_group (
<br>
857 const char *n
<br>
859 <h5 class=
"parameters">Parameters
</h5>
862 <dd class=
"description">Group name
</dd>
864 <h5 class=
"returnvalue">Return Value
</h5>
865 <p class=
"description">Matching group or NULL
</p>
866 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
867 <p class=
"description"></p>
869 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
870 const char *n
<br>
872 <h5 class=
"parameters">Parameters
</h5>
875 <dd class=
"description">Option name
</dd>
877 <h5 class=
"returnvalue">Return Value
</h5>
878 <p class=
"description">Matching option or NULL
</p>
879 <h4 class=
"method"><a name=
"find_option_group">find_option_group
</a></h4>
880 <p class=
"description"></p>
882 <a href=
"#ppdcOption">ppdcOption
</a> *find_option_group (
<br>
883 const char *n,
<br>
884 <a href=
"#ppdcGroup">ppdcGroup
</a> **mg
<br>
886 <h5 class=
"parameters">Parameters
</h5>
889 <dd class=
"description">Option name
</dd>
891 <dd class=
"description">Matching group or NULL
</dd>
893 <h5 class=
"returnvalue">Return Value
</h5>
894 <p class=
"description">Matching option or NULL
</p>
895 <h4 class=
"method"><a name=
"ppdcDriver">ppdcDriver
</a></h4>
896 <p class=
"description"></p>
898 void ppdcDriver (
<br>
899 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
901 <h5 class=
"parameters">Parameters
</h5>
904 <dd class=
"description">Printer driver template
</dd>
906 <h4 class=
"method"><a name=
"set_custom_size_code">set_custom_size_code
</a></h4>
907 <p class=
"description"></p>
909 void set_custom_size_code (
<br>
910 const char *c
<br>
912 <h5 class=
"parameters">Parameters
</h5>
915 <dd class=
"description">CustomPageSize code
</dd>
917 <h4 class=
"method"><a name=
"set_default_font">set_default_font
</a></h4>
918 <p class=
"description"></p>
920 void set_default_font (
<br>
921 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
923 <h5 class=
"parameters">Parameters
</h5>
926 <dd class=
"description">Font
</dd>
928 <h4 class=
"method"><a name=
"set_default_size">set_default_size
</a></h4>
929 <p class=
"description"></p>
931 void set_default_size (
<br>
932 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
934 <h5 class=
"parameters">Parameters
</h5>
937 <dd class=
"description">Media size
</dd>
939 <h4 class=
"method"><a name=
"set_file_name">set_file_name
</a></h4>
940 <p class=
"description"></p>
942 void set_file_name (
<br>
943 const char *f
<br>
945 <h5 class=
"parameters">Parameters
</h5>
948 <dd class=
"description">Filename
</dd>
950 <h4 class=
"method"><a name=
"set_manufacturer">set_manufacturer
</a></h4>
951 <p class=
"description"></p>
953 void set_manufacturer (
<br>
954 const char *m
<br>
956 <h5 class=
"parameters">Parameters
</h5>
959 <dd class=
"description">Model name
</dd>
961 <h4 class=
"method"><a name=
"set_model_name">set_model_name
</a></h4>
962 <p class=
"description"></p>
964 void set_model_name (
<br>
965 const char *m
<br>
967 <h5 class=
"parameters">Parameters
</h5>
970 <dd class=
"description">Model name
</dd>
972 <h4 class=
"method"><a name=
"set_pc_file_name">set_pc_file_name
</a></h4>
973 <p class=
"description"></p>
975 void set_pc_file_name (
<br>
976 const char *f
<br>
978 <h5 class=
"parameters">Parameters
</h5>
981 <dd class=
"description">Filename
</dd>
983 <h4 class=
"method"><a name=
"set_version">set_version
</a></h4>
984 <p class=
"description"></p>
986 void set_version (
<br>
987 const char *v
<br>
989 <h5 class=
"parameters">Parameters
</h5>
992 <dd class=
"description">Version
</dd>
994 <h4 class=
"method"><a name=
"write_ppd_file">write_ppd_file
</a></h4>
995 <p class=
"description"></p>
997 int write_ppd_file (
<br>
998 cups_file_t *fp,
<br>
999 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *catalog,
<br>
1000 <a href=
"#ppdcArray">ppdcArray
</a> *locales,
<br>
1001 <a href=
"#ppdcSource">ppdcSource
</a> *src,
<br>
1002 <a href=
"#ppdcLineEnding">ppdcLineEnding
</a> le
<br>
1004 <h5 class=
"parameters">Parameters
</h5>
1007 <dd class=
"description">PPD file
</dd>
1009 <dd class=
"description">Message catalog
</dd>
1011 <dd class=
"description">Additional languages to add
</dd>
1013 <dd class=
"description">Driver source
</dd>
1015 <dd class=
"description">Line endings to use
</dd>
1017 <h5 class=
"returnvalue">Return Value
</h5>
1018 <p class=
"description">0 on success, -
1 on failure
</p>
1019 <h4 class=
"method"><a name=
"~ppdcDriver">~ppdcDriver
</a></h4>
1020 <p class=
"description"></p>
1022 void ~ppdcDriver (void);
</p>
1023 <h3 class=
"class"><a name=
"ppdcFile">ppdcFile
</a></h3>
1024 <p class=
"description">// File
</p>
1025 <p class=
"code">class ppdcFile {
<br>
1026 public:
<br>
1027 bool close_on_delete;
<br>
1028 const char *filename;
<br>
1029 cups_file_t *fp;
<br>
1030 int line;
<br>
1032 <h4 class=
"members">Members
</h4>
1034 <dt>close_on_delete
</dt>
1035 <dd class=
"description">Close file on delete?
</dd>
1037 <dd class=
"description">Filename
</dd>
1039 <dd class=
"description">File pointer
</dd>
1041 <dd class=
"description">Line in file
</dd>
1043 <h4 class=
"method"><a name=
"get">get
</a></h4>
1044 <p class=
"description">Get a character from a file.
</p>
1047 <h5 class=
"returnvalue">Return Value
</h5>
1048 <p class=
"description"></p>
1049 <h4 class=
"method"><a name=
"peek">peek
</a></h4>
1050 <p class=
"description"></p>
1052 int peek (void);
</p>
1053 <h5 class=
"returnvalue">Return Value
</h5>
1054 <p class=
"description">Next character in file
</p>
1055 <h4 class=
"method"><a name=
"ppdcFile">ppdcFile
</a></h4>
1056 <p class=
"description"></p>
1059 const char *f,
<br>
1060 cups_file_t *ffp
<br>
1062 <h5 class=
"parameters">Parameters
</h5>
1065 <dd class=
"description">File to open
</dd>
1067 <dd class=
"description">File pointer to use
</dd>
1069 <h4 class=
"method"><a name=
"~ppdcFile">~ppdcFile
</a></h4>
1070 <p class=
"description"></p>
1072 void ~ppdcFile (void);
</p>
1073 <h3 class=
"class"><a name=
"ppdcFilter">ppdcFilter
</a></h3>
1074 <p class=
"description">// Filter Program
</p>
1075 <p class=
"code">class ppdcFilter : public ppdcShared {
<br>
1076 public:
<br>
1077 int cost;
<br>
1078 <a href=
"#ppdcString">ppdcString
</a> *mime_type, *program;
<br>
1080 <h4 class=
"members">Members
</h4>
1083 <dd class=
"description">Relative cost of filter
</dd>
1085 <dd class=
"description">Filter program
</dd>
1087 <h4 class=
"method"><a name=
"ppdcFilter">ppdcFilter
</a></h4>
1088 <p class=
"description"></p>
1090 void ppdcFilter (
<br>
1091 const char *t,
<br>
1092 const char *p,
<br>
1093 int c
<br>
1095 <h5 class=
"parameters">Parameters
</h5>
1098 <dd class=
"description">MIME type
</dd>
1100 <dd class=
"description">Filter program
</dd>
1102 <dd class=
"description">Relative cost
</dd>
1104 <h4 class=
"method"><a name=
"~ppdcFilter">~ppdcFilter
</a></h4>
1105 <p class=
"description"></p>
1107 void ~ppdcFilter (void);
</p>
1108 <h3 class=
"class"><a name=
"ppdcFont">ppdcFont
</a></h3>
1109 <p class=
"description">// Shared Font
</p>
1110 <p class=
"code">class ppdcFont : public ppdcShared {
<br>
1111 public:
<br>
1112 <a href=
"#ppdcString">ppdcString
</a> *name, *encoding, *version, *charset;
<br>
1113 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> status;
<br>
1115 <h4 class=
"members">Members
</h4>
1118 <dd class=
"description">Font charset
</dd>
1120 <dd class=
"description">Font status (ROM or Disk)
</dd>
1122 <h4 class=
"method"><a name=
"ppdcFont">ppdcFont
</a></h4>
1123 <p class=
"description"></p>
1126 const char *n,
<br>
1127 const char *e,
<br>
1128 const char *v,
<br>
1129 const char *c,
<br>
1130 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> s
<br>
1132 <h5 class=
"parameters">Parameters
</h5>
1135 <dd class=
"description">Name of font
</dd>
1137 <dd class=
"description">Font encoding
</dd>
1139 <dd class=
"description">Font version
</dd>
1141 <dd class=
"description">Font charset
</dd>
1143 <dd class=
"description">Font status
</dd>
1145 <h4 class=
"method"><a name=
"~ppdcFont">~ppdcFont
</a></h4>
1146 <p class=
"description"></p>
1148 void ~ppdcFont (void);
</p>
1149 <h3 class=
"class"><a name=
"ppdcGroup">ppdcGroup
</a></h3>
1150 <p class=
"description">// Group of Options
</p>
1151 <p class=
"code">class ppdcGroup : public ppdcShared {
<br>
1152 public:
<br>
1153 <a href=
"#ppdcArray">ppdcArray
</a> *options;
<br>
1154 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1156 <h4 class=
"members">Members
</h4>
1159 <dd class=
"description">Options
</dd>
1161 <dd class=
"description">Human-readable text of option
</dd>
1163 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1164 <p class=
"description"></p>
1166 void PPDC_NAME (
<br>
1167 void add_option(
<a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1169 <h5 class=
"parameters">Parameters
</h5>
1173 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
1174 <p class=
"description">Find an option in a group.
</p>
1176 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
1177 const char *n
<br>
1179 <h5 class=
"parameters">Parameters
</h5>
1182 <dd class=
"description">Name of option
</dd>
1184 <h5 class=
"returnvalue">Return Value
</h5>
1185 <p class=
"description"></p>
1186 <h4 class=
"method"><a name=
"ppdcGroup">ppdcGroup
</a></h4>
1187 <p class=
"description"></p>
1189 void ppdcGroup (
<br>
1190 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1192 <h5 class=
"parameters">Parameters
</h5>
1195 <dd class=
"description">Group template
</dd>
1197 <h4 class=
"method"><a name=
"~ppdcGroup">~ppdcGroup
</a></h4>
1198 <p class=
"description"></p>
1200 void ~ppdcGroup (void);
</p>
1201 <h3 class=
"class"><a name=
"ppdcInteger">ppdcInteger
</a></h3>
1202 <p class=
"description">// Shared integer
</p>
1203 <p class=
"code">class ppdcInteger : public ppdcShared {
<br>
1204 public:
<br>
1205 int *value;
<br>
1207 <h4 class=
"members">Members
</h4>
1210 <dd class=
"description">Integer value
</dd>
1212 <h4 class=
"method"><a name=
"ppdcInteger">ppdcInteger
</a></h4>
1213 <p class=
"description">Integer value
</p>
1215 void ppdcInteger (
<br>
1216 int *v
<br>
1218 <h5 class=
"parameters">Parameters
</h5>
1222 <h3 class=
"class"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h3>
1223 <p class=
"description">// Media Size
</p>
1224 <p class=
"code">class ppdcMediaSize : public ppdcShared {
<br>
1225 public:
<br>
1226 <a href=
"#ppdcString">ppdcString
</a> *size_code, *region_code;
<br>
1227 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1228 float width, length, left, bottom, right, top;
<br>
1230 <h4 class=
"members">Members
</h4>
1232 <dt>region_code
</dt>
1233 <dd class=
"description">PageRegion code, if any
</dd>
1235 <dd class=
"description">Human-readable text
</dd>
1237 <dd class=
"description">Top limit in points
</dd>
1239 <h4 class=
"method"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h4>
1240 <p class=
"description"></p>
1242 void ppdcMediaSize (
<br>
1243 const char *n,
<br>
1244 const char *t,
<br>
1245 float w,
<br>
1246 float l,
<br>
1247 float lm,
<br>
1248 float bm,
<br>
1249 float rm,
<br>
1250 float tm,
<br>
1251 const char *sc,
<br>
1252 const char *rc
<br>
1254 <h5 class=
"parameters">Parameters
</h5>
1257 <dd class=
"description">Name of media size
</dd>
1259 <dd class=
"description">Text of media size
</dd>
1261 <dd class=
"description">Width in points
</dd>
1263 <dd class=
"description">Length in points
</dd>
1265 <dd class=
"description">Left margin in points
</dd>
1267 <dd class=
"description">Bottom margin in points
</dd>
1269 <dd class=
"description">Right margin in points
</dd>
1271 <dd class=
"description">Top margin in points
</dd>
1273 <dd class=
"description">PageSize code, if any
</dd>
1275 <dd class=
"description">PageRegion code, if any
</dd>
1277 <h4 class=
"method"><a name=
"~ppdcMediaSize">~ppdcMediaSize
</a></h4>
1278 <p class=
"description"></p>
1280 void ~ppdcMediaSize (void);
</p>
1281 <h3 class=
"class"><a name=
"ppdcMessage">ppdcMessage
</a></h3>
1282 <p class=
"description">// Translation message
</p>
1283 <p class=
"code">class ppdcMessage : public ppdcShared {
<br>
1284 public:
<br>
1285 <a href=
"#ppdcString">ppdcString
</a> *id, *string;
<br>
1287 <h4 class=
"members">Members
</h4>
1290 <dd class=
"description">Translation string
</dd>
1292 <h4 class=
"method"><a name=
"ppdcMessage">ppdcMessage
</a></h4>
1293 <p class=
"description"></p>
1295 void ppdcMessage (
<br>
1296 const char *i,
<br>
1297 const char *s
<br>
1299 <h5 class=
"parameters">Parameters
</h5>
1302 <dd class=
"description">ID
</dd>
1304 <dd class=
"description">Text
</dd>
1306 <h4 class=
"method"><a name=
"~ppdcMessage">~ppdcMessage
</a></h4>
1307 <p class=
"description"></p>
1309 void ~ppdcMessage (void);
</p>
1310 <h3 class=
"class"><a name=
"ppdcOption">ppdcOption
</a></h3>
1311 <p class=
"description">// Option
</p>
1312 <p class=
"code">class ppdcOption : public ppdcShared {
<br>
1313 public:
<br>
1314 <a href=
"#ppdcArray">ppdcArray
</a> *choices;
<br>
1315 <a href=
"#ppdcString">ppdcString
</a> *defchoice;
<br>
1316 float order;
<br>
1317 <a href=
"#ppdcOptSection">ppdcOptSection
</a> section;
<br>
1318 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1319 <a href=
"#ppdcOptType">ppdcOptType
</a> type;
<br>
1321 <h4 class=
"members">Members
</h4>
1324 <dd class=
"description">Choices
</dd>
1326 <dd class=
"description">Default choice
</dd>
1328 <dd class=
"description">Order number
</dd>
1330 <dd class=
"description">Section for option code
</dd>
1332 <dd class=
"description">Human-readable text of option
</dd>
1334 <dd class=
"description">Type of option
</dd>
1336 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1337 <p class=
"description"></p>
1339 void PPDC_NAME (
<br>
1340 void add_choice(
<a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1342 <h5 class=
"parameters">Parameters
</h5>
1346 <h4 class=
"method"><a name=
"find_choice">find_choice
</a></h4>
1347 <p class=
"description"></p>
1349 <a href=
"#ppdcChoice">ppdcChoice
</a> *find_choice (
<br>
1350 const char *n
<br>
1352 <h5 class=
"parameters">Parameters
</h5>
1355 <dd class=
"description">Name of choice
</dd>
1357 <h5 class=
"returnvalue">Return Value
</h5>
1358 <p class=
"description">Choice or NULL
</p>
1359 <h4 class=
"method"><a name=
"ppdcOption">ppdcOption
</a></h4>
1360 <p class=
"description"></p>
1362 void ppdcOption (
<br>
1363 <a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1365 <h5 class=
"parameters">Parameters
</h5>
1368 <dd class=
"description">Template option
</dd>
1370 <h4 class=
"method"><a name=
"set_defchoice">set_defchoice
</a></h4>
1371 <p class=
"description"></p>
1373 void set_defchoice (
<br>
1374 <a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1376 <h5 class=
"parameters">Parameters
</h5>
1379 <dd class=
"description">Choice
</dd>
1381 <h4 class=
"method"><a name=
"~ppdcOption">~ppdcOption
</a></h4>
1382 <p class=
"description"></p>
1384 void ~ppdcOption (void);
</p>
1385 <h3 class=
"class"><a name=
"ppdcProfile">ppdcProfile
</a></h3>
1386 <p class=
"description">// Color Profile
</p>
1387 <p class=
"code">class ppdcProfile : public ppdcShared {
<br>
1388 public:
<br>
1389 <a href=
"#ppdcString">ppdcString
</a> *resolution, *media_type;
<br>
1390 float density, gamma, profile[
9];
<br>
1392 <h4 class=
"members">Members
</h4>
1394 <dt>media_type
</dt>
1395 <dd class=
"description">Media type name
</dd>
1396 <dt>profile[
9]
</dt>
1397 <dd class=
"description">Color profile matrix
</dd>
1399 <h4 class=
"method"><a name=
"ppdcProfile">ppdcProfile
</a></h4>
1400 <p class=
"description"></p>
1402 void ppdcProfile (
<br>
1403 const char *r,
<br>
1404 const char *m,
<br>
1405 float d,
<br>
1406 float g,
<br>
1407 const float *p
<br>
1409 <h5 class=
"parameters">Parameters
</h5>
1412 <dd class=
"description">Resolution name
</dd>
1414 <dd class=
"description">Media type name
</dd>
1416 <dd class=
"description">Density
</dd>
1418 <dd class=
"description">Gamma
</dd>
1420 <dd class=
"description">3x3 transform matrix
</dd>
1422 <h4 class=
"method"><a name=
"~ppdcProfile">~ppdcProfile
</a></h4>
1423 <p class=
"description"></p>
1425 void ~ppdcProfile (void);
</p>
1426 <h3 class=
"class"><a name=
"ppdcShared">ppdcShared
</a></h3>
1427 <p class=
"description">// Shared Data Value
</p>
1428 <p class=
"code">class ppdcShared {
<br>
1429 private:
<br>
1430 int use;
<br>
1432 <h4 class=
"members">Members
</h4>
1435 <dd class=
"description">Use count (delete when
0)
</dd>
1437 <h4 class=
"method"><a name=
"class_name">class_name
</a></h4>
1438 <p class=
"description"></p>
1440 virtual const char *class_name (void);
</p>
1441 <h5 class=
"returnvalue">Return Value
</h5>
1442 <p class=
"description"></p>
1443 <h4 class=
"method"><a name=
"ppdcShared">ppdcShared
</a></h4>
1444 <p class=
"description"></p>
1446 void ppdcShared (void);
</p>
1447 <h4 class=
"method"><a name=
"release">release
</a></h4>
1448 <p class=
"description"></p>
1450 void release (void);
</p>
1451 <h4 class=
"method"><a name=
"retain">retain
</a></h4>
1452 <p class=
"description"></p>
1454 void retain (void);
</p>
1455 <h4 class=
"method"><a name=
"~ppdcShared">~ppdcShared
</a></h4>
1456 <p class=
"description"></p>
1458 void ~ppdcShared (void);
</p>
1459 <h3 class=
"class"><a name=
"ppdcSource">ppdcSource
</a></h3>
1460 <p class=
"description">// Source File
</p>
1461 <p class=
"code">class ppdcSource : public ppdcShared {
<br>
1462 public:
<br>
1463 int cond_state, *cond_current, cond_stack[
101];
<br>
1464 static const char *driver_types[];
<br>
1465 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
1466 static
<a href=
"#ppdcArray">ppdcArray
</a> *includes;
<br>
1467 <a href=
"#ppdcArray">ppdcArray
</a> *base_fonts, *drivers, *po_files, *sizes, *vars;
<br>
1469 <h4 class=
"members">Members
</h4>
1471 <dt>cond_stack[
101]
</dt>
1472 <dd class=
"description">#if state stack
</dd>
1473 <dt>driver_types[]
</dt>
1474 <dd class=
"description">Driver types
</dd>
1476 <dd class=
"description">Filename
</dd>
1478 <dd class=
"description">Include directories
</dd>
1480 <dd class=
"description">Defined variables
</dd>
1482 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1483 <p class=
"description"></p>
1485 void PPDC_NAME (
<br>
1486 static void add_include(const char *d
<br>
1488 <h5 class=
"parameters">Parameters
</h5>
1492 <h4 class=
"method"><a name=
"add_include">add_include
</a></h4>
1493 <p class=
"description"></p>
1495 void add_include (
<br>
1496 const char *d
<br>
1498 <h5 class=
"parameters">Parameters
</h5>
1501 <dd class=
"description">Include directory
</dd>
1503 <h4 class=
"method"><a name=
"find_driver">find_driver
</a></h4>
1504 <p class=
"description"></p>
1506 <a href=
"#ppdcDriver">ppdcDriver
</a> *find_driver (
<br>
1507 const char *f
<br>
1509 <h5 class=
"parameters">Parameters
</h5>
1512 <dd class=
"description">Driver file name
</dd>
1514 <h5 class=
"returnvalue">Return Value
</h5>
1515 <p class=
"description">Driver
</p>
1516 <h4 class=
"method"><a name=
"find_include">find_include
</a></h4>
1517 <p class=
"description"></p>
1519 char *find_include (
<br>
1520 const char *f,
<br>
1521 const char *base,
<br>
1522 char *n,
<br>
1523 int nlen
<br>
1525 <h5 class=
"parameters">Parameters
</h5>
1528 <dd class=
"description">Include filename
</dd>
1530 <dd class=
"description">Current directory
</dd>
1532 <dd class=
"description">Path buffer
</dd>
1534 <dd class=
"description">Path buffer length
</dd>
1536 <h5 class=
"returnvalue">Return Value
</h5>
1537 <p class=
"description">Found path or NULL
</p>
1538 <h4 class=
"method"><a name=
"find_po">find_po
</a></h4>
1539 <p class=
"description"></p>
1541 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *find_po (
<br>
1542 const char *l
<br>
1544 <h5 class=
"parameters">Parameters
</h5>
1547 <dd class=
"description">Locale name
</dd>
1549 <h5 class=
"returnvalue">Return Value
</h5>
1550 <p class=
"description">Message catalog or NULL
</p>
1551 <h4 class=
"method"><a name=
"find_size">find_size
</a></h4>
1552 <p class=
"description"></p>
1554 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *find_size (
<br>
1555 const char *s
<br>
1557 <h5 class=
"parameters">Parameters
</h5>
1560 <dd class=
"description">Size name
</dd>
1562 <h5 class=
"returnvalue">Return Value
</h5>
1563 <p class=
"description">Size
</p>
1564 <h4 class=
"method"><a name=
"find_variable">find_variable
</a></h4>
1565 <p class=
"description"></p>
1567 <a href=
"#ppdcVariable">ppdcVariable
</a> *find_variable (
<br>
1568 const char *n
<br>
1570 <h5 class=
"parameters">Parameters
</h5>
1573 <dd class=
"description">Variable name
</dd>
1575 <h5 class=
"returnvalue">Return Value
</h5>
1576 <p class=
"description">Variable
</p>
1577 <h4 class=
"method"><a name=
"get_attr">get_attr
</a></h4>
1578 <p class=
"description"></p>
1580 <a href=
"#ppdcAttr">ppdcAttr
</a> *get_attr (
<br>
1581 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1582 bool loc
<br>
1584 <h5 class=
"parameters">Parameters
</h5>
1587 <dd class=
"description">File to read
</dd>
1589 <dd class=
"description">Localize this attribute?
</dd>
1591 <h5 class=
"returnvalue">Return Value
</h5>
1592 <p class=
"description">Attribute
</p>
1593 <h4 class=
"method"><a name=
"get_boolean">get_boolean
</a></h4>
1594 <p class=
"description"></p>
1596 int get_boolean (
<br>
1597 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1599 <h5 class=
"parameters">Parameters
</h5>
1602 <dd class=
"description">File to read
</dd>
1604 <h5 class=
"returnvalue">Return Value
</h5>
1605 <p class=
"description">Boolean value
</p>
1606 <h4 class=
"method"><a name=
"get_choice">get_choice
</a></h4>
1607 <p class=
"description"></p>
1609 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_choice (
<br>
1610 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1612 <h5 class=
"parameters">Parameters
</h5>
1615 <dd class=
"description">File to read
</dd>
1617 <h5 class=
"returnvalue">Return Value
</h5>
1618 <p class=
"description">Choice data
</p>
1619 <h4 class=
"method"><a name=
"get_color_model">get_color_model
</a></h4>
1620 <p class=
"description"></p>
1622 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_color_model (
<br>
1623 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1625 <h5 class=
"parameters">Parameters
</h5>
1628 <dd class=
"description">File to read
</dd>
1630 <h5 class=
"returnvalue">Return Value
</h5>
1631 <p class=
"description">Choice data
</p>
1632 <h4 class=
"method"><a name=
"get_color_order">get_color_order
</a></h4>
1633 <p class=
"description"></p>
1635 int get_color_order (
<br>
1636 const char *co
<br>
1638 <h5 class=
"parameters">Parameters
</h5>
1641 <dd class=
"description">Color order string
</dd>
1643 <h5 class=
"returnvalue">Return Value
</h5>
1644 <p class=
"description">Color order value
</p>
1645 <h4 class=
"method"><a name=
"get_color_profile">get_color_profile
</a></h4>
1646 <p class=
"description"></p>
1648 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_color_profile (
<br>
1649 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1651 <h5 class=
"parameters">Parameters
</h5>
1654 <dd class=
"description">File to read
</dd>
1656 <h5 class=
"returnvalue">Return Value
</h5>
1657 <p class=
"description">Color profile
</p>
1658 <h4 class=
"method"><a name=
"get_color_space">get_color_space
</a></h4>
1659 <p class=
"description"></p>
1661 int get_color_space (
<br>
1662 const char *cs
<br>
1664 <h5 class=
"parameters">Parameters
</h5>
1667 <dd class=
"description">Colorspace string
</dd>
1669 <h5 class=
"returnvalue">Return Value
</h5>
1670 <p class=
"description">Colorspace value
</p>
1671 <h4 class=
"method"><a name=
"get_constraint">get_constraint
</a></h4>
1672 <p class=
"description"></p>
1674 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *get_constraint (
<br>
1675 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1677 <h5 class=
"parameters">Parameters
</h5>
1680 <dd class=
"description">File to read
</dd>
1682 <h5 class=
"returnvalue">Return Value
</h5>
1683 <p class=
"description">Constraint
</p>
1684 <h4 class=
"method"><a name=
"get_custom_size">get_custom_size
</a></h4>
1685 <p class=
"description"></p>
1687 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_custom_size (
<br>
1688 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1690 <h5 class=
"parameters">Parameters
</h5>
1693 <dd class=
"description">File to read
</dd>
1695 <h5 class=
"returnvalue">Return Value
</h5>
1696 <p class=
"description">Media size
</p>
1697 <h4 class=
"method"><a name=
"get_duplex">get_duplex
</a></h4>
1698 <p class=
"description"></p>
1700 void get_duplex (
<br>
1701 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1702 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1704 <h5 class=
"parameters">Parameters
</h5>
1707 <dd class=
"description">File to read from
</dd>
1709 <dd class=
"description">Current driver
</dd>
1711 <h4 class=
"method"><a name=
"get_filter">get_filter
</a></h4>
1712 <p class=
"description"></p>
1714 <a href=
"#ppdcFilter">ppdcFilter
</a> *get_filter (
<br>
1715 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1717 <h5 class=
"parameters">Parameters
</h5>
1720 <dd class=
"description">File to read
</dd>
1722 <h5 class=
"returnvalue">Return Value
</h5>
1723 <p class=
"description">Filter
</p>
1724 <h4 class=
"method"><a name=
"get_float">get_float
</a></h4>
1725 <p class=
"description"></p>
1727 float get_float (
<br>
1728 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1730 <h5 class=
"parameters">Parameters
</h5>
1733 <dd class=
"description">File to read
</dd>
1735 <h5 class=
"returnvalue">Return Value
</h5>
1736 <p class=
"description">Number
</p>
1737 <h4 class=
"method"><a name=
"get_font">get_font
</a></h4>
1738 <p class=
"description"></p>
1740 <a href=
"#ppdcFont">ppdcFont
</a> *get_font (
<br>
1741 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1743 <h5 class=
"parameters">Parameters
</h5>
1746 <dd class=
"description">File to read
</dd>
1748 <h5 class=
"returnvalue">Return Value
</h5>
1749 <p class=
"description">Font data
</p>
1750 <h4 class=
"method"><a name=
"get_generic">get_generic
</a></h4>
1751 <p class=
"description"></p>
1753 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_generic (
<br>
1754 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1755 const char *keyword,
<br>
1756 const char *tattr,
<br>
1757 const char *nattr
<br>
1759 <h5 class=
"parameters">Parameters
</h5>
1762 <dd class=
"description">File to read
</dd>
1764 <dd class=
"description">Keyword name
</dd>
1766 <dd class=
"description">Text attribute
</dd>
1768 <dd class=
"description">Numeric attribute
</dd>
1770 <h5 class=
"returnvalue">Return Value
</h5>
1771 <p class=
"description">Choice data
</p>
1772 <h4 class=
"method"><a name=
"get_group">get_group
</a></h4>
1773 <p class=
"description"></p>
1775 <a href=
"#ppdcGroup">ppdcGroup
</a> *get_group (
<br>
1776 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1777 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1779 <h5 class=
"parameters">Parameters
</h5>
1782 <dd class=
"description">File to read
</dd>
1784 <dd class=
"description">Printer driver
</dd>
1786 <h5 class=
"returnvalue">Return Value
</h5>
1787 <p class=
"description">Group
</p>
1788 <h4 class=
"method"><a name=
"get_installable">get_installable
</a></h4>
1789 <p class=
"description"></p>
1791 <a href=
"#ppdcOption">ppdcOption
</a> *get_installable (
<br>
1792 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1794 <h5 class=
"parameters">Parameters
</h5>
1797 <dd class=
"description">File to read
</dd>
1799 <h5 class=
"returnvalue">Return Value
</h5>
1800 <p class=
"description">Option
</p>
1801 <h4 class=
"method"><a name=
"get_integer">get_integer
</a></h4>
1802 <p class=
"description"></p>
1804 int get_integer (
<br>
1805 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1807 <h5 class=
"parameters">Parameters
</h5>
1810 <dd class=
"description">File to read
</dd>
1812 <h5 class=
"returnvalue">Return Value
</h5>
1813 <p class=
"description">Integer value
</p>
1814 <h4 class=
"method"><a name=
"get_measurement">get_measurement
</a></h4>
1815 <p class=
"description"></p>
1817 float get_measurement (
<br>
1818 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1820 <h5 class=
"parameters">Parameters
</h5>
1823 <dd class=
"description">File to read
</dd>
1825 <h5 class=
"returnvalue">Return Value
</h5>
1826 <p class=
"description">Measurement value in points
</p>
1827 <h4 class=
"method"><a name=
"get_option">get_option
</a></h4>
1828 <p class=
"description"></p>
1830 <a href=
"#ppdcOption">ppdcOption
</a> *get_option (
<br>
1831 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1832 <a href=
"#ppdcDriver">ppdcDriver
</a> *d,
<br>
1833 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1835 <h5 class=
"parameters">Parameters
</h5>
1838 <dd class=
"description">File to read
</dd>
1840 <dd class=
"description">Printer driver
</dd>
1842 <dd class=
"description">Current group
</dd>
1844 <h5 class=
"returnvalue">Return Value
</h5>
1845 <p class=
"description">Option
</p>
1846 <h4 class=
"method"><a name=
"get_po">get_po
</a></h4>
1847 <p class=
"description"></p>
1849 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *get_po (
<br>
1850 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1852 <h5 class=
"parameters">Parameters
</h5>
1855 <dd class=
"description">File to read
</dd>
1857 <h5 class=
"returnvalue">Return Value
</h5>
1858 <p class=
"description">Message catalog
</p>
1859 <h4 class=
"method"><a name=
"get_resolution">get_resolution
</a></h4>
1860 <p class=
"description"></p>
1862 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_resolution (
<br>
1863 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1865 <h5 class=
"parameters">Parameters
</h5>
1868 <dd class=
"description">File to read
</dd>
1870 <h5 class=
"returnvalue">Return Value
</h5>
1871 <p class=
"description">Choice data
</p>
1872 <h4 class=
"method"><a name=
"get_simple_profile">get_simple_profile
</a></h4>
1873 <p class=
"description"></p>
1875 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_simple_profile (
<br>
1876 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1878 <h5 class=
"parameters">Parameters
</h5>
1881 <dd class=
"description">File to read
</dd>
1883 <h5 class=
"returnvalue">Return Value
</h5>
1884 <p class=
"description">Color profile
</p>
1885 <h4 class=
"method"><a name=
"get_size">get_size
</a></h4>
1886 <p class=
"description"></p>
1888 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_size (
<br>
1889 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1891 <h5 class=
"parameters">Parameters
</h5>
1894 <dd class=
"description">File to read
</dd>
1896 <h5 class=
"returnvalue">Return Value
</h5>
1897 <p class=
"description">Media size
</p>
1898 <h4 class=
"method"><a name=
"get_token">get_token
</a></h4>
1899 <p class=
"description"></p>
1901 char *get_token (
<br>
1902 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1903 char *buffer,
<br>
1904 int buflen
<br>
1906 <h5 class=
"parameters">Parameters
</h5>
1909 <dd class=
"description">File to read
</dd>
1911 <dd class=
"description">Buffer
</dd>
1913 <dd class=
"description">Length of buffer
</dd>
1915 <h5 class=
"returnvalue">Return Value
</h5>
1916 <p class=
"description">Token string or NULL
</p>
1917 <h4 class=
"method"><a name=
"get_variable">get_variable
</a></h4>
1918 <p class=
"description"></p>
1920 <a href=
"#ppdcVariable">ppdcVariable
</a> *get_variable (
<br>
1921 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1923 <h5 class=
"parameters">Parameters
</h5>
1926 <dd class=
"description">File to read
</dd>
1928 <h5 class=
"returnvalue">Return Value
</h5>
1929 <p class=
"description">Variable
</p>
1930 <h4 class=
"method"><a name=
"import_ppd">import_ppd
</a></h4>
1931 <p class=
"description"></p>
1933 int import_ppd (
<br>
1934 const char *f
<br>
1936 <h5 class=
"parameters">Parameters
</h5>
1939 <dd class=
"description">Filename
</dd>
1941 <h5 class=
"returnvalue">Return Value
</h5>
1942 <p class=
"description">1 on success,
0 on failure
</p>
1943 <h4 class=
"method"><a name=
"ppdcSource">ppdcSource
</a></h4>
1944 <p class=
"description"></p>
1946 void ppdcSource (
<br>
1947 const char *f,
<br>
1948 cups_file_t *ffp
<br>
1950 <h5 class=
"parameters">Parameters
</h5>
1953 <dd class=
"description">File to read
</dd>
1955 <dd class=
"description">File pointer to use
</dd>
1957 <h4 class=
"method"><a name=
"quotef">quotef
</a></h4>
1958 <p class=
"description"></p>
1961 cups_file_t *fp,
<br>
1962 const char *format,
<br>
1963 ...
<br>
1965 <h5 class=
"parameters">Parameters
</h5>
1968 <dd class=
"description">File to write to
</dd>
1970 <dd class=
"description">Printf-style format string
</dd>
1972 <dd class=
"description">Additional args as needed
</dd>
1974 <h5 class=
"returnvalue">Return Value
</h5>
1975 <p class=
"description">Number bytes on success, -
1 on failure
</p>
1976 <h4 class=
"method"><a name=
"read_file">read_file
</a></h4>
1977 <p class=
"description"></p>
1979 void read_file (
<br>
1980 const char *f,
<br>
1981 cups_file_t *ffp
<br>
1983 <h5 class=
"parameters">Parameters
</h5>
1986 <dd class=
"description">File to read
</dd>
1988 <dd class=
"description">File pointer to use
</dd>
1990 <h4 class=
"method"><a name=
"scan_file">scan_file
</a></h4>
1991 <p class=
"description"></p>
1993 void scan_file (
<br>
1994 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1995 <a href=
"#ppdcDriver">ppdcDriver
</a> *td,
<br>
1996 bool inc
<br>
1998 <h5 class=
"parameters">Parameters
</h5>
2001 <dd class=
"description">File to read
</dd>
2003 <dd class=
"description">Driver template
</dd>
2005 <dd class=
"description">Including?
</dd>
2007 <h4 class=
"method"><a name=
"set_variable">set_variable
</a></h4>
2008 <p class=
"description"></p>
2010 <a href=
"#ppdcVariable">ppdcVariable
</a> *set_variable (
<br>
2011 const char *name,
<br>
2012 const char *value
<br>
2014 <h5 class=
"parameters">Parameters
</h5>
2017 <dd class=
"description">Name
</dd>
2019 <dd class=
"description">Value
</dd>
2021 <h5 class=
"returnvalue">Return Value
</h5>
2022 <p class=
"description">Variable
</p>
2023 <h4 class=
"method"><a name=
"write_file">write_file
</a></h4>
2024 <p class=
"description"></p>
2026 int write_file (
<br>
2027 const char *f
<br>
2029 <h5 class=
"parameters">Parameters
</h5>
2032 <dd class=
"description">File to write
</dd>
2034 <h5 class=
"returnvalue">Return Value
</h5>
2035 <p class=
"description">0 on success, -
1 on error
</p>
2036 <h4 class=
"method"><a name=
"~ppdcSource">~ppdcSource
</a></h4>
2037 <p class=
"description"></p>
2039 void ~ppdcSource (void);
</p>
2040 <h3 class=
"class"><a name=
"ppdcString">ppdcString
</a></h3>
2041 <p class=
"description">// Shared String
</p>
2042 <p class=
"code">class ppdcString : public ppdcShared {
<br>
2043 public:
<br>
2044 char *value;
<br>
2046 <h4 class=
"members">Members
</h4>
2049 <dd class=
"description">String value
</dd>
2051 <h4 class=
"method"><a name=
"ppdcString">ppdcString
</a></h4>
2052 <p class=
"description"></p>
2054 void ppdcString (
<br>
2055 const char *v
<br>
2057 <h5 class=
"parameters">Parameters
</h5>
2060 <dd class=
"description">String
</dd>
2062 <h4 class=
"method"><a name=
"~ppdcString">~ppdcString
</a></h4>
2063 <p class=
"description"></p>
2065 void ~ppdcString (void);
</p>
2066 <h3 class=
"class"><a name=
"ppdcVariable">ppdcVariable
</a></h3>
2067 <p class=
"description">// Variable Definition
</p>
2068 <p class=
"code">class ppdcVariable : public ppdcShared {
<br>
2069 public:
<br>
2070 <a href=
"#ppdcString">ppdcString
</a> *name, *value;
<br>
2072 <h4 class=
"members">Members
</h4>
2075 <dd class=
"description">Value of variable
</dd>
2077 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
2078 <p class=
"description"></p>
2080 void PPDC_NAME (
<br>
2081 void set_value(const char *v
<br>
2083 <h5 class=
"parameters">Parameters
</h5>
2087 <h4 class=
"method"><a name=
"ppdcVariable">ppdcVariable
</a></h4>
2088 <p class=
"description"></p>
2090 void ppdcVariable (
<br>
2091 const char *n,
<br>
2092 const char *v
<br>
2094 <h5 class=
"parameters">Parameters
</h5>
2097 <dd class=
"description">Name of variable
</dd>
2099 <dd class=
"description">Value of variable
</dd>
2101 <h4 class=
"method"><a name=
"set_value">set_value
</a></h4>
2102 <p class=
"description"></p>
2104 void set_value (
<br>
2105 const char *v
<br>
2107 <h5 class=
"parameters">Parameters
</h5>
2111 <h4 class=
"method"><a name=
"~ppdcVariable">~ppdcVariable
</a></h4>
2112 <p class=
"description"></p>
2114 void ~ppdcVariable (void);
</p>
2115 <h2 class=
"title"><a name=
"TYPES">Data Types
</a></h2>
2116 <h3 class=
"typedef"><a name=
"ppdc_cs_t">ppdc_cs_t
</a></h3>
2117 <p class=
"description"></p>
2119 typedef enum ppdc_cs_t;
2121 <h2 class=
"title"><a name=
"VARIABLES">Variables
</a></h2>
2122 <h3 class=
"variable"><a name=
"ppdcSource">ppdcSource
</a></h3>
2123 <p class=
"description">// Printer Driver Data
</p>
2124 <p class=
"code">class ppdcSource;
</p>
2125 <h2 class=
"title"><a name=
"ENUMERATIONS">Constants
</a></h2>
2126 <h3 class=
"enumeration"><a name=
"ppdcCondFlags">ppdcCondFlags
</a></h3>
2127 <p class=
"description">// Condition flags
</p>
2128 <h4 class=
"constants">Constants
</h4>
2130 <dt>PPDC_COND_NORMAL
</dt>
2131 <dd class=
"description">Normal state
</dd>
2132 <dt>PPDC_COND_SATISFIED
</dt>
2133 <dd class=
"description">At least one condition satisfied
</dd>
2134 <dt>PPDC_COND_SKIP
</dt>
2135 <dd class=
"description">Skip state
</dd>
2137 <h3 class=
"enumeration"><a name=
"ppdcDrvType">ppdcDrvType
</a></h3>
2138 <p class=
"description">// Driver type
</p>
2139 <h4 class=
"constants">Constants
</h4>
2141 <dt>PPDC_DRIVER_CUSTOM
</dt>
2142 <dd class=
"description">Custom driver
</dd>
2143 <dt>PPDC_DRIVER_EPSON
</dt>
2144 <dd class=
"description">rastertoepson driver
</dd>
2145 <dt>PPDC_DRIVER_ESCP
</dt>
2146 <dd class=
"description">rastertoescpx driver
</dd>
2147 <dt>PPDC_DRIVER_HP
</dt>
2148 <dd class=
"description">rastertohp driver
</dd>
2149 <dt>PPDC_DRIVER_LABEL
</dt>
2150 <dd class=
"description">rastertolabel/rastertodymo driver
</dd>
2151 <dt>PPDC_DRIVER_MAX
</dt>
2152 <dd class=
"description">Number of driver types defined
</dd>
2153 <dt>PPDC_DRIVER_PCL
</dt>
2154 <dd class=
"description">rastertopclx driver
</dd>
2155 <dt>PPDC_DRIVER_PS
</dt>
2156 <dd class=
"description">PostScript driver
</dd>
2158 <h3 class=
"enumeration"><a name=
"ppdcFontStatus">ppdcFontStatus
</a></h3>
2159 <p class=
"description">// Load status of font
</p>
2160 <h4 class=
"constants">Constants
</h4>
2162 <dt>PPDC_FONT_DISK
</dt>
2163 <dd class=
"description">Font is on disk
</dd>
2164 <dt>PPDC_FONT_ROM
</dt>
2165 <dd class=
"description">Font is in ROM
</dd>
2167 <h3 class=
"enumeration"><a name=
"ppdcLineEnding">ppdcLineEnding
</a></h3>
2168 <p class=
"description">// Line endings
</p>
2169 <h4 class=
"constants">Constants
</h4>
2172 <dd class=
"description">CR + LF
</dd>
2173 <dt>PPDC_CRONLY
</dt>
2174 <dd class=
"description">CR only
</dd>
2175 <dt>PPDC_LFONLY
</dt>
2176 <dd class=
"description">LF only
</dd>
2178 <h3 class=
"enumeration"><a name=
"ppdcOptSection">ppdcOptSection
</a></h3>
2179 <p class=
"description">// Option section
</p>
2180 <h4 class=
"constants">Constants
</h4>
2182 <dt>PPDC_SECTION_ANY
</dt>
2183 <dd class=
"description">AnySetup
</dd>
2184 <dt>PPDC_SECTION_DOCUMENT
</dt>
2185 <dd class=
"description">DocumentSetup
</dd>
2186 <dt>PPDC_SECTION_EXIT
</dt>
2187 <dd class=
"description">ExitServer
</dd>
2188 <dt>PPDC_SECTION_JCL
</dt>
2189 <dd class=
"description">JCLSetup
</dd>
2190 <dt>PPDC_SECTION_PAGE
</dt>
2191 <dd class=
"description">PageSetup
</dd>
2192 <dt>PPDC_SECTION_PROLOG
</dt>
2193 <dd class=
"description">Prolog
</dd>
2195 <h3 class=
"enumeration"><a name=
"ppdcOptType">ppdcOptType
</a></h3>
2196 <p class=
"description">// Option type
</p>
2197 <h4 class=
"constants">Constants
</h4>
2199 <dt>PPDC_BOOLEAN
</dt>
2200 <dd class=
"description">True/false option
</dd>
2201 <dt>PPDC_PICKMANY
</dt>
2202 <dd class=
"description">Multiple choices from list
</dd>
2203 <dt>PPDC_PICKONE
</dt>
2204 <dd class=
"description">Single choice from list
</dd>