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 "$Id: api-array.header 8087 2008-10-27 21:37:05Z mike $"
358 PPD Compiler API header for CUPS.
360 Copyright 2009 by Apple Inc.
362 These coded instructions, statements, and computer programs are the
363 property of Apple Inc. and are protected by Federal copyright
364 law. Distribution and use rights are outlined in the file "LICENSE.txt"
365 which should have been included with this file. If this file is
366 file is missing or damaged, see the license at "http://www.cups.org/".
369 <h1 class='title'
>PPD Compiler API
</h1>
371 <div class='summary'
><table summary='General Information'
>
385 <td>Programming:
<a href='api-overview.html' target='_top'
>Introduction to CUPS Programming
</a></td>
389 <h2 class=
"title">Contents
</h2>
390 <ul class=
"contents">
391 <li><a href=
"#OVERVIEW">Overview
</a></li>
392 <li><a href=
"#CLASSES">Classes
</a><ul class=
"code">
393 <li><a href=
"#ppdcArray" title=
"// Shared Array">ppdcArray
</a></li>
394 <li><a href=
"#ppdcAttr" title=
"// Attribute">ppdcAttr
</a></li>
395 <li><a href=
"#ppdcCatalog" title=
"// Translation catalog">ppdcCatalog
</a></li>
396 <li><a href=
"#ppdcChoice" title=
"// Option Choice">ppdcChoice
</a></li>
397 <li><a href=
"#ppdcConstraint" title=
"// Constraint">ppdcConstraint
</a></li>
398 <li><a href=
"#ppdcDriver" title=
"// Printer Driver Data">ppdcDriver
</a></li>
399 <li><a href=
"#ppdcFile" title=
"// File">ppdcFile
</a></li>
400 <li><a href=
"#ppdcFilter" title=
"// Filter Program">ppdcFilter
</a></li>
401 <li><a href=
"#ppdcFont" title=
"// Shared Font">ppdcFont
</a></li>
402 <li><a href=
"#ppdcGroup" title=
"// Group of Options">ppdcGroup
</a></li>
403 <li><a href=
"#ppdcInteger" title=
"// Shared integer">ppdcInteger
</a></li>
404 <li><a href=
"#ppdcMediaSize" title=
"// Media Size">ppdcMediaSize
</a></li>
405 <li><a href=
"#ppdcMessage" title=
"// Translation message">ppdcMessage
</a></li>
406 <li><a href=
"#ppdcOption" title=
"// Option">ppdcOption
</a></li>
407 <li><a href=
"#ppdcProfile" title=
"// Color Profile">ppdcProfile
</a></li>
408 <li><a href=
"#ppdcShared" title=
"// Shared Data Value">ppdcShared
</a></li>
409 <li><a href=
"#ppdcSource" title=
"// Source File">ppdcSource
</a></li>
410 <li><a href=
"#ppdcString" title=
"// Shared String">ppdcString
</a></li>
411 <li><a href=
"#ppdcVariable" title=
"// Variable Definition">ppdcVariable
</a></li>
413 <li><a href=
"#TYPES">Data Types
</a><ul class=
"code">
414 <li><a href=
"#ppdc_cs_t" title=
"">ppdc_cs_t
</a></li>
416 <li><a href=
"#VARIABLES">Variables
</a><ul class=
"code">
417 <li><a href=
"#ppdcSource" title=
"// Printer Driver Data">ppdcSource
</a></li>
419 <li><a href=
"#ENUMERATIONS">Constants
</a><ul class=
"code">
420 <li><a href=
"#ppdcCondFlags" title=
"// Condition flags">ppdcCondFlags
</a></li>
421 <li><a href=
"#ppdcDrvType" title=
"// Driver type">ppdcDrvType
</a></li>
422 <li><a href=
"#ppdcFontStatus" title=
"// Load status of font">ppdcFontStatus
</a></li>
423 <li><a href=
"#ppdcLineEnding" title=
"// Line endings">ppdcLineEnding
</a></li>
424 <li><a href=
"#ppdcOptSection" title=
"// Option section">ppdcOptSection
</a></li>
425 <li><a href=
"#ppdcOptType" title=
"// Option type">ppdcOptType
</a></li>
429 "$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
431 PPD Compiler API introduction for CUPS.
433 Copyright 2009 by Apple Inc.
435 These coded instructions, statements, and computer programs are the
436 property of Apple Inc. and are protected by Federal copyright
437 law. Distribution and use rights are outlined in the file "LICENSE.txt"
438 which should have been included with this file. If this file is
439 file is missing or damaged, see the license at "http://www.cups.org/".
442 <h2 class='title'
><a name='OVERVIEW'
>Overview
</a></h2>
444 <p>The PPD Compiler API provides access to CUPS driver information files and
445 methods for generating and importing PPD files.
</p>
446 <h2 class=
"title"><a name=
"CLASSES">Classes
</a></h2>
447 <h3 class=
"class"><a name=
"ppdcArray">ppdcArray
</a></h3>
448 <p class=
"description">// Shared Array
</p>
449 <p class=
"code">class ppdcArray : public ppdcShared {
<br>
450 public:
<br>
451 int count, alloc, current;
<br>
452 <a href=
"#ppdcShared">ppdcShared
</a> **data;
<br>
454 <h4 class=
"members">Members
</h4>
457 <dd class=
"description">Current element
</dd>
459 <dd class=
"description">Elements
</dd>
461 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
462 <p class=
"description"></p>
465 void add(
<a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
467 <h5 class=
"parameters">Parameters
</h5>
471 <h4 class=
"method"><a name=
"add">add
</a></h4>
472 <p class=
"description"></p>
475 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
477 <h5 class=
"parameters">Parameters
</h5>
481 <h4 class=
"method"><a name=
"first">first
</a></h4>
482 <p class=
"description">Return the first element in the array.
</p>
484 <a href=
"#ppdcShared">ppdcShared
</a> *first (void);
</p>
485 <h5 class=
"returnvalue">Return Value
</h5>
486 <p class=
"description"></p>
487 <h4 class=
"method"><a name=
"next">next
</a></h4>
488 <p class=
"description">Return the next element in the array.
</p>
490 <a href=
"#ppdcShared">ppdcShared
</a> *next (void);
</p>
491 <h5 class=
"returnvalue">Return Value
</h5>
492 <p class=
"description"></p>
493 <h4 class=
"method"><a name=
"ppdcArray">ppdcArray
</a></h4>
494 <p class=
"description"></p>
497 <a href=
"#ppdcArray">ppdcArray
</a> *a
<br>
499 <h5 class=
"parameters">Parameters
</h5>
503 <h4 class=
"method"><a name=
"remove">remove
</a></h4>
504 <p class=
"description"></p>
507 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
509 <h5 class=
"parameters">Parameters
</h5>
512 <dd class=
"description">Data element
</dd>
514 <h4 class=
"method"><a name=
"~ppdcArray">~ppdcArray
</a></h4>
515 <p class=
"description"></p>
517 void ~ppdcArray (void);
</p>
518 <h3 class=
"class"><a name=
"ppdcAttr">ppdcAttr
</a></h3>
519 <p class=
"description">// Attribute
</p>
520 <p class=
"code">class ppdcAttr : public ppdcShared {
<br>
521 public:
<br>
522 bool localizable;
<br>
523 <a href=
"#ppdcString">ppdcString
</a> *name, *selector, *text, *value;
<br>
525 <h4 class=
"members">Members
</h4>
527 <dt>localizable
</dt>
528 <dd class=
"description">Should this attribute be localized?
</dd>
530 <dd class=
"description">Value string
</dd>
532 <h4 class=
"method"><a name=
"ppdcAttr">ppdcAttr
</a></h4>
533 <p class=
"description"></p>
536 const char *n,
<br>
537 const char *s,
<br>
538 const char *t,
<br>
539 const char *v,
<br>
540 bool loc
<br>
542 <h5 class=
"parameters">Parameters
</h5>
545 <dd class=
"description">Name
</dd>
547 <dd class=
"description">Spec string
</dd>
549 <dd class=
"description">Human-readable text
</dd>
551 <dd class=
"description">Value
</dd>
553 <dd class=
"description">Localize this attribute?
</dd>
555 <h4 class=
"method"><a name=
"~ppdcAttr">~ppdcAttr
</a></h4>
556 <p class=
"description"></p>
558 void ~ppdcAttr (void);
</p>
559 <h3 class=
"class"><a name=
"ppdcCatalog">ppdcCatalog
</a></h3>
560 <p class=
"description">// Translation catalog
</p>
561 <p class=
"code">class ppdcCatalog : public ppdcShared {
<br>
562 public:
<br>
563 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
564 <a href=
"#ppdcString">ppdcString
</a> *locale;
<br>
565 <a href=
"#ppdcArray">ppdcArray
</a> *messages;
<br>
567 <h4 class=
"members">Members
</h4>
570 <dd class=
"description">Name of translation file
</dd>
572 <dd class=
"description">Name of locale
</dd>
574 <dd class=
"description">Array of translation messages
</dd>
576 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
577 <p class=
"description"></p>
580 void add_message(const char *id,
<br>
581 const char *string = NULL
<br>
583 <h5 class=
"parameters">Parameters
</h5>
588 <h4 class=
"method"><a name=
"add_message">add_message
</a></h4>
589 <p class=
"description"></p>
591 void add_message (
<br>
592 const char *id,
<br>
593 const char *string
<br>
595 <h5 class=
"parameters">Parameters
</h5>
598 <dd class=
"description">Message ID to add
</dd>
600 <dd class=
"description">Translation string
</dd>
602 <h4 class=
"method"><a name=
"find_message">find_message
</a></h4>
603 <p class=
"description"></p>
605 const char *find_message (
<br>
606 const char *id
<br>
608 <h5 class=
"parameters">Parameters
</h5>
611 <dd class=
"description">Message ID
</dd>
613 <h5 class=
"returnvalue">Return Value
</h5>
614 <p class=
"description">Message text
</p>
615 <h4 class=
"method"><a name=
"load_messages">load_messages
</a></h4>
616 <p class=
"description"></p>
618 int load_messages (
<br>
619 const char *f
<br>
621 <h5 class=
"parameters">Parameters
</h5>
624 <dd class=
"description">Message catalog file
</dd>
626 <h5 class=
"returnvalue">Return Value
</h5>
627 <p class=
"description">0 on success, -
1 on failure
</p>
628 <h4 class=
"method"><a name=
"ppdcCatalog">ppdcCatalog
</a></h4>
629 <p class=
"description"></p>
631 void ppdcCatalog (
<br>
632 const char *l,
<br>
633 const char *f
<br>
635 <h5 class=
"parameters">Parameters
</h5>
638 <dd class=
"description">Locale
</dd>
640 <dd class=
"description">Message catalog file
</dd>
642 <h4 class=
"method"><a name=
"save_messages">save_messages
</a></h4>
643 <p class=
"description"></p>
645 int save_messages (
<br>
646 const char *f
<br>
648 <h5 class=
"parameters">Parameters
</h5>
651 <dd class=
"description">File to save to
</dd>
653 <h5 class=
"returnvalue">Return Value
</h5>
654 <p class=
"description">0 on success, -
1 on error
</p>
655 <h4 class=
"method"><a name=
"~ppdcCatalog">~ppdcCatalog
</a></h4>
656 <p class=
"description"></p>
658 void ~ppdcCatalog (void);
</p>
659 <h3 class=
"class"><a name=
"ppdcChoice">ppdcChoice
</a></h3>
660 <p class=
"description">// Option Choice
</p>
661 <p class=
"code">class ppdcChoice : public ppdcShared {
<br>
662 public:
<br>
663 <a href=
"#ppdcString">ppdcString
</a> *name, *text, *code;
<br>
665 <h4 class=
"members">Members
</h4>
668 <dd class=
"description">PS code of choice
</dd>
670 <h4 class=
"method"><a name=
"ppdcChoice">ppdcChoice
</a></h4>
671 <p class=
"description"></p>
673 void ppdcChoice (
<br>
674 const char *n,
<br>
675 const char *t,
<br>
676 const char *c
<br>
678 <h5 class=
"parameters">Parameters
</h5>
681 <dd class=
"description">Name of choice
</dd>
683 <dd class=
"description">Text of choice
</dd>
685 <dd class=
"description">Code of choice
</dd>
687 <h4 class=
"method"><a name=
"~ppdcChoice">~ppdcChoice
</a></h4>
688 <p class=
"description"></p>
690 void ~ppdcChoice (void);
</p>
691 <h3 class=
"class"><a name=
"ppdcConstraint">ppdcConstraint
</a></h3>
692 <p class=
"description">// Constraint
</p>
693 <p class=
"code">class ppdcConstraint : public ppdcShared {
<br>
694 public:
<br>
695 <a href=
"#ppdcString">ppdcString
</a> *option1, *choice1, *option2, *choice2;
<br>
697 <h4 class=
"members">Members
</h4>
700 <dd class=
"description">Second choice
</dd>
702 <h4 class=
"method"><a name=
"ppdcConstraint">ppdcConstraint
</a></h4>
703 <p class=
"description"></p>
705 void ppdcConstraint (
<br>
706 const char *o1,
<br>
707 const char *c1,
<br>
708 const char *o2,
<br>
709 const char *c2
<br>
711 <h5 class=
"parameters">Parameters
</h5>
714 <dd class=
"description">First option
</dd>
716 <dd class=
"description">First choice
</dd>
718 <dd class=
"description">Second option
</dd>
720 <dd class=
"description">Second choice
</dd>
722 <h4 class=
"method"><a name=
"~ppdcConstraint">~ppdcConstraint
</a></h4>
723 <p class=
"description"></p>
725 void ~ppdcConstraint (void);
</p>
726 <h3 class=
"class"><a name=
"ppdcDriver">ppdcDriver
</a></h3>
727 <p class=
"description">// Printer Driver Data
</p>
728 <p class=
"code">class ppdcDriver : public ppdcShared {
<br>
729 public:
<br>
730 <a href=
"#ppdcArray">ppdcArray
</a> *copyright;
<br>
731 <a href=
"#ppdcString">ppdcString
</a> *custom_size_code;
<br>
732 <a href=
"#ppdcString">ppdcString
</a> *default_font, *default_size;
<br>
733 float left_margin, bottom_margin, right_margin, top_margin, max_width, max_length, min_width, min_length;
<br>
734 <a href=
"#ppdcArray">ppdcArray
</a> *attrs, *constraints, *filters, *fonts, *groups, *profiles, *sizes;
<br>
735 int model_number, manual_copies, color_device, throughput;
<br>
736 <a href=
"#ppdcDrvType">ppdcDrvType
</a> type;
<br>
737 int variable_paper_size;
<br>
738 <a href=
"#ppdcString">ppdcString
</a> *manufacturer, *model_name, *file_name, *pc_file_name, *version;
<br>
740 <h4 class=
"members">Members
</h4>
743 <dd class=
"description">Copyright strings
</dd>
744 <dt>custom_size_code
</dt>
745 <dd class=
"description">Custom page size code, if any
</dd>
746 <dt>default_size
</dt>
747 <dd class=
"description">Default size option
</dd>
749 <dd class=
"description">Minimum length (points)
</dd>
751 <dd class=
"description">Fixed sizes
</dd>
753 <dd class=
"description">Throughput in pages per minute
</dd>
755 <dd class=
"description">Driver type
</dd>
756 <dt>variable_paper_size
</dt>
757 <dd class=
"description">Support variable sizes?
</dd>
759 <dd class=
"description">Version number
</dd>
761 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
762 <p class=
"description"></p>
765 void add_attr(
<a href=
"#ppdcAttr">ppdcAttr
</a> *a
<br>
767 <h5 class=
"parameters">Parameters
</h5>
771 <h4 class=
"method"><a name=
"add_constraint">add_constraint
</a></h4>
772 <p class=
"description"></p>
774 void add_constraint (
<br>
775 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *c
<br>
777 <h5 class=
"parameters">Parameters
</h5>
781 <h4 class=
"method"><a name=
"add_copyright">add_copyright
</a></h4>
782 <p class=
"description"></p>
784 void add_copyright (
<br>
785 const char *c
<br>
787 <h5 class=
"parameters">Parameters
</h5>
791 <h4 class=
"method"><a name=
"add_filter">add_filter
</a></h4>
792 <p class=
"description"></p>
794 void add_filter (
<br>
795 <a href=
"#ppdcFilter">ppdcFilter
</a> *f
<br>
797 <h5 class=
"parameters">Parameters
</h5>
801 <h4 class=
"method"><a name=
"add_font">add_font
</a></h4>
802 <p class=
"description"></p>
805 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
807 <h5 class=
"parameters">Parameters
</h5>
811 <h4 class=
"method"><a name=
"add_group">add_group
</a></h4>
812 <p class=
"description"></p>
815 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
817 <h5 class=
"parameters">Parameters
</h5>
821 <h4 class=
"method"><a name=
"add_profile">add_profile
</a></h4>
822 <p class=
"description"></p>
824 void add_profile (
<br>
825 <a href=
"#ppdcProfile">ppdcProfile
</a> *p
<br>
827 <h5 class=
"parameters">Parameters
</h5>
831 <h4 class=
"method"><a name=
"add_size">add_size
</a></h4>
832 <p class=
"description"></p>
835 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
837 <h5 class=
"parameters">Parameters
</h5>
841 <h4 class=
"method"><a name=
"find_attr">find_attr
</a></h4>
842 <p class=
"description"></p>
844 <a href=
"#ppdcAttr">ppdcAttr
</a> *find_attr (
<br>
845 const char *k,
<br>
846 const char *s
<br>
848 <h5 class=
"parameters">Parameters
</h5>
851 <dd class=
"description">Keyword string
</dd>
853 <dd class=
"description">Spec string
</dd>
855 <h5 class=
"returnvalue">Return Value
</h5>
856 <p class=
"description">Attribute or NULL
</p>
857 <h4 class=
"method"><a name=
"find_group">find_group
</a></h4>
858 <p class=
"description"></p>
860 <a href=
"#ppdcGroup">ppdcGroup
</a> *find_group (
<br>
861 const char *n
<br>
863 <h5 class=
"parameters">Parameters
</h5>
866 <dd class=
"description">Group name
</dd>
868 <h5 class=
"returnvalue">Return Value
</h5>
869 <p class=
"description">Matching group or NULL
</p>
870 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
871 <p class=
"description"></p>
873 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
874 const char *n
<br>
876 <h5 class=
"parameters">Parameters
</h5>
879 <dd class=
"description">Option name
</dd>
881 <h5 class=
"returnvalue">Return Value
</h5>
882 <p class=
"description">Matching option or NULL
</p>
883 <h4 class=
"method"><a name=
"find_option_group">find_option_group
</a></h4>
884 <p class=
"description"></p>
886 <a href=
"#ppdcOption">ppdcOption
</a> *find_option_group (
<br>
887 const char *n,
<br>
888 <a href=
"#ppdcGroup">ppdcGroup
</a> **mg
<br>
890 <h5 class=
"parameters">Parameters
</h5>
893 <dd class=
"description">Option name
</dd>
895 <dd class=
"description">Matching group or NULL
</dd>
897 <h5 class=
"returnvalue">Return Value
</h5>
898 <p class=
"description">Matching option or NULL
</p>
899 <h4 class=
"method"><a name=
"ppdcDriver">ppdcDriver
</a></h4>
900 <p class=
"description"></p>
902 void ppdcDriver (
<br>
903 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
905 <h5 class=
"parameters">Parameters
</h5>
908 <dd class=
"description">Printer driver template
</dd>
910 <h4 class=
"method"><a name=
"set_custom_size_code">set_custom_size_code
</a></h4>
911 <p class=
"description"></p>
913 void set_custom_size_code (
<br>
914 const char *c
<br>
916 <h5 class=
"parameters">Parameters
</h5>
919 <dd class=
"description">CustomPageSize code
</dd>
921 <h4 class=
"method"><a name=
"set_default_font">set_default_font
</a></h4>
922 <p class=
"description"></p>
924 void set_default_font (
<br>
925 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
927 <h5 class=
"parameters">Parameters
</h5>
930 <dd class=
"description">Font
</dd>
932 <h4 class=
"method"><a name=
"set_default_size">set_default_size
</a></h4>
933 <p class=
"description"></p>
935 void set_default_size (
<br>
936 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
938 <h5 class=
"parameters">Parameters
</h5>
941 <dd class=
"description">Media size
</dd>
943 <h4 class=
"method"><a name=
"set_file_name">set_file_name
</a></h4>
944 <p class=
"description"></p>
946 void set_file_name (
<br>
947 const char *f
<br>
949 <h5 class=
"parameters">Parameters
</h5>
952 <dd class=
"description">Filename
</dd>
954 <h4 class=
"method"><a name=
"set_manufacturer">set_manufacturer
</a></h4>
955 <p class=
"description"></p>
957 void set_manufacturer (
<br>
958 const char *m
<br>
960 <h5 class=
"parameters">Parameters
</h5>
963 <dd class=
"description">Model name
</dd>
965 <h4 class=
"method"><a name=
"set_model_name">set_model_name
</a></h4>
966 <p class=
"description"></p>
968 void set_model_name (
<br>
969 const char *m
<br>
971 <h5 class=
"parameters">Parameters
</h5>
974 <dd class=
"description">Model name
</dd>
976 <h4 class=
"method"><a name=
"set_pc_file_name">set_pc_file_name
</a></h4>
977 <p class=
"description"></p>
979 void set_pc_file_name (
<br>
980 const char *f
<br>
982 <h5 class=
"parameters">Parameters
</h5>
985 <dd class=
"description">Filename
</dd>
987 <h4 class=
"method"><a name=
"set_version">set_version
</a></h4>
988 <p class=
"description"></p>
990 void set_version (
<br>
991 const char *v
<br>
993 <h5 class=
"parameters">Parameters
</h5>
996 <dd class=
"description">Version
</dd>
998 <h4 class=
"method"><a name=
"write_ppd_file">write_ppd_file
</a></h4>
999 <p class=
"description"></p>
1001 int write_ppd_file (
<br>
1002 cups_file_t *fp,
<br>
1003 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *catalog,
<br>
1004 <a href=
"#ppdcArray">ppdcArray
</a> *locales,
<br>
1005 <a href=
"#ppdcSource">ppdcSource
</a> *src,
<br>
1006 <a href=
"#ppdcLineEnding">ppdcLineEnding
</a> le
<br>
1008 <h5 class=
"parameters">Parameters
</h5>
1011 <dd class=
"description">PPD file
</dd>
1013 <dd class=
"description">Message catalog
</dd>
1015 <dd class=
"description">Additional languages to add
</dd>
1017 <dd class=
"description">Driver source
</dd>
1019 <dd class=
"description">Line endings to use
</dd>
1021 <h5 class=
"returnvalue">Return Value
</h5>
1022 <p class=
"description">0 on success, -
1 on failure
</p>
1023 <h4 class=
"method"><a name=
"~ppdcDriver">~ppdcDriver
</a></h4>
1024 <p class=
"description"></p>
1026 void ~ppdcDriver (void);
</p>
1027 <h3 class=
"class"><a name=
"ppdcFile">ppdcFile
</a></h3>
1028 <p class=
"description">// File
</p>
1029 <p class=
"code">class ppdcFile {
<br>
1030 public:
<br>
1031 bool close_on_delete;
<br>
1032 const char *filename;
<br>
1033 cups_file_t *fp;
<br>
1034 int line;
<br>
1036 <h4 class=
"members">Members
</h4>
1038 <dt>close_on_delete
</dt>
1039 <dd class=
"description">Close file on delete?
</dd>
1041 <dd class=
"description">Filename
</dd>
1043 <dd class=
"description">File pointer
</dd>
1045 <dd class=
"description">Line in file
</dd>
1047 <h4 class=
"method"><a name=
"get">get
</a></h4>
1048 <p class=
"description">Get a character from a file.
</p>
1051 <h5 class=
"returnvalue">Return Value
</h5>
1052 <p class=
"description"></p>
1053 <h4 class=
"method"><a name=
"peek">peek
</a></h4>
1054 <p class=
"description"></p>
1056 int peek (void);
</p>
1057 <h5 class=
"returnvalue">Return Value
</h5>
1058 <p class=
"description">Next character in file
</p>
1059 <h4 class=
"method"><a name=
"ppdcFile">ppdcFile
</a></h4>
1060 <p class=
"description"></p>
1063 const char *f,
<br>
1064 cups_file_t *ffp
<br>
1066 <h5 class=
"parameters">Parameters
</h5>
1069 <dd class=
"description">File to open
</dd>
1071 <dd class=
"description">File pointer to use
</dd>
1073 <h4 class=
"method"><a name=
"~ppdcFile">~ppdcFile
</a></h4>
1074 <p class=
"description"></p>
1076 void ~ppdcFile (void);
</p>
1077 <h3 class=
"class"><a name=
"ppdcFilter">ppdcFilter
</a></h3>
1078 <p class=
"description">// Filter Program
</p>
1079 <p class=
"code">class ppdcFilter : public ppdcShared {
<br>
1080 public:
<br>
1081 int cost;
<br>
1082 <a href=
"#ppdcString">ppdcString
</a> *mime_type, *program;
<br>
1084 <h4 class=
"members">Members
</h4>
1087 <dd class=
"description">Relative cost of filter
</dd>
1089 <dd class=
"description">Filter program
</dd>
1091 <h4 class=
"method"><a name=
"ppdcFilter">ppdcFilter
</a></h4>
1092 <p class=
"description"></p>
1094 void ppdcFilter (
<br>
1095 const char *t,
<br>
1096 const char *p,
<br>
1097 int c
<br>
1099 <h5 class=
"parameters">Parameters
</h5>
1102 <dd class=
"description">MIME type
</dd>
1104 <dd class=
"description">Filter program
</dd>
1106 <dd class=
"description">Relative cost
</dd>
1108 <h4 class=
"method"><a name=
"~ppdcFilter">~ppdcFilter
</a></h4>
1109 <p class=
"description"></p>
1111 void ~ppdcFilter (void);
</p>
1112 <h3 class=
"class"><a name=
"ppdcFont">ppdcFont
</a></h3>
1113 <p class=
"description">// Shared Font
</p>
1114 <p class=
"code">class ppdcFont : public ppdcShared {
<br>
1115 public:
<br>
1116 <a href=
"#ppdcString">ppdcString
</a> *name, *encoding, *version, *charset;
<br>
1117 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> status;
<br>
1119 <h4 class=
"members">Members
</h4>
1122 <dd class=
"description">Font charset
</dd>
1124 <dd class=
"description">Font status (ROM or Disk)
</dd>
1126 <h4 class=
"method"><a name=
"ppdcFont">ppdcFont
</a></h4>
1127 <p class=
"description"></p>
1130 const char *n,
<br>
1131 const char *e,
<br>
1132 const char *v,
<br>
1133 const char *c,
<br>
1134 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> s
<br>
1136 <h5 class=
"parameters">Parameters
</h5>
1139 <dd class=
"description">Name of font
</dd>
1141 <dd class=
"description">Font encoding
</dd>
1143 <dd class=
"description">Font version
</dd>
1145 <dd class=
"description">Font charset
</dd>
1147 <dd class=
"description">Font status
</dd>
1149 <h4 class=
"method"><a name=
"~ppdcFont">~ppdcFont
</a></h4>
1150 <p class=
"description"></p>
1152 void ~ppdcFont (void);
</p>
1153 <h3 class=
"class"><a name=
"ppdcGroup">ppdcGroup
</a></h3>
1154 <p class=
"description">// Group of Options
</p>
1155 <p class=
"code">class ppdcGroup : public ppdcShared {
<br>
1156 public:
<br>
1157 <a href=
"#ppdcArray">ppdcArray
</a> *options;
<br>
1158 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1160 <h4 class=
"members">Members
</h4>
1163 <dd class=
"description">Options
</dd>
1165 <dd class=
"description">Human-readable text of option
</dd>
1167 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1168 <p class=
"description"></p>
1170 void PPDC_NAME (
<br>
1171 void add_option(
<a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1173 <h5 class=
"parameters">Parameters
</h5>
1177 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
1178 <p class=
"description">Find an option in a group.
</p>
1180 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
1181 const char *n
<br>
1183 <h5 class=
"parameters">Parameters
</h5>
1186 <dd class=
"description">Name of option
</dd>
1188 <h5 class=
"returnvalue">Return Value
</h5>
1189 <p class=
"description"></p>
1190 <h4 class=
"method"><a name=
"ppdcGroup">ppdcGroup
</a></h4>
1191 <p class=
"description"></p>
1193 void ppdcGroup (
<br>
1194 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1196 <h5 class=
"parameters">Parameters
</h5>
1199 <dd class=
"description">Group template
</dd>
1201 <h4 class=
"method"><a name=
"~ppdcGroup">~ppdcGroup
</a></h4>
1202 <p class=
"description"></p>
1204 void ~ppdcGroup (void);
</p>
1205 <h3 class=
"class"><a name=
"ppdcInteger">ppdcInteger
</a></h3>
1206 <p class=
"description">// Shared integer
</p>
1207 <p class=
"code">class ppdcInteger : public ppdcShared {
<br>
1208 public:
<br>
1209 int *value;
<br>
1211 <h4 class=
"members">Members
</h4>
1214 <dd class=
"description">Integer value
</dd>
1216 <h4 class=
"method"><a name=
"ppdcInteger">ppdcInteger
</a></h4>
1217 <p class=
"description">Integer value
</p>
1219 void ppdcInteger (
<br>
1220 int *v
<br>
1222 <h5 class=
"parameters">Parameters
</h5>
1226 <h3 class=
"class"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h3>
1227 <p class=
"description">// Media Size
</p>
1228 <p class=
"code">class ppdcMediaSize : public ppdcShared {
<br>
1229 public:
<br>
1230 <a href=
"#ppdcString">ppdcString
</a> *size_code, *region_code;
<br>
1231 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1232 float width, length, left, bottom, right, top;
<br>
1234 <h4 class=
"members">Members
</h4>
1236 <dt>region_code
</dt>
1237 <dd class=
"description">PageRegion code, if any
</dd>
1239 <dd class=
"description">Human-readable text
</dd>
1241 <dd class=
"description">Top limit in points
</dd>
1243 <h4 class=
"method"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h4>
1244 <p class=
"description"></p>
1246 void ppdcMediaSize (
<br>
1247 const char *n,
<br>
1248 const char *t,
<br>
1249 float w,
<br>
1250 float l,
<br>
1251 float lm,
<br>
1252 float bm,
<br>
1253 float rm,
<br>
1254 float tm,
<br>
1255 const char *sc,
<br>
1256 const char *rc
<br>
1258 <h5 class=
"parameters">Parameters
</h5>
1261 <dd class=
"description">Name of media size
</dd>
1263 <dd class=
"description">Text of media size
</dd>
1265 <dd class=
"description">Width in points
</dd>
1267 <dd class=
"description">Length in points
</dd>
1269 <dd class=
"description">Left margin in points
</dd>
1271 <dd class=
"description">Bottom margin in points
</dd>
1273 <dd class=
"description">Right margin in points
</dd>
1275 <dd class=
"description">Top margin in points
</dd>
1277 <dd class=
"description">PageSize code, if any
</dd>
1279 <dd class=
"description">PageRegion code, if any
</dd>
1281 <h4 class=
"method"><a name=
"~ppdcMediaSize">~ppdcMediaSize
</a></h4>
1282 <p class=
"description"></p>
1284 void ~ppdcMediaSize (void);
</p>
1285 <h3 class=
"class"><a name=
"ppdcMessage">ppdcMessage
</a></h3>
1286 <p class=
"description">// Translation message
</p>
1287 <p class=
"code">class ppdcMessage : public ppdcShared {
<br>
1288 public:
<br>
1289 <a href=
"#ppdcString">ppdcString
</a> *id, *string;
<br>
1291 <h4 class=
"members">Members
</h4>
1294 <dd class=
"description">Translation string
</dd>
1296 <h4 class=
"method"><a name=
"ppdcMessage">ppdcMessage
</a></h4>
1297 <p class=
"description"></p>
1299 void ppdcMessage (
<br>
1300 const char *i,
<br>
1301 const char *s
<br>
1303 <h5 class=
"parameters">Parameters
</h5>
1306 <dd class=
"description">ID
</dd>
1308 <dd class=
"description">Text
</dd>
1310 <h4 class=
"method"><a name=
"~ppdcMessage">~ppdcMessage
</a></h4>
1311 <p class=
"description"></p>
1313 void ~ppdcMessage (void);
</p>
1314 <h3 class=
"class"><a name=
"ppdcOption">ppdcOption
</a></h3>
1315 <p class=
"description">// Option
</p>
1316 <p class=
"code">class ppdcOption : public ppdcShared {
<br>
1317 public:
<br>
1318 <a href=
"#ppdcArray">ppdcArray
</a> *choices;
<br>
1319 <a href=
"#ppdcString">ppdcString
</a> *defchoice;
<br>
1320 float order;
<br>
1321 <a href=
"#ppdcOptSection">ppdcOptSection
</a> section;
<br>
1322 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1323 <a href=
"#ppdcOptType">ppdcOptType
</a> type;
<br>
1325 <h4 class=
"members">Members
</h4>
1328 <dd class=
"description">Choices
</dd>
1330 <dd class=
"description">Default choice
</dd>
1332 <dd class=
"description">Order number
</dd>
1334 <dd class=
"description">Section for option code
</dd>
1336 <dd class=
"description">Human-readable text of option
</dd>
1338 <dd class=
"description">Type of option
</dd>
1340 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1341 <p class=
"description"></p>
1343 void PPDC_NAME (
<br>
1344 void add_choice(
<a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1346 <h5 class=
"parameters">Parameters
</h5>
1350 <h4 class=
"method"><a name=
"find_choice">find_choice
</a></h4>
1351 <p class=
"description"></p>
1353 <a href=
"#ppdcChoice">ppdcChoice
</a> *find_choice (
<br>
1354 const char *n
<br>
1356 <h5 class=
"parameters">Parameters
</h5>
1359 <dd class=
"description">Name of choice
</dd>
1361 <h5 class=
"returnvalue">Return Value
</h5>
1362 <p class=
"description">Choice or NULL
</p>
1363 <h4 class=
"method"><a name=
"ppdcOption">ppdcOption
</a></h4>
1364 <p class=
"description"></p>
1366 void ppdcOption (
<br>
1367 <a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1369 <h5 class=
"parameters">Parameters
</h5>
1372 <dd class=
"description">Template option
</dd>
1374 <h4 class=
"method"><a name=
"set_defchoice">set_defchoice
</a></h4>
1375 <p class=
"description"></p>
1377 void set_defchoice (
<br>
1378 <a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1380 <h5 class=
"parameters">Parameters
</h5>
1383 <dd class=
"description">Choice
</dd>
1385 <h4 class=
"method"><a name=
"~ppdcOption">~ppdcOption
</a></h4>
1386 <p class=
"description"></p>
1388 void ~ppdcOption (void);
</p>
1389 <h3 class=
"class"><a name=
"ppdcProfile">ppdcProfile
</a></h3>
1390 <p class=
"description">// Color Profile
</p>
1391 <p class=
"code">class ppdcProfile : public ppdcShared {
<br>
1392 public:
<br>
1393 <a href=
"#ppdcString">ppdcString
</a> *resolution, *media_type;
<br>
1394 float density, gamma, profile[
9];
<br>
1396 <h4 class=
"members">Members
</h4>
1398 <dt>media_type
</dt>
1399 <dd class=
"description">Media type name
</dd>
1400 <dt>profile[
9]
</dt>
1401 <dd class=
"description">Color profile matrix
</dd>
1403 <h4 class=
"method"><a name=
"ppdcProfile">ppdcProfile
</a></h4>
1404 <p class=
"description"></p>
1406 void ppdcProfile (
<br>
1407 const char *r,
<br>
1408 const char *m,
<br>
1409 float d,
<br>
1410 float g,
<br>
1411 const float *p
<br>
1413 <h5 class=
"parameters">Parameters
</h5>
1416 <dd class=
"description">Resolution name
</dd>
1418 <dd class=
"description">Media type name
</dd>
1420 <dd class=
"description">Density
</dd>
1422 <dd class=
"description">Gamma
</dd>
1424 <dd class=
"description">3x3 transform matrix
</dd>
1426 <h4 class=
"method"><a name=
"~ppdcProfile">~ppdcProfile
</a></h4>
1427 <p class=
"description"></p>
1429 void ~ppdcProfile (void);
</p>
1430 <h3 class=
"class"><a name=
"ppdcShared">ppdcShared
</a></h3>
1431 <p class=
"description">// Shared Data Value
</p>
1432 <p class=
"code">class ppdcShared {
<br>
1433 private:
<br>
1434 int use;
<br>
1436 <h4 class=
"members">Members
</h4>
1439 <dd class=
"description">Use count (delete when
0)
</dd>
1441 <h4 class=
"method"><a name=
"class_name">class_name
</a></h4>
1442 <p class=
"description"></p>
1444 virtual const char *class_name (void);
</p>
1445 <h5 class=
"returnvalue">Return Value
</h5>
1446 <p class=
"description"></p>
1447 <h4 class=
"method"><a name=
"ppdcShared">ppdcShared
</a></h4>
1448 <p class=
"description"></p>
1450 void ppdcShared (void);
</p>
1451 <h4 class=
"method"><a name=
"release">release
</a></h4>
1452 <p class=
"description"></p>
1454 void release (void);
</p>
1455 <h4 class=
"method"><a name=
"retain">retain
</a></h4>
1456 <p class=
"description"></p>
1458 void retain (void);
</p>
1459 <h4 class=
"method"><a name=
"~ppdcShared">~ppdcShared
</a></h4>
1460 <p class=
"description"></p>
1462 void ~ppdcShared (void);
</p>
1463 <h3 class=
"class"><a name=
"ppdcSource">ppdcSource
</a></h3>
1464 <p class=
"description">// Source File
</p>
1465 <p class=
"code">class ppdcSource : public ppdcShared {
<br>
1466 public:
<br>
1467 int cond_state, *cond_current, cond_stack[
101];
<br>
1468 static const char *driver_types[];
<br>
1469 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
1470 static
<a href=
"#ppdcArray">ppdcArray
</a> *includes;
<br>
1471 <a href=
"#ppdcArray">ppdcArray
</a> *base_fonts, *drivers, *po_files, *sizes, *vars;
<br>
1473 <h4 class=
"members">Members
</h4>
1475 <dt>cond_stack[
101]
</dt>
1476 <dd class=
"description">#if state stack
</dd>
1477 <dt>driver_types[]
</dt>
1478 <dd class=
"description">Driver types
</dd>
1480 <dd class=
"description">Filename
</dd>
1482 <dd class=
"description">Include directories
</dd>
1484 <dd class=
"description">Defined variables
</dd>
1486 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1487 <p class=
"description"></p>
1489 void PPDC_NAME (
<br>
1490 static void add_include(const char *d
<br>
1492 <h5 class=
"parameters">Parameters
</h5>
1496 <h4 class=
"method"><a name=
"add_include">add_include
</a></h4>
1497 <p class=
"description"></p>
1499 void add_include (
<br>
1500 const char *d
<br>
1502 <h5 class=
"parameters">Parameters
</h5>
1505 <dd class=
"description">Include directory
</dd>
1507 <h4 class=
"method"><a name=
"find_driver">find_driver
</a></h4>
1508 <p class=
"description"></p>
1510 <a href=
"#ppdcDriver">ppdcDriver
</a> *find_driver (
<br>
1511 const char *f
<br>
1513 <h5 class=
"parameters">Parameters
</h5>
1516 <dd class=
"description">Driver file name
</dd>
1518 <h5 class=
"returnvalue">Return Value
</h5>
1519 <p class=
"description">Driver
</p>
1520 <h4 class=
"method"><a name=
"find_include">find_include
</a></h4>
1521 <p class=
"description"></p>
1523 char *find_include (
<br>
1524 const char *f,
<br>
1525 const char *base,
<br>
1526 char *n,
<br>
1527 int nlen
<br>
1529 <h5 class=
"parameters">Parameters
</h5>
1532 <dd class=
"description">Include filename
</dd>
1534 <dd class=
"description">Current directory
</dd>
1536 <dd class=
"description">Path buffer
</dd>
1538 <dd class=
"description">Path buffer length
</dd>
1540 <h5 class=
"returnvalue">Return Value
</h5>
1541 <p class=
"description">Found path or NULL
</p>
1542 <h4 class=
"method"><a name=
"find_po">find_po
</a></h4>
1543 <p class=
"description"></p>
1545 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *find_po (
<br>
1546 const char *l
<br>
1548 <h5 class=
"parameters">Parameters
</h5>
1551 <dd class=
"description">Locale name
</dd>
1553 <h5 class=
"returnvalue">Return Value
</h5>
1554 <p class=
"description">Message catalog or NULL
</p>
1555 <h4 class=
"method"><a name=
"find_size">find_size
</a></h4>
1556 <p class=
"description"></p>
1558 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *find_size (
<br>
1559 const char *s
<br>
1561 <h5 class=
"parameters">Parameters
</h5>
1564 <dd class=
"description">Size name
</dd>
1566 <h5 class=
"returnvalue">Return Value
</h5>
1567 <p class=
"description">Size
</p>
1568 <h4 class=
"method"><a name=
"find_variable">find_variable
</a></h4>
1569 <p class=
"description"></p>
1571 <a href=
"#ppdcVariable">ppdcVariable
</a> *find_variable (
<br>
1572 const char *n
<br>
1574 <h5 class=
"parameters">Parameters
</h5>
1577 <dd class=
"description">Variable name
</dd>
1579 <h5 class=
"returnvalue">Return Value
</h5>
1580 <p class=
"description">Variable
</p>
1581 <h4 class=
"method"><a name=
"get_attr">get_attr
</a></h4>
1582 <p class=
"description"></p>
1584 <a href=
"#ppdcAttr">ppdcAttr
</a> *get_attr (
<br>
1585 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1586 bool loc
<br>
1588 <h5 class=
"parameters">Parameters
</h5>
1591 <dd class=
"description">File to read
</dd>
1593 <dd class=
"description">Localize this attribute?
</dd>
1595 <h5 class=
"returnvalue">Return Value
</h5>
1596 <p class=
"description">Attribute
</p>
1597 <h4 class=
"method"><a name=
"get_boolean">get_boolean
</a></h4>
1598 <p class=
"description"></p>
1600 int get_boolean (
<br>
1601 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1603 <h5 class=
"parameters">Parameters
</h5>
1606 <dd class=
"description">File to read
</dd>
1608 <h5 class=
"returnvalue">Return Value
</h5>
1609 <p class=
"description">Boolean value
</p>
1610 <h4 class=
"method"><a name=
"get_choice">get_choice
</a></h4>
1611 <p class=
"description"></p>
1613 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_choice (
<br>
1614 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1616 <h5 class=
"parameters">Parameters
</h5>
1619 <dd class=
"description">File to read
</dd>
1621 <h5 class=
"returnvalue">Return Value
</h5>
1622 <p class=
"description">Choice data
</p>
1623 <h4 class=
"method"><a name=
"get_color_model">get_color_model
</a></h4>
1624 <p class=
"description"></p>
1626 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_color_model (
<br>
1627 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1629 <h5 class=
"parameters">Parameters
</h5>
1632 <dd class=
"description">File to read
</dd>
1634 <h5 class=
"returnvalue">Return Value
</h5>
1635 <p class=
"description">Choice data
</p>
1636 <h4 class=
"method"><a name=
"get_color_order">get_color_order
</a></h4>
1637 <p class=
"description"></p>
1639 int get_color_order (
<br>
1640 const char *co
<br>
1642 <h5 class=
"parameters">Parameters
</h5>
1645 <dd class=
"description">Color order string
</dd>
1647 <h5 class=
"returnvalue">Return Value
</h5>
1648 <p class=
"description">Color order value
</p>
1649 <h4 class=
"method"><a name=
"get_color_profile">get_color_profile
</a></h4>
1650 <p class=
"description"></p>
1652 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_color_profile (
<br>
1653 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1655 <h5 class=
"parameters">Parameters
</h5>
1658 <dd class=
"description">File to read
</dd>
1660 <h5 class=
"returnvalue">Return Value
</h5>
1661 <p class=
"description">Color profile
</p>
1662 <h4 class=
"method"><a name=
"get_color_space">get_color_space
</a></h4>
1663 <p class=
"description"></p>
1665 int get_color_space (
<br>
1666 const char *cs
<br>
1668 <h5 class=
"parameters">Parameters
</h5>
1671 <dd class=
"description">Colorspace string
</dd>
1673 <h5 class=
"returnvalue">Return Value
</h5>
1674 <p class=
"description">Colorspace value
</p>
1675 <h4 class=
"method"><a name=
"get_constraint">get_constraint
</a></h4>
1676 <p class=
"description"></p>
1678 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *get_constraint (
<br>
1679 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1681 <h5 class=
"parameters">Parameters
</h5>
1684 <dd class=
"description">File to read
</dd>
1686 <h5 class=
"returnvalue">Return Value
</h5>
1687 <p class=
"description">Constraint
</p>
1688 <h4 class=
"method"><a name=
"get_custom_size">get_custom_size
</a></h4>
1689 <p class=
"description"></p>
1691 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_custom_size (
<br>
1692 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1694 <h5 class=
"parameters">Parameters
</h5>
1697 <dd class=
"description">File to read
</dd>
1699 <h5 class=
"returnvalue">Return Value
</h5>
1700 <p class=
"description">Media size
</p>
1701 <h4 class=
"method"><a name=
"get_duplex">get_duplex
</a></h4>
1702 <p class=
"description"></p>
1704 void get_duplex (
<br>
1705 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1706 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1708 <h5 class=
"parameters">Parameters
</h5>
1711 <dd class=
"description">File to read from
</dd>
1713 <dd class=
"description">Current driver
</dd>
1715 <h4 class=
"method"><a name=
"get_filter">get_filter
</a></h4>
1716 <p class=
"description"></p>
1718 <a href=
"#ppdcFilter">ppdcFilter
</a> *get_filter (
<br>
1719 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1721 <h5 class=
"parameters">Parameters
</h5>
1724 <dd class=
"description">File to read
</dd>
1726 <h5 class=
"returnvalue">Return Value
</h5>
1727 <p class=
"description">Filter
</p>
1728 <h4 class=
"method"><a name=
"get_float">get_float
</a></h4>
1729 <p class=
"description"></p>
1731 float get_float (
<br>
1732 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1734 <h5 class=
"parameters">Parameters
</h5>
1737 <dd class=
"description">File to read
</dd>
1739 <h5 class=
"returnvalue">Return Value
</h5>
1740 <p class=
"description">Number
</p>
1741 <h4 class=
"method"><a name=
"get_font">get_font
</a></h4>
1742 <p class=
"description"></p>
1744 <a href=
"#ppdcFont">ppdcFont
</a> *get_font (
<br>
1745 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1747 <h5 class=
"parameters">Parameters
</h5>
1750 <dd class=
"description">File to read
</dd>
1752 <h5 class=
"returnvalue">Return Value
</h5>
1753 <p class=
"description">Font data
</p>
1754 <h4 class=
"method"><a name=
"get_generic">get_generic
</a></h4>
1755 <p class=
"description"></p>
1757 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_generic (
<br>
1758 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1759 const char *keyword,
<br>
1760 const char *tattr,
<br>
1761 const char *nattr
<br>
1763 <h5 class=
"parameters">Parameters
</h5>
1766 <dd class=
"description">File to read
</dd>
1768 <dd class=
"description">Keyword name
</dd>
1770 <dd class=
"description">Text attribute
</dd>
1772 <dd class=
"description">Numeric attribute
</dd>
1774 <h5 class=
"returnvalue">Return Value
</h5>
1775 <p class=
"description">Choice data
</p>
1776 <h4 class=
"method"><a name=
"get_group">get_group
</a></h4>
1777 <p class=
"description"></p>
1779 <a href=
"#ppdcGroup">ppdcGroup
</a> *get_group (
<br>
1780 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1781 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1783 <h5 class=
"parameters">Parameters
</h5>
1786 <dd class=
"description">File to read
</dd>
1788 <dd class=
"description">Printer driver
</dd>
1790 <h5 class=
"returnvalue">Return Value
</h5>
1791 <p class=
"description">Group
</p>
1792 <h4 class=
"method"><a name=
"get_installable">get_installable
</a></h4>
1793 <p class=
"description"></p>
1795 <a href=
"#ppdcOption">ppdcOption
</a> *get_installable (
<br>
1796 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1798 <h5 class=
"parameters">Parameters
</h5>
1801 <dd class=
"description">File to read
</dd>
1803 <h5 class=
"returnvalue">Return Value
</h5>
1804 <p class=
"description">Option
</p>
1805 <h4 class=
"method"><a name=
"get_integer">get_integer
</a></h4>
1806 <p class=
"description"></p>
1808 int get_integer (
<br>
1809 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1811 <h5 class=
"parameters">Parameters
</h5>
1814 <dd class=
"description">File to read
</dd>
1816 <h5 class=
"returnvalue">Return Value
</h5>
1817 <p class=
"description">Integer value
</p>
1818 <h4 class=
"method"><a name=
"get_measurement">get_measurement
</a></h4>
1819 <p class=
"description"></p>
1821 float get_measurement (
<br>
1822 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1824 <h5 class=
"parameters">Parameters
</h5>
1827 <dd class=
"description">File to read
</dd>
1829 <h5 class=
"returnvalue">Return Value
</h5>
1830 <p class=
"description">Measurement value in points
</p>
1831 <h4 class=
"method"><a name=
"get_option">get_option
</a></h4>
1832 <p class=
"description"></p>
1834 <a href=
"#ppdcOption">ppdcOption
</a> *get_option (
<br>
1835 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1836 <a href=
"#ppdcDriver">ppdcDriver
</a> *d,
<br>
1837 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1839 <h5 class=
"parameters">Parameters
</h5>
1842 <dd class=
"description">File to read
</dd>
1844 <dd class=
"description">Printer driver
</dd>
1846 <dd class=
"description">Current group
</dd>
1848 <h5 class=
"returnvalue">Return Value
</h5>
1849 <p class=
"description">Option
</p>
1850 <h4 class=
"method"><a name=
"get_po">get_po
</a></h4>
1851 <p class=
"description"></p>
1853 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *get_po (
<br>
1854 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1856 <h5 class=
"parameters">Parameters
</h5>
1859 <dd class=
"description">File to read
</dd>
1861 <h5 class=
"returnvalue">Return Value
</h5>
1862 <p class=
"description">Message catalog
</p>
1863 <h4 class=
"method"><a name=
"get_resolution">get_resolution
</a></h4>
1864 <p class=
"description"></p>
1866 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_resolution (
<br>
1867 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1869 <h5 class=
"parameters">Parameters
</h5>
1872 <dd class=
"description">File to read
</dd>
1874 <h5 class=
"returnvalue">Return Value
</h5>
1875 <p class=
"description">Choice data
</p>
1876 <h4 class=
"method"><a name=
"get_simple_profile">get_simple_profile
</a></h4>
1877 <p class=
"description"></p>
1879 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_simple_profile (
<br>
1880 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1882 <h5 class=
"parameters">Parameters
</h5>
1885 <dd class=
"description">File to read
</dd>
1887 <h5 class=
"returnvalue">Return Value
</h5>
1888 <p class=
"description">Color profile
</p>
1889 <h4 class=
"method"><a name=
"get_size">get_size
</a></h4>
1890 <p class=
"description"></p>
1892 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_size (
<br>
1893 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1895 <h5 class=
"parameters">Parameters
</h5>
1898 <dd class=
"description">File to read
</dd>
1900 <h5 class=
"returnvalue">Return Value
</h5>
1901 <p class=
"description">Media size
</p>
1902 <h4 class=
"method"><a name=
"get_token">get_token
</a></h4>
1903 <p class=
"description"></p>
1905 char *get_token (
<br>
1906 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1907 char *buffer,
<br>
1908 int buflen
<br>
1910 <h5 class=
"parameters">Parameters
</h5>
1913 <dd class=
"description">File to read
</dd>
1915 <dd class=
"description">Buffer
</dd>
1917 <dd class=
"description">Length of buffer
</dd>
1919 <h5 class=
"returnvalue">Return Value
</h5>
1920 <p class=
"description">Token string or NULL
</p>
1921 <h4 class=
"method"><a name=
"get_variable">get_variable
</a></h4>
1922 <p class=
"description"></p>
1924 <a href=
"#ppdcVariable">ppdcVariable
</a> *get_variable (
<br>
1925 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1927 <h5 class=
"parameters">Parameters
</h5>
1930 <dd class=
"description">File to read
</dd>
1932 <h5 class=
"returnvalue">Return Value
</h5>
1933 <p class=
"description">Variable
</p>
1934 <h4 class=
"method"><a name=
"import_ppd">import_ppd
</a></h4>
1935 <p class=
"description"></p>
1937 int import_ppd (
<br>
1938 const char *f
<br>
1940 <h5 class=
"parameters">Parameters
</h5>
1943 <dd class=
"description">Filename
</dd>
1945 <h5 class=
"returnvalue">Return Value
</h5>
1946 <p class=
"description">1 on success,
0 on failure
</p>
1947 <h4 class=
"method"><a name=
"ppdcSource">ppdcSource
</a></h4>
1948 <p class=
"description"></p>
1950 void ppdcSource (
<br>
1951 const char *f,
<br>
1952 cups_file_t *ffp
<br>
1954 <h5 class=
"parameters">Parameters
</h5>
1957 <dd class=
"description">File to read
</dd>
1959 <dd class=
"description">File pointer to use
</dd>
1961 <h4 class=
"method"><a name=
"quotef">quotef
</a></h4>
1962 <p class=
"description"></p>
1965 cups_file_t *fp,
<br>
1966 const char *format,
<br>
1967 ...
<br>
1969 <h5 class=
"parameters">Parameters
</h5>
1972 <dd class=
"description">File to write to
</dd>
1974 <dd class=
"description">Printf-style format string
</dd>
1976 <dd class=
"description">Additional args as needed
</dd>
1978 <h5 class=
"returnvalue">Return Value
</h5>
1979 <p class=
"description">Number bytes on success, -
1 on failure
</p>
1980 <h4 class=
"method"><a name=
"read_file">read_file
</a></h4>
1981 <p class=
"description"></p>
1983 void read_file (
<br>
1984 const char *f,
<br>
1985 cups_file_t *ffp
<br>
1987 <h5 class=
"parameters">Parameters
</h5>
1990 <dd class=
"description">File to read
</dd>
1992 <dd class=
"description">File pointer to use
</dd>
1994 <h4 class=
"method"><a name=
"scan_file">scan_file
</a></h4>
1995 <p class=
"description"></p>
1997 void scan_file (
<br>
1998 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1999 <a href=
"#ppdcDriver">ppdcDriver
</a> *td,
<br>
2000 bool inc
<br>
2002 <h5 class=
"parameters">Parameters
</h5>
2005 <dd class=
"description">File to read
</dd>
2007 <dd class=
"description">Driver template
</dd>
2009 <dd class=
"description">Including?
</dd>
2011 <h4 class=
"method"><a name=
"set_variable">set_variable
</a></h4>
2012 <p class=
"description"></p>
2014 <a href=
"#ppdcVariable">ppdcVariable
</a> *set_variable (
<br>
2015 const char *name,
<br>
2016 const char *value
<br>
2018 <h5 class=
"parameters">Parameters
</h5>
2021 <dd class=
"description">Name
</dd>
2023 <dd class=
"description">Value
</dd>
2025 <h5 class=
"returnvalue">Return Value
</h5>
2026 <p class=
"description">Variable
</p>
2027 <h4 class=
"method"><a name=
"write_file">write_file
</a></h4>
2028 <p class=
"description"></p>
2030 int write_file (
<br>
2031 const char *f
<br>
2033 <h5 class=
"parameters">Parameters
</h5>
2036 <dd class=
"description">File to write
</dd>
2038 <h5 class=
"returnvalue">Return Value
</h5>
2039 <p class=
"description">0 on success, -
1 on error
</p>
2040 <h4 class=
"method"><a name=
"~ppdcSource">~ppdcSource
</a></h4>
2041 <p class=
"description"></p>
2043 void ~ppdcSource (void);
</p>
2044 <h3 class=
"class"><a name=
"ppdcString">ppdcString
</a></h3>
2045 <p class=
"description">// Shared String
</p>
2046 <p class=
"code">class ppdcString : public ppdcShared {
<br>
2047 public:
<br>
2048 char *value;
<br>
2050 <h4 class=
"members">Members
</h4>
2053 <dd class=
"description">String value
</dd>
2055 <h4 class=
"method"><a name=
"ppdcString">ppdcString
</a></h4>
2056 <p class=
"description"></p>
2058 void ppdcString (
<br>
2059 const char *v
<br>
2061 <h5 class=
"parameters">Parameters
</h5>
2064 <dd class=
"description">String
</dd>
2066 <h4 class=
"method"><a name=
"~ppdcString">~ppdcString
</a></h4>
2067 <p class=
"description"></p>
2069 void ~ppdcString (void);
</p>
2070 <h3 class=
"class"><a name=
"ppdcVariable">ppdcVariable
</a></h3>
2071 <p class=
"description">// Variable Definition
</p>
2072 <p class=
"code">class ppdcVariable : public ppdcShared {
<br>
2073 public:
<br>
2074 <a href=
"#ppdcString">ppdcString
</a> *name, *value;
<br>
2076 <h4 class=
"members">Members
</h4>
2079 <dd class=
"description">Value of variable
</dd>
2081 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
2082 <p class=
"description"></p>
2084 void PPDC_NAME (
<br>
2085 void set_value(const char *v
<br>
2087 <h5 class=
"parameters">Parameters
</h5>
2091 <h4 class=
"method"><a name=
"ppdcVariable">ppdcVariable
</a></h4>
2092 <p class=
"description"></p>
2094 void ppdcVariable (
<br>
2095 const char *n,
<br>
2096 const char *v
<br>
2098 <h5 class=
"parameters">Parameters
</h5>
2101 <dd class=
"description">Name of variable
</dd>
2103 <dd class=
"description">Value of variable
</dd>
2105 <h4 class=
"method"><a name=
"set_value">set_value
</a></h4>
2106 <p class=
"description"></p>
2108 void set_value (
<br>
2109 const char *v
<br>
2111 <h5 class=
"parameters">Parameters
</h5>
2115 <h4 class=
"method"><a name=
"~ppdcVariable">~ppdcVariable
</a></h4>
2116 <p class=
"description"></p>
2118 void ~ppdcVariable (void);
</p>
2119 <h2 class=
"title"><a name=
"TYPES">Data Types
</a></h2>
2120 <h3 class=
"typedef"><a name=
"ppdc_cs_t">ppdc_cs_t
</a></h3>
2121 <p class=
"description"></p>
2123 typedef enum ppdc_cs_t;
2125 <h2 class=
"title"><a name=
"VARIABLES">Variables
</a></h2>
2126 <h3 class=
"variable"><a name=
"ppdcSource">ppdcSource
</a></h3>
2127 <p class=
"description">// Printer Driver Data
</p>
2128 <p class=
"code">class ppdcSource;
</p>
2129 <h2 class=
"title"><a name=
"ENUMERATIONS">Constants
</a></h2>
2130 <h3 class=
"enumeration"><a name=
"ppdcCondFlags">ppdcCondFlags
</a></h3>
2131 <p class=
"description">// Condition flags
</p>
2132 <h4 class=
"constants">Constants
</h4>
2134 <dt>PPDC_COND_NORMAL
</dt>
2135 <dd class=
"description">Normal state
</dd>
2136 <dt>PPDC_COND_SATISFIED
</dt>
2137 <dd class=
"description">At least one condition satisfied
</dd>
2138 <dt>PPDC_COND_SKIP
</dt>
2139 <dd class=
"description">Skip state
</dd>
2141 <h3 class=
"enumeration"><a name=
"ppdcDrvType">ppdcDrvType
</a></h3>
2142 <p class=
"description">// Driver type
</p>
2143 <h4 class=
"constants">Constants
</h4>
2145 <dt>PPDC_DRIVER_CUSTOM
</dt>
2146 <dd class=
"description">Custom driver
</dd>
2147 <dt>PPDC_DRIVER_EPSON
</dt>
2148 <dd class=
"description">rastertoepson driver
</dd>
2149 <dt>PPDC_DRIVER_ESCP
</dt>
2150 <dd class=
"description">rastertoescpx driver
</dd>
2151 <dt>PPDC_DRIVER_HP
</dt>
2152 <dd class=
"description">rastertohp driver
</dd>
2153 <dt>PPDC_DRIVER_LABEL
</dt>
2154 <dd class=
"description">rastertolabel/rastertodymo driver
</dd>
2155 <dt>PPDC_DRIVER_MAX
</dt>
2156 <dd class=
"description">Number of driver types defined
</dd>
2157 <dt>PPDC_DRIVER_PCL
</dt>
2158 <dd class=
"description">rastertopclx driver
</dd>
2159 <dt>PPDC_DRIVER_PS
</dt>
2160 <dd class=
"description">PostScript driver
</dd>
2162 <h3 class=
"enumeration"><a name=
"ppdcFontStatus">ppdcFontStatus
</a></h3>
2163 <p class=
"description">// Load status of font
</p>
2164 <h4 class=
"constants">Constants
</h4>
2166 <dt>PPDC_FONT_DISK
</dt>
2167 <dd class=
"description">Font is on disk
</dd>
2168 <dt>PPDC_FONT_ROM
</dt>
2169 <dd class=
"description">Font is in ROM
</dd>
2171 <h3 class=
"enumeration"><a name=
"ppdcLineEnding">ppdcLineEnding
</a></h3>
2172 <p class=
"description">// Line endings
</p>
2173 <h4 class=
"constants">Constants
</h4>
2176 <dd class=
"description">CR + LF
</dd>
2177 <dt>PPDC_CRONLY
</dt>
2178 <dd class=
"description">CR only
</dd>
2179 <dt>PPDC_LFONLY
</dt>
2180 <dd class=
"description">LF only
</dd>
2182 <h3 class=
"enumeration"><a name=
"ppdcOptSection">ppdcOptSection
</a></h3>
2183 <p class=
"description">// Option section
</p>
2184 <h4 class=
"constants">Constants
</h4>
2186 <dt>PPDC_SECTION_ANY
</dt>
2187 <dd class=
"description">AnySetup
</dd>
2188 <dt>PPDC_SECTION_DOCUMENT
</dt>
2189 <dd class=
"description">DocumentSetup
</dd>
2190 <dt>PPDC_SECTION_EXIT
</dt>
2191 <dd class=
"description">ExitServer
</dd>
2192 <dt>PPDC_SECTION_JCL
</dt>
2193 <dd class=
"description">JCLSetup
</dd>
2194 <dt>PPDC_SECTION_PAGE
</dt>
2195 <dd class=
"description">PageSetup
</dd>
2196 <dt>PPDC_SECTION_PROLOG
</dt>
2197 <dd class=
"description">Prolog
</dd>
2199 <h3 class=
"enumeration"><a name=
"ppdcOptType">ppdcOptType
</a></h3>
2200 <p class=
"description">// Option type
</p>
2201 <h4 class=
"constants">Constants
</h4>
2203 <dt>PPDC_BOOLEAN
</dt>
2204 <dd class=
"description">True/false option
</dd>
2205 <dt>PPDC_PICKMANY
</dt>
2206 <dd class=
"description">Multiple choices from list
</dd>
2207 <dt>PPDC_PICKONE
</dt>
2208 <dd class=
"description">Single choice from list
</dd>