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 name=
"creator" content=
"Mini-XML v2.6">
8 <style type=
"text/css"><!--
10 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
13 H1, H2, H3, H4, H5, H6, P, TD, TH {
14 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
18 font-family: monaco, courier, monospace;
23 font-family: monaco, courier, monospace;
27 border: dotted thin #7f7f7f;
43 border: dotted thin #999999;
48 PRE.command EM, PRE.example EM {
49 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
53 font-family: monaco, courier, monospace;
64 border: solid thin #999999;
75 -moz-border-radius: 10px;
80 text-decoration: none;
83 A:link:hover, A:visited:hover, A:active {
84 text-decoration: underline;
91 TR.data, TD.data, TR.data TD {
94 border-bottom: solid 1pt #999999;
98 border-bottom: solid 1pt #999999;
105 border: solid thin #999999;
106 border-collapse: collapse;
122 border: solid thin #cccccc;
129 border-bottom: solid thin #999999;
138 caption-side: bottom;
162 border: thin solid black;
170 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
179 border-bottom: solid 2pt #000000;
182 DIV.indent, TABLE.indent {
190 border-collapse: collapse;
193 TABLE.indent TD, TABLE.indent TH {
198 border-collapse: collapse;
206 border-bottom: solid thin #cccccc;
211 vertical-align: bottom;
220 border-bottom: solid thin #eeeeee;
225 TABLE.list TR:nth-child(even) {
229 TABLE.list TR:nth-child(odd) {
248 font-family: monaco, courier, monospace;
252 border: solid thin #999999;
253 border-collapse: collapse;
258 DIV.summary TABLE TD, DIV.summary TABLE TH {
259 border: solid thin #999999;
265 DIV.summary TABLE THEAD TH {
269 /* API documentation styles... */
276 div.body h3, div.body h4, div.body h5 {
277 margin-bottom: 0.5em;
280 .class, .enumeration, .function, .struct, .typedef, .union {
281 border-bottom: solid thin #999999;
288 code, p.code, pre, ul.code li {
289 font-family: monaco, courier, monospace;
292 ul.code, ul.contents, ul.subcontents {
293 list-style-type: none;
303 ul.contents li ul.code, ul.contents li ul.subcontents {
316 margin-bottom: 0.5em;
319 /* This is just for the HTML files generated with the framedhelp target */
322 border: solid thin black;
331 div.contents ul.contents {
334 div.contents ul.subcontents li {
345 PPD Compiler API header for CUPS.
347 Copyright 2009 by Apple Inc.
349 These coded instructions, statements, and computer programs are the
350 property of Apple Inc. and are protected by Federal copyright
351 law. Distribution and use rights are outlined in the file "LICENSE.txt"
352 which should have been included with this file. If this file is
353 file is missing or damaged, see the license at "http://www.cups.org/".
356 <h1 class='title'
>PPD Compiler API
</h1>
358 <div class='summary'
><table summary='General Information'
>
372 <td>Programming:
<a href='api-overview.html' target='_top'
>Introduction to CUPS Programming
</a></td>
376 <h2 class=
"title">Contents
</h2>
377 <ul class=
"contents">
378 <ul class=
"subcontents">
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>
418 PPD Compiler API introduction for CUPS.
420 Copyright 2009 by Apple Inc.
422 These coded instructions, statements, and computer programs are the
423 property of Apple Inc. and are protected by Federal copyright
424 law. Distribution and use rights are outlined in the file "LICENSE.txt"
425 which should have been included with this file. If this file is
426 file is missing or damaged, see the license at "http://www.cups.org/".
429 <h2 class='title'
><a name='OVERVIEW'
>Overview
</a></h2>
431 <p>The PPD Compiler API provides access to CUPS driver information files and
432 methods for generating and importing PPD files.
</p>
433 <h2 class=
"title"><a name=
"CLASSES">Classes
</a></h2>
434 <h3 class=
"class"><a name=
"ppdcArray">ppdcArray
</a></h3>
435 <p class=
"description">// Shared Array
</p>
436 <p class=
"code">class ppdcArray : public ppdcShared {
<br>
437 public:
<br>
438 int count, alloc, current;
<br>
439 <a href=
"#ppdcShared">ppdcShared
</a> **data;
<br>
441 <h4 class=
"members">Members
</h4>
444 <dd class=
"description">Current element
</dd>
446 <dd class=
"description">Elements
</dd>
448 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
449 <p class=
"description"></p>
452 void add(
<a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
454 <h5 class=
"parameters">Parameters
</h5>
458 <h4 class=
"method"><a name=
"add">add
</a></h4>
459 <p class=
"description"></p>
462 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
464 <h5 class=
"parameters">Parameters
</h5>
468 <h4 class=
"method"><a name=
"first">first
</a></h4>
469 <p class=
"description">Return the first element in the array.
</p>
471 <a href=
"#ppdcShared">ppdcShared
</a> *first (void);
</p>
472 <h5 class=
"returnvalue">Return Value
</h5>
473 <p class=
"description"></p>
474 <h4 class=
"method"><a name=
"next">next
</a></h4>
475 <p class=
"description">Return the next element in the array.
</p>
477 <a href=
"#ppdcShared">ppdcShared
</a> *next (void);
</p>
478 <h5 class=
"returnvalue">Return Value
</h5>
479 <p class=
"description"></p>
480 <h4 class=
"method"><a name=
"ppdcArray">ppdcArray
</a></h4>
481 <p class=
"description"></p>
484 <a href=
"#ppdcArray">ppdcArray
</a> *a
<br>
486 <h5 class=
"parameters">Parameters
</h5>
490 <h4 class=
"method"><a name=
"remove">remove
</a></h4>
491 <p class=
"description"></p>
494 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
496 <h5 class=
"parameters">Parameters
</h5>
499 <dd class=
"description">Data element
</dd>
501 <h4 class=
"method"><a name=
"~ppdcArray">~ppdcArray
</a></h4>
502 <p class=
"description"></p>
504 void ~ppdcArray (void);
</p>
505 <h3 class=
"class"><a name=
"ppdcAttr">ppdcAttr
</a></h3>
506 <p class=
"description">// Attribute
</p>
507 <p class=
"code">class ppdcAttr : public ppdcShared {
<br>
508 public:
<br>
509 bool localizable;
<br>
510 <a href=
"#ppdcString">ppdcString
</a> *name, *selector, *text, *value;
<br>
512 <h4 class=
"members">Members
</h4>
514 <dt>localizable
</dt>
515 <dd class=
"description">Should this attribute be localized?
</dd>
517 <dd class=
"description">Value string
</dd>
519 <h4 class=
"method"><a name=
"ppdcAttr">ppdcAttr
</a></h4>
520 <p class=
"description"></p>
523 const char *n,
<br>
524 const char *s,
<br>
525 const char *t,
<br>
526 const char *v,
<br>
527 bool loc
<br>
529 <h5 class=
"parameters">Parameters
</h5>
532 <dd class=
"description">Name
</dd>
534 <dd class=
"description">Spec string
</dd>
536 <dd class=
"description">Human-readable text
</dd>
538 <dd class=
"description">Value
</dd>
540 <dd class=
"description">Localize this attribute?
</dd>
542 <h4 class=
"method"><a name=
"~ppdcAttr">~ppdcAttr
</a></h4>
543 <p class=
"description"></p>
545 void ~ppdcAttr (void);
</p>
546 <h3 class=
"class"><a name=
"ppdcCatalog">ppdcCatalog
</a></h3>
547 <p class=
"description">// Translation catalog
</p>
548 <p class=
"code">class ppdcCatalog : public ppdcShared {
<br>
549 public:
<br>
550 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
551 <a href=
"#ppdcString">ppdcString
</a> *locale;
<br>
552 <a href=
"#ppdcArray">ppdcArray
</a> *messages;
<br>
554 <h4 class=
"members">Members
</h4>
557 <dd class=
"description">Name of translation file
</dd>
559 <dd class=
"description">Name of locale
</dd>
561 <dd class=
"description">Array of translation messages
</dd>
563 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
564 <p class=
"description"></p>
567 void add_message(const char *id,
<br>
568 const char *string = NULL
<br>
570 <h5 class=
"parameters">Parameters
</h5>
575 <h4 class=
"method"><a name=
"add_message">add_message
</a></h4>
576 <p class=
"description"></p>
578 void add_message (
<br>
579 const char *id,
<br>
580 const char *string
<br>
582 <h5 class=
"parameters">Parameters
</h5>
585 <dd class=
"description">Message ID to add
</dd>
587 <dd class=
"description">Translation string
</dd>
589 <h4 class=
"method"><a name=
"find_message">find_message
</a></h4>
590 <p class=
"description"></p>
592 const char *find_message (
<br>
593 const char *id
<br>
595 <h5 class=
"parameters">Parameters
</h5>
598 <dd class=
"description">Message ID
</dd>
600 <h5 class=
"returnvalue">Return Value
</h5>
601 <p class=
"description">Message text
</p>
602 <h4 class=
"method"><a name=
"load_messages">load_messages
</a></h4>
603 <p class=
"description"></p>
605 int load_messages (
<br>
606 const char *f
<br>
608 <h5 class=
"parameters">Parameters
</h5>
611 <dd class=
"description">Message catalog file
</dd>
613 <h5 class=
"returnvalue">Return Value
</h5>
614 <p class=
"description">0 on success, -
1 on failure
</p>
615 <h4 class=
"method"><a name=
"ppdcCatalog">ppdcCatalog
</a></h4>
616 <p class=
"description"></p>
618 void ppdcCatalog (
<br>
619 const char *l,
<br>
620 const char *f
<br>
622 <h5 class=
"parameters">Parameters
</h5>
625 <dd class=
"description">Locale
</dd>
627 <dd class=
"description">Message catalog file
</dd>
629 <h4 class=
"method"><a name=
"save_messages">save_messages
</a></h4>
630 <p class=
"description"></p>
632 int save_messages (
<br>
633 const char *f
<br>
635 <h5 class=
"parameters">Parameters
</h5>
638 <dd class=
"description">File to save to
</dd>
640 <h5 class=
"returnvalue">Return Value
</h5>
641 <p class=
"description">0 on success, -
1 on error
</p>
642 <h4 class=
"method"><a name=
"~ppdcCatalog">~ppdcCatalog
</a></h4>
643 <p class=
"description"></p>
645 void ~ppdcCatalog (void);
</p>
646 <h3 class=
"class"><a name=
"ppdcChoice">ppdcChoice
</a></h3>
647 <p class=
"description">// Option Choice
</p>
648 <p class=
"code">class ppdcChoice : public ppdcShared {
<br>
649 public:
<br>
650 <a href=
"#ppdcString">ppdcString
</a> *name, *text, *code;
<br>
652 <h4 class=
"members">Members
</h4>
655 <dd class=
"description">PS code of choice
</dd>
657 <h4 class=
"method"><a name=
"ppdcChoice">ppdcChoice
</a></h4>
658 <p class=
"description"></p>
660 void ppdcChoice (
<br>
661 const char *n,
<br>
662 const char *t,
<br>
663 const char *c
<br>
665 <h5 class=
"parameters">Parameters
</h5>
668 <dd class=
"description">Name of choice
</dd>
670 <dd class=
"description">Text of choice
</dd>
672 <dd class=
"description">Code of choice
</dd>
674 <h4 class=
"method"><a name=
"~ppdcChoice">~ppdcChoice
</a></h4>
675 <p class=
"description"></p>
677 void ~ppdcChoice (void);
</p>
678 <h3 class=
"class"><a name=
"ppdcConstraint">ppdcConstraint
</a></h3>
679 <p class=
"description">// Constraint
</p>
680 <p class=
"code">class ppdcConstraint : public ppdcShared {
<br>
681 public:
<br>
682 <a href=
"#ppdcString">ppdcString
</a> *option1, *choice1, *option2, *choice2;
<br>
684 <h4 class=
"members">Members
</h4>
687 <dd class=
"description">Second choice
</dd>
689 <h4 class=
"method"><a name=
"ppdcConstraint">ppdcConstraint
</a></h4>
690 <p class=
"description"></p>
692 void ppdcConstraint (
<br>
693 const char *o1,
<br>
694 const char *c1,
<br>
695 const char *o2,
<br>
696 const char *c2
<br>
698 <h5 class=
"parameters">Parameters
</h5>
701 <dd class=
"description">First option
</dd>
703 <dd class=
"description">First choice
</dd>
705 <dd class=
"description">Second option
</dd>
707 <dd class=
"description">Second choice
</dd>
709 <h4 class=
"method"><a name=
"~ppdcConstraint">~ppdcConstraint
</a></h4>
710 <p class=
"description"></p>
712 void ~ppdcConstraint (void);
</p>
713 <h3 class=
"class"><a name=
"ppdcDriver">ppdcDriver
</a></h3>
714 <p class=
"description">// Printer Driver Data
</p>
715 <p class=
"code">class ppdcDriver : public ppdcShared {
<br>
716 public:
<br>
717 <a href=
"#ppdcArray">ppdcArray
</a> *copyright;
<br>
718 <a href=
"#ppdcString">ppdcString
</a> *custom_size_code;
<br>
719 <a href=
"#ppdcString">ppdcString
</a> *default_font, *default_size;
<br>
720 float left_margin, bottom_margin, right_margin, top_margin, max_width, max_length, min_width, min_length;
<br>
721 <a href=
"#ppdcArray">ppdcArray
</a> *attrs, *constraints, *filters, *fonts, *groups, *profiles, *sizes;
<br>
722 int model_number, manual_copies, color_device, throughput;
<br>
723 <a href=
"#ppdcDrvType">ppdcDrvType
</a> type;
<br>
724 int variable_paper_size;
<br>
725 <a href=
"#ppdcString">ppdcString
</a> *manufacturer, *model_name, *file_name, *pc_file_name, *version;
<br>
727 <h4 class=
"members">Members
</h4>
730 <dd class=
"description">Copyright strings
</dd>
731 <dt>custom_size_code
</dt>
732 <dd class=
"description">Custom page size code, if any
</dd>
733 <dt>default_size
</dt>
734 <dd class=
"description">Default size option
</dd>
736 <dd class=
"description">Minimum length (points)
</dd>
738 <dd class=
"description">Fixed sizes
</dd>
740 <dd class=
"description">Throughput in pages per minute
</dd>
742 <dd class=
"description">Driver type
</dd>
743 <dt>variable_paper_size
</dt>
744 <dd class=
"description">Support variable sizes?
</dd>
746 <dd class=
"description">Version number
</dd>
748 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
749 <p class=
"description"></p>
752 void add_attr(
<a href=
"#ppdcAttr">ppdcAttr
</a> *a
<br>
754 <h5 class=
"parameters">Parameters
</h5>
758 <h4 class=
"method"><a name=
"add_constraint">add_constraint
</a></h4>
759 <p class=
"description"></p>
761 void add_constraint (
<br>
762 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *c
<br>
764 <h5 class=
"parameters">Parameters
</h5>
768 <h4 class=
"method"><a name=
"add_copyright">add_copyright
</a></h4>
769 <p class=
"description"></p>
771 void add_copyright (
<br>
772 const char *c
<br>
774 <h5 class=
"parameters">Parameters
</h5>
778 <h4 class=
"method"><a name=
"add_filter">add_filter
</a></h4>
779 <p class=
"description"></p>
781 void add_filter (
<br>
782 <a href=
"#ppdcFilter">ppdcFilter
</a> *f
<br>
784 <h5 class=
"parameters">Parameters
</h5>
788 <h4 class=
"method"><a name=
"add_font">add_font
</a></h4>
789 <p class=
"description"></p>
792 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
794 <h5 class=
"parameters">Parameters
</h5>
798 <h4 class=
"method"><a name=
"add_group">add_group
</a></h4>
799 <p class=
"description"></p>
802 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
804 <h5 class=
"parameters">Parameters
</h5>
808 <h4 class=
"method"><a name=
"add_profile">add_profile
</a></h4>
809 <p class=
"description"></p>
811 void add_profile (
<br>
812 <a href=
"#ppdcProfile">ppdcProfile
</a> *p
<br>
814 <h5 class=
"parameters">Parameters
</h5>
818 <h4 class=
"method"><a name=
"add_size">add_size
</a></h4>
819 <p class=
"description"></p>
822 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
824 <h5 class=
"parameters">Parameters
</h5>
828 <h4 class=
"method"><a name=
"find_attr">find_attr
</a></h4>
829 <p class=
"description"></p>
831 <a href=
"#ppdcAttr">ppdcAttr
</a> *find_attr (
<br>
832 const char *k,
<br>
833 const char *s
<br>
835 <h5 class=
"parameters">Parameters
</h5>
838 <dd class=
"description">Keyword string
</dd>
840 <dd class=
"description">Spec string
</dd>
842 <h5 class=
"returnvalue">Return Value
</h5>
843 <p class=
"description">Attribute or NULL
</p>
844 <h4 class=
"method"><a name=
"find_group">find_group
</a></h4>
845 <p class=
"description"></p>
847 <a href=
"#ppdcGroup">ppdcGroup
</a> *find_group (
<br>
848 const char *n
<br>
850 <h5 class=
"parameters">Parameters
</h5>
853 <dd class=
"description">Group name
</dd>
855 <h5 class=
"returnvalue">Return Value
</h5>
856 <p class=
"description">Matching group or NULL
</p>
857 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
858 <p class=
"description"></p>
860 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
861 const char *n
<br>
863 <h5 class=
"parameters">Parameters
</h5>
866 <dd class=
"description">Option name
</dd>
868 <h5 class=
"returnvalue">Return Value
</h5>
869 <p class=
"description">Matching option or NULL
</p>
870 <h4 class=
"method"><a name=
"find_option_group">find_option_group
</a></h4>
871 <p class=
"description"></p>
873 <a href=
"#ppdcOption">ppdcOption
</a> *find_option_group (
<br>
874 const char *n,
<br>
875 <a href=
"#ppdcGroup">ppdcGroup
</a> **mg
<br>
877 <h5 class=
"parameters">Parameters
</h5>
880 <dd class=
"description">Option name
</dd>
882 <dd class=
"description">Matching group or NULL
</dd>
884 <h5 class=
"returnvalue">Return Value
</h5>
885 <p class=
"description">Matching option or NULL
</p>
886 <h4 class=
"method"><a name=
"ppdcDriver">ppdcDriver
</a></h4>
887 <p class=
"description"></p>
889 void ppdcDriver (
<br>
890 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
892 <h5 class=
"parameters">Parameters
</h5>
895 <dd class=
"description">Printer driver template
</dd>
897 <h4 class=
"method"><a name=
"set_custom_size_code">set_custom_size_code
</a></h4>
898 <p class=
"description"></p>
900 void set_custom_size_code (
<br>
901 const char *c
<br>
903 <h5 class=
"parameters">Parameters
</h5>
906 <dd class=
"description">CustomPageSize code
</dd>
908 <h4 class=
"method"><a name=
"set_default_font">set_default_font
</a></h4>
909 <p class=
"description"></p>
911 void set_default_font (
<br>
912 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
914 <h5 class=
"parameters">Parameters
</h5>
917 <dd class=
"description">Font
</dd>
919 <h4 class=
"method"><a name=
"set_default_size">set_default_size
</a></h4>
920 <p class=
"description"></p>
922 void set_default_size (
<br>
923 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
925 <h5 class=
"parameters">Parameters
</h5>
928 <dd class=
"description">Media size
</dd>
930 <h4 class=
"method"><a name=
"set_file_name">set_file_name
</a></h4>
931 <p class=
"description"></p>
933 void set_file_name (
<br>
934 const char *f
<br>
936 <h5 class=
"parameters">Parameters
</h5>
939 <dd class=
"description">Filename
</dd>
941 <h4 class=
"method"><a name=
"set_manufacturer">set_manufacturer
</a></h4>
942 <p class=
"description"></p>
944 void set_manufacturer (
<br>
945 const char *m
<br>
947 <h5 class=
"parameters">Parameters
</h5>
950 <dd class=
"description">Model name
</dd>
952 <h4 class=
"method"><a name=
"set_model_name">set_model_name
</a></h4>
953 <p class=
"description"></p>
955 void set_model_name (
<br>
956 const char *m
<br>
958 <h5 class=
"parameters">Parameters
</h5>
961 <dd class=
"description">Model name
</dd>
963 <h4 class=
"method"><a name=
"set_pc_file_name">set_pc_file_name
</a></h4>
964 <p class=
"description"></p>
966 void set_pc_file_name (
<br>
967 const char *f
<br>
969 <h5 class=
"parameters">Parameters
</h5>
972 <dd class=
"description">Filename
</dd>
974 <h4 class=
"method"><a name=
"set_version">set_version
</a></h4>
975 <p class=
"description"></p>
977 void set_version (
<br>
978 const char *v
<br>
980 <h5 class=
"parameters">Parameters
</h5>
983 <dd class=
"description">Version
</dd>
985 <h4 class=
"method"><a name=
"write_ppd_file">write_ppd_file
</a></h4>
986 <p class=
"description"></p>
988 int write_ppd_file (
<br>
989 cups_file_t *fp,
<br>
990 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *catalog,
<br>
991 <a href=
"#ppdcArray">ppdcArray
</a> *locales,
<br>
992 <a href=
"#ppdcSource">ppdcSource
</a> *src,
<br>
993 <a href=
"#ppdcLineEnding">ppdcLineEnding
</a> le
<br>
995 <h5 class=
"parameters">Parameters
</h5>
998 <dd class=
"description">PPD file
</dd>
1000 <dd class=
"description">Message catalog
</dd>
1002 <dd class=
"description">Additional languages to add
</dd>
1004 <dd class=
"description">Driver source
</dd>
1006 <dd class=
"description">Line endings to use
</dd>
1008 <h5 class=
"returnvalue">Return Value
</h5>
1009 <p class=
"description">0 on success, -
1 on failure
</p>
1010 <h4 class=
"method"><a name=
"~ppdcDriver">~ppdcDriver
</a></h4>
1011 <p class=
"description"></p>
1013 void ~ppdcDriver (void);
</p>
1014 <h3 class=
"class"><a name=
"ppdcFile">ppdcFile
</a></h3>
1015 <p class=
"description">// File
</p>
1016 <p class=
"code">class ppdcFile {
<br>
1017 public:
<br>
1018 const char *filename;
<br>
1019 cups_file_t *fp;
<br>
1020 int line;
<br>
1022 <h4 class=
"members">Members
</h4>
1025 <dd class=
"description">Filename
</dd>
1027 <dd class=
"description">File pointer
</dd>
1029 <dd class=
"description">Line in file
</dd>
1031 <h4 class=
"method"><a name=
"get">get
</a></h4>
1032 <p class=
"description">Get a character from a file.
</p>
1035 <h5 class=
"returnvalue">Return Value
</h5>
1036 <p class=
"description"></p>
1037 <h4 class=
"method"><a name=
"peek">peek
</a></h4>
1038 <p class=
"description"></p>
1040 int peek (void);
</p>
1041 <h5 class=
"returnvalue">Return Value
</h5>
1042 <p class=
"description">Next character in file
</p>
1043 <h4 class=
"method"><a name=
"ppdcFile">ppdcFile
</a></h4>
1044 <p class=
"description"></p>
1047 const char *f,
<br>
1048 cups_file_t *ffp
<br>
1050 <h5 class=
"parameters">Parameters
</h5>
1053 <dd class=
"description">File to open
</dd>
1055 <dd class=
"description">File pointer to use
</dd>
1057 <h4 class=
"method"><a name=
"~ppdcFile">~ppdcFile
</a></h4>
1058 <p class=
"description"></p>
1060 void ~ppdcFile (void);
</p>
1061 <h3 class=
"class"><a name=
"ppdcFilter">ppdcFilter
</a></h3>
1062 <p class=
"description">// Filter Program
</p>
1063 <p class=
"code">class ppdcFilter : public ppdcShared {
<br>
1064 public:
<br>
1065 int cost;
<br>
1066 <a href=
"#ppdcString">ppdcString
</a> *mime_type, *program;
<br>
1068 <h4 class=
"members">Members
</h4>
1071 <dd class=
"description">Relative cost of filter
</dd>
1073 <dd class=
"description">Filter program
</dd>
1075 <h4 class=
"method"><a name=
"ppdcFilter">ppdcFilter
</a></h4>
1076 <p class=
"description"></p>
1078 void ppdcFilter (
<br>
1079 const char *t,
<br>
1080 const char *p,
<br>
1081 int c
<br>
1083 <h5 class=
"parameters">Parameters
</h5>
1086 <dd class=
"description">MIME type
</dd>
1088 <dd class=
"description">Filter program
</dd>
1090 <dd class=
"description">Relative cost
</dd>
1092 <h4 class=
"method"><a name=
"~ppdcFilter">~ppdcFilter
</a></h4>
1093 <p class=
"description"></p>
1095 void ~ppdcFilter (void);
</p>
1096 <h3 class=
"class"><a name=
"ppdcFont">ppdcFont
</a></h3>
1097 <p class=
"description">// Shared Font
</p>
1098 <p class=
"code">class ppdcFont : public ppdcShared {
<br>
1099 public:
<br>
1100 <a href=
"#ppdcString">ppdcString
</a> *name, *encoding, *version, *charset;
<br>
1101 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> status;
<br>
1103 <h4 class=
"members">Members
</h4>
1106 <dd class=
"description">Font charset
</dd>
1108 <dd class=
"description">Font status (ROM or Disk)
</dd>
1110 <h4 class=
"method"><a name=
"ppdcFont">ppdcFont
</a></h4>
1111 <p class=
"description"></p>
1114 const char *n,
<br>
1115 const char *e,
<br>
1116 const char *v,
<br>
1117 const char *c,
<br>
1118 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> s
<br>
1120 <h5 class=
"parameters">Parameters
</h5>
1123 <dd class=
"description">Name of font
</dd>
1125 <dd class=
"description">Font encoding
</dd>
1127 <dd class=
"description">Font version
</dd>
1129 <dd class=
"description">Font charset
</dd>
1131 <dd class=
"description">Font status
</dd>
1133 <h4 class=
"method"><a name=
"~ppdcFont">~ppdcFont
</a></h4>
1134 <p class=
"description"></p>
1136 void ~ppdcFont (void);
</p>
1137 <h3 class=
"class"><a name=
"ppdcGroup">ppdcGroup
</a></h3>
1138 <p class=
"description">// Group of Options
</p>
1139 <p class=
"code">class ppdcGroup : public ppdcShared {
<br>
1140 public:
<br>
1141 <a href=
"#ppdcArray">ppdcArray
</a> *options;
<br>
1142 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1144 <h4 class=
"members">Members
</h4>
1147 <dd class=
"description">Options
</dd>
1149 <dd class=
"description">Human-readable text of option
</dd>
1151 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1152 <p class=
"description"></p>
1154 void PPDC_NAME (
<br>
1155 void add_option(
<a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1157 <h5 class=
"parameters">Parameters
</h5>
1161 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
1162 <p class=
"description">Find an option in a group.
</p>
1164 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
1165 const char *n
<br>
1167 <h5 class=
"parameters">Parameters
</h5>
1170 <dd class=
"description">Name of option
</dd>
1172 <h5 class=
"returnvalue">Return Value
</h5>
1173 <p class=
"description"></p>
1174 <h4 class=
"method"><a name=
"ppdcGroup">ppdcGroup
</a></h4>
1175 <p class=
"description"></p>
1177 void ppdcGroup (
<br>
1178 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1180 <h5 class=
"parameters">Parameters
</h5>
1183 <dd class=
"description">Group template
</dd>
1185 <h4 class=
"method"><a name=
"~ppdcGroup">~ppdcGroup
</a></h4>
1186 <p class=
"description"></p>
1188 void ~ppdcGroup (void);
</p>
1189 <h3 class=
"class"><a name=
"ppdcInteger">ppdcInteger
</a></h3>
1190 <p class=
"description">// Shared integer
</p>
1191 <p class=
"code">class ppdcInteger : public ppdcShared {
<br>
1192 public:
<br>
1193 int *value;
<br>
1195 <h4 class=
"members">Members
</h4>
1198 <dd class=
"description">Integer value
</dd>
1200 <h4 class=
"method"><a name=
"ppdcInteger">ppdcInteger
</a></h4>
1201 <p class=
"description">Integer value
</p>
1203 void ppdcInteger (
<br>
1204 int *v
<br>
1206 <h5 class=
"parameters">Parameters
</h5>
1210 <h3 class=
"class"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h3>
1211 <p class=
"description">// Media Size
</p>
1212 <p class=
"code">class ppdcMediaSize : public ppdcShared {
<br>
1213 public:
<br>
1214 <a href=
"#ppdcString">ppdcString
</a> *size_code, *region_code;
<br>
1215 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1216 float width, length, left, bottom, right, top;
<br>
1218 <h4 class=
"members">Members
</h4>
1220 <dt>region_code
</dt>
1221 <dd class=
"description">PageRegion code, if any
</dd>
1223 <dd class=
"description">Human-readable text
</dd>
1225 <dd class=
"description">Top limit in points
</dd>
1227 <h4 class=
"method"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h4>
1228 <p class=
"description"></p>
1230 void ppdcMediaSize (
<br>
1231 const char *n,
<br>
1232 const char *t,
<br>
1233 float w,
<br>
1234 float l,
<br>
1235 float lm,
<br>
1236 float bm,
<br>
1237 float rm,
<br>
1238 float tm,
<br>
1239 const char *sc,
<br>
1240 const char *rc
<br>
1242 <h5 class=
"parameters">Parameters
</h5>
1245 <dd class=
"description">Name of media size
</dd>
1247 <dd class=
"description">Text of media size
</dd>
1249 <dd class=
"description">Width in points
</dd>
1251 <dd class=
"description">Length in points
</dd>
1253 <dd class=
"description">Left margin in points
</dd>
1255 <dd class=
"description">Bottom margin in points
</dd>
1257 <dd class=
"description">Right margin in points
</dd>
1259 <dd class=
"description">Top margin in points
</dd>
1261 <dd class=
"description">PageSize code, if any
</dd>
1263 <dd class=
"description">PageRegion code, if any
</dd>
1265 <h4 class=
"method"><a name=
"~ppdcMediaSize">~ppdcMediaSize
</a></h4>
1266 <p class=
"description"></p>
1268 void ~ppdcMediaSize (void);
</p>
1269 <h3 class=
"class"><a name=
"ppdcMessage">ppdcMessage
</a></h3>
1270 <p class=
"description">// Translation message
</p>
1271 <p class=
"code">class ppdcMessage : public ppdcShared {
<br>
1272 public:
<br>
1273 <a href=
"#ppdcString">ppdcString
</a> *id, *string;
<br>
1275 <h4 class=
"members">Members
</h4>
1278 <dd class=
"description">Translation string
</dd>
1280 <h4 class=
"method"><a name=
"ppdcMessage">ppdcMessage
</a></h4>
1281 <p class=
"description"></p>
1283 void ppdcMessage (
<br>
1284 const char *i,
<br>
1285 const char *s
<br>
1287 <h5 class=
"parameters">Parameters
</h5>
1290 <dd class=
"description">ID
</dd>
1292 <dd class=
"description">Text
</dd>
1294 <h4 class=
"method"><a name=
"~ppdcMessage">~ppdcMessage
</a></h4>
1295 <p class=
"description"></p>
1297 void ~ppdcMessage (void);
</p>
1298 <h3 class=
"class"><a name=
"ppdcOption">ppdcOption
</a></h3>
1299 <p class=
"description">// Option
</p>
1300 <p class=
"code">class ppdcOption : public ppdcShared {
<br>
1301 public:
<br>
1302 <a href=
"#ppdcArray">ppdcArray
</a> *choices;
<br>
1303 <a href=
"#ppdcString">ppdcString
</a> *defchoice;
<br>
1304 float order;
<br>
1305 <a href=
"#ppdcOptSection">ppdcOptSection
</a> section;
<br>
1306 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1307 <a href=
"#ppdcOptType">ppdcOptType
</a> type;
<br>
1309 <h4 class=
"members">Members
</h4>
1312 <dd class=
"description">Choices
</dd>
1314 <dd class=
"description">Default choice
</dd>
1316 <dd class=
"description">Order number
</dd>
1318 <dd class=
"description">Section for option code
</dd>
1320 <dd class=
"description">Human-readable text of option
</dd>
1322 <dd class=
"description">Type of option
</dd>
1324 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1325 <p class=
"description"></p>
1327 void PPDC_NAME (
<br>
1328 void add_choice(
<a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1330 <h5 class=
"parameters">Parameters
</h5>
1334 <h4 class=
"method"><a name=
"find_choice">find_choice
</a></h4>
1335 <p class=
"description"></p>
1337 <a href=
"#ppdcChoice">ppdcChoice
</a> *find_choice (
<br>
1338 const char *n
<br>
1340 <h5 class=
"parameters">Parameters
</h5>
1343 <dd class=
"description">Name of choice
</dd>
1345 <h5 class=
"returnvalue">Return Value
</h5>
1346 <p class=
"description">Choice or NULL
</p>
1347 <h4 class=
"method"><a name=
"ppdcOption">ppdcOption
</a></h4>
1348 <p class=
"description"></p>
1350 void ppdcOption (
<br>
1351 <a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1353 <h5 class=
"parameters">Parameters
</h5>
1356 <dd class=
"description">Template option
</dd>
1358 <h4 class=
"method"><a name=
"set_defchoice">set_defchoice
</a></h4>
1359 <p class=
"description"></p>
1361 void set_defchoice (
<br>
1362 <a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1364 <h5 class=
"parameters">Parameters
</h5>
1367 <dd class=
"description">Choice
</dd>
1369 <h4 class=
"method"><a name=
"~ppdcOption">~ppdcOption
</a></h4>
1370 <p class=
"description"></p>
1372 void ~ppdcOption (void);
</p>
1373 <h3 class=
"class"><a name=
"ppdcProfile">ppdcProfile
</a></h3>
1374 <p class=
"description">// Color Profile
</p>
1375 <p class=
"code">class ppdcProfile : public ppdcShared {
<br>
1376 public:
<br>
1377 <a href=
"#ppdcString">ppdcString
</a> *resolution, *media_type;
<br>
1378 float density, gamma, profile[
9];
<br>
1380 <h4 class=
"members">Members
</h4>
1382 <dt>media_type
</dt>
1383 <dd class=
"description">Media type name
</dd>
1384 <dt>profile[
9]
</dt>
1385 <dd class=
"description">Color profile matrix
</dd>
1387 <h4 class=
"method"><a name=
"ppdcProfile">ppdcProfile
</a></h4>
1388 <p class=
"description"></p>
1390 void ppdcProfile (
<br>
1391 const char *r,
<br>
1392 const char *m,
<br>
1393 float d,
<br>
1394 float g,
<br>
1395 const float *p
<br>
1397 <h5 class=
"parameters">Parameters
</h5>
1400 <dd class=
"description">Resolution name
</dd>
1402 <dd class=
"description">Media type name
</dd>
1404 <dd class=
"description">Density
</dd>
1406 <dd class=
"description">Gamma
</dd>
1408 <dd class=
"description">3x3 transform matrix
</dd>
1410 <h4 class=
"method"><a name=
"~ppdcProfile">~ppdcProfile
</a></h4>
1411 <p class=
"description"></p>
1413 void ~ppdcProfile (void);
</p>
1414 <h3 class=
"class"><a name=
"ppdcShared">ppdcShared
</a></h3>
1415 <p class=
"description">// Shared Data Value
</p>
1416 <p class=
"code">class ppdcShared {
<br>
1417 private:
<br>
1418 int use;
<br>
1420 <h4 class=
"members">Members
</h4>
1423 <dd class=
"description">Use count (delete when
0)
</dd>
1425 <h4 class=
"method"><a name=
"class_name">class_name
</a></h4>
1426 <p class=
"description"></p>
1428 virtual const char *class_name (void);
</p>
1429 <h5 class=
"returnvalue">Return Value
</h5>
1430 <p class=
"description"></p>
1431 <h4 class=
"method"><a name=
"ppdcShared">ppdcShared
</a></h4>
1432 <p class=
"description"></p>
1434 void ppdcShared (void);
</p>
1435 <h4 class=
"method"><a name=
"release">release
</a></h4>
1436 <p class=
"description"></p>
1438 void release (void);
</p>
1439 <h4 class=
"method"><a name=
"retain">retain
</a></h4>
1440 <p class=
"description"></p>
1442 void retain (void);
</p>
1443 <h4 class=
"method"><a name=
"~ppdcShared">~ppdcShared
</a></h4>
1444 <p class=
"description"></p>
1446 void ~ppdcShared (void);
</p>
1447 <h3 class=
"class"><a name=
"ppdcSource">ppdcSource
</a></h3>
1448 <p class=
"description">// Source File
</p>
1449 <p class=
"code">class ppdcSource : public ppdcShared {
<br>
1450 public:
<br>
1451 int cond_state, *cond_current, cond_stack[
101];
<br>
1452 static const char *driver_types[];
<br>
1453 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
1454 static
<a href=
"#ppdcArray">ppdcArray
</a> *includes;
<br>
1455 <a href=
"#ppdcArray">ppdcArray
</a> *base_fonts, *drivers, *po_files, *sizes, *vars;
<br>
1457 <h4 class=
"members">Members
</h4>
1459 <dt>cond_stack[
101]
</dt>
1460 <dd class=
"description">#if state stack
</dd>
1461 <dt>driver_types[]
</dt>
1462 <dd class=
"description">Driver types
</dd>
1464 <dd class=
"description">Filename
</dd>
1466 <dd class=
"description">Include directories
</dd>
1468 <dd class=
"description">Defined variables
</dd>
1470 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1471 <p class=
"description"></p>
1473 void PPDC_NAME (
<br>
1474 static void add_include(const char *d
<br>
1476 <h5 class=
"parameters">Parameters
</h5>
1480 <h4 class=
"method"><a name=
"add_include">add_include
</a></h4>
1481 <p class=
"description"></p>
1483 void add_include (
<br>
1484 const char *d
<br>
1486 <h5 class=
"parameters">Parameters
</h5>
1489 <dd class=
"description">Include directory
</dd>
1491 <h4 class=
"method"><a name=
"find_driver">find_driver
</a></h4>
1492 <p class=
"description"></p>
1494 <a href=
"#ppdcDriver">ppdcDriver
</a> *find_driver (
<br>
1495 const char *f
<br>
1497 <h5 class=
"parameters">Parameters
</h5>
1500 <dd class=
"description">Driver file name
</dd>
1502 <h5 class=
"returnvalue">Return Value
</h5>
1503 <p class=
"description">Driver
</p>
1504 <h4 class=
"method"><a name=
"find_include">find_include
</a></h4>
1505 <p class=
"description"></p>
1507 char *find_include (
<br>
1508 const char *f,
<br>
1509 const char *base,
<br>
1510 char *n,
<br>
1511 int nlen
<br>
1513 <h5 class=
"parameters">Parameters
</h5>
1516 <dd class=
"description">Include filename
</dd>
1518 <dd class=
"description">Current directory
</dd>
1520 <dd class=
"description">Path buffer
</dd>
1522 <dd class=
"description">Path buffer length
</dd>
1524 <h5 class=
"returnvalue">Return Value
</h5>
1525 <p class=
"description">Found path or NULL
</p>
1526 <h4 class=
"method"><a name=
"find_po">find_po
</a></h4>
1527 <p class=
"description"></p>
1529 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *find_po (
<br>
1530 const char *l
<br>
1532 <h5 class=
"parameters">Parameters
</h5>
1535 <dd class=
"description">Locale name
</dd>
1537 <h5 class=
"returnvalue">Return Value
</h5>
1538 <p class=
"description">Message catalog or NULL
</p>
1539 <h4 class=
"method"><a name=
"find_size">find_size
</a></h4>
1540 <p class=
"description"></p>
1542 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *find_size (
<br>
1543 const char *s
<br>
1545 <h5 class=
"parameters">Parameters
</h5>
1548 <dd class=
"description">Size name
</dd>
1550 <h5 class=
"returnvalue">Return Value
</h5>
1551 <p class=
"description">Size
</p>
1552 <h4 class=
"method"><a name=
"find_variable">find_variable
</a></h4>
1553 <p class=
"description"></p>
1555 <a href=
"#ppdcVariable">ppdcVariable
</a> *find_variable (
<br>
1556 const char *n
<br>
1558 <h5 class=
"parameters">Parameters
</h5>
1561 <dd class=
"description">Variable name
</dd>
1563 <h5 class=
"returnvalue">Return Value
</h5>
1564 <p class=
"description">Variable
</p>
1565 <h4 class=
"method"><a name=
"get_attr">get_attr
</a></h4>
1566 <p class=
"description"></p>
1568 <a href=
"#ppdcAttr">ppdcAttr
</a> *get_attr (
<br>
1569 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1570 bool loc
<br>
1572 <h5 class=
"parameters">Parameters
</h5>
1575 <dd class=
"description">File to read
</dd>
1577 <dd class=
"description">Localize this attribute?
</dd>
1579 <h5 class=
"returnvalue">Return Value
</h5>
1580 <p class=
"description">Attribute
</p>
1581 <h4 class=
"method"><a name=
"get_boolean">get_boolean
</a></h4>
1582 <p class=
"description"></p>
1584 int get_boolean (
<br>
1585 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1587 <h5 class=
"parameters">Parameters
</h5>
1590 <dd class=
"description">File to read
</dd>
1592 <h5 class=
"returnvalue">Return Value
</h5>
1593 <p class=
"description">Boolean value
</p>
1594 <h4 class=
"method"><a name=
"get_choice">get_choice
</a></h4>
1595 <p class=
"description"></p>
1597 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_choice (
<br>
1598 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1600 <h5 class=
"parameters">Parameters
</h5>
1603 <dd class=
"description">File to read
</dd>
1605 <h5 class=
"returnvalue">Return Value
</h5>
1606 <p class=
"description">Choice data
</p>
1607 <h4 class=
"method"><a name=
"get_color_model">get_color_model
</a></h4>
1608 <p class=
"description"></p>
1610 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_color_model (
<br>
1611 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1613 <h5 class=
"parameters">Parameters
</h5>
1616 <dd class=
"description">File to read
</dd>
1618 <h5 class=
"returnvalue">Return Value
</h5>
1619 <p class=
"description">Choice data
</p>
1620 <h4 class=
"method"><a name=
"get_color_order">get_color_order
</a></h4>
1621 <p class=
"description"></p>
1623 int get_color_order (
<br>
1624 const char *co
<br>
1626 <h5 class=
"parameters">Parameters
</h5>
1629 <dd class=
"description">Color order string
</dd>
1631 <h5 class=
"returnvalue">Return Value
</h5>
1632 <p class=
"description">Color order value
</p>
1633 <h4 class=
"method"><a name=
"get_color_profile">get_color_profile
</a></h4>
1634 <p class=
"description"></p>
1636 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_color_profile (
<br>
1637 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1639 <h5 class=
"parameters">Parameters
</h5>
1642 <dd class=
"description">File to read
</dd>
1644 <h5 class=
"returnvalue">Return Value
</h5>
1645 <p class=
"description">Color profile
</p>
1646 <h4 class=
"method"><a name=
"get_color_space">get_color_space
</a></h4>
1647 <p class=
"description"></p>
1649 int get_color_space (
<br>
1650 const char *cs
<br>
1652 <h5 class=
"parameters">Parameters
</h5>
1655 <dd class=
"description">Colorspace string
</dd>
1657 <h5 class=
"returnvalue">Return Value
</h5>
1658 <p class=
"description">Colorspace value
</p>
1659 <h4 class=
"method"><a name=
"get_constraint">get_constraint
</a></h4>
1660 <p class=
"description"></p>
1662 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *get_constraint (
<br>
1663 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1665 <h5 class=
"parameters">Parameters
</h5>
1668 <dd class=
"description">File to read
</dd>
1670 <h5 class=
"returnvalue">Return Value
</h5>
1671 <p class=
"description">Constraint
</p>
1672 <h4 class=
"method"><a name=
"get_custom_size">get_custom_size
</a></h4>
1673 <p class=
"description"></p>
1675 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_custom_size (
<br>
1676 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1678 <h5 class=
"parameters">Parameters
</h5>
1681 <dd class=
"description">File to read
</dd>
1683 <h5 class=
"returnvalue">Return Value
</h5>
1684 <p class=
"description">Media size
</p>
1685 <h4 class=
"method"><a name=
"get_duplex">get_duplex
</a></h4>
1686 <p class=
"description"></p>
1688 void get_duplex (
<br>
1689 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1690 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1692 <h5 class=
"parameters">Parameters
</h5>
1695 <dd class=
"description">File to read from
</dd>
1697 <dd class=
"description">Current driver
</dd>
1699 <h4 class=
"method"><a name=
"get_filter">get_filter
</a></h4>
1700 <p class=
"description"></p>
1702 <a href=
"#ppdcFilter">ppdcFilter
</a> *get_filter (
<br>
1703 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1705 <h5 class=
"parameters">Parameters
</h5>
1708 <dd class=
"description">File to read
</dd>
1710 <h5 class=
"returnvalue">Return Value
</h5>
1711 <p class=
"description">Filter
</p>
1712 <h4 class=
"method"><a name=
"get_float">get_float
</a></h4>
1713 <p class=
"description"></p>
1715 float get_float (
<br>
1716 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1718 <h5 class=
"parameters">Parameters
</h5>
1721 <dd class=
"description">File to read
</dd>
1723 <h5 class=
"returnvalue">Return Value
</h5>
1724 <p class=
"description">Number
</p>
1725 <h4 class=
"method"><a name=
"get_font">get_font
</a></h4>
1726 <p class=
"description"></p>
1728 <a href=
"#ppdcFont">ppdcFont
</a> *get_font (
<br>
1729 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1731 <h5 class=
"parameters">Parameters
</h5>
1734 <dd class=
"description">File to read
</dd>
1736 <h5 class=
"returnvalue">Return Value
</h5>
1737 <p class=
"description">Font data
</p>
1738 <h4 class=
"method"><a name=
"get_generic">get_generic
</a></h4>
1739 <p class=
"description"></p>
1741 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_generic (
<br>
1742 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1743 const char *keyword,
<br>
1744 const char *tattr,
<br>
1745 const char *nattr
<br>
1747 <h5 class=
"parameters">Parameters
</h5>
1750 <dd class=
"description">File to read
</dd>
1752 <dd class=
"description">Keyword name
</dd>
1754 <dd class=
"description">Text attribute
</dd>
1756 <dd class=
"description">Numeric attribute
</dd>
1758 <h5 class=
"returnvalue">Return Value
</h5>
1759 <p class=
"description">Choice data
</p>
1760 <h4 class=
"method"><a name=
"get_group">get_group
</a></h4>
1761 <p class=
"description"></p>
1763 <a href=
"#ppdcGroup">ppdcGroup
</a> *get_group (
<br>
1764 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1765 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1767 <h5 class=
"parameters">Parameters
</h5>
1770 <dd class=
"description">File to read
</dd>
1772 <dd class=
"description">Printer driver
</dd>
1774 <h5 class=
"returnvalue">Return Value
</h5>
1775 <p class=
"description">Group
</p>
1776 <h4 class=
"method"><a name=
"get_installable">get_installable
</a></h4>
1777 <p class=
"description"></p>
1779 <a href=
"#ppdcOption">ppdcOption
</a> *get_installable (
<br>
1780 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1782 <h5 class=
"parameters">Parameters
</h5>
1785 <dd class=
"description">File to read
</dd>
1787 <h5 class=
"returnvalue">Return Value
</h5>
1788 <p class=
"description">Option
</p>
1789 <h4 class=
"method"><a name=
"get_integer">get_integer
</a></h4>
1790 <p class=
"description"></p>
1792 int get_integer (
<br>
1793 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1795 <h5 class=
"parameters">Parameters
</h5>
1798 <dd class=
"description">File to read
</dd>
1800 <h5 class=
"returnvalue">Return Value
</h5>
1801 <p class=
"description">Integer value
</p>
1802 <h4 class=
"method"><a name=
"get_measurement">get_measurement
</a></h4>
1803 <p class=
"description"></p>
1805 float get_measurement (
<br>
1806 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1808 <h5 class=
"parameters">Parameters
</h5>
1811 <dd class=
"description">File to read
</dd>
1813 <h5 class=
"returnvalue">Return Value
</h5>
1814 <p class=
"description">Measurement value in points
</p>
1815 <h4 class=
"method"><a name=
"get_option">get_option
</a></h4>
1816 <p class=
"description"></p>
1818 <a href=
"#ppdcOption">ppdcOption
</a> *get_option (
<br>
1819 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1820 <a href=
"#ppdcDriver">ppdcDriver
</a> *d,
<br>
1821 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1823 <h5 class=
"parameters">Parameters
</h5>
1826 <dd class=
"description">File to read
</dd>
1828 <dd class=
"description">Printer driver
</dd>
1830 <dd class=
"description">Current group
</dd>
1832 <h5 class=
"returnvalue">Return Value
</h5>
1833 <p class=
"description">Option
</p>
1834 <h4 class=
"method"><a name=
"get_po">get_po
</a></h4>
1835 <p class=
"description"></p>
1837 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *get_po (
<br>
1838 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1840 <h5 class=
"parameters">Parameters
</h5>
1843 <dd class=
"description">File to read
</dd>
1845 <h5 class=
"returnvalue">Return Value
</h5>
1846 <p class=
"description">Message catalog
</p>
1847 <h4 class=
"method"><a name=
"get_resolution">get_resolution
</a></h4>
1848 <p class=
"description"></p>
1850 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_resolution (
<br>
1851 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1853 <h5 class=
"parameters">Parameters
</h5>
1856 <dd class=
"description">File to read
</dd>
1858 <h5 class=
"returnvalue">Return Value
</h5>
1859 <p class=
"description">Choice data
</p>
1860 <h4 class=
"method"><a name=
"get_simple_profile">get_simple_profile
</a></h4>
1861 <p class=
"description"></p>
1863 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_simple_profile (
<br>
1864 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1866 <h5 class=
"parameters">Parameters
</h5>
1869 <dd class=
"description">File to read
</dd>
1871 <h5 class=
"returnvalue">Return Value
</h5>
1872 <p class=
"description">Color profile
</p>
1873 <h4 class=
"method"><a name=
"get_size">get_size
</a></h4>
1874 <p class=
"description"></p>
1876 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_size (
<br>
1877 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1879 <h5 class=
"parameters">Parameters
</h5>
1882 <dd class=
"description">File to read
</dd>
1884 <h5 class=
"returnvalue">Return Value
</h5>
1885 <p class=
"description">Media size
</p>
1886 <h4 class=
"method"><a name=
"get_token">get_token
</a></h4>
1887 <p class=
"description"></p>
1889 char *get_token (
<br>
1890 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1891 char *buffer,
<br>
1892 int buflen
<br>
1894 <h5 class=
"parameters">Parameters
</h5>
1897 <dd class=
"description">File to read
</dd>
1899 <dd class=
"description">Buffer
</dd>
1901 <dd class=
"description">Length of buffer
</dd>
1903 <h5 class=
"returnvalue">Return Value
</h5>
1904 <p class=
"description">Token string or NULL
</p>
1905 <h4 class=
"method"><a name=
"get_variable">get_variable
</a></h4>
1906 <p class=
"description"></p>
1908 <a href=
"#ppdcVariable">ppdcVariable
</a> *get_variable (
<br>
1909 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1911 <h5 class=
"parameters">Parameters
</h5>
1914 <dd class=
"description">File to read
</dd>
1916 <h5 class=
"returnvalue">Return Value
</h5>
1917 <p class=
"description">Variable
</p>
1918 <h4 class=
"method"><a name=
"import_ppd">import_ppd
</a></h4>
1919 <p class=
"description"></p>
1921 int import_ppd (
<br>
1922 const char *f
<br>
1924 <h5 class=
"parameters">Parameters
</h5>
1927 <dd class=
"description">Filename
</dd>
1929 <h5 class=
"returnvalue">Return Value
</h5>
1930 <p class=
"description">1 on success,
0 on failure
</p>
1931 <h4 class=
"method"><a name=
"ppdcSource">ppdcSource
</a></h4>
1932 <p class=
"description"></p>
1934 void ppdcSource (
<br>
1935 const char *f,
<br>
1936 cups_file_t *ffp
<br>
1938 <h5 class=
"parameters">Parameters
</h5>
1941 <dd class=
"description">File to read
</dd>
1943 <dd class=
"description">File pointer to use
</dd>
1945 <h4 class=
"method"><a name=
"quotef">quotef
</a></h4>
1946 <p class=
"description"></p>
1949 cups_file_t *fp,
<br>
1950 const char *format,
<br>
1951 ...
<br>
1953 <h5 class=
"parameters">Parameters
</h5>
1956 <dd class=
"description">File to write to
</dd>
1958 <dd class=
"description">Printf-style format string
</dd>
1960 <dd class=
"description">Additional args as needed
</dd>
1962 <h5 class=
"returnvalue">Return Value
</h5>
1963 <p class=
"description">Number bytes on success, -
1 on failure
</p>
1964 <h4 class=
"method"><a name=
"read_file">read_file
</a></h4>
1965 <p class=
"description"></p>
1967 void read_file (
<br>
1968 const char *f,
<br>
1969 cups_file_t *ffp
<br>
1971 <h5 class=
"parameters">Parameters
</h5>
1974 <dd class=
"description">File to read
</dd>
1976 <dd class=
"description">File pointer to use
</dd>
1978 <h4 class=
"method"><a name=
"scan_file">scan_file
</a></h4>
1979 <p class=
"description"></p>
1981 void scan_file (
<br>
1982 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1983 <a href=
"#ppdcDriver">ppdcDriver
</a> *td,
<br>
1984 bool inc
<br>
1986 <h5 class=
"parameters">Parameters
</h5>
1989 <dd class=
"description">File to read
</dd>
1991 <dd class=
"description">Driver template
</dd>
1993 <dd class=
"description">Including?
</dd>
1995 <h4 class=
"method"><a name=
"set_variable">set_variable
</a></h4>
1996 <p class=
"description"></p>
1998 <a href=
"#ppdcVariable">ppdcVariable
</a> *set_variable (
<br>
1999 const char *name,
<br>
2000 const char *value
<br>
2002 <h5 class=
"parameters">Parameters
</h5>
2005 <dd class=
"description">Name
</dd>
2007 <dd class=
"description">Value
</dd>
2009 <h5 class=
"returnvalue">Return Value
</h5>
2010 <p class=
"description">Variable
</p>
2011 <h4 class=
"method"><a name=
"write_file">write_file
</a></h4>
2012 <p class=
"description"></p>
2014 int write_file (
<br>
2015 const char *f
<br>
2017 <h5 class=
"parameters">Parameters
</h5>
2020 <dd class=
"description">File to write
</dd>
2022 <h5 class=
"returnvalue">Return Value
</h5>
2023 <p class=
"description">0 on success, -
1 on error
</p>
2024 <h4 class=
"method"><a name=
"~ppdcSource">~ppdcSource
</a></h4>
2025 <p class=
"description"></p>
2027 void ~ppdcSource (void);
</p>
2028 <h3 class=
"class"><a name=
"ppdcString">ppdcString
</a></h3>
2029 <p class=
"description">// Shared String
</p>
2030 <p class=
"code">class ppdcString : public ppdcShared {
<br>
2031 public:
<br>
2032 char *value;
<br>
2034 <h4 class=
"members">Members
</h4>
2037 <dd class=
"description">String value
</dd>
2039 <h4 class=
"method"><a name=
"ppdcString">ppdcString
</a></h4>
2040 <p class=
"description"></p>
2042 void ppdcString (
<br>
2043 const char *v
<br>
2045 <h5 class=
"parameters">Parameters
</h5>
2048 <dd class=
"description">String
</dd>
2050 <h4 class=
"method"><a name=
"~ppdcString">~ppdcString
</a></h4>
2051 <p class=
"description"></p>
2053 void ~ppdcString (void);
</p>
2054 <h3 class=
"class"><a name=
"ppdcVariable">ppdcVariable
</a></h3>
2055 <p class=
"description">// Variable Definition
</p>
2056 <p class=
"code">class ppdcVariable : public ppdcShared {
<br>
2057 public:
<br>
2058 <a href=
"#ppdcString">ppdcString
</a> *name, *value;
<br>
2060 <h4 class=
"members">Members
</h4>
2063 <dd class=
"description">Value of variable
</dd>
2065 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
2066 <p class=
"description"></p>
2068 void PPDC_NAME (
<br>
2069 void set_value(const char *v
<br>
2071 <h5 class=
"parameters">Parameters
</h5>
2075 <h4 class=
"method"><a name=
"ppdcVariable">ppdcVariable
</a></h4>
2076 <p class=
"description"></p>
2078 void ppdcVariable (
<br>
2079 const char *n,
<br>
2080 const char *v
<br>
2082 <h5 class=
"parameters">Parameters
</h5>
2085 <dd class=
"description">Name of variable
</dd>
2087 <dd class=
"description">Value of variable
</dd>
2089 <h4 class=
"method"><a name=
"set_value">set_value
</a></h4>
2090 <p class=
"description"></p>
2092 void set_value (
<br>
2093 const char *v
<br>
2095 <h5 class=
"parameters">Parameters
</h5>
2099 <h4 class=
"method"><a name=
"~ppdcVariable">~ppdcVariable
</a></h4>
2100 <p class=
"description"></p>
2102 void ~ppdcVariable (void);
</p>
2103 <h2 class=
"title"><a name=
"TYPES">Data Types
</a></h2>
2104 <h3 class=
"typedef"><a name=
"ppdc_cs_t">ppdc_cs_t
</a></h3>
2105 <p class=
"description"></p>
2107 typedef enum ppdc_cs_t;
2109 <h2 class=
"title"><a name=
"VARIABLES">Variables
</a></h2>
2110 <h3 class=
"variable"><a name=
"ppdcSource">ppdcSource
</a></h3>
2111 <p class=
"description">// Printer Driver Data
</p>
2112 <p class=
"code">class ppdcSource;
</p>
2113 <h2 class=
"title"><a name=
"ENUMERATIONS">Constants
</a></h2>
2114 <h3 class=
"enumeration"><a name=
"ppdcCondFlags">ppdcCondFlags
</a></h3>
2115 <p class=
"description">// Condition flags
</p>
2116 <h4 class=
"constants">Constants
</h4>
2118 <dt>PPDC_COND_NORMAL
</dt>
2119 <dd class=
"description">Normal state
</dd>
2120 <dt>PPDC_COND_SATISFIED
</dt>
2121 <dd class=
"description">At least one condition satisfied
</dd>
2122 <dt>PPDC_COND_SKIP
</dt>
2123 <dd class=
"description">Skip state
</dd>
2125 <h3 class=
"enumeration"><a name=
"ppdcDrvType">ppdcDrvType
</a></h3>
2126 <p class=
"description">// Driver type
</p>
2127 <h4 class=
"constants">Constants
</h4>
2129 <dt>PPDC_DRIVER_CUSTOM
</dt>
2130 <dd class=
"description">Custom driver
</dd>
2131 <dt>PPDC_DRIVER_EPSON
</dt>
2132 <dd class=
"description">rastertoepson driver
</dd>
2133 <dt>PPDC_DRIVER_ESCP
</dt>
2134 <dd class=
"description">rastertoescpx driver
</dd>
2135 <dt>PPDC_DRIVER_HP
</dt>
2136 <dd class=
"description">rastertohp driver
</dd>
2137 <dt>PPDC_DRIVER_LABEL
</dt>
2138 <dd class=
"description">rastertolabel/rastertodymo driver
</dd>
2139 <dt>PPDC_DRIVER_MAX
</dt>
2140 <dd class=
"description">Number of driver types defined
</dd>
2141 <dt>PPDC_DRIVER_PCL
</dt>
2142 <dd class=
"description">rastertopclx driver
</dd>
2143 <dt>PPDC_DRIVER_PS
</dt>
2144 <dd class=
"description">PostScript driver
</dd>
2146 <h3 class=
"enumeration"><a name=
"ppdcFontStatus">ppdcFontStatus
</a></h3>
2147 <p class=
"description">// Load status of font
</p>
2148 <h4 class=
"constants">Constants
</h4>
2150 <dt>PPDC_FONT_DISK
</dt>
2151 <dd class=
"description">Font is on disk
</dd>
2152 <dt>PPDC_FONT_ROM
</dt>
2153 <dd class=
"description">Font is in ROM
</dd>
2155 <h3 class=
"enumeration"><a name=
"ppdcLineEnding">ppdcLineEnding
</a></h3>
2156 <p class=
"description">// Line endings
</p>
2157 <h4 class=
"constants">Constants
</h4>
2160 <dd class=
"description">CR + LF
</dd>
2161 <dt>PPDC_CRONLY
</dt>
2162 <dd class=
"description">CR only
</dd>
2163 <dt>PPDC_LFONLY
</dt>
2164 <dd class=
"description">LF only
</dd>
2166 <h3 class=
"enumeration"><a name=
"ppdcOptSection">ppdcOptSection
</a></h3>
2167 <p class=
"description">// Option section
</p>
2168 <h4 class=
"constants">Constants
</h4>
2170 <dt>PPDC_SECTION_ANY
</dt>
2171 <dd class=
"description">AnySetup
</dd>
2172 <dt>PPDC_SECTION_DOCUMENT
</dt>
2173 <dd class=
"description">DocumentSetup
</dd>
2174 <dt>PPDC_SECTION_EXIT
</dt>
2175 <dd class=
"description">ExitServer
</dd>
2176 <dt>PPDC_SECTION_JCL
</dt>
2177 <dd class=
"description">JCLSetup
</dd>
2178 <dt>PPDC_SECTION_PAGE
</dt>
2179 <dd class=
"description">PageSetup
</dd>
2180 <dt>PPDC_SECTION_PROLOG
</dt>
2181 <dd class=
"description">Prolog
</dd>
2183 <h3 class=
"enumeration"><a name=
"ppdcOptType">ppdcOptType
</a></h3>
2184 <p class=
"description">// Option type
</p>
2185 <h4 class=
"constants">Constants
</h4>
2187 <dt>PPDC_BOOLEAN
</dt>
2188 <dd class=
"description">True/false option
</dd>
2189 <dt>PPDC_PICKMANY
</dt>
2190 <dd class=
"description">Multiple choices from list
</dd>
2191 <dt>PPDC_PICKONE
</dt>
2192 <dd class=
"description">Single choice from list
</dd>