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