]> git.ipfire.org Git - thirdparty/cups.git/blob - doc/help/api-ppdc.html
Merge changes from CUPS 1.5svn-r9352.
[thirdparty/cups.git] / doc / help / api-ppdc.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html>
3 <!-- SECTION: Programming -->
4 <head>
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"><!--
9 BODY {
10 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
11 }
12
13 H1, H2, H3, H4, H5, H6, P, TD, TH {
14 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
15 }
16
17 KBD {
18 font-family: monaco, courier, monospace;
19 font-weight: bold;
20 }
21
22 PRE {
23 font-family: monaco, courier, monospace;
24 }
25
26 PRE.command {
27 border: dotted thin #7f7f7f;
28 margin-left: 36pt;
29 padding: 10px;
30 }
31
32 P.compact {
33 margin: 0;
34 }
35
36 P.example {
37 font-style: italic;
38 margin-left: 36pt;
39 }
40
41 PRE.example {
42 background: #eeeeee;
43 border: dotted thin #999999;
44 margin-left: 36pt;
45 padding: 10pt;
46 }
47
48 PRE.command EM, PRE.example EM {
49 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
50 }
51
52 P.command {
53 font-family: monaco, courier, monospace;
54 margin-left: 36pt;
55 }
56
57 P.formula {
58 font-style: italic;
59 margin-left: 36pt;
60 }
61
62 BLOCKQUOTE {
63 background: #eeeeee;
64 border: solid thin #999999;
65 padding: 10pt;
66 }
67
68 A IMG {
69 border: none;
70 }
71
72 A:link:hover IMG {
73 background: #f0f0f0;
74 border-radius: 10px;
75 -moz-border-radius: 10px;
76 }
77
78 A:link, A:visited {
79 font-weight: normal;
80 text-decoration: none;
81 }
82
83 A:link:hover, A:visited:hover, A:active {
84 text-decoration: underline;
85 }
86
87 SUB, SUP {
88 font-size: 50%;
89 }
90
91 TR.data, TD.data, TR.data TD {
92 margin-top: 10pt;
93 padding: 5pt;
94 border-bottom: solid 1pt #999999;
95 }
96
97 TR.data TH {
98 border-bottom: solid 1pt #999999;
99 padding-top: 10pt;
100 padding-left: 5pt;
101 text-align: left;
102 }
103
104 DIV.table TABLE {
105 border: solid thin #999999;
106 border-collapse: collapse;
107 border-spacing: 0;
108 margin-left: auto;
109 margin-right: auto;
110 }
111
112 DIV.table CAPTION {
113 caption-side: top;
114 font-size: 120%;
115 font-style: italic;
116 font-weight: bold;
117 margin-left: auto;
118 margin-right: auto;
119 }
120
121 DIV.table TABLE TD {
122 border: solid thin #cccccc;
123 padding-top: 5pt;
124 }
125
126 DIV.table TABLE TH {
127 background: #cccccc;
128 border: none;
129 border-bottom: solid thin #999999;
130 }
131
132 DIV.figure TABLE {
133 margin-left: auto;
134 margin-right: auto;
135 }
136
137 DIV.figure CAPTION {
138 caption-side: bottom;
139 font-size: 120%;
140 font-style: italic;
141 font-weight: bold;
142 margin-left: auto;
143 margin-right: auto;
144 }
145
146 TH.label {
147 text-align: right;
148 vertical-align: top;
149 }
150
151 TH.sublabel {
152 text-align: right;
153 font-weight: normal;
154 }
155
156 HR {
157 border: solid thin;
158 }
159
160 SPAN.info {
161 background: black;
162 border: thin solid black;
163 color: white;
164 font-size: 80%;
165 font-style: italic;
166 font-weight: bold;
167 white-space: nowrap;
168 }
169
170 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
171 float: right;
172 font-size: 100%;
173 }
174
175 H1.title {
176 }
177
178 H2.title, H3.title {
179 border-bottom: solid 2pt #000000;
180 }
181
182 DIV.indent, TABLE.indent {
183 margin-top: 2em;
184 margin-left: auto;
185 margin-right: auto;
186 width: 90%;
187 }
188
189 TABLE.indent {
190 border-collapse: collapse;
191 }
192
193 TABLE.indent TD, TABLE.indent TH {
194 padding: 0;
195 }
196
197 TABLE.list {
198 border-collapse: collapse;
199 margin-left: auto;
200 margin-right: auto;
201 width: 90%;
202 }
203
204 TABLE.list TH {
205 background: white;
206 border-bottom: solid thin #cccccc;
207 color: #444444;
208 padding-top: 10pt;
209 padding-left: 5pt;
210 text-align: left;
211 vertical-align: bottom;
212 white-space: nowrap;
213 }
214
215 TABLE.list TH A {
216 color: #4444cc;
217 }
218
219 TABLE.list TD {
220 border-bottom: solid thin #eeeeee;
221 padding-top: 5pt;
222 padding-left: 5pt;
223 }
224
225 TABLE.list TR:nth-child(even) {
226 background: #f8f8f8;
227 }
228
229 TABLE.list TR:nth-child(odd) {
230 background: #f4f4f4;
231 }
232
233 DT {
234 margin-left: 36pt;
235 margin-top: 12pt;
236 }
237
238 DD {
239 margin-left: 54pt;
240 }
241
242 DL.category DT {
243 font-weight: bold;
244 }
245
246 P.summary {
247 margin-left: 36pt;
248 font-family: monaco, courier, monospace;
249 }
250
251 DIV.summary TABLE {
252 border: solid thin #999999;
253 border-collapse: collapse;
254 border-spacing: 0;
255 margin: 10px;
256 }
257
258 DIV.summary TABLE TD, DIV.summary TABLE TH {
259 border: solid thin #999999;
260 padding: 5px;
261 text-align: left;
262 vertical-align: top;
263 }
264
265 DIV.summary TABLE THEAD TH {
266 background: #eeeeee;
267 }
268
269 /* API documentation styles... */
270 div.body h1 {
271 margin: 0;
272 }
273 div.body h2 {
274 margin-top: 1.5em;
275 }
276 div.body h3, div.body h4, div.body h5 {
277 margin-bottom: 0.5em;
278 margin-top: 1.5em;
279 }
280 .class, .enumeration, .function, .struct, .typedef, .union {
281 border-bottom: solid thin #999999;
282 margin-bottom: 0;
283 margin-top: 2em;
284 }
285 .description {
286 margin-top: 0.5em;
287 }
288 code, p.code, pre, ul.code li {
289 font-family: monaco, courier, monospace;
290 font-size: 90%;
291 }
292 ul.code, ul.contents, ul.subcontents {
293 list-style-type: none;
294 margin: 0;
295 padding-left: 0;
296 }
297 ul.code li {
298 margin: 0;
299 }
300 ul.contents > li {
301 margin-top: 1em;
302 }
303 ul.contents li ul.code, ul.contents li ul.subcontents {
304 padding-left: 2em;
305 }
306 div.body dl {
307 margin-left: 0;
308 margin-top: 0;
309 }
310 div.body dt {
311 font-style: italic;
312 margin-left: 0;
313 margin-top: 0;
314 }
315 div.body dd {
316 margin-bottom: 0.5em;
317 }
318
319 /* This is just for the HTML files generated with the framedhelp target */
320 div.contents {
321 background: #e8e8e8;
322 border: solid thin black;
323 padding: 10px;
324 }
325 div.contents h1 {
326 font-size: 110%;
327 }
328 div.contents h2 {
329 font-size: 100%;
330 }
331 div.contents ul.contents {
332 font-size: 80%;
333 }
334 div.contents ul.subcontents li {
335 margin-left: 1em;
336 text-indent: -1em;
337 }
338 --></style>
339 </head>
340 <body>
341 <div class='body'>
342 <!--
343 "$Id$"
344
345 PPD Compiler API header for CUPS.
346
347 Copyright 2009 by Apple Inc.
348
349 These coded instructions, statements, and computer programs are the
350 property of Apple Inc. and are protected by Federal copyright
351 law. Distribution and use rights are outlined in the file "LICENSE.txt"
352 which should have been included with this file. If this file is
353 file is missing or damaged, see the license at "http://www.cups.org/".
354 -->
355
356 <h1 class='title'>PPD Compiler API</h1>
357
358 <div class='summary'><table summary='General Information'>
359 <thead>
360 <tr>
361 <th>Header</th>
362 <th>cups/ppdc.h</th>
363 </tr>
364 </thead>
365 <tbody>
366 <tr>
367 <th>Library</th>
368 <td>-lcupsppdc</td>
369 </tr>
370 <tr>
371 <th>See Also</th>
372 <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a></td>
373 </tr>
374 </tbody>
375 </table></div>
376 <h2 class="title">Contents</h2>
377 <ul class="contents">
378 <ul class="subcontents">
379 <li><a href="#OVERVIEW">Overview</a></li>
380 <li><a href="#CLASSES">Classes</a><ul class="code">
381 <li><a href="#ppdcArray" title="// Shared Array">ppdcArray</a></li>
382 <li><a href="#ppdcAttr" title="// Attribute">ppdcAttr</a></li>
383 <li><a href="#ppdcCatalog" title="// Translation catalog">ppdcCatalog</a></li>
384 <li><a href="#ppdcChoice" title="// Option Choice">ppdcChoice</a></li>
385 <li><a href="#ppdcConstraint" title="// Constraint">ppdcConstraint</a></li>
386 <li><a href="#ppdcDriver" title="// Printer Driver Data">ppdcDriver</a></li>
387 <li><a href="#ppdcFile" title="// File">ppdcFile</a></li>
388 <li><a href="#ppdcFilter" title="// Filter Program">ppdcFilter</a></li>
389 <li><a href="#ppdcFont" title="// Shared Font">ppdcFont</a></li>
390 <li><a href="#ppdcGroup" title="// Group of Options">ppdcGroup</a></li>
391 <li><a href="#ppdcInteger" title="// Shared integer">ppdcInteger</a></li>
392 <li><a href="#ppdcMediaSize" title="// Media Size">ppdcMediaSize</a></li>
393 <li><a href="#ppdcMessage" title="// Translation message">ppdcMessage</a></li>
394 <li><a href="#ppdcOption" title="// Option">ppdcOption</a></li>
395 <li><a href="#ppdcProfile" title="// Color Profile">ppdcProfile</a></li>
396 <li><a href="#ppdcShared" title="// Shared Data Value">ppdcShared</a></li>
397 <li><a href="#ppdcSource" title="// Source File">ppdcSource</a></li>
398 <li><a href="#ppdcString" title="// Shared String">ppdcString</a></li>
399 <li><a href="#ppdcVariable" title="// Variable Definition">ppdcVariable</a></li>
400 </ul></li>
401 <li><a href="#TYPES">Data Types</a><ul class="code">
402 <li><a href="#ppdc_cs_t" title="">ppdc_cs_t</a></li>
403 </ul></li>
404 <li><a href="#VARIABLES">Variables</a><ul class="code">
405 <li><a href="#ppdcSource" title="// Printer Driver Data">ppdcSource</a></li>
406 </ul></li>
407 <li><a href="#ENUMERATIONS">Constants</a><ul class="code">
408 <li><a href="#ppdcCondFlags" title="// Condition flags">ppdcCondFlags</a></li>
409 <li><a href="#ppdcDrvType" title="// Driver type">ppdcDrvType</a></li>
410 <li><a href="#ppdcFontStatus" title="// Load status of font">ppdcFontStatus</a></li>
411 <li><a href="#ppdcLineEnding" title="// Line endings">ppdcLineEnding</a></li>
412 <li><a href="#ppdcOptSection" title="// Option section">ppdcOptSection</a></li>
413 <li><a href="#ppdcOptType" title="// Option type">ppdcOptType</a></li>
414 </ul></li>
415 <!--
416 "$Id$"
417
418 PPD Compiler API introduction for CUPS.
419
420 Copyright 2009 by Apple Inc.
421
422 These coded instructions, statements, and computer programs are the
423 property of Apple Inc. and are protected by Federal copyright
424 law. Distribution and use rights are outlined in the file "LICENSE.txt"
425 which should have been included with this file. If this file is
426 file is missing or damaged, see the license at "http://www.cups.org/".
427 -->
428
429 <h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
430
431 <p>The PPD Compiler API provides access to CUPS driver information files and
432 methods for generating and importing PPD files.</p>
433 <h2 class="title"><a name="CLASSES">Classes</a></h2>
434 <h3 class="class"><a name="ppdcArray">ppdcArray</a></h3>
435 <p class="description">// Shared Array</p>
436 <p class="code">class ppdcArray : public ppdcShared {<br>
437 &nbsp;&nbsp;public:<br>
438 &nbsp;&nbsp;&nbsp;&nbsp;int count, alloc, current;<br>
439 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcShared">ppdcShared</a> **data;<br>
440 };</p>
441 <h4 class="members">Members</h4>
442 <dl>
443 <dt>current </dt>
444 <dd class="description">Current element</dd>
445 <dt>data </dt>
446 <dd class="description">Elements</dd>
447 </dl>
448 <h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
449 <p class="description"></p>
450 <p class="code">
451 void PPDC_NAME (<br>
452 &nbsp;&nbsp;&nbsp;&nbsp;void add(<a href="#ppdcShared">ppdcShared</a> *d<br>
453 );</p>
454 <h5 class="parameters">Parameters</h5>
455 <dl>
456 <dt>d</dt>
457 </dl>
458 <h4 class="method"><a name="add">add</a></h4>
459 <p class="description"></p>
460 <p class="code">
461 void add (<br>
462 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcShared">ppdcShared</a> *d<br>
463 );</p>
464 <h5 class="parameters">Parameters</h5>
465 <dl>
466 <dt>d</dt>
467 </dl>
468 <h4 class="method"><a name="first">first</a></h4>
469 <p class="description">Return the first element in the array.</p>
470 <p class="code">
471 <a href="#ppdcShared">ppdcShared</a> *first (void);</p>
472 <h5 class="returnvalue">Return Value</h5>
473 <p class="description"></p>
474 <h4 class="method"><a name="next">next</a></h4>
475 <p class="description">Return the next element in the array.</p>
476 <p class="code">
477 <a href="#ppdcShared">ppdcShared</a> *next (void);</p>
478 <h5 class="returnvalue">Return Value</h5>
479 <p class="description"></p>
480 <h4 class="method"><a name="ppdcArray">ppdcArray</a></h4>
481 <p class="description"></p>
482 <p class="code">
483 void ppdcArray (<br>
484 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *a<br>
485 );</p>
486 <h5 class="parameters">Parameters</h5>
487 <dl>
488 <dt>a</dt>
489 </dl>
490 <h4 class="method"><a name="remove">remove</a></h4>
491 <p class="description"></p>
492 <p class="code">
493 void remove (<br>
494 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcShared">ppdcShared</a> *d<br>
495 );</p>
496 <h5 class="parameters">Parameters</h5>
497 <dl>
498 <dt>d</dt>
499 <dd class="description">Data element</dd>
500 </dl>
501 <h4 class="method"><a name="~ppdcArray">~ppdcArray</a></h4>
502 <p class="description"></p>
503 <p class="code">
504 void ~ppdcArray (void);</p>
505 <h3 class="class"><a name="ppdcAttr">ppdcAttr</a></h3>
506 <p class="description">// Attribute</p>
507 <p class="code">class ppdcAttr : public ppdcShared {<br>
508 &nbsp;&nbsp;public:<br>
509 &nbsp;&nbsp;&nbsp;&nbsp;bool localizable;<br>
510 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *selector, *text, *value;<br>
511 };</p>
512 <h4 class="members">Members</h4>
513 <dl>
514 <dt>localizable </dt>
515 <dd class="description">Should this attribute be localized?</dd>
516 <dt>value </dt>
517 <dd class="description">Value string</dd>
518 </dl>
519 <h4 class="method"><a name="ppdcAttr">ppdcAttr</a></h4>
520 <p class="description"></p>
521 <p class="code">
522 void ppdcAttr (<br>
523 &nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
524 &nbsp;&nbsp;&nbsp;&nbsp;const char *s,<br>
525 &nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
526 &nbsp;&nbsp;&nbsp;&nbsp;const char *v,<br>
527 &nbsp;&nbsp;&nbsp;&nbsp;bool loc<br>
528 );</p>
529 <h5 class="parameters">Parameters</h5>
530 <dl>
531 <dt>n</dt>
532 <dd class="description">Name</dd>
533 <dt>s</dt>
534 <dd class="description">Spec string</dd>
535 <dt>t</dt>
536 <dd class="description">Human-readable text</dd>
537 <dt>v</dt>
538 <dd class="description">Value</dd>
539 <dt>loc</dt>
540 <dd class="description">Localize this attribute?</dd>
541 </dl>
542 <h4 class="method"><a name="~ppdcAttr">~ppdcAttr</a></h4>
543 <p class="description"></p>
544 <p class="code">
545 void ~ppdcAttr (void);</p>
546 <h3 class="class"><a name="ppdcCatalog">ppdcCatalog</a></h3>
547 <p class="description">// Translation catalog</p>
548 <p class="code">class ppdcCatalog : public ppdcShared {<br>
549 &nbsp;&nbsp;public:<br>
550 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *filename;<br>
551 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *locale;<br>
552 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *messages;<br>
553 };</p>
554 <h4 class="members">Members</h4>
555 <dl>
556 <dt>filename </dt>
557 <dd class="description">Name of translation file</dd>
558 <dt>locale </dt>
559 <dd class="description">Name of locale</dd>
560 <dt>messages </dt>
561 <dd class="description">Array of translation messages</dd>
562 </dl>
563 <h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
564 <p class="description"></p>
565 <p class="code">
566 void PPDC_NAME (<br>
567 &nbsp;&nbsp;&nbsp;&nbsp;void add_message(const char *id,<br>
568 &nbsp;&nbsp;&nbsp;&nbsp;const char *string = NULL<br>
569 );</p>
570 <h5 class="parameters">Parameters</h5>
571 <dl>
572 <dt>id</dt>
573 <dt>string</dt>
574 </dl>
575 <h4 class="method"><a name="add_message">add_message</a></h4>
576 <p class="description"></p>
577 <p class="code">
578 void add_message (<br>
579 &nbsp;&nbsp;&nbsp;&nbsp;const char *id,<br>
580 &nbsp;&nbsp;&nbsp;&nbsp;const char *string<br>
581 );</p>
582 <h5 class="parameters">Parameters</h5>
583 <dl>
584 <dt>id</dt>
585 <dd class="description">Message ID to add</dd>
586 <dt>string</dt>
587 <dd class="description">Translation string</dd>
588 </dl>
589 <h4 class="method"><a name="find_message">find_message</a></h4>
590 <p class="description"></p>
591 <p class="code">
592 const char *find_message (<br>
593 &nbsp;&nbsp;&nbsp;&nbsp;const char *id<br>
594 );</p>
595 <h5 class="parameters">Parameters</h5>
596 <dl>
597 <dt>id</dt>
598 <dd class="description">Message ID</dd>
599 </dl>
600 <h5 class="returnvalue">Return Value</h5>
601 <p class="description">Message text</p>
602 <h4 class="method"><a name="load_messages">load_messages</a></h4>
603 <p class="description"></p>
604 <p class="code">
605 int load_messages (<br>
606 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
607 );</p>
608 <h5 class="parameters">Parameters</h5>
609 <dl>
610 <dt>f</dt>
611 <dd class="description">Message catalog file</dd>
612 </dl>
613 <h5 class="returnvalue">Return Value</h5>
614 <p class="description">0 on success, -1 on failure</p>
615 <h4 class="method"><a name="ppdcCatalog">ppdcCatalog</a></h4>
616 <p class="description"></p>
617 <p class="code">
618 void ppdcCatalog (<br>
619 &nbsp;&nbsp;&nbsp;&nbsp;const char *l,<br>
620 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
621 );</p>
622 <h5 class="parameters">Parameters</h5>
623 <dl>
624 <dt>l</dt>
625 <dd class="description">Locale</dd>
626 <dt>f</dt>
627 <dd class="description">Message catalog file</dd>
628 </dl>
629 <h4 class="method"><a name="save_messages">save_messages</a></h4>
630 <p class="description"></p>
631 <p class="code">
632 int save_messages (<br>
633 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
634 );</p>
635 <h5 class="parameters">Parameters</h5>
636 <dl>
637 <dt>f</dt>
638 <dd class="description">File to save to</dd>
639 </dl>
640 <h5 class="returnvalue">Return Value</h5>
641 <p class="description">0 on success, -1 on error</p>
642 <h4 class="method"><a name="~ppdcCatalog">~ppdcCatalog</a></h4>
643 <p class="description"></p>
644 <p class="code">
645 void ~ppdcCatalog (void);</p>
646 <h3 class="class"><a name="ppdcChoice">ppdcChoice</a></h3>
647 <p class="description">// Option Choice</p>
648 <p class="code">class ppdcChoice : public ppdcShared {<br>
649 &nbsp;&nbsp;public:<br>
650 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text, *code;<br>
651 };</p>
652 <h4 class="members">Members</h4>
653 <dl>
654 <dt>code </dt>
655 <dd class="description">PS code of choice</dd>
656 </dl>
657 <h4 class="method"><a name="ppdcChoice">ppdcChoice</a></h4>
658 <p class="description"></p>
659 <p class="code">
660 void ppdcChoice (<br>
661 &nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
662 &nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
663 &nbsp;&nbsp;&nbsp;&nbsp;const char *c<br>
664 );</p>
665 <h5 class="parameters">Parameters</h5>
666 <dl>
667 <dt>n</dt>
668 <dd class="description">Name of choice</dd>
669 <dt>t</dt>
670 <dd class="description">Text of choice</dd>
671 <dt>c</dt>
672 <dd class="description">Code of choice</dd>
673 </dl>
674 <h4 class="method"><a name="~ppdcChoice">~ppdcChoice</a></h4>
675 <p class="description"></p>
676 <p class="code">
677 void ~ppdcChoice (void);</p>
678 <h3 class="class"><a name="ppdcConstraint">ppdcConstraint</a></h3>
679 <p class="description">// Constraint</p>
680 <p class="code">class ppdcConstraint : public ppdcShared {<br>
681 &nbsp;&nbsp;public:<br>
682 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *option1, *choice1, *option2, *choice2;<br>
683 };</p>
684 <h4 class="members">Members</h4>
685 <dl>
686 <dt>choice2 </dt>
687 <dd class="description">Second choice</dd>
688 </dl>
689 <h4 class="method"><a name="ppdcConstraint">ppdcConstraint</a></h4>
690 <p class="description"></p>
691 <p class="code">
692 void ppdcConstraint (<br>
693 &nbsp;&nbsp;&nbsp;&nbsp;const char *o1,<br>
694 &nbsp;&nbsp;&nbsp;&nbsp;const char *c1,<br>
695 &nbsp;&nbsp;&nbsp;&nbsp;const char *o2,<br>
696 &nbsp;&nbsp;&nbsp;&nbsp;const char *c2<br>
697 );</p>
698 <h5 class="parameters">Parameters</h5>
699 <dl>
700 <dt>o1</dt>
701 <dd class="description">First option</dd>
702 <dt>c1</dt>
703 <dd class="description">First choice</dd>
704 <dt>o2</dt>
705 <dd class="description">Second option</dd>
706 <dt>c2</dt>
707 <dd class="description">Second choice</dd>
708 </dl>
709 <h4 class="method"><a name="~ppdcConstraint">~ppdcConstraint</a></h4>
710 <p class="description"></p>
711 <p class="code">
712 void ~ppdcConstraint (void);</p>
713 <h3 class="class"><a name="ppdcDriver">ppdcDriver</a></h3>
714 <p class="description">// Printer Driver Data</p>
715 <p class="code">class ppdcDriver : public ppdcShared {<br>
716 &nbsp;&nbsp;public:<br>
717 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *copyright;<br>
718 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *custom_size_code;<br>
719 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *default_font, *default_size;<br>
720 &nbsp;&nbsp;&nbsp;&nbsp;float left_margin, bottom_margin, right_margin, top_margin, max_width, max_length, min_width, min_length;<br>
721 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *attrs, *constraints, *filters, *fonts, *groups, *profiles, *sizes;<br>
722 &nbsp;&nbsp;&nbsp;&nbsp;int model_number, manual_copies, color_device, throughput;<br>
723 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDrvType">ppdcDrvType</a> type;<br>
724 &nbsp;&nbsp;&nbsp;&nbsp;int variable_paper_size;<br>
725 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *manufacturer, *model_name, *file_name, *pc_file_name, *version;<br>
726 };</p>
727 <h4 class="members">Members</h4>
728 <dl>
729 <dt>copyright </dt>
730 <dd class="description">Copyright strings</dd>
731 <dt>custom_size_code </dt>
732 <dd class="description">Custom page size code, if any</dd>
733 <dt>default_size </dt>
734 <dd class="description">Default size option</dd>
735 <dt>min_length </dt>
736 <dd class="description">Minimum length (points)</dd>
737 <dt>sizes </dt>
738 <dd class="description">Fixed sizes</dd>
739 <dt>throughput </dt>
740 <dd class="description">Throughput in pages per minute</dd>
741 <dt>type </dt>
742 <dd class="description">Driver type</dd>
743 <dt>variable_paper_size </dt>
744 <dd class="description">Support variable sizes?</dd>
745 <dt>version </dt>
746 <dd class="description">Version number</dd>
747 </dl>
748 <h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
749 <p class="description"></p>
750 <p class="code">
751 void PPDC_NAME (<br>
752 &nbsp;&nbsp;&nbsp;&nbsp;void add_attr(<a href="#ppdcAttr">ppdcAttr</a> *a<br>
753 );</p>
754 <h5 class="parameters">Parameters</h5>
755 <dl>
756 <dt>a</dt>
757 </dl>
758 <h4 class="method"><a name="add_constraint">add_constraint</a></h4>
759 <p class="description"></p>
760 <p class="code">
761 void add_constraint (<br>
762 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcConstraint">ppdcConstraint</a> *c<br>
763 );</p>
764 <h5 class="parameters">Parameters</h5>
765 <dl>
766 <dt>c</dt>
767 </dl>
768 <h4 class="method"><a name="add_copyright">add_copyright</a></h4>
769 <p class="description"></p>
770 <p class="code">
771 void add_copyright (<br>
772 &nbsp;&nbsp;&nbsp;&nbsp;const char *c<br>
773 );</p>
774 <h5 class="parameters">Parameters</h5>
775 <dl>
776 <dt>c</dt>
777 </dl>
778 <h4 class="method"><a name="add_filter">add_filter</a></h4>
779 <p class="description"></p>
780 <p class="code">
781 void add_filter (<br>
782 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFilter">ppdcFilter</a> *f<br>
783 );</p>
784 <h5 class="parameters">Parameters</h5>
785 <dl>
786 <dt>f</dt>
787 </dl>
788 <h4 class="method"><a name="add_font">add_font</a></h4>
789 <p class="description"></p>
790 <p class="code">
791 void add_font (<br>
792 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFont">ppdcFont</a> *f<br>
793 );</p>
794 <h5 class="parameters">Parameters</h5>
795 <dl>
796 <dt>f</dt>
797 </dl>
798 <h4 class="method"><a name="add_group">add_group</a></h4>
799 <p class="description"></p>
800 <p class="code">
801 void add_group (<br>
802 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> *g<br>
803 );</p>
804 <h5 class="parameters">Parameters</h5>
805 <dl>
806 <dt>g</dt>
807 </dl>
808 <h4 class="method"><a name="add_profile">add_profile</a></h4>
809 <p class="description"></p>
810 <p class="code">
811 void add_profile (<br>
812 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcProfile">ppdcProfile</a> *p<br>
813 );</p>
814 <h5 class="parameters">Parameters</h5>
815 <dl>
816 <dt>p</dt>
817 </dl>
818 <h4 class="method"><a name="add_size">add_size</a></h4>
819 <p class="description"></p>
820 <p class="code">
821 void add_size (<br>
822 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcMediaSize">ppdcMediaSize</a> *m<br>
823 );</p>
824 <h5 class="parameters">Parameters</h5>
825 <dl>
826 <dt>m</dt>
827 </dl>
828 <h4 class="method"><a name="find_attr">find_attr</a></h4>
829 <p class="description"></p>
830 <p class="code">
831 <a href="#ppdcAttr">ppdcAttr</a> *find_attr (<br>
832 &nbsp;&nbsp;&nbsp;&nbsp;const char *k,<br>
833 &nbsp;&nbsp;&nbsp;&nbsp;const char *s<br>
834 );</p>
835 <h5 class="parameters">Parameters</h5>
836 <dl>
837 <dt>k</dt>
838 <dd class="description">Keyword string</dd>
839 <dt>s</dt>
840 <dd class="description">Spec string</dd>
841 </dl>
842 <h5 class="returnvalue">Return Value</h5>
843 <p class="description">Attribute or NULL</p>
844 <h4 class="method"><a name="find_group">find_group</a></h4>
845 <p class="description"></p>
846 <p class="code">
847 <a href="#ppdcGroup">ppdcGroup</a> *find_group (<br>
848 &nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
849 );</p>
850 <h5 class="parameters">Parameters</h5>
851 <dl>
852 <dt>n</dt>
853 <dd class="description">Group name</dd>
854 </dl>
855 <h5 class="returnvalue">Return Value</h5>
856 <p class="description">Matching group or NULL</p>
857 <h4 class="method"><a name="find_option">find_option</a></h4>
858 <p class="description"></p>
859 <p class="code">
860 <a href="#ppdcOption">ppdcOption</a> *find_option (<br>
861 &nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
862 );</p>
863 <h5 class="parameters">Parameters</h5>
864 <dl>
865 <dt>n</dt>
866 <dd class="description">Option name</dd>
867 </dl>
868 <h5 class="returnvalue">Return Value</h5>
869 <p class="description">Matching option or NULL</p>
870 <h4 class="method"><a name="find_option_group">find_option_group</a></h4>
871 <p class="description"></p>
872 <p class="code">
873 <a href="#ppdcOption">ppdcOption</a> *find_option_group (<br>
874 &nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
875 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> **mg<br>
876 );</p>
877 <h5 class="parameters">Parameters</h5>
878 <dl>
879 <dt>n</dt>
880 <dd class="description">Option name</dd>
881 <dt>mg</dt>
882 <dd class="description">Matching group or NULL</dd>
883 </dl>
884 <h5 class="returnvalue">Return Value</h5>
885 <p class="description">Matching option or NULL</p>
886 <h4 class="method"><a name="ppdcDriver">ppdcDriver</a></h4>
887 <p class="description"></p>
888 <p class="code">
889 void ppdcDriver (<br>
890 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d<br>
891 );</p>
892 <h5 class="parameters">Parameters</h5>
893 <dl>
894 <dt>d</dt>
895 <dd class="description">Printer driver template</dd>
896 </dl>
897 <h4 class="method"><a name="set_custom_size_code">set_custom_size_code</a></h4>
898 <p class="description"></p>
899 <p class="code">
900 void set_custom_size_code (<br>
901 &nbsp;&nbsp;&nbsp;&nbsp;const char *c<br>
902 );</p>
903 <h5 class="parameters">Parameters</h5>
904 <dl>
905 <dt>c</dt>
906 <dd class="description">CustomPageSize code</dd>
907 </dl>
908 <h4 class="method"><a name="set_default_font">set_default_font</a></h4>
909 <p class="description"></p>
910 <p class="code">
911 void set_default_font (<br>
912 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFont">ppdcFont</a> *f<br>
913 );</p>
914 <h5 class="parameters">Parameters</h5>
915 <dl>
916 <dt>f</dt>
917 <dd class="description">Font</dd>
918 </dl>
919 <h4 class="method"><a name="set_default_size">set_default_size</a></h4>
920 <p class="description"></p>
921 <p class="code">
922 void set_default_size (<br>
923 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcMediaSize">ppdcMediaSize</a> *m<br>
924 );</p>
925 <h5 class="parameters">Parameters</h5>
926 <dl>
927 <dt>m</dt>
928 <dd class="description">Media size</dd>
929 </dl>
930 <h4 class="method"><a name="set_file_name">set_file_name</a></h4>
931 <p class="description"></p>
932 <p class="code">
933 void set_file_name (<br>
934 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
935 );</p>
936 <h5 class="parameters">Parameters</h5>
937 <dl>
938 <dt>f</dt>
939 <dd class="description">Filename</dd>
940 </dl>
941 <h4 class="method"><a name="set_manufacturer">set_manufacturer</a></h4>
942 <p class="description"></p>
943 <p class="code">
944 void set_manufacturer (<br>
945 &nbsp;&nbsp;&nbsp;&nbsp;const char *m<br>
946 );</p>
947 <h5 class="parameters">Parameters</h5>
948 <dl>
949 <dt>m</dt>
950 <dd class="description">Model name</dd>
951 </dl>
952 <h4 class="method"><a name="set_model_name">set_model_name</a></h4>
953 <p class="description"></p>
954 <p class="code">
955 void set_model_name (<br>
956 &nbsp;&nbsp;&nbsp;&nbsp;const char *m<br>
957 );</p>
958 <h5 class="parameters">Parameters</h5>
959 <dl>
960 <dt>m</dt>
961 <dd class="description">Model name</dd>
962 </dl>
963 <h4 class="method"><a name="set_pc_file_name">set_pc_file_name</a></h4>
964 <p class="description"></p>
965 <p class="code">
966 void set_pc_file_name (<br>
967 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
968 );</p>
969 <h5 class="parameters">Parameters</h5>
970 <dl>
971 <dt>f</dt>
972 <dd class="description">Filename</dd>
973 </dl>
974 <h4 class="method"><a name="set_version">set_version</a></h4>
975 <p class="description"></p>
976 <p class="code">
977 void set_version (<br>
978 &nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
979 );</p>
980 <h5 class="parameters">Parameters</h5>
981 <dl>
982 <dt>v</dt>
983 <dd class="description">Version</dd>
984 </dl>
985 <h4 class="method"><a name="write_ppd_file">write_ppd_file</a></h4>
986 <p class="description"></p>
987 <p class="code">
988 int write_ppd_file (<br>
989 &nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *fp,<br>
990 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcCatalog">ppdcCatalog</a> *catalog,<br>
991 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *locales,<br>
992 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcSource">ppdcSource</a> *src,<br>
993 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcLineEnding">ppdcLineEnding</a> le<br>
994 );</p>
995 <h5 class="parameters">Parameters</h5>
996 <dl>
997 <dt>fp</dt>
998 <dd class="description">PPD file</dd>
999 <dt>catalog</dt>
1000 <dd class="description">Message catalog</dd>
1001 <dt>locales</dt>
1002 <dd class="description">Additional languages to add</dd>
1003 <dt>src</dt>
1004 <dd class="description">Driver source</dd>
1005 <dt>le</dt>
1006 <dd class="description">Line endings to use</dd>
1007 </dl>
1008 <h5 class="returnvalue">Return Value</h5>
1009 <p class="description">0 on success, -1 on failure</p>
1010 <h4 class="method"><a name="~ppdcDriver">~ppdcDriver</a></h4>
1011 <p class="description"></p>
1012 <p class="code">
1013 void ~ppdcDriver (void);</p>
1014 <h3 class="class"><a name="ppdcFile">ppdcFile</a></h3>
1015 <p class="description">// File</p>
1016 <p class="code">class ppdcFile {<br>
1017 &nbsp;&nbsp;public:<br>
1018 &nbsp;&nbsp;&nbsp;&nbsp;const char *filename;<br>
1019 &nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *fp;<br>
1020 &nbsp;&nbsp;&nbsp;&nbsp;int line;<br>
1021 };</p>
1022 <h4 class="members">Members</h4>
1023 <dl>
1024 <dt>filename </dt>
1025 <dd class="description">Filename</dd>
1026 <dt>fp </dt>
1027 <dd class="description">File pointer</dd>
1028 <dt>line </dt>
1029 <dd class="description">Line in file</dd>
1030 </dl>
1031 <h4 class="method"><a name="get">get</a></h4>
1032 <p class="description">Get a character from a file.</p>
1033 <p class="code">
1034 int get (void);</p>
1035 <h5 class="returnvalue">Return Value</h5>
1036 <p class="description"></p>
1037 <h4 class="method"><a name="peek">peek</a></h4>
1038 <p class="description"></p>
1039 <p class="code">
1040 int peek (void);</p>
1041 <h5 class="returnvalue">Return Value</h5>
1042 <p class="description">Next character in file</p>
1043 <h4 class="method"><a name="ppdcFile">ppdcFile</a></h4>
1044 <p class="description"></p>
1045 <p class="code">
1046 void ppdcFile (<br>
1047 &nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
1048 &nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *ffp<br>
1049 );</p>
1050 <h5 class="parameters">Parameters</h5>
1051 <dl>
1052 <dt>f</dt>
1053 <dd class="description">File to open</dd>
1054 <dt>ffp</dt>
1055 <dd class="description">File pointer to use</dd>
1056 </dl>
1057 <h4 class="method"><a name="~ppdcFile">~ppdcFile</a></h4>
1058 <p class="description"></p>
1059 <p class="code">
1060 void ~ppdcFile (void);</p>
1061 <h3 class="class"><a name="ppdcFilter">ppdcFilter</a></h3>
1062 <p class="description">// Filter Program</p>
1063 <p class="code">class ppdcFilter : public ppdcShared {<br>
1064 &nbsp;&nbsp;public:<br>
1065 &nbsp;&nbsp;&nbsp;&nbsp;int cost;<br>
1066 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *mime_type, *program;<br>
1067 };</p>
1068 <h4 class="members">Members</h4>
1069 <dl>
1070 <dt>cost </dt>
1071 <dd class="description">Relative cost of filter</dd>
1072 <dt>program </dt>
1073 <dd class="description">Filter program</dd>
1074 </dl>
1075 <h4 class="method"><a name="ppdcFilter">ppdcFilter</a></h4>
1076 <p class="description"></p>
1077 <p class="code">
1078 void ppdcFilter (<br>
1079 &nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
1080 &nbsp;&nbsp;&nbsp;&nbsp;const char *p,<br>
1081 &nbsp;&nbsp;&nbsp;&nbsp;int c<br>
1082 );</p>
1083 <h5 class="parameters">Parameters</h5>
1084 <dl>
1085 <dt>t</dt>
1086 <dd class="description">MIME type</dd>
1087 <dt>p</dt>
1088 <dd class="description">Filter program</dd>
1089 <dt>c</dt>
1090 <dd class="description">Relative cost</dd>
1091 </dl>
1092 <h4 class="method"><a name="~ppdcFilter">~ppdcFilter</a></h4>
1093 <p class="description"></p>
1094 <p class="code">
1095 void ~ppdcFilter (void);</p>
1096 <h3 class="class"><a name="ppdcFont">ppdcFont</a></h3>
1097 <p class="description">// Shared Font</p>
1098 <p class="code">class ppdcFont : public ppdcShared {<br>
1099 &nbsp;&nbsp;public:<br>
1100 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *encoding, *version, *charset;<br>
1101 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFontStatus">ppdcFontStatus</a> status;<br>
1102 };</p>
1103 <h4 class="members">Members</h4>
1104 <dl>
1105 <dt>charset </dt>
1106 <dd class="description">Font charset</dd>
1107 <dt>status </dt>
1108 <dd class="description">Font status (ROM or Disk)</dd>
1109 </dl>
1110 <h4 class="method"><a name="ppdcFont">ppdcFont</a></h4>
1111 <p class="description"></p>
1112 <p class="code">
1113 void ppdcFont (<br>
1114 &nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
1115 &nbsp;&nbsp;&nbsp;&nbsp;const char *e,<br>
1116 &nbsp;&nbsp;&nbsp;&nbsp;const char *v,<br>
1117 &nbsp;&nbsp;&nbsp;&nbsp;const char *c,<br>
1118 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFontStatus">ppdcFontStatus</a> s<br>
1119 );</p>
1120 <h5 class="parameters">Parameters</h5>
1121 <dl>
1122 <dt>n</dt>
1123 <dd class="description">Name of font</dd>
1124 <dt>e</dt>
1125 <dd class="description">Font encoding</dd>
1126 <dt>v</dt>
1127 <dd class="description">Font version</dd>
1128 <dt>c</dt>
1129 <dd class="description">Font charset</dd>
1130 <dt>s</dt>
1131 <dd class="description">Font status</dd>
1132 </dl>
1133 <h4 class="method"><a name="~ppdcFont">~ppdcFont</a></h4>
1134 <p class="description"></p>
1135 <p class="code">
1136 void ~ppdcFont (void);</p>
1137 <h3 class="class"><a name="ppdcGroup">ppdcGroup</a></h3>
1138 <p class="description">// Group of Options</p>
1139 <p class="code">class ppdcGroup : public ppdcShared {<br>
1140 &nbsp;&nbsp;public:<br>
1141 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *options;<br>
1142 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text;<br>
1143 };</p>
1144 <h4 class="members">Members</h4>
1145 <dl>
1146 <dt>options </dt>
1147 <dd class="description">Options</dd>
1148 <dt>text </dt>
1149 <dd class="description">Human-readable text of option</dd>
1150 </dl>
1151 <h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
1152 <p class="description"></p>
1153 <p class="code">
1154 void PPDC_NAME (<br>
1155 &nbsp;&nbsp;&nbsp;&nbsp;void add_option(<a href="#ppdcOption">ppdcOption</a> *o<br>
1156 );</p>
1157 <h5 class="parameters">Parameters</h5>
1158 <dl>
1159 <dt>o</dt>
1160 </dl>
1161 <h4 class="method"><a name="find_option">find_option</a></h4>
1162 <p class="description">Find an option in a group.</p>
1163 <p class="code">
1164 <a href="#ppdcOption">ppdcOption</a> *find_option (<br>
1165 &nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
1166 );</p>
1167 <h5 class="parameters">Parameters</h5>
1168 <dl>
1169 <dt>n</dt>
1170 <dd class="description">Name of option</dd>
1171 </dl>
1172 <h5 class="returnvalue">Return Value</h5>
1173 <p class="description"></p>
1174 <h4 class="method"><a name="ppdcGroup">ppdcGroup</a></h4>
1175 <p class="description"></p>
1176 <p class="code">
1177 void ppdcGroup (<br>
1178 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> *g<br>
1179 );</p>
1180 <h5 class="parameters">Parameters</h5>
1181 <dl>
1182 <dt>g</dt>
1183 <dd class="description">Group template</dd>
1184 </dl>
1185 <h4 class="method"><a name="~ppdcGroup">~ppdcGroup</a></h4>
1186 <p class="description"></p>
1187 <p class="code">
1188 void ~ppdcGroup (void);</p>
1189 <h3 class="class"><a name="ppdcInteger">ppdcInteger</a></h3>
1190 <p class="description">// Shared integer</p>
1191 <p class="code">class ppdcInteger : public ppdcShared {<br>
1192 &nbsp;&nbsp;public:<br>
1193 &nbsp;&nbsp;&nbsp;&nbsp;int *value;<br>
1194 };</p>
1195 <h4 class="members">Members</h4>
1196 <dl>
1197 <dt>value </dt>
1198 <dd class="description">Integer value</dd>
1199 </dl>
1200 <h4 class="method"><a name="ppdcInteger">ppdcInteger</a></h4>
1201 <p class="description">Integer value</p>
1202 <p class="code">
1203 void ppdcInteger (<br>
1204 &nbsp;&nbsp;&nbsp;&nbsp;int *v<br>
1205 );</p>
1206 <h5 class="parameters">Parameters</h5>
1207 <dl>
1208 <dt>v</dt>
1209 </dl>
1210 <h3 class="class"><a name="ppdcMediaSize">ppdcMediaSize</a></h3>
1211 <p class="description">// Media Size</p>
1212 <p class="code">class ppdcMediaSize : public ppdcShared {<br>
1213 &nbsp;&nbsp;public:<br>
1214 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *size_code, *region_code;<br>
1215 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text;<br>
1216 &nbsp;&nbsp;&nbsp;&nbsp;float width, length, left, bottom, right, top;<br>
1217 };</p>
1218 <h4 class="members">Members</h4>
1219 <dl>
1220 <dt>region_code </dt>
1221 <dd class="description">PageRegion code, if any</dd>
1222 <dt>text </dt>
1223 <dd class="description">Human-readable text</dd>
1224 <dt>top </dt>
1225 <dd class="description">Top limit in points</dd>
1226 </dl>
1227 <h4 class="method"><a name="ppdcMediaSize">ppdcMediaSize</a></h4>
1228 <p class="description"></p>
1229 <p class="code">
1230 void ppdcMediaSize (<br>
1231 &nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
1232 &nbsp;&nbsp;&nbsp;&nbsp;const char *t,<br>
1233 &nbsp;&nbsp;&nbsp;&nbsp;float w,<br>
1234 &nbsp;&nbsp;&nbsp;&nbsp;float l,<br>
1235 &nbsp;&nbsp;&nbsp;&nbsp;float lm,<br>
1236 &nbsp;&nbsp;&nbsp;&nbsp;float bm,<br>
1237 &nbsp;&nbsp;&nbsp;&nbsp;float rm,<br>
1238 &nbsp;&nbsp;&nbsp;&nbsp;float tm,<br>
1239 &nbsp;&nbsp;&nbsp;&nbsp;const char *sc,<br>
1240 &nbsp;&nbsp;&nbsp;&nbsp;const char *rc<br>
1241 );</p>
1242 <h5 class="parameters">Parameters</h5>
1243 <dl>
1244 <dt>n</dt>
1245 <dd class="description">Name of media size</dd>
1246 <dt>t</dt>
1247 <dd class="description">Text of media size</dd>
1248 <dt>w</dt>
1249 <dd class="description">Width in points</dd>
1250 <dt>l</dt>
1251 <dd class="description">Length in points</dd>
1252 <dt>lm</dt>
1253 <dd class="description">Left margin in points</dd>
1254 <dt>bm</dt>
1255 <dd class="description">Bottom margin in points</dd>
1256 <dt>rm</dt>
1257 <dd class="description">Right margin in points</dd>
1258 <dt>tm</dt>
1259 <dd class="description">Top margin in points</dd>
1260 <dt>sc</dt>
1261 <dd class="description">PageSize code, if any</dd>
1262 <dt>rc</dt>
1263 <dd class="description">PageRegion code, if any</dd>
1264 </dl>
1265 <h4 class="method"><a name="~ppdcMediaSize">~ppdcMediaSize</a></h4>
1266 <p class="description"></p>
1267 <p class="code">
1268 void ~ppdcMediaSize (void);</p>
1269 <h3 class="class"><a name="ppdcMessage">ppdcMessage</a></h3>
1270 <p class="description">// Translation message</p>
1271 <p class="code">class ppdcMessage : public ppdcShared {<br>
1272 &nbsp;&nbsp;public:<br>
1273 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *id, *string;<br>
1274 };</p>
1275 <h4 class="members">Members</h4>
1276 <dl>
1277 <dt>string </dt>
1278 <dd class="description">Translation string</dd>
1279 </dl>
1280 <h4 class="method"><a name="ppdcMessage">ppdcMessage</a></h4>
1281 <p class="description"></p>
1282 <p class="code">
1283 void ppdcMessage (<br>
1284 &nbsp;&nbsp;&nbsp;&nbsp;const char *i,<br>
1285 &nbsp;&nbsp;&nbsp;&nbsp;const char *s<br>
1286 );</p>
1287 <h5 class="parameters">Parameters</h5>
1288 <dl>
1289 <dt>i</dt>
1290 <dd class="description">ID</dd>
1291 <dt>s</dt>
1292 <dd class="description">Text</dd>
1293 </dl>
1294 <h4 class="method"><a name="~ppdcMessage">~ppdcMessage</a></h4>
1295 <p class="description"></p>
1296 <p class="code">
1297 void ~ppdcMessage (void);</p>
1298 <h3 class="class"><a name="ppdcOption">ppdcOption</a></h3>
1299 <p class="description">// Option</p>
1300 <p class="code">class ppdcOption : public ppdcShared {<br>
1301 &nbsp;&nbsp;public:<br>
1302 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *choices;<br>
1303 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *defchoice;<br>
1304 &nbsp;&nbsp;&nbsp;&nbsp;float order;<br>
1305 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcOptSection">ppdcOptSection</a> section;<br>
1306 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *text;<br>
1307 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcOptType">ppdcOptType</a> type;<br>
1308 };</p>
1309 <h4 class="members">Members</h4>
1310 <dl>
1311 <dt>choices </dt>
1312 <dd class="description">Choices</dd>
1313 <dt>defchoice </dt>
1314 <dd class="description">Default choice</dd>
1315 <dt>order </dt>
1316 <dd class="description">Order number</dd>
1317 <dt>section </dt>
1318 <dd class="description">Section for option code</dd>
1319 <dt>text </dt>
1320 <dd class="description">Human-readable text of option</dd>
1321 <dt>type </dt>
1322 <dd class="description">Type of option</dd>
1323 </dl>
1324 <h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
1325 <p class="description"></p>
1326 <p class="code">
1327 void PPDC_NAME (<br>
1328 &nbsp;&nbsp;&nbsp;&nbsp;void add_choice(<a href="#ppdcChoice">ppdcChoice</a> *c<br>
1329 );</p>
1330 <h5 class="parameters">Parameters</h5>
1331 <dl>
1332 <dt>c</dt>
1333 </dl>
1334 <h4 class="method"><a name="find_choice">find_choice</a></h4>
1335 <p class="description"></p>
1336 <p class="code">
1337 <a href="#ppdcChoice">ppdcChoice</a> *find_choice (<br>
1338 &nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
1339 );</p>
1340 <h5 class="parameters">Parameters</h5>
1341 <dl>
1342 <dt>n</dt>
1343 <dd class="description">Name of choice</dd>
1344 </dl>
1345 <h5 class="returnvalue">Return Value</h5>
1346 <p class="description">Choice or NULL</p>
1347 <h4 class="method"><a name="ppdcOption">ppdcOption</a></h4>
1348 <p class="description"></p>
1349 <p class="code">
1350 void ppdcOption (<br>
1351 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcOption">ppdcOption</a> *o<br>
1352 );</p>
1353 <h5 class="parameters">Parameters</h5>
1354 <dl>
1355 <dt>o</dt>
1356 <dd class="description">Template option</dd>
1357 </dl>
1358 <h4 class="method"><a name="set_defchoice">set_defchoice</a></h4>
1359 <p class="description"></p>
1360 <p class="code">
1361 void set_defchoice (<br>
1362 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcChoice">ppdcChoice</a> *c<br>
1363 );</p>
1364 <h5 class="parameters">Parameters</h5>
1365 <dl>
1366 <dt>c</dt>
1367 <dd class="description">Choice</dd>
1368 </dl>
1369 <h4 class="method"><a name="~ppdcOption">~ppdcOption</a></h4>
1370 <p class="description"></p>
1371 <p class="code">
1372 void ~ppdcOption (void);</p>
1373 <h3 class="class"><a name="ppdcProfile">ppdcProfile</a></h3>
1374 <p class="description">// Color Profile</p>
1375 <p class="code">class ppdcProfile : public ppdcShared {<br>
1376 &nbsp;&nbsp;public:<br>
1377 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *resolution, *media_type;<br>
1378 &nbsp;&nbsp;&nbsp;&nbsp;float density, gamma, profile[9];<br>
1379 };</p>
1380 <h4 class="members">Members</h4>
1381 <dl>
1382 <dt>media_type </dt>
1383 <dd class="description">Media type name</dd>
1384 <dt>profile[9] </dt>
1385 <dd class="description">Color profile matrix</dd>
1386 </dl>
1387 <h4 class="method"><a name="ppdcProfile">ppdcProfile</a></h4>
1388 <p class="description"></p>
1389 <p class="code">
1390 void ppdcProfile (<br>
1391 &nbsp;&nbsp;&nbsp;&nbsp;const char *r,<br>
1392 &nbsp;&nbsp;&nbsp;&nbsp;const char *m,<br>
1393 &nbsp;&nbsp;&nbsp;&nbsp;float d,<br>
1394 &nbsp;&nbsp;&nbsp;&nbsp;float g,<br>
1395 &nbsp;&nbsp;&nbsp;&nbsp;const float *p<br>
1396 );</p>
1397 <h5 class="parameters">Parameters</h5>
1398 <dl>
1399 <dt>r</dt>
1400 <dd class="description">Resolution name</dd>
1401 <dt>m</dt>
1402 <dd class="description">Media type name</dd>
1403 <dt>d</dt>
1404 <dd class="description">Density</dd>
1405 <dt>g</dt>
1406 <dd class="description">Gamma</dd>
1407 <dt>p</dt>
1408 <dd class="description">3x3 transform matrix</dd>
1409 </dl>
1410 <h4 class="method"><a name="~ppdcProfile">~ppdcProfile</a></h4>
1411 <p class="description"></p>
1412 <p class="code">
1413 void ~ppdcProfile (void);</p>
1414 <h3 class="class"><a name="ppdcShared">ppdcShared</a></h3>
1415 <p class="description">// Shared Data Value</p>
1416 <p class="code">class ppdcShared {<br>
1417 &nbsp;&nbsp;private:<br>
1418 &nbsp;&nbsp;&nbsp;&nbsp;int use;<br>
1419 };</p>
1420 <h4 class="members">Members</h4>
1421 <dl>
1422 <dt>use </dt>
1423 <dd class="description">Use count (delete when 0)</dd>
1424 </dl>
1425 <h4 class="method"><a name="class_name">class_name</a></h4>
1426 <p class="description"></p>
1427 <p class="code">
1428 virtual const char *class_name (void);</p>
1429 <h5 class="returnvalue">Return Value</h5>
1430 <p class="description"></p>
1431 <h4 class="method"><a name="ppdcShared">ppdcShared</a></h4>
1432 <p class="description"></p>
1433 <p class="code">
1434 void ppdcShared (void);</p>
1435 <h4 class="method"><a name="release">release</a></h4>
1436 <p class="description"></p>
1437 <p class="code">
1438 void release (void);</p>
1439 <h4 class="method"><a name="retain">retain</a></h4>
1440 <p class="description"></p>
1441 <p class="code">
1442 void retain (void);</p>
1443 <h4 class="method"><a name="~ppdcShared">~ppdcShared</a></h4>
1444 <p class="description"></p>
1445 <p class="code">
1446 void ~ppdcShared (void);</p>
1447 <h3 class="class"><a name="ppdcSource">ppdcSource</a></h3>
1448 <p class="description">// Source File</p>
1449 <p class="code">class ppdcSource : public ppdcShared {<br>
1450 &nbsp;&nbsp;public:<br>
1451 &nbsp;&nbsp;&nbsp;&nbsp;int cond_state, *cond_current, cond_stack[101];<br>
1452 &nbsp;&nbsp;&nbsp;&nbsp;static const char *driver_types[];<br>
1453 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *filename;<br>
1454 &nbsp;&nbsp;&nbsp;&nbsp;static <a href="#ppdcArray">ppdcArray</a> *includes;<br>
1455 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcArray">ppdcArray</a> *base_fonts, *drivers, *po_files, *sizes, *vars;<br>
1456 };</p>
1457 <h4 class="members">Members</h4>
1458 <dl>
1459 <dt>cond_stack[101] </dt>
1460 <dd class="description">#if state stack</dd>
1461 <dt>driver_types[] </dt>
1462 <dd class="description">Driver types</dd>
1463 <dt>filename </dt>
1464 <dd class="description">Filename</dd>
1465 <dt>includes </dt>
1466 <dd class="description">Include directories</dd>
1467 <dt>vars </dt>
1468 <dd class="description">Defined variables</dd>
1469 </dl>
1470 <h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
1471 <p class="description"></p>
1472 <p class="code">
1473 void PPDC_NAME (<br>
1474 &nbsp;&nbsp;&nbsp;&nbsp;static void add_include(const char *d<br>
1475 );</p>
1476 <h5 class="parameters">Parameters</h5>
1477 <dl>
1478 <dt>d</dt>
1479 </dl>
1480 <h4 class="method"><a name="add_include">add_include</a></h4>
1481 <p class="description"></p>
1482 <p class="code">
1483 void add_include (<br>
1484 &nbsp;&nbsp;&nbsp;&nbsp;const char *d<br>
1485 );</p>
1486 <h5 class="parameters">Parameters</h5>
1487 <dl>
1488 <dt>d</dt>
1489 <dd class="description">Include directory</dd>
1490 </dl>
1491 <h4 class="method"><a name="find_driver">find_driver</a></h4>
1492 <p class="description"></p>
1493 <p class="code">
1494 <a href="#ppdcDriver">ppdcDriver</a> *find_driver (<br>
1495 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
1496 );</p>
1497 <h5 class="parameters">Parameters</h5>
1498 <dl>
1499 <dt>f</dt>
1500 <dd class="description">Driver file name</dd>
1501 </dl>
1502 <h5 class="returnvalue">Return Value</h5>
1503 <p class="description">Driver</p>
1504 <h4 class="method"><a name="find_include">find_include</a></h4>
1505 <p class="description"></p>
1506 <p class="code">
1507 char *find_include (<br>
1508 &nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
1509 &nbsp;&nbsp;&nbsp;&nbsp;const char *base,<br>
1510 &nbsp;&nbsp;&nbsp;&nbsp;char *n,<br>
1511 &nbsp;&nbsp;&nbsp;&nbsp;int nlen<br>
1512 );</p>
1513 <h5 class="parameters">Parameters</h5>
1514 <dl>
1515 <dt>f</dt>
1516 <dd class="description">Include filename</dd>
1517 <dt>base</dt>
1518 <dd class="description">Current directory</dd>
1519 <dt>n</dt>
1520 <dd class="description">Path buffer</dd>
1521 <dt>nlen</dt>
1522 <dd class="description">Path buffer length</dd>
1523 </dl>
1524 <h5 class="returnvalue">Return Value</h5>
1525 <p class="description">Found path or NULL</p>
1526 <h4 class="method"><a name="find_po">find_po</a></h4>
1527 <p class="description"></p>
1528 <p class="code">
1529 <a href="#ppdcCatalog">ppdcCatalog</a> *find_po (<br>
1530 &nbsp;&nbsp;&nbsp;&nbsp;const char *l<br>
1531 );</p>
1532 <h5 class="parameters">Parameters</h5>
1533 <dl>
1534 <dt>l</dt>
1535 <dd class="description">Locale name</dd>
1536 </dl>
1537 <h5 class="returnvalue">Return Value</h5>
1538 <p class="description">Message catalog or NULL</p>
1539 <h4 class="method"><a name="find_size">find_size</a></h4>
1540 <p class="description"></p>
1541 <p class="code">
1542 <a href="#ppdcMediaSize">ppdcMediaSize</a> *find_size (<br>
1543 &nbsp;&nbsp;&nbsp;&nbsp;const char *s<br>
1544 );</p>
1545 <h5 class="parameters">Parameters</h5>
1546 <dl>
1547 <dt>s</dt>
1548 <dd class="description">Size name</dd>
1549 </dl>
1550 <h5 class="returnvalue">Return Value</h5>
1551 <p class="description">Size</p>
1552 <h4 class="method"><a name="find_variable">find_variable</a></h4>
1553 <p class="description"></p>
1554 <p class="code">
1555 <a href="#ppdcVariable">ppdcVariable</a> *find_variable (<br>
1556 &nbsp;&nbsp;&nbsp;&nbsp;const char *n<br>
1557 );</p>
1558 <h5 class="parameters">Parameters</h5>
1559 <dl>
1560 <dt>n</dt>
1561 <dd class="description">Variable name</dd>
1562 </dl>
1563 <h5 class="returnvalue">Return Value</h5>
1564 <p class="description">Variable</p>
1565 <h4 class="method"><a name="get_attr">get_attr</a></h4>
1566 <p class="description"></p>
1567 <p class="code">
1568 <a href="#ppdcAttr">ppdcAttr</a> *get_attr (<br>
1569 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
1570 &nbsp;&nbsp;&nbsp;&nbsp;bool loc<br>
1571 );</p>
1572 <h5 class="parameters">Parameters</h5>
1573 <dl>
1574 <dt>fp</dt>
1575 <dd class="description">File to read</dd>
1576 <dt>loc</dt>
1577 <dd class="description">Localize this attribute?</dd>
1578 </dl>
1579 <h5 class="returnvalue">Return Value</h5>
1580 <p class="description">Attribute</p>
1581 <h4 class="method"><a name="get_boolean">get_boolean</a></h4>
1582 <p class="description"></p>
1583 <p class="code">
1584 int get_boolean (<br>
1585 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1586 );</p>
1587 <h5 class="parameters">Parameters</h5>
1588 <dl>
1589 <dt>fp</dt>
1590 <dd class="description">File to read</dd>
1591 </dl>
1592 <h5 class="returnvalue">Return Value</h5>
1593 <p class="description">Boolean value</p>
1594 <h4 class="method"><a name="get_choice">get_choice</a></h4>
1595 <p class="description"></p>
1596 <p class="code">
1597 <a href="#ppdcChoice">ppdcChoice</a> *get_choice (<br>
1598 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1599 );</p>
1600 <h5 class="parameters">Parameters</h5>
1601 <dl>
1602 <dt>fp</dt>
1603 <dd class="description">File to read</dd>
1604 </dl>
1605 <h5 class="returnvalue">Return Value</h5>
1606 <p class="description">Choice data</p>
1607 <h4 class="method"><a name="get_color_model">get_color_model</a></h4>
1608 <p class="description"></p>
1609 <p class="code">
1610 <a href="#ppdcChoice">ppdcChoice</a> *get_color_model (<br>
1611 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1612 );</p>
1613 <h5 class="parameters">Parameters</h5>
1614 <dl>
1615 <dt>fp</dt>
1616 <dd class="description">File to read</dd>
1617 </dl>
1618 <h5 class="returnvalue">Return Value</h5>
1619 <p class="description">Choice data</p>
1620 <h4 class="method"><a name="get_color_order">get_color_order</a></h4>
1621 <p class="description"></p>
1622 <p class="code">
1623 int get_color_order (<br>
1624 &nbsp;&nbsp;&nbsp;&nbsp;const char *co<br>
1625 );</p>
1626 <h5 class="parameters">Parameters</h5>
1627 <dl>
1628 <dt>co</dt>
1629 <dd class="description">Color order string</dd>
1630 </dl>
1631 <h5 class="returnvalue">Return Value</h5>
1632 <p class="description">Color order value</p>
1633 <h4 class="method"><a name="get_color_profile">get_color_profile</a></h4>
1634 <p class="description"></p>
1635 <p class="code">
1636 <a href="#ppdcProfile">ppdcProfile</a> *get_color_profile (<br>
1637 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1638 );</p>
1639 <h5 class="parameters">Parameters</h5>
1640 <dl>
1641 <dt>fp</dt>
1642 <dd class="description">File to read</dd>
1643 </dl>
1644 <h5 class="returnvalue">Return Value</h5>
1645 <p class="description">Color profile</p>
1646 <h4 class="method"><a name="get_color_space">get_color_space</a></h4>
1647 <p class="description"></p>
1648 <p class="code">
1649 int get_color_space (<br>
1650 &nbsp;&nbsp;&nbsp;&nbsp;const char *cs<br>
1651 );</p>
1652 <h5 class="parameters">Parameters</h5>
1653 <dl>
1654 <dt>cs</dt>
1655 <dd class="description">Colorspace string</dd>
1656 </dl>
1657 <h5 class="returnvalue">Return Value</h5>
1658 <p class="description">Colorspace value</p>
1659 <h4 class="method"><a name="get_constraint">get_constraint</a></h4>
1660 <p class="description"></p>
1661 <p class="code">
1662 <a href="#ppdcConstraint">ppdcConstraint</a> *get_constraint (<br>
1663 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1664 );</p>
1665 <h5 class="parameters">Parameters</h5>
1666 <dl>
1667 <dt>fp</dt>
1668 <dd class="description">File to read</dd>
1669 </dl>
1670 <h5 class="returnvalue">Return Value</h5>
1671 <p class="description">Constraint</p>
1672 <h4 class="method"><a name="get_custom_size">get_custom_size</a></h4>
1673 <p class="description"></p>
1674 <p class="code">
1675 <a href="#ppdcMediaSize">ppdcMediaSize</a> *get_custom_size (<br>
1676 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1677 );</p>
1678 <h5 class="parameters">Parameters</h5>
1679 <dl>
1680 <dt>fp</dt>
1681 <dd class="description">File to read</dd>
1682 </dl>
1683 <h5 class="returnvalue">Return Value</h5>
1684 <p class="description">Media size</p>
1685 <h4 class="method"><a name="get_duplex">get_duplex</a></h4>
1686 <p class="description"></p>
1687 <p class="code">
1688 void get_duplex (<br>
1689 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
1690 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d<br>
1691 );</p>
1692 <h5 class="parameters">Parameters</h5>
1693 <dl>
1694 <dt>fp</dt>
1695 <dd class="description">File to read from</dd>
1696 <dt>d</dt>
1697 <dd class="description">Current driver</dd>
1698 </dl>
1699 <h4 class="method"><a name="get_filter">get_filter</a></h4>
1700 <p class="description"></p>
1701 <p class="code">
1702 <a href="#ppdcFilter">ppdcFilter</a> *get_filter (<br>
1703 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1704 );</p>
1705 <h5 class="parameters">Parameters</h5>
1706 <dl>
1707 <dt>fp</dt>
1708 <dd class="description">File to read</dd>
1709 </dl>
1710 <h5 class="returnvalue">Return Value</h5>
1711 <p class="description">Filter</p>
1712 <h4 class="method"><a name="get_float">get_float</a></h4>
1713 <p class="description"></p>
1714 <p class="code">
1715 float get_float (<br>
1716 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1717 );</p>
1718 <h5 class="parameters">Parameters</h5>
1719 <dl>
1720 <dt>fp</dt>
1721 <dd class="description">File to read</dd>
1722 </dl>
1723 <h5 class="returnvalue">Return Value</h5>
1724 <p class="description">Number</p>
1725 <h4 class="method"><a name="get_font">get_font</a></h4>
1726 <p class="description"></p>
1727 <p class="code">
1728 <a href="#ppdcFont">ppdcFont</a> *get_font (<br>
1729 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1730 );</p>
1731 <h5 class="parameters">Parameters</h5>
1732 <dl>
1733 <dt>fp</dt>
1734 <dd class="description">File to read</dd>
1735 </dl>
1736 <h5 class="returnvalue">Return Value</h5>
1737 <p class="description">Font data</p>
1738 <h4 class="method"><a name="get_generic">get_generic</a></h4>
1739 <p class="description"></p>
1740 <p class="code">
1741 <a href="#ppdcChoice">ppdcChoice</a> *get_generic (<br>
1742 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
1743 &nbsp;&nbsp;&nbsp;&nbsp;const char *keyword,<br>
1744 &nbsp;&nbsp;&nbsp;&nbsp;const char *tattr,<br>
1745 &nbsp;&nbsp;&nbsp;&nbsp;const char *nattr<br>
1746 );</p>
1747 <h5 class="parameters">Parameters</h5>
1748 <dl>
1749 <dt>fp</dt>
1750 <dd class="description">File to read</dd>
1751 <dt>keyword</dt>
1752 <dd class="description">Keyword name</dd>
1753 <dt>tattr</dt>
1754 <dd class="description">Text attribute</dd>
1755 <dt>nattr</dt>
1756 <dd class="description">Numeric attribute</dd>
1757 </dl>
1758 <h5 class="returnvalue">Return Value</h5>
1759 <p class="description">Choice data</p>
1760 <h4 class="method"><a name="get_group">get_group</a></h4>
1761 <p class="description"></p>
1762 <p class="code">
1763 <a href="#ppdcGroup">ppdcGroup</a> *get_group (<br>
1764 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
1765 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d<br>
1766 );</p>
1767 <h5 class="parameters">Parameters</h5>
1768 <dl>
1769 <dt>fp</dt>
1770 <dd class="description">File to read</dd>
1771 <dt>d</dt>
1772 <dd class="description">Printer driver</dd>
1773 </dl>
1774 <h5 class="returnvalue">Return Value</h5>
1775 <p class="description">Group</p>
1776 <h4 class="method"><a name="get_installable">get_installable</a></h4>
1777 <p class="description"></p>
1778 <p class="code">
1779 <a href="#ppdcOption">ppdcOption</a> *get_installable (<br>
1780 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1781 );</p>
1782 <h5 class="parameters">Parameters</h5>
1783 <dl>
1784 <dt>fp</dt>
1785 <dd class="description">File to read</dd>
1786 </dl>
1787 <h5 class="returnvalue">Return Value</h5>
1788 <p class="description">Option</p>
1789 <h4 class="method"><a name="get_integer">get_integer</a></h4>
1790 <p class="description"></p>
1791 <p class="code">
1792 int get_integer (<br>
1793 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1794 );</p>
1795 <h5 class="parameters">Parameters</h5>
1796 <dl>
1797 <dt>fp</dt>
1798 <dd class="description">File to read</dd>
1799 </dl>
1800 <h5 class="returnvalue">Return Value</h5>
1801 <p class="description">Integer value</p>
1802 <h4 class="method"><a name="get_measurement">get_measurement</a></h4>
1803 <p class="description"></p>
1804 <p class="code">
1805 float get_measurement (<br>
1806 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1807 );</p>
1808 <h5 class="parameters">Parameters</h5>
1809 <dl>
1810 <dt>fp</dt>
1811 <dd class="description">File to read</dd>
1812 </dl>
1813 <h5 class="returnvalue">Return Value</h5>
1814 <p class="description">Measurement value in points</p>
1815 <h4 class="method"><a name="get_option">get_option</a></h4>
1816 <p class="description"></p>
1817 <p class="code">
1818 <a href="#ppdcOption">ppdcOption</a> *get_option (<br>
1819 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
1820 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *d,<br>
1821 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcGroup">ppdcGroup</a> *g<br>
1822 );</p>
1823 <h5 class="parameters">Parameters</h5>
1824 <dl>
1825 <dt>fp</dt>
1826 <dd class="description">File to read</dd>
1827 <dt>d</dt>
1828 <dd class="description">Printer driver</dd>
1829 <dt>g</dt>
1830 <dd class="description">Current group</dd>
1831 </dl>
1832 <h5 class="returnvalue">Return Value</h5>
1833 <p class="description">Option</p>
1834 <h4 class="method"><a name="get_po">get_po</a></h4>
1835 <p class="description"></p>
1836 <p class="code">
1837 <a href="#ppdcCatalog">ppdcCatalog</a> *get_po (<br>
1838 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1839 );</p>
1840 <h5 class="parameters">Parameters</h5>
1841 <dl>
1842 <dt>fp</dt>
1843 <dd class="description">File to read</dd>
1844 </dl>
1845 <h5 class="returnvalue">Return Value</h5>
1846 <p class="description">Message catalog</p>
1847 <h4 class="method"><a name="get_resolution">get_resolution</a></h4>
1848 <p class="description"></p>
1849 <p class="code">
1850 <a href="#ppdcChoice">ppdcChoice</a> *get_resolution (<br>
1851 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1852 );</p>
1853 <h5 class="parameters">Parameters</h5>
1854 <dl>
1855 <dt>fp</dt>
1856 <dd class="description">File to read</dd>
1857 </dl>
1858 <h5 class="returnvalue">Return Value</h5>
1859 <p class="description">Choice data</p>
1860 <h4 class="method"><a name="get_simple_profile">get_simple_profile</a></h4>
1861 <p class="description"></p>
1862 <p class="code">
1863 <a href="#ppdcProfile">ppdcProfile</a> *get_simple_profile (<br>
1864 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1865 );</p>
1866 <h5 class="parameters">Parameters</h5>
1867 <dl>
1868 <dt>fp</dt>
1869 <dd class="description">File to read</dd>
1870 </dl>
1871 <h5 class="returnvalue">Return Value</h5>
1872 <p class="description">Color profile</p>
1873 <h4 class="method"><a name="get_size">get_size</a></h4>
1874 <p class="description"></p>
1875 <p class="code">
1876 <a href="#ppdcMediaSize">ppdcMediaSize</a> *get_size (<br>
1877 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1878 );</p>
1879 <h5 class="parameters">Parameters</h5>
1880 <dl>
1881 <dt>fp</dt>
1882 <dd class="description">File to read</dd>
1883 </dl>
1884 <h5 class="returnvalue">Return Value</h5>
1885 <p class="description">Media size</p>
1886 <h4 class="method"><a name="get_token">get_token</a></h4>
1887 <p class="description"></p>
1888 <p class="code">
1889 char *get_token (<br>
1890 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
1891 &nbsp;&nbsp;&nbsp;&nbsp;char *buffer,<br>
1892 &nbsp;&nbsp;&nbsp;&nbsp;int buflen<br>
1893 );</p>
1894 <h5 class="parameters">Parameters</h5>
1895 <dl>
1896 <dt>fp</dt>
1897 <dd class="description">File to read</dd>
1898 <dt>buffer</dt>
1899 <dd class="description">Buffer</dd>
1900 <dt>buflen</dt>
1901 <dd class="description">Length of buffer</dd>
1902 </dl>
1903 <h5 class="returnvalue">Return Value</h5>
1904 <p class="description">Token string or NULL</p>
1905 <h4 class="method"><a name="get_variable">get_variable</a></h4>
1906 <p class="description"></p>
1907 <p class="code">
1908 <a href="#ppdcVariable">ppdcVariable</a> *get_variable (<br>
1909 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp<br>
1910 );</p>
1911 <h5 class="parameters">Parameters</h5>
1912 <dl>
1913 <dt>fp</dt>
1914 <dd class="description">File to read</dd>
1915 </dl>
1916 <h5 class="returnvalue">Return Value</h5>
1917 <p class="description">Variable</p>
1918 <h4 class="method"><a name="import_ppd">import_ppd</a></h4>
1919 <p class="description"></p>
1920 <p class="code">
1921 int import_ppd (<br>
1922 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
1923 );</p>
1924 <h5 class="parameters">Parameters</h5>
1925 <dl>
1926 <dt>f</dt>
1927 <dd class="description">Filename</dd>
1928 </dl>
1929 <h5 class="returnvalue">Return Value</h5>
1930 <p class="description">1 on success, 0 on failure</p>
1931 <h4 class="method"><a name="ppdcSource">ppdcSource</a></h4>
1932 <p class="description"></p>
1933 <p class="code">
1934 void ppdcSource (<br>
1935 &nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
1936 &nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *ffp<br>
1937 );</p>
1938 <h5 class="parameters">Parameters</h5>
1939 <dl>
1940 <dt>f</dt>
1941 <dd class="description">File to read</dd>
1942 <dt>ffp</dt>
1943 <dd class="description">File pointer to use</dd>
1944 </dl>
1945 <h4 class="method"><a name="quotef">quotef</a></h4>
1946 <p class="description"></p>
1947 <p class="code">
1948 int quotef (<br>
1949 &nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *fp,<br>
1950 &nbsp;&nbsp;&nbsp;&nbsp;const char *format,<br>
1951 &nbsp;&nbsp;&nbsp;&nbsp;...<br>
1952 );</p>
1953 <h5 class="parameters">Parameters</h5>
1954 <dl>
1955 <dt>fp</dt>
1956 <dd class="description">File to write to</dd>
1957 <dt>format</dt>
1958 <dd class="description">Printf-style format string</dd>
1959 <dt>...</dt>
1960 <dd class="description">Additional args as needed</dd>
1961 </dl>
1962 <h5 class="returnvalue">Return Value</h5>
1963 <p class="description">Number bytes on success, -1 on failure</p>
1964 <h4 class="method"><a name="read_file">read_file</a></h4>
1965 <p class="description"></p>
1966 <p class="code">
1967 void read_file (<br>
1968 &nbsp;&nbsp;&nbsp;&nbsp;const char *f,<br>
1969 &nbsp;&nbsp;&nbsp;&nbsp;cups_file_t *ffp<br>
1970 );</p>
1971 <h5 class="parameters">Parameters</h5>
1972 <dl>
1973 <dt>f</dt>
1974 <dd class="description">File to read</dd>
1975 <dt>ffp</dt>
1976 <dd class="description">File pointer to use</dd>
1977 </dl>
1978 <h4 class="method"><a name="scan_file">scan_file</a></h4>
1979 <p class="description"></p>
1980 <p class="code">
1981 void scan_file (<br>
1982 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcFile">ppdcFile</a> *fp,<br>
1983 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcDriver">ppdcDriver</a> *td,<br>
1984 &nbsp;&nbsp;&nbsp;&nbsp;bool inc<br>
1985 );</p>
1986 <h5 class="parameters">Parameters</h5>
1987 <dl>
1988 <dt>fp</dt>
1989 <dd class="description">File to read</dd>
1990 <dt>td</dt>
1991 <dd class="description">Driver template</dd>
1992 <dt>inc</dt>
1993 <dd class="description">Including?</dd>
1994 </dl>
1995 <h4 class="method"><a name="set_variable">set_variable</a></h4>
1996 <p class="description"></p>
1997 <p class="code">
1998 <a href="#ppdcVariable">ppdcVariable</a> *set_variable (<br>
1999 &nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
2000 &nbsp;&nbsp;&nbsp;&nbsp;const char *value<br>
2001 );</p>
2002 <h5 class="parameters">Parameters</h5>
2003 <dl>
2004 <dt>name</dt>
2005 <dd class="description">Name</dd>
2006 <dt>value</dt>
2007 <dd class="description">Value</dd>
2008 </dl>
2009 <h5 class="returnvalue">Return Value</h5>
2010 <p class="description">Variable</p>
2011 <h4 class="method"><a name="write_file">write_file</a></h4>
2012 <p class="description"></p>
2013 <p class="code">
2014 int write_file (<br>
2015 &nbsp;&nbsp;&nbsp;&nbsp;const char *f<br>
2016 );</p>
2017 <h5 class="parameters">Parameters</h5>
2018 <dl>
2019 <dt>f</dt>
2020 <dd class="description">File to write</dd>
2021 </dl>
2022 <h5 class="returnvalue">Return Value</h5>
2023 <p class="description">0 on success, -1 on error</p>
2024 <h4 class="method"><a name="~ppdcSource">~ppdcSource</a></h4>
2025 <p class="description"></p>
2026 <p class="code">
2027 void ~ppdcSource (void);</p>
2028 <h3 class="class"><a name="ppdcString">ppdcString</a></h3>
2029 <p class="description">// Shared String</p>
2030 <p class="code">class ppdcString : public ppdcShared {<br>
2031 &nbsp;&nbsp;public:<br>
2032 &nbsp;&nbsp;&nbsp;&nbsp;char *value;<br>
2033 };</p>
2034 <h4 class="members">Members</h4>
2035 <dl>
2036 <dt>value </dt>
2037 <dd class="description">String value</dd>
2038 </dl>
2039 <h4 class="method"><a name="ppdcString">ppdcString</a></h4>
2040 <p class="description"></p>
2041 <p class="code">
2042 void ppdcString (<br>
2043 &nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
2044 );</p>
2045 <h5 class="parameters">Parameters</h5>
2046 <dl>
2047 <dt>v</dt>
2048 <dd class="description">String</dd>
2049 </dl>
2050 <h4 class="method"><a name="~ppdcString">~ppdcString</a></h4>
2051 <p class="description"></p>
2052 <p class="code">
2053 void ~ppdcString (void);</p>
2054 <h3 class="class"><a name="ppdcVariable">ppdcVariable</a></h3>
2055 <p class="description">// Variable Definition</p>
2056 <p class="code">class ppdcVariable : public ppdcShared {<br>
2057 &nbsp;&nbsp;public:<br>
2058 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#ppdcString">ppdcString</a> *name, *value;<br>
2059 };</p>
2060 <h4 class="members">Members</h4>
2061 <dl>
2062 <dt>value </dt>
2063 <dd class="description">Value of variable</dd>
2064 </dl>
2065 <h4 class="method"><a name="PPDC_NAME">PPDC_NAME</a></h4>
2066 <p class="description"></p>
2067 <p class="code">
2068 void PPDC_NAME (<br>
2069 &nbsp;&nbsp;&nbsp;&nbsp;void set_value(const char *v<br>
2070 );</p>
2071 <h5 class="parameters">Parameters</h5>
2072 <dl>
2073 <dt>v</dt>
2074 </dl>
2075 <h4 class="method"><a name="ppdcVariable">ppdcVariable</a></h4>
2076 <p class="description"></p>
2077 <p class="code">
2078 void ppdcVariable (<br>
2079 &nbsp;&nbsp;&nbsp;&nbsp;const char *n,<br>
2080 &nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
2081 );</p>
2082 <h5 class="parameters">Parameters</h5>
2083 <dl>
2084 <dt>n</dt>
2085 <dd class="description">Name of variable</dd>
2086 <dt>v</dt>
2087 <dd class="description">Value of variable</dd>
2088 </dl>
2089 <h4 class="method"><a name="set_value">set_value</a></h4>
2090 <p class="description"></p>
2091 <p class="code">
2092 void set_value (<br>
2093 &nbsp;&nbsp;&nbsp;&nbsp;const char *v<br>
2094 );</p>
2095 <h5 class="parameters">Parameters</h5>
2096 <dl>
2097 <dt>v</dt>
2098 </dl>
2099 <h4 class="method"><a name="~ppdcVariable">~ppdcVariable</a></h4>
2100 <p class="description"></p>
2101 <p class="code">
2102 void ~ppdcVariable (void);</p>
2103 <h2 class="title"><a name="TYPES">Data Types</a></h2>
2104 <h3 class="typedef"><a name="ppdc_cs_t">ppdc_cs_t</a></h3>
2105 <p class="description"></p>
2106 <p class="code">
2107 typedef enum ppdc_cs_t;
2108 </p>
2109 <h2 class="title"><a name="VARIABLES">Variables</a></h2>
2110 <h3 class="variable"><a name="ppdcSource">ppdcSource</a></h3>
2111 <p class="description">// Printer Driver Data</p>
2112 <p class="code">class ppdcSource;</p>
2113 <h2 class="title"><a name="ENUMERATIONS">Constants</a></h2>
2114 <h3 class="enumeration"><a name="ppdcCondFlags">ppdcCondFlags</a></h3>
2115 <p class="description">// Condition flags</p>
2116 <h4 class="constants">Constants</h4>
2117 <dl>
2118 <dt>PPDC_COND_NORMAL </dt>
2119 <dd class="description">Normal state</dd>
2120 <dt>PPDC_COND_SATISFIED </dt>
2121 <dd class="description">At least one condition satisfied</dd>
2122 <dt>PPDC_COND_SKIP </dt>
2123 <dd class="description">Skip state</dd>
2124 </dl>
2125 <h3 class="enumeration"><a name="ppdcDrvType">ppdcDrvType</a></h3>
2126 <p class="description">// Driver type</p>
2127 <h4 class="constants">Constants</h4>
2128 <dl>
2129 <dt>PPDC_DRIVER_CUSTOM </dt>
2130 <dd class="description">Custom driver</dd>
2131 <dt>PPDC_DRIVER_EPSON </dt>
2132 <dd class="description">rastertoepson driver</dd>
2133 <dt>PPDC_DRIVER_ESCP </dt>
2134 <dd class="description">rastertoescpx driver</dd>
2135 <dt>PPDC_DRIVER_HP </dt>
2136 <dd class="description">rastertohp driver</dd>
2137 <dt>PPDC_DRIVER_LABEL </dt>
2138 <dd class="description">rastertolabel/rastertodymo driver</dd>
2139 <dt>PPDC_DRIVER_MAX </dt>
2140 <dd class="description">Number of driver types defined</dd>
2141 <dt>PPDC_DRIVER_PCL </dt>
2142 <dd class="description">rastertopclx driver</dd>
2143 <dt>PPDC_DRIVER_PS </dt>
2144 <dd class="description">PostScript driver</dd>
2145 </dl>
2146 <h3 class="enumeration"><a name="ppdcFontStatus">ppdcFontStatus</a></h3>
2147 <p class="description">// Load status of font</p>
2148 <h4 class="constants">Constants</h4>
2149 <dl>
2150 <dt>PPDC_FONT_DISK </dt>
2151 <dd class="description">Font is on disk</dd>
2152 <dt>PPDC_FONT_ROM </dt>
2153 <dd class="description">Font is in ROM</dd>
2154 </dl>
2155 <h3 class="enumeration"><a name="ppdcLineEnding">ppdcLineEnding</a></h3>
2156 <p class="description">// Line endings</p>
2157 <h4 class="constants">Constants</h4>
2158 <dl>
2159 <dt>PPDC_CRLF </dt>
2160 <dd class="description">CR + LF</dd>
2161 <dt>PPDC_CRONLY </dt>
2162 <dd class="description">CR only</dd>
2163 <dt>PPDC_LFONLY </dt>
2164 <dd class="description">LF only</dd>
2165 </dl>
2166 <h3 class="enumeration"><a name="ppdcOptSection">ppdcOptSection</a></h3>
2167 <p class="description">// Option section</p>
2168 <h4 class="constants">Constants</h4>
2169 <dl>
2170 <dt>PPDC_SECTION_ANY </dt>
2171 <dd class="description">AnySetup</dd>
2172 <dt>PPDC_SECTION_DOCUMENT </dt>
2173 <dd class="description">DocumentSetup</dd>
2174 <dt>PPDC_SECTION_EXIT </dt>
2175 <dd class="description">ExitServer</dd>
2176 <dt>PPDC_SECTION_JCL </dt>
2177 <dd class="description">JCLSetup</dd>
2178 <dt>PPDC_SECTION_PAGE </dt>
2179 <dd class="description">PageSetup</dd>
2180 <dt>PPDC_SECTION_PROLOG </dt>
2181 <dd class="description">Prolog</dd>
2182 </dl>
2183 <h3 class="enumeration"><a name="ppdcOptType">ppdcOptType</a></h3>
2184 <p class="description">// Option type</p>
2185 <h4 class="constants">Constants</h4>
2186 <dl>
2187 <dt>PPDC_BOOLEAN </dt>
2188 <dd class="description">True/false option</dd>
2189 <dt>PPDC_PICKMANY </dt>
2190 <dd class="description">Multiple choices from list</dd>
2191 <dt>PPDC_PICKONE </dt>
2192 <dd class="description">Single choice from list</dd>
2193 </dl>
2194 </div>
2195 </body>
2196 </html>