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;
41 border: dotted thin #999999;
46 PRE.command EM, PRE.example EM {
47 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
51 font-family: monaco, courier, monospace;
62 border: solid thin #999999;
73 -moz-border-radius: 10px;
78 text-decoration: none;
81 A:link:hover, A:visited:hover, A:active {
82 text-decoration: underline;
89 TR.data, TD.data, TR.data TD {
92 border-bottom: solid 1pt #999999;
96 border-bottom: solid 1pt #999999;
103 border: solid thin #999999;
104 border-collapse: collapse;
120 border: solid thin #cccccc;
127 border-bottom: solid thin #999999;
136 caption-side: bottom;
160 border: thin solid black;
168 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
177 border-bottom: solid 2pt #000000;
180 DIV.indent, TABLE.indent {
188 border-collapse: collapse;
191 TABLE.indent TD, TABLE.indent TH {
196 border-collapse: collapse;
204 border-bottom: solid thin #cccccc;
209 vertical-align: bottom;
218 border-bottom: solid thin #eeeeee;
223 TABLE.list TR:nth-child(even) {
227 TABLE.list TR:nth-child(odd) {
246 font-family: monaco, courier, monospace;
250 border: solid thin #999999;
251 border-collapse: collapse;
256 DIV.summary TABLE TD, DIV.summary TABLE TH {
257 border: solid thin #999999;
263 DIV.summary TABLE THEAD TH {
267 /* API documentation styles... */
274 div.body h3, div.body h4, div.body h5 {
275 margin-bottom: 0.5em;
278 .class, .enumeration, .function, .struct, .typedef, .union {
279 border-bottom: solid thin #999999;
286 code, p.code, pre, ul.code li {
287 font-family: monaco, courier, monospace;
290 ul.code, ul.contents, ul.subcontents {
291 list-style-type: none;
301 ul.contents li ul.code, ul.contents li ul.subcontents {
314 margin-bottom: 0.5em;
317 /* This is just for the HTML files generated with the framedhelp target */
320 border: solid thin black;
329 div.contents ul.contents {
332 div.contents ul.subcontents li {
341 "$Id: api-array.header 8087 2008-10-27 21:37:05Z mike $"
343 PPD Compiler API header for CUPS.
345 Copyright 2009 by Apple Inc.
347 These coded instructions, statements, and computer programs are the
348 property of Apple Inc. and are protected by Federal copyright
349 law. Distribution and use rights are outlined in the file "LICENSE.txt"
350 which should have been included with this file. If this file is
351 file is missing or damaged, see the license at "http://www.cups.org/".
354 <h1 class='title'
>PPD Compiler API
</h1>
356 <div class='summary'
><table summary='General Information'
>
370 <td>Programming:
<a href='api-overview.html' target='_top'
>Introduction to CUPS Programming
</a></td>
374 <h2 class=
"title">Contents
</h2>
375 <ul class=
"contents">
376 <ul class=
"subcontents">
377 <li><a href=
"#OVERVIEW">Overview
</a></li>
378 <li><a href=
"#CLASSES">Classes
</a><ul class=
"code">
379 <li><a href=
"#ppdcArray" title=
"// Shared Array">ppdcArray
</a></li>
380 <li><a href=
"#ppdcAttr" title=
"// Attribute">ppdcAttr
</a></li>
381 <li><a href=
"#ppdcCatalog" title=
"// Translation catalog">ppdcCatalog
</a></li>
382 <li><a href=
"#ppdcChoice" title=
"// Option Choice">ppdcChoice
</a></li>
383 <li><a href=
"#ppdcConstraint" title=
"// Constraint">ppdcConstraint
</a></li>
384 <li><a href=
"#ppdcDriver" title=
"// Printer Driver Data">ppdcDriver
</a></li>
385 <li><a href=
"#ppdcFile" title=
"// File">ppdcFile
</a></li>
386 <li><a href=
"#ppdcFilter" title=
"// Filter Program">ppdcFilter
</a></li>
387 <li><a href=
"#ppdcFont" title=
"// Shared Font">ppdcFont
</a></li>
388 <li><a href=
"#ppdcGroup" title=
"// Group of Options">ppdcGroup
</a></li>
389 <li><a href=
"#ppdcInteger" title=
"// Shared integer">ppdcInteger
</a></li>
390 <li><a href=
"#ppdcMediaSize" title=
"// Media Size">ppdcMediaSize
</a></li>
391 <li><a href=
"#ppdcMessage" title=
"// Translation message">ppdcMessage
</a></li>
392 <li><a href=
"#ppdcOption" title=
"// Option">ppdcOption
</a></li>
393 <li><a href=
"#ppdcProfile" title=
"// Color Profile">ppdcProfile
</a></li>
394 <li><a href=
"#ppdcShared" title=
"// Shared Data Value">ppdcShared
</a></li>
395 <li><a href=
"#ppdcSource" title=
"// Source File">ppdcSource
</a></li>
396 <li><a href=
"#ppdcString" title=
"// Shared String">ppdcString
</a></li>
397 <li><a href=
"#ppdcVariable" title=
"// Variable Definition">ppdcVariable
</a></li>
399 <li><a href=
"#TYPES">Data Types
</a><ul class=
"code">
400 <li><a href=
"#ppdc_cs_t" title=
"">ppdc_cs_t
</a></li>
402 <li><a href=
"#VARIABLES">Variables
</a><ul class=
"code">
403 <li><a href=
"#ppdcSource" title=
"// Printer Driver Data">ppdcSource
</a></li>
405 <li><a href=
"#ENUMERATIONS">Constants
</a><ul class=
"code">
406 <li><a href=
"#ppdcCondFlags" title=
"// Condition flags">ppdcCondFlags
</a></li>
407 <li><a href=
"#ppdcDrvType" title=
"// Driver type">ppdcDrvType
</a></li>
408 <li><a href=
"#ppdcFontStatus" title=
"// Load status of font">ppdcFontStatus
</a></li>
409 <li><a href=
"#ppdcLineEnding" title=
"// Line endings">ppdcLineEnding
</a></li>
410 <li><a href=
"#ppdcOptSection" title=
"// Option section">ppdcOptSection
</a></li>
411 <li><a href=
"#ppdcOptType" title=
"// Option type">ppdcOptType
</a></li>
414 "$Id: api-array.shtml 7616 2008-05-28 00:34:13Z mike $"
416 PPD Compiler API introduction for CUPS.
418 Copyright 2009 by Apple Inc.
420 These coded instructions, statements, and computer programs are the
421 property of Apple Inc. and are protected by Federal copyright
422 law. Distribution and use rights are outlined in the file "LICENSE.txt"
423 which should have been included with this file. If this file is
424 file is missing or damaged, see the license at "http://www.cups.org/".
427 <h2 class='title'
><a name='OVERVIEW'
>Overview
</a></h2>
429 <p>The PPD Compiler API provides access to CUPS driver information files and
430 methods for generating and importing PPD files.
</p>
431 <h2 class=
"title"><a name=
"CLASSES">Classes
</a></h2>
432 <h3 class=
"class"><a name=
"ppdcArray">ppdcArray
</a></h3>
433 <p class=
"description">// Shared Array
</p>
434 <p class=
"code">class ppdcArray : public ppdcShared {
<br>
435 public:
<br>
436 int count, alloc, current;
<br>
437 <a href=
"#ppdcShared">ppdcShared
</a> **data;
<br>
439 <h4 class=
"members">Members
</h4>
442 <dd class=
"description">Current element
</dd>
444 <dd class=
"description">Elements
</dd>
446 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
447 <p class=
"description"></p>
450 void add(
<a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
452 <h5 class=
"parameters">Parameters
</h5>
456 <h4 class=
"method"><a name=
"add">add
</a></h4>
457 <p class=
"description"></p>
460 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
462 <h5 class=
"parameters">Parameters
</h5>
466 <h4 class=
"method"><a name=
"first">first
</a></h4>
467 <p class=
"description">Return the first element in the array.
</p>
469 <a href=
"#ppdcShared">ppdcShared
</a> *first (void);
</p>
470 <h5 class=
"returnvalue">Return Value
</h5>
471 <p class=
"description"></p>
472 <h4 class=
"method"><a name=
"next">next
</a></h4>
473 <p class=
"description">Return the next element in the array.
</p>
475 <a href=
"#ppdcShared">ppdcShared
</a> *next (void);
</p>
476 <h5 class=
"returnvalue">Return Value
</h5>
477 <p class=
"description"></p>
478 <h4 class=
"method"><a name=
"ppdcArray">ppdcArray
</a></h4>
479 <p class=
"description"></p>
482 <a href=
"#ppdcArray">ppdcArray
</a> *a
<br>
484 <h5 class=
"parameters">Parameters
</h5>
488 <h4 class=
"method"><a name=
"remove">remove
</a></h4>
489 <p class=
"description"></p>
492 <a href=
"#ppdcShared">ppdcShared
</a> *d
<br>
494 <h5 class=
"parameters">Parameters
</h5>
497 <dd class=
"description">Data element
</dd>
499 <h4 class=
"method"><a name=
"~ppdcArray">~ppdcArray
</a></h4>
500 <p class=
"description"></p>
502 void ~ppdcArray (void);
</p>
503 <h3 class=
"class"><a name=
"ppdcAttr">ppdcAttr
</a></h3>
504 <p class=
"description">// Attribute
</p>
505 <p class=
"code">class ppdcAttr : public ppdcShared {
<br>
506 public:
<br>
507 bool localizable;
<br>
508 <a href=
"#ppdcString">ppdcString
</a> *name, *selector, *text, *value;
<br>
510 <h4 class=
"members">Members
</h4>
512 <dt>localizable
</dt>
513 <dd class=
"description">Should this attribute be localized?
</dd>
515 <dd class=
"description">Value string
</dd>
517 <h4 class=
"method"><a name=
"ppdcAttr">ppdcAttr
</a></h4>
518 <p class=
"description"></p>
521 const char *n,
<br>
522 const char *s,
<br>
523 const char *t,
<br>
524 const char *v,
<br>
525 bool loc
<br>
527 <h5 class=
"parameters">Parameters
</h5>
530 <dd class=
"description">Name
</dd>
532 <dd class=
"description">Spec string
</dd>
534 <dd class=
"description">Human-readable text
</dd>
536 <dd class=
"description">Value
</dd>
538 <dd class=
"description">Localize this attribute?
</dd>
540 <h4 class=
"method"><a name=
"~ppdcAttr">~ppdcAttr
</a></h4>
541 <p class=
"description"></p>
543 void ~ppdcAttr (void);
</p>
544 <h3 class=
"class"><a name=
"ppdcCatalog">ppdcCatalog
</a></h3>
545 <p class=
"description">// Translation catalog
</p>
546 <p class=
"code">class ppdcCatalog : public ppdcShared {
<br>
547 public:
<br>
548 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
549 <a href=
"#ppdcString">ppdcString
</a> *locale;
<br>
550 <a href=
"#ppdcArray">ppdcArray
</a> *messages;
<br>
552 <h4 class=
"members">Members
</h4>
555 <dd class=
"description">Name of translation file
</dd>
557 <dd class=
"description">Name of locale
</dd>
559 <dd class=
"description">Array of translation messages
</dd>
561 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
562 <p class=
"description"></p>
565 void add_message(const char *id,
<br>
566 const char *string = NULL
<br>
568 <h5 class=
"parameters">Parameters
</h5>
573 <h4 class=
"method"><a name=
"add_message">add_message
</a></h4>
574 <p class=
"description"></p>
576 void add_message (
<br>
577 const char *id,
<br>
578 const char *string
<br>
580 <h5 class=
"parameters">Parameters
</h5>
583 <dd class=
"description">Message ID to add
</dd>
585 <dd class=
"description">Translation string
</dd>
587 <h4 class=
"method"><a name=
"find_message">find_message
</a></h4>
588 <p class=
"description"></p>
590 const char *find_message (
<br>
591 const char *id
<br>
593 <h5 class=
"parameters">Parameters
</h5>
596 <dd class=
"description">Message ID
</dd>
598 <h5 class=
"returnvalue">Return Value
</h5>
599 <p class=
"description">Message text
</p>
600 <h4 class=
"method"><a name=
"load_messages">load_messages
</a></h4>
601 <p class=
"description"></p>
603 int load_messages (
<br>
604 const char *f
<br>
606 <h5 class=
"parameters">Parameters
</h5>
609 <dd class=
"description">Message catalog file
</dd>
611 <h5 class=
"returnvalue">Return Value
</h5>
612 <p class=
"description">0 on success, -
1 on failure
</p>
613 <h4 class=
"method"><a name=
"ppdcCatalog">ppdcCatalog
</a></h4>
614 <p class=
"description"></p>
616 void ppdcCatalog (
<br>
617 const char *l,
<br>
618 const char *f
<br>
620 <h5 class=
"parameters">Parameters
</h5>
623 <dd class=
"description">Locale
</dd>
625 <dd class=
"description">Message catalog file
</dd>
627 <h4 class=
"method"><a name=
"save_messages">save_messages
</a></h4>
628 <p class=
"description"></p>
630 int save_messages (
<br>
631 const char *f
<br>
633 <h5 class=
"parameters">Parameters
</h5>
636 <dd class=
"description">File to save to
</dd>
638 <h5 class=
"returnvalue">Return Value
</h5>
639 <p class=
"description">0 on success, -
1 on error
</p>
640 <h4 class=
"method"><a name=
"~ppdcCatalog">~ppdcCatalog
</a></h4>
641 <p class=
"description"></p>
643 void ~ppdcCatalog (void);
</p>
644 <h3 class=
"class"><a name=
"ppdcChoice">ppdcChoice
</a></h3>
645 <p class=
"description">// Option Choice
</p>
646 <p class=
"code">class ppdcChoice : public ppdcShared {
<br>
647 public:
<br>
648 <a href=
"#ppdcString">ppdcString
</a> *name, *text, *code;
<br>
650 <h4 class=
"members">Members
</h4>
653 <dd class=
"description">PS code of choice
</dd>
655 <h4 class=
"method"><a name=
"ppdcChoice">ppdcChoice
</a></h4>
656 <p class=
"description"></p>
658 void ppdcChoice (
<br>
659 const char *n,
<br>
660 const char *t,
<br>
661 const char *c
<br>
663 <h5 class=
"parameters">Parameters
</h5>
666 <dd class=
"description">Name of choice
</dd>
668 <dd class=
"description">Text of choice
</dd>
670 <dd class=
"description">Code of choice
</dd>
672 <h4 class=
"method"><a name=
"~ppdcChoice">~ppdcChoice
</a></h4>
673 <p class=
"description"></p>
675 void ~ppdcChoice (void);
</p>
676 <h3 class=
"class"><a name=
"ppdcConstraint">ppdcConstraint
</a></h3>
677 <p class=
"description">// Constraint
</p>
678 <p class=
"code">class ppdcConstraint : public ppdcShared {
<br>
679 public:
<br>
680 <a href=
"#ppdcString">ppdcString
</a> *option1, *choice1, *option2, *choice2;
<br>
682 <h4 class=
"members">Members
</h4>
685 <dd class=
"description">Second choice
</dd>
687 <h4 class=
"method"><a name=
"ppdcConstraint">ppdcConstraint
</a></h4>
688 <p class=
"description"></p>
690 void ppdcConstraint (
<br>
691 const char *o1,
<br>
692 const char *c1,
<br>
693 const char *o2,
<br>
694 const char *c2
<br>
696 <h5 class=
"parameters">Parameters
</h5>
699 <dd class=
"description">First option
</dd>
701 <dd class=
"description">First choice
</dd>
703 <dd class=
"description">Second option
</dd>
705 <dd class=
"description">Second choice
</dd>
707 <h4 class=
"method"><a name=
"~ppdcConstraint">~ppdcConstraint
</a></h4>
708 <p class=
"description"></p>
710 void ~ppdcConstraint (void);
</p>
711 <h3 class=
"class"><a name=
"ppdcDriver">ppdcDriver
</a></h3>
712 <p class=
"description">// Printer Driver Data
</p>
713 <p class=
"code">class ppdcDriver : public ppdcShared {
<br>
714 public:
<br>
715 <a href=
"#ppdcArray">ppdcArray
</a> *copyright;
<br>
716 <a href=
"#ppdcString">ppdcString
</a> *custom_size_code;
<br>
717 <a href=
"#ppdcString">ppdcString
</a> *default_font, *default_size;
<br>
718 float left_margin, bottom_margin, right_margin, top_margin, max_width, max_length, min_width, min_length;
<br>
719 <a href=
"#ppdcArray">ppdcArray
</a> *attrs, *constraints, *filters, *fonts, *groups, *profiles, *sizes;
<br>
720 int model_number, manual_copies, color_device, throughput;
<br>
721 <a href=
"#ppdcDrvType">ppdcDrvType
</a> type;
<br>
722 int variable_paper_size;
<br>
723 <a href=
"#ppdcString">ppdcString
</a> *manufacturer, *model_name, *file_name, *pc_file_name, *version;
<br>
725 <h4 class=
"members">Members
</h4>
728 <dd class=
"description">Copyright strings
</dd>
729 <dt>custom_size_code
</dt>
730 <dd class=
"description">Custom page size code, if any
</dd>
731 <dt>default_size
</dt>
732 <dd class=
"description">Default size option
</dd>
734 <dd class=
"description">Minimum length (points)
</dd>
736 <dd class=
"description">Fixed sizes
</dd>
738 <dd class=
"description">Throughput in pages per minute
</dd>
740 <dd class=
"description">Driver type
</dd>
741 <dt>variable_paper_size
</dt>
742 <dd class=
"description">Support variable sizes?
</dd>
744 <dd class=
"description">Version number
</dd>
746 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
747 <p class=
"description"></p>
750 void add_attr(
<a href=
"#ppdcAttr">ppdcAttr
</a> *a
<br>
752 <h5 class=
"parameters">Parameters
</h5>
756 <h4 class=
"method"><a name=
"add_constraint">add_constraint
</a></h4>
757 <p class=
"description"></p>
759 void add_constraint (
<br>
760 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *c
<br>
762 <h5 class=
"parameters">Parameters
</h5>
766 <h4 class=
"method"><a name=
"add_copyright">add_copyright
</a></h4>
767 <p class=
"description"></p>
769 void add_copyright (
<br>
770 const char *c
<br>
772 <h5 class=
"parameters">Parameters
</h5>
776 <h4 class=
"method"><a name=
"add_filter">add_filter
</a></h4>
777 <p class=
"description"></p>
779 void add_filter (
<br>
780 <a href=
"#ppdcFilter">ppdcFilter
</a> *f
<br>
782 <h5 class=
"parameters">Parameters
</h5>
786 <h4 class=
"method"><a name=
"add_font">add_font
</a></h4>
787 <p class=
"description"></p>
790 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
792 <h5 class=
"parameters">Parameters
</h5>
796 <h4 class=
"method"><a name=
"add_group">add_group
</a></h4>
797 <p class=
"description"></p>
800 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
802 <h5 class=
"parameters">Parameters
</h5>
806 <h4 class=
"method"><a name=
"add_profile">add_profile
</a></h4>
807 <p class=
"description"></p>
809 void add_profile (
<br>
810 <a href=
"#ppdcProfile">ppdcProfile
</a> *p
<br>
812 <h5 class=
"parameters">Parameters
</h5>
816 <h4 class=
"method"><a name=
"add_size">add_size
</a></h4>
817 <p class=
"description"></p>
820 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
822 <h5 class=
"parameters">Parameters
</h5>
826 <h4 class=
"method"><a name=
"find_attr">find_attr
</a></h4>
827 <p class=
"description"></p>
829 <a href=
"#ppdcAttr">ppdcAttr
</a> *find_attr (
<br>
830 const char *k,
<br>
831 const char *s
<br>
833 <h5 class=
"parameters">Parameters
</h5>
836 <dd class=
"description">Keyword string
</dd>
838 <dd class=
"description">Spec string
</dd>
840 <h5 class=
"returnvalue">Return Value
</h5>
841 <p class=
"description">Attribute or NULL
</p>
842 <h4 class=
"method"><a name=
"find_group">find_group
</a></h4>
843 <p class=
"description"></p>
845 <a href=
"#ppdcGroup">ppdcGroup
</a> *find_group (
<br>
846 const char *n
<br>
848 <h5 class=
"parameters">Parameters
</h5>
851 <dd class=
"description">Group name
</dd>
853 <h5 class=
"returnvalue">Return Value
</h5>
854 <p class=
"description">Matching group or NULL
</p>
855 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
856 <p class=
"description"></p>
858 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
859 const char *n
<br>
861 <h5 class=
"parameters">Parameters
</h5>
864 <dd class=
"description">Option name
</dd>
866 <h5 class=
"returnvalue">Return Value
</h5>
867 <p class=
"description">Matching option or NULL
</p>
868 <h4 class=
"method"><a name=
"ppdcDriver">ppdcDriver
</a></h4>
869 <p class=
"description"></p>
871 void ppdcDriver (
<br>
872 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
874 <h5 class=
"parameters">Parameters
</h5>
877 <dd class=
"description">Printer driver template
</dd>
879 <h4 class=
"method"><a name=
"set_custom_size_code">set_custom_size_code
</a></h4>
880 <p class=
"description"></p>
882 void set_custom_size_code (
<br>
883 const char *c
<br>
885 <h5 class=
"parameters">Parameters
</h5>
888 <dd class=
"description">CustomPageSize code
</dd>
890 <h4 class=
"method"><a name=
"set_default_font">set_default_font
</a></h4>
891 <p class=
"description"></p>
893 void set_default_font (
<br>
894 <a href=
"#ppdcFont">ppdcFont
</a> *f
<br>
896 <h5 class=
"parameters">Parameters
</h5>
899 <dd class=
"description">Font
</dd>
901 <h4 class=
"method"><a name=
"set_default_size">set_default_size
</a></h4>
902 <p class=
"description"></p>
904 void set_default_size (
<br>
905 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *m
<br>
907 <h5 class=
"parameters">Parameters
</h5>
910 <dd class=
"description">Media size
</dd>
912 <h4 class=
"method"><a name=
"set_file_name">set_file_name
</a></h4>
913 <p class=
"description"></p>
915 void set_file_name (
<br>
916 const char *f
<br>
918 <h5 class=
"parameters">Parameters
</h5>
921 <dd class=
"description">Filename
</dd>
923 <h4 class=
"method"><a name=
"set_manufacturer">set_manufacturer
</a></h4>
924 <p class=
"description"></p>
926 void set_manufacturer (
<br>
927 const char *m
<br>
929 <h5 class=
"parameters">Parameters
</h5>
932 <dd class=
"description">Model name
</dd>
934 <h4 class=
"method"><a name=
"set_model_name">set_model_name
</a></h4>
935 <p class=
"description"></p>
937 void set_model_name (
<br>
938 const char *m
<br>
940 <h5 class=
"parameters">Parameters
</h5>
943 <dd class=
"description">Model name
</dd>
945 <h4 class=
"method"><a name=
"set_pc_file_name">set_pc_file_name
</a></h4>
946 <p class=
"description"></p>
948 void set_pc_file_name (
<br>
949 const char *f
<br>
951 <h5 class=
"parameters">Parameters
</h5>
954 <dd class=
"description">Filename
</dd>
956 <h4 class=
"method"><a name=
"set_version">set_version
</a></h4>
957 <p class=
"description"></p>
959 void set_version (
<br>
960 const char *v
<br>
962 <h5 class=
"parameters">Parameters
</h5>
965 <dd class=
"description">Version
</dd>
967 <h4 class=
"method"><a name=
"write_ppd_file">write_ppd_file
</a></h4>
968 <p class=
"description"></p>
970 int write_ppd_file (
<br>
971 cups_file_t *fp,
<br>
972 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *catalog,
<br>
973 <a href=
"#ppdcArray">ppdcArray
</a> *locales,
<br>
974 <a href=
"#ppdcSource">ppdcSource
</a> *src,
<br>
975 <a href=
"#ppdcLineEnding">ppdcLineEnding
</a> le
<br>
977 <h5 class=
"parameters">Parameters
</h5>
980 <dd class=
"description">PPD file
</dd>
982 <dd class=
"description">Message catalog
</dd>
984 <dd class=
"description">Additional languages to add
</dd>
986 <dd class=
"description">Driver source
</dd>
988 <dd class=
"description">Line endings to use
</dd>
990 <h5 class=
"returnvalue">Return Value
</h5>
991 <p class=
"description">0 on success, -
1 on failure
</p>
992 <h4 class=
"method"><a name=
"~ppdcDriver">~ppdcDriver
</a></h4>
993 <p class=
"description"></p>
995 void ~ppdcDriver (void);
</p>
996 <h3 class=
"class"><a name=
"ppdcFile">ppdcFile
</a></h3>
997 <p class=
"description">// File
</p>
998 <p class=
"code">class ppdcFile {
<br>
999 public:
<br>
1000 const char *filename;
<br>
1001 cups_file_t *fp;
<br>
1002 int line;
<br>
1004 <h4 class=
"members">Members
</h4>
1007 <dd class=
"description">Filename
</dd>
1009 <dd class=
"description">File pointer
</dd>
1011 <dd class=
"description">Line in file
</dd>
1013 <h4 class=
"method"><a name=
"get">get
</a></h4>
1014 <p class=
"description">Get a character from a file.
</p>
1017 <h5 class=
"returnvalue">Return Value
</h5>
1018 <p class=
"description"></p>
1019 <h4 class=
"method"><a name=
"peek">peek
</a></h4>
1020 <p class=
"description"></p>
1022 int peek (void);
</p>
1023 <h5 class=
"returnvalue">Return Value
</h5>
1024 <p class=
"description">Next character in file
</p>
1025 <h4 class=
"method"><a name=
"ppdcFile">ppdcFile
</a></h4>
1026 <p class=
"description"></p>
1029 const char *f,
<br>
1030 cups_file_t *ffp
<br>
1032 <h5 class=
"parameters">Parameters
</h5>
1035 <dd class=
"description">File to open
</dd>
1037 <dd class=
"description">File pointer to use
</dd>
1039 <h4 class=
"method"><a name=
"~ppdcFile">~ppdcFile
</a></h4>
1040 <p class=
"description"></p>
1042 void ~ppdcFile (void);
</p>
1043 <h3 class=
"class"><a name=
"ppdcFilter">ppdcFilter
</a></h3>
1044 <p class=
"description">// Filter Program
</p>
1045 <p class=
"code">class ppdcFilter : public ppdcShared {
<br>
1046 public:
<br>
1047 int cost;
<br>
1048 <a href=
"#ppdcString">ppdcString
</a> *mime_type, *program;
<br>
1050 <h4 class=
"members">Members
</h4>
1053 <dd class=
"description">Relative cost of filter
</dd>
1055 <dd class=
"description">Filter program
</dd>
1057 <h4 class=
"method"><a name=
"ppdcFilter">ppdcFilter
</a></h4>
1058 <p class=
"description"></p>
1060 void ppdcFilter (
<br>
1061 const char *t,
<br>
1062 const char *p,
<br>
1063 int c
<br>
1065 <h5 class=
"parameters">Parameters
</h5>
1068 <dd class=
"description">MIME type
</dd>
1070 <dd class=
"description">Filter program
</dd>
1072 <dd class=
"description">Relative cost
</dd>
1074 <h4 class=
"method"><a name=
"~ppdcFilter">~ppdcFilter
</a></h4>
1075 <p class=
"description"></p>
1077 void ~ppdcFilter (void);
</p>
1078 <h3 class=
"class"><a name=
"ppdcFont">ppdcFont
</a></h3>
1079 <p class=
"description">// Shared Font
</p>
1080 <p class=
"code">class ppdcFont : public ppdcShared {
<br>
1081 public:
<br>
1082 <a href=
"#ppdcString">ppdcString
</a> *name, *encoding, *version, *charset;
<br>
1083 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> status;
<br>
1085 <h4 class=
"members">Members
</h4>
1088 <dd class=
"description">Font charset
</dd>
1090 <dd class=
"description">Font status (ROM or Disk)
</dd>
1092 <h4 class=
"method"><a name=
"ppdcFont">ppdcFont
</a></h4>
1093 <p class=
"description"></p>
1096 const char *n,
<br>
1097 const char *e,
<br>
1098 const char *v,
<br>
1099 const char *c,
<br>
1100 <a href=
"#ppdcFontStatus">ppdcFontStatus
</a> s
<br>
1102 <h5 class=
"parameters">Parameters
</h5>
1105 <dd class=
"description">Name of font
</dd>
1107 <dd class=
"description">Font encoding
</dd>
1109 <dd class=
"description">Font version
</dd>
1111 <dd class=
"description">Font charset
</dd>
1113 <dd class=
"description">Font status
</dd>
1115 <h4 class=
"method"><a name=
"~ppdcFont">~ppdcFont
</a></h4>
1116 <p class=
"description"></p>
1118 void ~ppdcFont (void);
</p>
1119 <h3 class=
"class"><a name=
"ppdcGroup">ppdcGroup
</a></h3>
1120 <p class=
"description">// Group of Options
</p>
1121 <p class=
"code">class ppdcGroup : public ppdcShared {
<br>
1122 public:
<br>
1123 <a href=
"#ppdcArray">ppdcArray
</a> *options;
<br>
1124 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1126 <h4 class=
"members">Members
</h4>
1129 <dd class=
"description">Options
</dd>
1131 <dd class=
"description">Human-readable text of option
</dd>
1133 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1134 <p class=
"description"></p>
1136 void PPDC_NAME (
<br>
1137 void add_option(
<a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1139 <h5 class=
"parameters">Parameters
</h5>
1143 <h4 class=
"method"><a name=
"find_option">find_option
</a></h4>
1144 <p class=
"description">Find an option in a group.
</p>
1146 <a href=
"#ppdcOption">ppdcOption
</a> *find_option (
<br>
1147 const char *n
<br>
1149 <h5 class=
"parameters">Parameters
</h5>
1152 <dd class=
"description">Name of option
</dd>
1154 <h5 class=
"returnvalue">Return Value
</h5>
1155 <p class=
"description"></p>
1156 <h4 class=
"method"><a name=
"ppdcGroup">ppdcGroup
</a></h4>
1157 <p class=
"description"></p>
1159 void ppdcGroup (
<br>
1160 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1162 <h5 class=
"parameters">Parameters
</h5>
1165 <dd class=
"description">Group template
</dd>
1167 <h4 class=
"method"><a name=
"~ppdcGroup">~ppdcGroup
</a></h4>
1168 <p class=
"description"></p>
1170 void ~ppdcGroup (void);
</p>
1171 <h3 class=
"class"><a name=
"ppdcInteger">ppdcInteger
</a></h3>
1172 <p class=
"description">// Shared integer
</p>
1173 <p class=
"code">class ppdcInteger : public ppdcShared {
<br>
1174 public:
<br>
1175 int *value;
<br>
1177 <h4 class=
"members">Members
</h4>
1180 <dd class=
"description">Integer value
</dd>
1182 <h4 class=
"method"><a name=
"ppdcInteger">ppdcInteger
</a></h4>
1183 <p class=
"description">Integer value
</p>
1185 void ppdcInteger (
<br>
1186 int *v
<br>
1188 <h5 class=
"parameters">Parameters
</h5>
1192 <h3 class=
"class"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h3>
1193 <p class=
"description">// Media Size
</p>
1194 <p class=
"code">class ppdcMediaSize : public ppdcShared {
<br>
1195 public:
<br>
1196 <a href=
"#ppdcString">ppdcString
</a> *size_code, *region_code;
<br>
1197 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1198 float width, length, left, bottom, right, top;
<br>
1200 <h4 class=
"members">Members
</h4>
1202 <dt>region_code
</dt>
1203 <dd class=
"description">PageRegion code, if any
</dd>
1205 <dd class=
"description">Human-readable text
</dd>
1207 <dd class=
"description">Top limit in points
</dd>
1209 <h4 class=
"method"><a name=
"ppdcMediaSize">ppdcMediaSize
</a></h4>
1210 <p class=
"description"></p>
1212 void ppdcMediaSize (
<br>
1213 const char *n,
<br>
1214 const char *t,
<br>
1215 float w,
<br>
1216 float l,
<br>
1217 float lm,
<br>
1218 float bm,
<br>
1219 float rm,
<br>
1220 float tm,
<br>
1221 const char *sc,
<br>
1222 const char *rc
<br>
1224 <h5 class=
"parameters">Parameters
</h5>
1227 <dd class=
"description">Name of media size
</dd>
1229 <dd class=
"description">Text of media size
</dd>
1231 <dd class=
"description">Width in points
</dd>
1233 <dd class=
"description">Length in points
</dd>
1235 <dd class=
"description">Left margin in points
</dd>
1237 <dd class=
"description">Bottom margin in points
</dd>
1239 <dd class=
"description">Right margin in points
</dd>
1241 <dd class=
"description">Top margin in points
</dd>
1243 <dd class=
"description">PageSize code, if any
</dd>
1245 <dd class=
"description">PageRegion code, if any
</dd>
1247 <h4 class=
"method"><a name=
"~ppdcMediaSize">~ppdcMediaSize
</a></h4>
1248 <p class=
"description"></p>
1250 void ~ppdcMediaSize (void);
</p>
1251 <h3 class=
"class"><a name=
"ppdcMessage">ppdcMessage
</a></h3>
1252 <p class=
"description">// Translation message
</p>
1253 <p class=
"code">class ppdcMessage : public ppdcShared {
<br>
1254 public:
<br>
1255 <a href=
"#ppdcString">ppdcString
</a> *id, *string;
<br>
1257 <h4 class=
"members">Members
</h4>
1260 <dd class=
"description">Translation string
</dd>
1262 <h4 class=
"method"><a name=
"ppdcMessage">ppdcMessage
</a></h4>
1263 <p class=
"description"></p>
1265 void ppdcMessage (
<br>
1266 const char *i,
<br>
1267 const char *s
<br>
1269 <h5 class=
"parameters">Parameters
</h5>
1272 <dd class=
"description">ID
</dd>
1274 <dd class=
"description">Text
</dd>
1276 <h4 class=
"method"><a name=
"~ppdcMessage">~ppdcMessage
</a></h4>
1277 <p class=
"description"></p>
1279 void ~ppdcMessage (void);
</p>
1280 <h3 class=
"class"><a name=
"ppdcOption">ppdcOption
</a></h3>
1281 <p class=
"description">// Option
</p>
1282 <p class=
"code">class ppdcOption : public ppdcShared {
<br>
1283 public:
<br>
1284 <a href=
"#ppdcArray">ppdcArray
</a> *choices;
<br>
1285 <a href=
"#ppdcString">ppdcString
</a> *defchoice;
<br>
1286 float order;
<br>
1287 <a href=
"#ppdcOptSection">ppdcOptSection
</a> section;
<br>
1288 <a href=
"#ppdcString">ppdcString
</a> *name, *text;
<br>
1289 <a href=
"#ppdcOptType">ppdcOptType
</a> type;
<br>
1291 <h4 class=
"members">Members
</h4>
1294 <dd class=
"description">Choices
</dd>
1296 <dd class=
"description">Default choice
</dd>
1298 <dd class=
"description">Order number
</dd>
1300 <dd class=
"description">Section for option code
</dd>
1302 <dd class=
"description">Human-readable text of option
</dd>
1304 <dd class=
"description">Type of option
</dd>
1306 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1307 <p class=
"description"></p>
1309 void PPDC_NAME (
<br>
1310 void add_choice(
<a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1312 <h5 class=
"parameters">Parameters
</h5>
1316 <h4 class=
"method"><a name=
"find_choice">find_choice
</a></h4>
1317 <p class=
"description"></p>
1319 <a href=
"#ppdcChoice">ppdcChoice
</a> *find_choice (
<br>
1320 const char *n
<br>
1322 <h5 class=
"parameters">Parameters
</h5>
1325 <dd class=
"description">Name of choice
</dd>
1327 <h5 class=
"returnvalue">Return Value
</h5>
1328 <p class=
"description">Choice or NULL
</p>
1329 <h4 class=
"method"><a name=
"ppdcOption">ppdcOption
</a></h4>
1330 <p class=
"description"></p>
1332 void ppdcOption (
<br>
1333 <a href=
"#ppdcOption">ppdcOption
</a> *o
<br>
1335 <h5 class=
"parameters">Parameters
</h5>
1338 <dd class=
"description">Template option
</dd>
1340 <h4 class=
"method"><a name=
"set_defchoice">set_defchoice
</a></h4>
1341 <p class=
"description"></p>
1343 void set_defchoice (
<br>
1344 <a href=
"#ppdcChoice">ppdcChoice
</a> *c
<br>
1346 <h5 class=
"parameters">Parameters
</h5>
1349 <dd class=
"description">Choice
</dd>
1351 <h4 class=
"method"><a name=
"~ppdcOption">~ppdcOption
</a></h4>
1352 <p class=
"description"></p>
1354 void ~ppdcOption (void);
</p>
1355 <h3 class=
"class"><a name=
"ppdcProfile">ppdcProfile
</a></h3>
1356 <p class=
"description">// Color Profile
</p>
1357 <p class=
"code">class ppdcProfile : public ppdcShared {
<br>
1358 public:
<br>
1359 <a href=
"#ppdcString">ppdcString
</a> *resolution, *media_type;
<br>
1360 float density, gamma, profile[
9];
<br>
1362 <h4 class=
"members">Members
</h4>
1364 <dt>media_type
</dt>
1365 <dd class=
"description">Media type name
</dd>
1366 <dt>profile[
9]
</dt>
1367 <dd class=
"description">Color profile matrix
</dd>
1369 <h4 class=
"method"><a name=
"ppdcProfile">ppdcProfile
</a></h4>
1370 <p class=
"description"></p>
1372 void ppdcProfile (
<br>
1373 const char *r,
<br>
1374 const char *m,
<br>
1375 float d,
<br>
1376 float g,
<br>
1377 const float *p
<br>
1379 <h5 class=
"parameters">Parameters
</h5>
1382 <dd class=
"description">Resolution name
</dd>
1384 <dd class=
"description">Media type name
</dd>
1386 <dd class=
"description">Density
</dd>
1388 <dd class=
"description">Gamma
</dd>
1390 <dd class=
"description">3x3 transform matrix
</dd>
1392 <h4 class=
"method"><a name=
"~ppdcProfile">~ppdcProfile
</a></h4>
1393 <p class=
"description"></p>
1395 void ~ppdcProfile (void);
</p>
1396 <h3 class=
"class"><a name=
"ppdcShared">ppdcShared
</a></h3>
1397 <p class=
"description">// Shared Data Value
</p>
1398 <p class=
"code">class ppdcShared {
<br>
1399 private:
<br>
1400 int use;
<br>
1402 <h4 class=
"members">Members
</h4>
1405 <dd class=
"description">Use count (delete when
0)
</dd>
1407 <h4 class=
"method"><a name=
"class_name">class_name
</a></h4>
1408 <p class=
"description"></p>
1410 virtual const char *class_name (void);
</p>
1411 <h5 class=
"returnvalue">Return Value
</h5>
1412 <p class=
"description"></p>
1413 <h4 class=
"method"><a name=
"ppdcShared">ppdcShared
</a></h4>
1414 <p class=
"description"></p>
1416 void ppdcShared (void);
</p>
1417 <h4 class=
"method"><a name=
"release">release
</a></h4>
1418 <p class=
"description"></p>
1420 void release (void);
</p>
1421 <h4 class=
"method"><a name=
"retain">retain
</a></h4>
1422 <p class=
"description"></p>
1424 void retain (void);
</p>
1425 <h4 class=
"method"><a name=
"~ppdcShared">~ppdcShared
</a></h4>
1426 <p class=
"description"></p>
1428 void ~ppdcShared (void);
</p>
1429 <h3 class=
"class"><a name=
"ppdcSource">ppdcSource
</a></h3>
1430 <p class=
"description">// Source File
</p>
1431 <p class=
"code">class ppdcSource : public ppdcShared {
<br>
1432 public:
<br>
1433 int cond_state, *cond_current, cond_stack[
101];
<br>
1434 static const char *driver_types[];
<br>
1435 <a href=
"#ppdcString">ppdcString
</a> *filename;
<br>
1436 static
<a href=
"#ppdcArray">ppdcArray
</a> *includes;
<br>
1437 <a href=
"#ppdcArray">ppdcArray
</a> *base_fonts, *drivers, *po_files, *sizes, *vars;
<br>
1439 <h4 class=
"members">Members
</h4>
1441 <dt>cond_stack[
101]
</dt>
1442 <dd class=
"description">#if state stack
</dd>
1443 <dt>driver_types[]
</dt>
1444 <dd class=
"description">Driver types
</dd>
1446 <dd class=
"description">Filename
</dd>
1448 <dd class=
"description">Include directories
</dd>
1450 <dd class=
"description">Defined variables
</dd>
1452 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
1453 <p class=
"description"></p>
1455 void PPDC_NAME (
<br>
1456 static void add_include(const char *d
<br>
1458 <h5 class=
"parameters">Parameters
</h5>
1462 <h4 class=
"method"><a name=
"add_include">add_include
</a></h4>
1463 <p class=
"description"></p>
1465 void add_include (
<br>
1466 const char *d
<br>
1468 <h5 class=
"parameters">Parameters
</h5>
1471 <dd class=
"description">Include directory
</dd>
1473 <h4 class=
"method"><a name=
"find_driver">find_driver
</a></h4>
1474 <p class=
"description"></p>
1476 <a href=
"#ppdcDriver">ppdcDriver
</a> *find_driver (
<br>
1477 const char *f
<br>
1479 <h5 class=
"parameters">Parameters
</h5>
1482 <dd class=
"description">Driver file name
</dd>
1484 <h5 class=
"returnvalue">Return Value
</h5>
1485 <p class=
"description">Driver
</p>
1486 <h4 class=
"method"><a name=
"find_include">find_include
</a></h4>
1487 <p class=
"description"></p>
1489 char *find_include (
<br>
1490 const char *f,
<br>
1491 const char *base,
<br>
1492 char *n,
<br>
1493 int nlen
<br>
1495 <h5 class=
"parameters">Parameters
</h5>
1498 <dd class=
"description">Include filename
</dd>
1500 <dd class=
"description">Current directory
</dd>
1502 <dd class=
"description">Path buffer
</dd>
1504 <dd class=
"description">Path buffer length
</dd>
1506 <h5 class=
"returnvalue">Return Value
</h5>
1507 <p class=
"description">Found path or NULL
</p>
1508 <h4 class=
"method"><a name=
"find_po">find_po
</a></h4>
1509 <p class=
"description"></p>
1511 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *find_po (
<br>
1512 const char *l
<br>
1514 <h5 class=
"parameters">Parameters
</h5>
1517 <dd class=
"description">Locale name
</dd>
1519 <h5 class=
"returnvalue">Return Value
</h5>
1520 <p class=
"description">Message catalog or NULL
</p>
1521 <h4 class=
"method"><a name=
"find_size">find_size
</a></h4>
1522 <p class=
"description"></p>
1524 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *find_size (
<br>
1525 const char *s
<br>
1527 <h5 class=
"parameters">Parameters
</h5>
1530 <dd class=
"description">Size name
</dd>
1532 <h5 class=
"returnvalue">Return Value
</h5>
1533 <p class=
"description">Size
</p>
1534 <h4 class=
"method"><a name=
"find_variable">find_variable
</a></h4>
1535 <p class=
"description"></p>
1537 <a href=
"#ppdcVariable">ppdcVariable
</a> *find_variable (
<br>
1538 const char *n
<br>
1540 <h5 class=
"parameters">Parameters
</h5>
1543 <dd class=
"description">Variable name
</dd>
1545 <h5 class=
"returnvalue">Return Value
</h5>
1546 <p class=
"description">Variable
</p>
1547 <h4 class=
"method"><a name=
"get_attr">get_attr
</a></h4>
1548 <p class=
"description"></p>
1550 <a href=
"#ppdcAttr">ppdcAttr
</a> *get_attr (
<br>
1551 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1552 bool loc
<br>
1554 <h5 class=
"parameters">Parameters
</h5>
1557 <dd class=
"description">File to read
</dd>
1559 <dd class=
"description">Localize this attribute?
</dd>
1561 <h5 class=
"returnvalue">Return Value
</h5>
1562 <p class=
"description">Attribute
</p>
1563 <h4 class=
"method"><a name=
"get_boolean">get_boolean
</a></h4>
1564 <p class=
"description"></p>
1566 int get_boolean (
<br>
1567 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1569 <h5 class=
"parameters">Parameters
</h5>
1572 <dd class=
"description">File to read
</dd>
1574 <h5 class=
"returnvalue">Return Value
</h5>
1575 <p class=
"description">Boolean value
</p>
1576 <h4 class=
"method"><a name=
"get_choice">get_choice
</a></h4>
1577 <p class=
"description"></p>
1579 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_choice (
<br>
1580 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1582 <h5 class=
"parameters">Parameters
</h5>
1585 <dd class=
"description">File to read
</dd>
1587 <h5 class=
"returnvalue">Return Value
</h5>
1588 <p class=
"description">Choice data
</p>
1589 <h4 class=
"method"><a name=
"get_color_model">get_color_model
</a></h4>
1590 <p class=
"description"></p>
1592 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_color_model (
<br>
1593 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1595 <h5 class=
"parameters">Parameters
</h5>
1598 <dd class=
"description">File to read
</dd>
1600 <h5 class=
"returnvalue">Return Value
</h5>
1601 <p class=
"description">Choice data
</p>
1602 <h4 class=
"method"><a name=
"get_color_order">get_color_order
</a></h4>
1603 <p class=
"description"></p>
1605 int get_color_order (
<br>
1606 const char *co
<br>
1608 <h5 class=
"parameters">Parameters
</h5>
1611 <dd class=
"description">Color order string
</dd>
1613 <h5 class=
"returnvalue">Return Value
</h5>
1614 <p class=
"description">Color order value
</p>
1615 <h4 class=
"method"><a name=
"get_color_profile">get_color_profile
</a></h4>
1616 <p class=
"description"></p>
1618 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_color_profile (
<br>
1619 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1621 <h5 class=
"parameters">Parameters
</h5>
1624 <dd class=
"description">File to read
</dd>
1626 <h5 class=
"returnvalue">Return Value
</h5>
1627 <p class=
"description">Color profile
</p>
1628 <h4 class=
"method"><a name=
"get_color_space">get_color_space
</a></h4>
1629 <p class=
"description"></p>
1631 int get_color_space (
<br>
1632 const char *cs
<br>
1634 <h5 class=
"parameters">Parameters
</h5>
1637 <dd class=
"description">Colorspace string
</dd>
1639 <h5 class=
"returnvalue">Return Value
</h5>
1640 <p class=
"description">Colorspace value
</p>
1641 <h4 class=
"method"><a name=
"get_constraint">get_constraint
</a></h4>
1642 <p class=
"description"></p>
1644 <a href=
"#ppdcConstraint">ppdcConstraint
</a> *get_constraint (
<br>
1645 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1647 <h5 class=
"parameters">Parameters
</h5>
1650 <dd class=
"description">File to read
</dd>
1652 <h5 class=
"returnvalue">Return Value
</h5>
1653 <p class=
"description">Constraint
</p>
1654 <h4 class=
"method"><a name=
"get_custom_size">get_custom_size
</a></h4>
1655 <p class=
"description"></p>
1657 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_custom_size (
<br>
1658 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1660 <h5 class=
"parameters">Parameters
</h5>
1663 <dd class=
"description">File to read
</dd>
1665 <h5 class=
"returnvalue">Return Value
</h5>
1666 <p class=
"description">Media size
</p>
1667 <h4 class=
"method"><a name=
"get_duplex">get_duplex
</a></h4>
1668 <p class=
"description"></p>
1670 void get_duplex (
<br>
1671 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1672 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1674 <h5 class=
"parameters">Parameters
</h5>
1677 <dd class=
"description">File to read from
</dd>
1679 <dd class=
"description">Current driver
</dd>
1681 <h4 class=
"method"><a name=
"get_filter">get_filter
</a></h4>
1682 <p class=
"description"></p>
1684 <a href=
"#ppdcFilter">ppdcFilter
</a> *get_filter (
<br>
1685 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1687 <h5 class=
"parameters">Parameters
</h5>
1690 <dd class=
"description">File to read
</dd>
1692 <h5 class=
"returnvalue">Return Value
</h5>
1693 <p class=
"description">Filter
</p>
1694 <h4 class=
"method"><a name=
"get_float">get_float
</a></h4>
1695 <p class=
"description"></p>
1697 float get_float (
<br>
1698 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1700 <h5 class=
"parameters">Parameters
</h5>
1703 <dd class=
"description">File to read
</dd>
1705 <h5 class=
"returnvalue">Return Value
</h5>
1706 <p class=
"description">Number
</p>
1707 <h4 class=
"method"><a name=
"get_font">get_font
</a></h4>
1708 <p class=
"description"></p>
1710 <a href=
"#ppdcFont">ppdcFont
</a> *get_font (
<br>
1711 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1713 <h5 class=
"parameters">Parameters
</h5>
1716 <dd class=
"description">File to read
</dd>
1718 <h5 class=
"returnvalue">Return Value
</h5>
1719 <p class=
"description">Font data
</p>
1720 <h4 class=
"method"><a name=
"get_generic">get_generic
</a></h4>
1721 <p class=
"description"></p>
1723 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_generic (
<br>
1724 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1725 const char *keyword,
<br>
1726 const char *tattr,
<br>
1727 const char *nattr
<br>
1729 <h5 class=
"parameters">Parameters
</h5>
1732 <dd class=
"description">File to read
</dd>
1734 <dd class=
"description">Keyword name
</dd>
1736 <dd class=
"description">Text attribute
</dd>
1738 <dd class=
"description">Numeric attribute
</dd>
1740 <h5 class=
"returnvalue">Return Value
</h5>
1741 <p class=
"description">Choice data
</p>
1742 <h4 class=
"method"><a name=
"get_group">get_group
</a></h4>
1743 <p class=
"description"></p>
1745 <a href=
"#ppdcGroup">ppdcGroup
</a> *get_group (
<br>
1746 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1747 <a href=
"#ppdcDriver">ppdcDriver
</a> *d
<br>
1749 <h5 class=
"parameters">Parameters
</h5>
1752 <dd class=
"description">File to read
</dd>
1754 <dd class=
"description">Printer driver
</dd>
1756 <h5 class=
"returnvalue">Return Value
</h5>
1757 <p class=
"description">Group
</p>
1758 <h4 class=
"method"><a name=
"get_installable">get_installable
</a></h4>
1759 <p class=
"description"></p>
1761 <a href=
"#ppdcOption">ppdcOption
</a> *get_installable (
<br>
1762 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1764 <h5 class=
"parameters">Parameters
</h5>
1767 <dd class=
"description">File to read
</dd>
1769 <h5 class=
"returnvalue">Return Value
</h5>
1770 <p class=
"description">Option
</p>
1771 <h4 class=
"method"><a name=
"get_integer">get_integer
</a></h4>
1772 <p class=
"description"></p>
1774 int get_integer (
<br>
1775 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1777 <h5 class=
"parameters">Parameters
</h5>
1780 <dd class=
"description">File to read
</dd>
1782 <h5 class=
"returnvalue">Return Value
</h5>
1783 <p class=
"description">Integer value
</p>
1784 <h4 class=
"method"><a name=
"get_measurement">get_measurement
</a></h4>
1785 <p class=
"description"></p>
1787 float get_measurement (
<br>
1788 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1790 <h5 class=
"parameters">Parameters
</h5>
1793 <dd class=
"description">File to read
</dd>
1795 <h5 class=
"returnvalue">Return Value
</h5>
1796 <p class=
"description">Measurement value in points
</p>
1797 <h4 class=
"method"><a name=
"get_option">get_option
</a></h4>
1798 <p class=
"description"></p>
1800 <a href=
"#ppdcOption">ppdcOption
</a> *get_option (
<br>
1801 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1802 <a href=
"#ppdcDriver">ppdcDriver
</a> *d,
<br>
1803 <a href=
"#ppdcGroup">ppdcGroup
</a> *g
<br>
1805 <h5 class=
"parameters">Parameters
</h5>
1808 <dd class=
"description">File to read
</dd>
1810 <dd class=
"description">Printer driver
</dd>
1812 <dd class=
"description">Current group
</dd>
1814 <h5 class=
"returnvalue">Return Value
</h5>
1815 <p class=
"description">Option
</p>
1816 <h4 class=
"method"><a name=
"get_po">get_po
</a></h4>
1817 <p class=
"description"></p>
1819 <a href=
"#ppdcCatalog">ppdcCatalog
</a> *get_po (
<br>
1820 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1822 <h5 class=
"parameters">Parameters
</h5>
1825 <dd class=
"description">File to read
</dd>
1827 <h5 class=
"returnvalue">Return Value
</h5>
1828 <p class=
"description">Message catalog
</p>
1829 <h4 class=
"method"><a name=
"get_resolution">get_resolution
</a></h4>
1830 <p class=
"description"></p>
1832 <a href=
"#ppdcChoice">ppdcChoice
</a> *get_resolution (
<br>
1833 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1835 <h5 class=
"parameters">Parameters
</h5>
1838 <dd class=
"description">File to read
</dd>
1840 <h5 class=
"returnvalue">Return Value
</h5>
1841 <p class=
"description">Choice data
</p>
1842 <h4 class=
"method"><a name=
"get_simple_profile">get_simple_profile
</a></h4>
1843 <p class=
"description"></p>
1845 <a href=
"#ppdcProfile">ppdcProfile
</a> *get_simple_profile (
<br>
1846 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1848 <h5 class=
"parameters">Parameters
</h5>
1851 <dd class=
"description">File to read
</dd>
1853 <h5 class=
"returnvalue">Return Value
</h5>
1854 <p class=
"description">Color profile
</p>
1855 <h4 class=
"method"><a name=
"get_size">get_size
</a></h4>
1856 <p class=
"description"></p>
1858 <a href=
"#ppdcMediaSize">ppdcMediaSize
</a> *get_size (
<br>
1859 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1861 <h5 class=
"parameters">Parameters
</h5>
1864 <dd class=
"description">File to read
</dd>
1866 <h5 class=
"returnvalue">Return Value
</h5>
1867 <p class=
"description">Media size
</p>
1868 <h4 class=
"method"><a name=
"get_token">get_token
</a></h4>
1869 <p class=
"description"></p>
1871 char *get_token (
<br>
1872 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1873 char *buffer,
<br>
1874 int buflen
<br>
1876 <h5 class=
"parameters">Parameters
</h5>
1879 <dd class=
"description">File to read
</dd>
1881 <dd class=
"description">Buffer
</dd>
1883 <dd class=
"description">Length of buffer
</dd>
1885 <h5 class=
"returnvalue">Return Value
</h5>
1886 <p class=
"description">Token string or NULL
</p>
1887 <h4 class=
"method"><a name=
"get_variable">get_variable
</a></h4>
1888 <p class=
"description"></p>
1890 <a href=
"#ppdcVariable">ppdcVariable
</a> *get_variable (
<br>
1891 <a href=
"#ppdcFile">ppdcFile
</a> *fp
<br>
1893 <h5 class=
"parameters">Parameters
</h5>
1896 <dd class=
"description">File to read
</dd>
1898 <h5 class=
"returnvalue">Return Value
</h5>
1899 <p class=
"description">Variable
</p>
1900 <h4 class=
"method"><a name=
"import_ppd">import_ppd
</a></h4>
1901 <p class=
"description"></p>
1903 int import_ppd (
<br>
1904 const char *f
<br>
1906 <h5 class=
"parameters">Parameters
</h5>
1909 <dd class=
"description">Filename
</dd>
1911 <h5 class=
"returnvalue">Return Value
</h5>
1912 <p class=
"description">1 on success,
0 on failure
</p>
1913 <h4 class=
"method"><a name=
"ppdcSource">ppdcSource
</a></h4>
1914 <p class=
"description"></p>
1916 void ppdcSource (
<br>
1917 const char *f,
<br>
1918 cups_file_t *ffp
<br>
1920 <h5 class=
"parameters">Parameters
</h5>
1923 <dd class=
"description">File to read
</dd>
1925 <dd class=
"description">File pointer to use
</dd>
1927 <h4 class=
"method"><a name=
"quotef">quotef
</a></h4>
1928 <p class=
"description"></p>
1931 cups_file_t *fp,
<br>
1932 const char *format,
<br>
1933 ...
<br>
1935 <h5 class=
"parameters">Parameters
</h5>
1938 <dd class=
"description">File to write to
</dd>
1940 <dd class=
"description">Printf-style format string
</dd>
1942 <dd class=
"description">Additional args as needed
</dd>
1944 <h5 class=
"returnvalue">Return Value
</h5>
1945 <p class=
"description">Number bytes on success, -
1 on failure
</p>
1946 <h4 class=
"method"><a name=
"read_file">read_file
</a></h4>
1947 <p class=
"description"></p>
1949 void read_file (
<br>
1950 const char *f,
<br>
1951 cups_file_t *ffp
<br>
1953 <h5 class=
"parameters">Parameters
</h5>
1956 <dd class=
"description">File to read
</dd>
1958 <dd class=
"description">File pointer to use
</dd>
1960 <h4 class=
"method"><a name=
"scan_file">scan_file
</a></h4>
1961 <p class=
"description"></p>
1963 void scan_file (
<br>
1964 <a href=
"#ppdcFile">ppdcFile
</a> *fp,
<br>
1965 <a href=
"#ppdcDriver">ppdcDriver
</a> *td,
<br>
1966 bool inc
<br>
1968 <h5 class=
"parameters">Parameters
</h5>
1971 <dd class=
"description">File to read
</dd>
1973 <dd class=
"description">Driver template
</dd>
1975 <dd class=
"description">Including?
</dd>
1977 <h4 class=
"method"><a name=
"set_variable">set_variable
</a></h4>
1978 <p class=
"description"></p>
1980 <a href=
"#ppdcVariable">ppdcVariable
</a> *set_variable (
<br>
1981 const char *name,
<br>
1982 const char *value
<br>
1984 <h5 class=
"parameters">Parameters
</h5>
1987 <dd class=
"description">Name
</dd>
1989 <dd class=
"description">Value
</dd>
1991 <h5 class=
"returnvalue">Return Value
</h5>
1992 <p class=
"description">Variable
</p>
1993 <h4 class=
"method"><a name=
"write_file">write_file
</a></h4>
1994 <p class=
"description"></p>
1996 int write_file (
<br>
1997 const char *f
<br>
1999 <h5 class=
"parameters">Parameters
</h5>
2002 <dd class=
"description">File to write
</dd>
2004 <h5 class=
"returnvalue">Return Value
</h5>
2005 <p class=
"description">0 on success, -
1 on error
</p>
2006 <h4 class=
"method"><a name=
"~ppdcSource">~ppdcSource
</a></h4>
2007 <p class=
"description"></p>
2009 void ~ppdcSource (void);
</p>
2010 <h3 class=
"class"><a name=
"ppdcString">ppdcString
</a></h3>
2011 <p class=
"description">// Shared String
</p>
2012 <p class=
"code">class ppdcString : public ppdcShared {
<br>
2013 public:
<br>
2014 char *value;
<br>
2016 <h4 class=
"members">Members
</h4>
2019 <dd class=
"description">String value
</dd>
2021 <h4 class=
"method"><a name=
"ppdcString">ppdcString
</a></h4>
2022 <p class=
"description"></p>
2024 void ppdcString (
<br>
2025 const char *v
<br>
2027 <h5 class=
"parameters">Parameters
</h5>
2030 <dd class=
"description">String
</dd>
2032 <h4 class=
"method"><a name=
"~ppdcString">~ppdcString
</a></h4>
2033 <p class=
"description"></p>
2035 void ~ppdcString (void);
</p>
2036 <h3 class=
"class"><a name=
"ppdcVariable">ppdcVariable
</a></h3>
2037 <p class=
"description">// Variable Definition
</p>
2038 <p class=
"code">class ppdcVariable : public ppdcShared {
<br>
2039 public:
<br>
2040 <a href=
"#ppdcString">ppdcString
</a> *name, *value;
<br>
2042 <h4 class=
"members">Members
</h4>
2045 <dd class=
"description">Value of variable
</dd>
2047 <h4 class=
"method"><a name=
"PPDC_NAME">PPDC_NAME
</a></h4>
2048 <p class=
"description"></p>
2050 void PPDC_NAME (
<br>
2051 void set_value(const char *v
<br>
2053 <h5 class=
"parameters">Parameters
</h5>
2057 <h4 class=
"method"><a name=
"ppdcVariable">ppdcVariable
</a></h4>
2058 <p class=
"description"></p>
2060 void ppdcVariable (
<br>
2061 const char *n,
<br>
2062 const char *v
<br>
2064 <h5 class=
"parameters">Parameters
</h5>
2067 <dd class=
"description">Name of variable
</dd>
2069 <dd class=
"description">Value of variable
</dd>
2071 <h4 class=
"method"><a name=
"set_value">set_value
</a></h4>
2072 <p class=
"description"></p>
2074 void set_value (
<br>
2075 const char *v
<br>
2077 <h5 class=
"parameters">Parameters
</h5>
2081 <h4 class=
"method"><a name=
"~ppdcVariable">~ppdcVariable
</a></h4>
2082 <p class=
"description"></p>
2084 void ~ppdcVariable (void);
</p>
2085 <h2 class=
"title"><a name=
"TYPES">Data Types
</a></h2>
2086 <h3 class=
"typedef"><a name=
"ppdc_cs_t">ppdc_cs_t
</a></h3>
2087 <p class=
"description"></p>
2089 typedef enum ppdc_cs_t;
2091 <h2 class=
"title"><a name=
"VARIABLES">Variables
</a></h2>
2092 <h3 class=
"variable"><a name=
"ppdcSource">ppdcSource
</a></h3>
2093 <p class=
"description">// Printer Driver Data
</p>
2094 <p class=
"code">class ppdcSource;
</p>
2095 <h2 class=
"title"><a name=
"ENUMERATIONS">Constants
</a></h2>
2096 <h3 class=
"enumeration"><a name=
"ppdcCondFlags">ppdcCondFlags
</a></h3>
2097 <p class=
"description">// Condition flags
</p>
2098 <h4 class=
"constants">Constants
</h4>
2100 <dt>PPDC_COND_NORMAL
</dt>
2101 <dd class=
"description">Normal state
</dd>
2102 <dt>PPDC_COND_SATISFIED
</dt>
2103 <dd class=
"description">At least one condition satisfied
</dd>
2104 <dt>PPDC_COND_SKIP
</dt>
2105 <dd class=
"description">Skip state
</dd>
2107 <h3 class=
"enumeration"><a name=
"ppdcDrvType">ppdcDrvType
</a></h3>
2108 <p class=
"description">// Driver type
</p>
2109 <h4 class=
"constants">Constants
</h4>
2111 <dt>PPDC_DRIVER_CUSTOM
</dt>
2112 <dd class=
"description">Custom driver
</dd>
2113 <dt>PPDC_DRIVER_EPSON
</dt>
2114 <dd class=
"description">rastertoepson driver
</dd>
2115 <dt>PPDC_DRIVER_ESCP
</dt>
2116 <dd class=
"description">rastertoescpx driver
</dd>
2117 <dt>PPDC_DRIVER_HP
</dt>
2118 <dd class=
"description">rastertohp driver
</dd>
2119 <dt>PPDC_DRIVER_LABEL
</dt>
2120 <dd class=
"description">rastertolabel/rastertodymo driver
</dd>
2121 <dt>PPDC_DRIVER_MAX
</dt>
2122 <dd class=
"description">Number of driver types defined
</dd>
2123 <dt>PPDC_DRIVER_PCL
</dt>
2124 <dd class=
"description">rastertopclx driver
</dd>
2125 <dt>PPDC_DRIVER_PS
</dt>
2126 <dd class=
"description">PostScript driver
</dd>
2128 <h3 class=
"enumeration"><a name=
"ppdcFontStatus">ppdcFontStatus
</a></h3>
2129 <p class=
"description">// Load status of font
</p>
2130 <h4 class=
"constants">Constants
</h4>
2132 <dt>PPDC_FONT_DISK
</dt>
2133 <dd class=
"description">Font is on disk
</dd>
2134 <dt>PPDC_FONT_ROM
</dt>
2135 <dd class=
"description">Font is in ROM
</dd>
2137 <h3 class=
"enumeration"><a name=
"ppdcLineEnding">ppdcLineEnding
</a></h3>
2138 <p class=
"description">// Line endings
</p>
2139 <h4 class=
"constants">Constants
</h4>
2142 <dd class=
"description">CR + LF
</dd>
2143 <dt>PPDC_CRONLY
</dt>
2144 <dd class=
"description">CR only
</dd>
2145 <dt>PPDC_LFONLY
</dt>
2146 <dd class=
"description">LF only
</dd>
2148 <h3 class=
"enumeration"><a name=
"ppdcOptSection">ppdcOptSection
</a></h3>
2149 <p class=
"description">// Option section
</p>
2150 <h4 class=
"constants">Constants
</h4>
2152 <dt>PPDC_SECTION_ANY
</dt>
2153 <dd class=
"description">AnySetup
</dd>
2154 <dt>PPDC_SECTION_DOCUMENT
</dt>
2155 <dd class=
"description">DocumentSetup
</dd>
2156 <dt>PPDC_SECTION_EXIT
</dt>
2157 <dd class=
"description">ExitServer
</dd>
2158 <dt>PPDC_SECTION_JCL
</dt>
2159 <dd class=
"description">JCLSetup
</dd>
2160 <dt>PPDC_SECTION_PAGE
</dt>
2161 <dd class=
"description">PageSetup
</dd>
2162 <dt>PPDC_SECTION_PROLOG
</dt>
2163 <dd class=
"description">Prolog
</dd>
2165 <h3 class=
"enumeration"><a name=
"ppdcOptType">ppdcOptType
</a></h3>
2166 <p class=
"description">// Option type
</p>
2167 <h4 class=
"constants">Constants
</h4>
2169 <dt>PPDC_BOOLEAN
</dt>
2170 <dd class=
"description">True/false option
</dd>
2171 <dt>PPDC_PICKMANY
</dt>
2172 <dd class=
"description">Multiple choices from list
</dd>
2173 <dt>PPDC_PICKONE
</dt>
2174 <dd class=
"description">Single choice from list
</dd>