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