]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/help/api-ppdc.html
Merge changes from CUPS 1.4svn-r8606.
[thirdparty/cups.git] / doc / help / api-ppdc.html
CommitLineData
f11a948a
MS
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"><!--
9BODY {
10 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
11}
12
13H1, H2, H3, H4, H5, H6, P, TD, TH {
14 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
15}
16
17KBD {
18 font-family: monaco, courier, monospace;
19 font-weight: bold;
20}
21
22PRE {
23 font-family: monaco, courier, monospace;
24}
25
26PRE.command {
27 margin-left: 36pt;
28}
29
30P.compact {
31 margin: 0;
32}
33
34P.example {
35 font-style: italic;
36 margin-left: 36pt;
37}
38
39PRE.example {
40 background: #eeeeee;
41 border: dotted thin #999999;
42 margin-left: 36pt;
43 padding: 10px;
44}
45
46PRE.command EM, PRE.example EM {
47 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
48}
49
50P.command {
51 font-family: monaco, courier, monospace;
52 margin-left: 36pt;
53}
54
55P.formula {
56 font-style: italic;
57 margin-left: 36pt;
58}
59
60BLOCKQUOTE {
61 background: #cccccc;
62 border: solid thin #999999;
63 padding: 10pt;
64}
65
66A IMG {
67 border: none;
68}
69
70A:link:hover IMG {
71 background: #f0f0f0;
72 border-radius: 10px;
73 -moz-border-radius: 10px;
74}
75
76A:link, A:visited {
77 font-weight: normal;
78 text-decoration: none;
79}
80
81A:link:hover, A:visited:hover, A:active {
82 text-decoration: underline;
83}
84
85SUB, SUP {
86 font-size: 50%;
87}
88
89TR.data, TD.data, TR.data TD {
90 margin-top: 10pt;
91 padding: 5pt;
92 border-bottom: solid 1pt #999999;
93}
94
95TR.data TH {
96 border-bottom: solid 1pt #999999;
97 padding-top: 10pt;
98 padding-left: 5pt;
99 text-align: left;
100}
101
102DIV.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
110DIV.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
119DIV.table TABLE TD {
120 border: solid thin #cccccc;
121 padding-top: 5pt;
122}
123
124DIV.table TABLE TH {
125 background: #cccccc;
126 border: none;
127 border-bottom: solid thin #999999;
128}
129
130DIV.figure TABLE {
131 margin-left: auto;
132 margin-right: auto;
133}
134
135DIV.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
144TH.label {
145 text-align: right;
146 vertical-align: top;
147}
148
149TH.sublabel {
150 text-align: right;
151 font-weight: normal;
152}
153
154HR {
155 border: solid thin;
156}
157
158SPAN.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
168H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
169 float: right;
170 font-size: 100%;
171}
172
173H2.title, H3.title {
174 border-bottom: solid 2pt #000000;
175}
176
177DIV.indent, TABLE.indent {
178 margin-top: 2em;
179 margin-left: auto;
180 margin-right: auto;
181 width: 90%;
182}
183
184TABLE.indent {
185 border-collapse: collapse;
186}
187
188TABLE.indent TD, TABLE.indent TH {
189 padding: 0;
190}
191
192TABLE.list {
193 border-collapse: collapse;
194 margin-left: auto;
195 margin-right: auto;
196 width: 90%;
197}
198
199TABLE.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
210TABLE.list TH A {
211 color: #4444cc;
212}
213
214TABLE.list TD {
215 border-bottom: solid thin #eeeeee;
216 padding-top: 5pt;
217 padding-left: 5pt;
218}
219
220TABLE.list TR:nth-child(even) {
221 background: #f8f8f8;
222}
223
224TABLE.list TR:nth-child(odd) {
225 background: #f4f4f4;
226}
227
228DT {
229 margin-left: 36pt;
230 margin-top: 12pt;
231}
232
233DD {
234 margin-left: 54pt;
235}
236
237DL.category DT {
238 font-weight: bold;
239}
240
241P.summary {
242 margin-left: 36pt;
243 font-family: monaco, courier, monospace;
244}
245
246DIV.summary TABLE {
247 border: solid thin #999999;
248 border-collapse: collapse;
249 border-spacing: 0;
250 margin: 10px;
251}
252
253DIV.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
260DIV.summary TABLE THEAD TH {
261 background: #eeeeee;
262}
263
264/* API documentation styles... */
265div.body h1 {
266 margin: 0;
267}
268div.body h2 {
269 margin-top: 1.5em;
270}
271div.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}
283code, p.code, pre, ul.code li {
284 font-family: monaco, courier, monospace;
285 font-size: 90%;
286}
287ul.code, ul.contents, ul.subcontents {
288 list-style-type: none;
289 margin: 0;
290 padding-left: 0;
291}
292ul.code li {
293 margin: 0;
294}
295ul.contents > li {
296 margin-top: 1em;
297}
298ul.contents li ul.code, ul.contents li ul.subcontents {
299 padding-left: 2em;
300}
301div.body dl {
302 margin-left: 0;
303 margin-top: 0;
304}
305div.body dt {
306 font-style: italic;
307 margin-left: 0;
308 margin-top: 0;
309}
310div.body dd {
311 margin-bottom: 0.5em;
312}
313
314/* This is just for the HTML files generated with the framedhelp target */
315div.contents {
316 background: #e8e8e8;
317 border: solid thin black;
318 padding: 10px;
319}
320div.contents h1 {
321 font-size: 110%;
322}
323div.contents h2 {
324 font-size: 100%;
325}
326div.contents ul.contents {
327 font-size: 80%;
328}
329div.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">
392void 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">
402void 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">
424void 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">
434void 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">
445void ~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">
463void 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">
486void ~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">
507void 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">
519void 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">
533const 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">
546int 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">
559void 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">
573int 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">
586void ~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">
601void 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">
618void ~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">
633void 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">
653void ~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">
692void 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">
702void 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">
712void 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">
722void 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">
732void 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">
742void 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">
752void 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">
762void 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">
814void 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">
825void 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">
836void 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">
847void 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">
858void 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">
869void 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">
880void 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">
891void 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">
902void 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">
913int 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">
938void ~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">
959int 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">
965int 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">
971void 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">
985void ~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">
1003void 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">
1020void ~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">
1038void 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">
1061void ~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">
1079void 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">
1102void 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">
1113void ~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">
1128void 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">
1155void 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">
1193void ~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">
1208void 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">
1222void ~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">
1252void 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">
1275void 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">
1286void 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">
1297void ~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">
1315void 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">
1338void ~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">
1353virtual 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">
1359void ppdcShared (void);</p>
1360<h4 class="method"><a name="release">release</a></h4>
1361<p class="description"></p>
1362<p class="code">
1363void release (void);</p>
1364<h4 class="method"><a name="retain">retain</a></h4>
1365<p class="description"></p>
1366<p class="code">
1367void retain (void);</p>
1368<h4 class="method"><a name="~ppdcShared">~ppdcShared</a></h4>
1369<p class="description"></p>
1370<p class="code">
1371void ~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">
1398void 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">
1408void 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">
1432char *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">
1509int 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">
1548int 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">
1574int 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">
1613void 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">
1640float 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">
1717int 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">
1730float 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">
1814char *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">
1846int 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">
1859void 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">
1873int 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">
1892void 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">
1906void 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">
1939int 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">
1952void ~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">
1967void 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">
1978void ~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">
1993void 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">
2003void 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">
2017void 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">
2027void ~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">
2032typedef 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>