1*5e7646d2SAndroid Build Coastguard Worker<!DOCTYPE html> 2*5e7646d2SAndroid Build Coastguard Worker<html> 3*5e7646d2SAndroid Build Coastguard Worker<!-- SECTION: Programming --> 4*5e7646d2SAndroid Build Coastguard Worker <head> 5*5e7646d2SAndroid Build Coastguard Worker <title>PPD API (DEPRECATED)</title> 6*5e7646d2SAndroid Build Coastguard Worker <meta name="keywords" content="Programming"> 7*5e7646d2SAndroid Build Coastguard Worker <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 8*5e7646d2SAndroid Build Coastguard Worker <meta name="creator" content="codedoc v3.1"> 9*5e7646d2SAndroid Build Coastguard Worker <meta name="author" content="Unknown"> 10*5e7646d2SAndroid Build Coastguard Worker <meta name="copyright" content="Unknown"> 11*5e7646d2SAndroid Build Coastguard Worker <meta name="version" content="0.0"> 12*5e7646d2SAndroid Build Coastguard Worker <style type="text/css"><!-- 13*5e7646d2SAndroid Build Coastguard WorkerBODY { 14*5e7646d2SAndroid Build Coastguard Worker font-family: lucida grande, geneva, helvetica, arial, sans-serif; 15*5e7646d2SAndroid Build Coastguard Worker} 16*5e7646d2SAndroid Build Coastguard Worker 17*5e7646d2SAndroid Build Coastguard WorkerH1, H2, H3, H4, H5, H6, P, TD, TH { 18*5e7646d2SAndroid Build Coastguard Worker font-family: lucida grande, geneva, helvetica, arial, sans-serif; 19*5e7646d2SAndroid Build Coastguard Worker} 20*5e7646d2SAndroid Build Coastguard Worker 21*5e7646d2SAndroid Build Coastguard WorkerH1 { font-size: 2em; } 22*5e7646d2SAndroid Build Coastguard WorkerH2 { font-size: 1.75em; } 23*5e7646d2SAndroid Build Coastguard WorkerH3 { font-size: 1.5em; } 24*5e7646d2SAndroid Build Coastguard WorkerH4 { font-size: 1.25em; } 25*5e7646d2SAndroid Build Coastguard Worker 26*5e7646d2SAndroid Build Coastguard WorkerKBD { 27*5e7646d2SAndroid Build Coastguard Worker font-family: monaco, courier, monospace; 28*5e7646d2SAndroid Build Coastguard Worker font-weight: bold; 29*5e7646d2SAndroid Build Coastguard Worker} 30*5e7646d2SAndroid Build Coastguard Worker 31*5e7646d2SAndroid Build Coastguard WorkerPRE { 32*5e7646d2SAndroid Build Coastguard Worker font-family: monaco, courier, monospace; 33*5e7646d2SAndroid Build Coastguard Worker} 34*5e7646d2SAndroid Build Coastguard Worker 35*5e7646d2SAndroid Build Coastguard WorkerBLOCKQUOTE { 36*5e7646d2SAndroid Build Coastguard Worker border-left: solid 2px #777; 37*5e7646d2SAndroid Build Coastguard Worker margin: 1em 0; 38*5e7646d2SAndroid Build Coastguard Worker padding: 10px; 39*5e7646d2SAndroid Build Coastguard Worker} 40*5e7646d2SAndroid Build Coastguard Worker 41*5e7646d2SAndroid Build Coastguard WorkerBLOCKQUOTE OL LI { 42*5e7646d2SAndroid Build Coastguard Worker margin-left: -1em; 43*5e7646d2SAndroid Build Coastguard Worker} 44*5e7646d2SAndroid Build Coastguard Worker 45*5e7646d2SAndroid Build Coastguard WorkerPRE.command, PRE.example { 46*5e7646d2SAndroid Build Coastguard Worker background: #eee; 47*5e7646d2SAndroid Build Coastguard Worker margin: 0 36pt; 48*5e7646d2SAndroid Build Coastguard Worker padding: 10px; 49*5e7646d2SAndroid Build Coastguard Worker} 50*5e7646d2SAndroid Build Coastguard Worker 51*5e7646d2SAndroid Build Coastguard WorkerP.compact { 52*5e7646d2SAndroid Build Coastguard Worker margin: 0; 53*5e7646d2SAndroid Build Coastguard Worker} 54*5e7646d2SAndroid Build Coastguard Worker 55*5e7646d2SAndroid Build Coastguard WorkerP.example { 56*5e7646d2SAndroid Build Coastguard Worker font-style: italic; 57*5e7646d2SAndroid Build Coastguard Worker margin-left: 36pt; 58*5e7646d2SAndroid Build Coastguard Worker} 59*5e7646d2SAndroid Build Coastguard Worker 60*5e7646d2SAndroid Build Coastguard WorkerDL.man DD { 61*5e7646d2SAndroid Build Coastguard Worker margin-left: 5em; 62*5e7646d2SAndroid Build Coastguard Worker} 63*5e7646d2SAndroid Build Coastguard Worker 64*5e7646d2SAndroid Build Coastguard WorkerDL.man DT { 65*5e7646d2SAndroid Build Coastguard Worker margin-left: 0; 66*5e7646d2SAndroid Build Coastguard Worker} 67*5e7646d2SAndroid Build Coastguard Worker 68*5e7646d2SAndroid Build Coastguard WorkerPRE.man { 69*5e7646d2SAndroid Build Coastguard Worker margin: 0; 70*5e7646d2SAndroid Build Coastguard Worker} 71*5e7646d2SAndroid Build Coastguard Worker 72*5e7646d2SAndroid Build Coastguard WorkerPRE.command EM, PRE.example EM { 73*5e7646d2SAndroid Build Coastguard Worker font-family: lucida grande, geneva, helvetica, arial, sans-serif; 74*5e7646d2SAndroid Build Coastguard Worker} 75*5e7646d2SAndroid Build Coastguard Worker 76*5e7646d2SAndroid Build Coastguard WorkerP.command { 77*5e7646d2SAndroid Build Coastguard Worker font-family: monaco, courier, monospace; 78*5e7646d2SAndroid Build Coastguard Worker margin-left: 36pt; 79*5e7646d2SAndroid Build Coastguard Worker} 80*5e7646d2SAndroid Build Coastguard Worker 81*5e7646d2SAndroid Build Coastguard WorkerP.formula { 82*5e7646d2SAndroid Build Coastguard Worker font-style: italic; 83*5e7646d2SAndroid Build Coastguard Worker margin-left: 36pt; 84*5e7646d2SAndroid Build Coastguard Worker} 85*5e7646d2SAndroid Build Coastguard Worker 86*5e7646d2SAndroid Build Coastguard WorkerA IMG { 87*5e7646d2SAndroid Build Coastguard Worker border: none; 88*5e7646d2SAndroid Build Coastguard Worker} 89*5e7646d2SAndroid Build Coastguard Worker 90*5e7646d2SAndroid Build Coastguard WorkerA:link:hover IMG { 91*5e7646d2SAndroid Build Coastguard Worker background: #f0f0f0; 92*5e7646d2SAndroid Build Coastguard Worker border-radius: 10px; 93*5e7646d2SAndroid Build Coastguard Worker -moz-border-radius: 10px; 94*5e7646d2SAndroid Build Coastguard Worker} 95*5e7646d2SAndroid Build Coastguard Worker 96*5e7646d2SAndroid Build Coastguard WorkerA:link, A:visited { 97*5e7646d2SAndroid Build Coastguard Worker font-weight: inherit; 98*5e7646d2SAndroid Build Coastguard Worker text-decoration: none; 99*5e7646d2SAndroid Build Coastguard Worker} 100*5e7646d2SAndroid Build Coastguard Worker 101*5e7646d2SAndroid Build Coastguard WorkerA:link:hover, A:visited:hover, A:active { 102*5e7646d2SAndroid Build Coastguard Worker text-decoration: underline; 103*5e7646d2SAndroid Build Coastguard Worker} 104*5e7646d2SAndroid Build Coastguard Worker 105*5e7646d2SAndroid Build Coastguard WorkerSUB, SUP { 106*5e7646d2SAndroid Build Coastguard Worker font-size: 50%; 107*5e7646d2SAndroid Build Coastguard Worker} 108*5e7646d2SAndroid Build Coastguard Worker 109*5e7646d2SAndroid Build Coastguard WorkerTR.data, TD.data, TR.data TD { 110*5e7646d2SAndroid Build Coastguard Worker margin-top: 10pt; 111*5e7646d2SAndroid Build Coastguard Worker padding: 5pt; 112*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 1pt #999999; 113*5e7646d2SAndroid Build Coastguard Worker} 114*5e7646d2SAndroid Build Coastguard Worker 115*5e7646d2SAndroid Build Coastguard WorkerTR.data TH { 116*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 1pt #999999; 117*5e7646d2SAndroid Build Coastguard Worker padding-top: 10pt; 118*5e7646d2SAndroid Build Coastguard Worker padding-left: 5pt; 119*5e7646d2SAndroid Build Coastguard Worker text-align: left; 120*5e7646d2SAndroid Build Coastguard Worker} 121*5e7646d2SAndroid Build Coastguard Worker 122*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE { 123*5e7646d2SAndroid Build Coastguard Worker border: solid thin #999999; 124*5e7646d2SAndroid Build Coastguard Worker border-collapse: collapse; 125*5e7646d2SAndroid Build Coastguard Worker border-spacing: 0; 126*5e7646d2SAndroid Build Coastguard Worker margin-left: auto; 127*5e7646d2SAndroid Build Coastguard Worker margin-right: auto; 128*5e7646d2SAndroid Build Coastguard Worker} 129*5e7646d2SAndroid Build Coastguard Worker 130*5e7646d2SAndroid Build Coastguard WorkerDIV.table CAPTION { 131*5e7646d2SAndroid Build Coastguard Worker caption-side: top; 132*5e7646d2SAndroid Build Coastguard Worker font-size: 120%; 133*5e7646d2SAndroid Build Coastguard Worker font-style: italic; 134*5e7646d2SAndroid Build Coastguard Worker font-weight: bold; 135*5e7646d2SAndroid Build Coastguard Worker margin-left: auto; 136*5e7646d2SAndroid Build Coastguard Worker margin-right: auto; 137*5e7646d2SAndroid Build Coastguard Worker} 138*5e7646d2SAndroid Build Coastguard Worker 139*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE TD { 140*5e7646d2SAndroid Build Coastguard Worker border: solid thin #cccccc; 141*5e7646d2SAndroid Build Coastguard Worker padding: 5pt 10pt 0; 142*5e7646d2SAndroid Build Coastguard Worker} 143*5e7646d2SAndroid Build Coastguard Worker 144*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE TH { 145*5e7646d2SAndroid Build Coastguard Worker background: #cccccc; 146*5e7646d2SAndroid Build Coastguard Worker border: none; 147*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid thin #999999; 148*5e7646d2SAndroid Build Coastguard Worker} 149*5e7646d2SAndroid Build Coastguard Worker 150*5e7646d2SAndroid Build Coastguard WorkerDIV.figure TABLE { 151*5e7646d2SAndroid Build Coastguard Worker margin-left: auto; 152*5e7646d2SAndroid Build Coastguard Worker margin-right: auto; 153*5e7646d2SAndroid Build Coastguard Worker} 154*5e7646d2SAndroid Build Coastguard Worker 155*5e7646d2SAndroid Build Coastguard WorkerDIV.figure CAPTION { 156*5e7646d2SAndroid Build Coastguard Worker caption-side: bottom; 157*5e7646d2SAndroid Build Coastguard Worker font-size: 120%; 158*5e7646d2SAndroid Build Coastguard Worker font-style: italic; 159*5e7646d2SAndroid Build Coastguard Worker font-weight: bold; 160*5e7646d2SAndroid Build Coastguard Worker margin-left: auto; 161*5e7646d2SAndroid Build Coastguard Worker margin-right: auto; 162*5e7646d2SAndroid Build Coastguard Worker} 163*5e7646d2SAndroid Build Coastguard Worker 164*5e7646d2SAndroid Build Coastguard WorkerTH.label { 165*5e7646d2SAndroid Build Coastguard Worker text-align: right; 166*5e7646d2SAndroid Build Coastguard Worker vertical-align: top; 167*5e7646d2SAndroid Build Coastguard Worker} 168*5e7646d2SAndroid Build Coastguard Worker 169*5e7646d2SAndroid Build Coastguard WorkerTH.sublabel { 170*5e7646d2SAndroid Build Coastguard Worker text-align: right; 171*5e7646d2SAndroid Build Coastguard Worker font-weight: normal; 172*5e7646d2SAndroid Build Coastguard Worker} 173*5e7646d2SAndroid Build Coastguard Worker 174*5e7646d2SAndroid Build Coastguard WorkerHR { 175*5e7646d2SAndroid Build Coastguard Worker border: solid thin; 176*5e7646d2SAndroid Build Coastguard Worker} 177*5e7646d2SAndroid Build Coastguard Worker 178*5e7646d2SAndroid Build Coastguard WorkerSPAN.info { 179*5e7646d2SAndroid Build Coastguard Worker background: black; 180*5e7646d2SAndroid Build Coastguard Worker border: thin solid black; 181*5e7646d2SAndroid Build Coastguard Worker color: white; 182*5e7646d2SAndroid Build Coastguard Worker font-size: 80%; 183*5e7646d2SAndroid Build Coastguard Worker font-style: italic; 184*5e7646d2SAndroid Build Coastguard Worker font-weight: bold; 185*5e7646d2SAndroid Build Coastguard Worker white-space: nowrap; 186*5e7646d2SAndroid Build Coastguard Worker} 187*5e7646d2SAndroid Build Coastguard Worker 188*5e7646d2SAndroid Build Coastguard WorkerH2 SPAN.info, H3 SPAN.info, H4 SPAN.info { 189*5e7646d2SAndroid Build Coastguard Worker float: right; 190*5e7646d2SAndroid Build Coastguard Worker font-size: 100%; 191*5e7646d2SAndroid Build Coastguard Worker} 192*5e7646d2SAndroid Build Coastguard Worker 193*5e7646d2SAndroid Build Coastguard WorkerH1.title { 194*5e7646d2SAndroid Build Coastguard Worker} 195*5e7646d2SAndroid Build Coastguard Worker 196*5e7646d2SAndroid Build Coastguard WorkerH2.title, H3.title { 197*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2pt #000000; 198*5e7646d2SAndroid Build Coastguard Worker} 199*5e7646d2SAndroid Build Coastguard Worker 200*5e7646d2SAndroid Build Coastguard WorkerDIV.indent, TABLE.indent { 201*5e7646d2SAndroid Build Coastguard Worker margin-top: 2em; 202*5e7646d2SAndroid Build Coastguard Worker margin-left: auto; 203*5e7646d2SAndroid Build Coastguard Worker margin-right: auto; 204*5e7646d2SAndroid Build Coastguard Worker width: 90%; 205*5e7646d2SAndroid Build Coastguard Worker} 206*5e7646d2SAndroid Build Coastguard Worker 207*5e7646d2SAndroid Build Coastguard WorkerTABLE.indent { 208*5e7646d2SAndroid Build Coastguard Worker border-collapse: collapse; 209*5e7646d2SAndroid Build Coastguard Worker} 210*5e7646d2SAndroid Build Coastguard Worker 211*5e7646d2SAndroid Build Coastguard WorkerTABLE.indent TD, TABLE.indent TH { 212*5e7646d2SAndroid Build Coastguard Worker padding: 0; 213*5e7646d2SAndroid Build Coastguard Worker} 214*5e7646d2SAndroid Build Coastguard Worker 215*5e7646d2SAndroid Build Coastguard WorkerTABLE.list { 216*5e7646d2SAndroid Build Coastguard Worker border-collapse: collapse; 217*5e7646d2SAndroid Build Coastguard Worker margin-left: auto; 218*5e7646d2SAndroid Build Coastguard Worker margin-right: auto; 219*5e7646d2SAndroid Build Coastguard Worker width: 90%; 220*5e7646d2SAndroid Build Coastguard Worker} 221*5e7646d2SAndroid Build Coastguard Worker 222*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TH { 223*5e7646d2SAndroid Build Coastguard Worker background: white; 224*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid thin #cccccc; 225*5e7646d2SAndroid Build Coastguard Worker color: #444444; 226*5e7646d2SAndroid Build Coastguard Worker padding-top: 10pt; 227*5e7646d2SAndroid Build Coastguard Worker padding-left: 5pt; 228*5e7646d2SAndroid Build Coastguard Worker text-align: left; 229*5e7646d2SAndroid Build Coastguard Worker vertical-align: bottom; 230*5e7646d2SAndroid Build Coastguard Worker white-space: nowrap; 231*5e7646d2SAndroid Build Coastguard Worker} 232*5e7646d2SAndroid Build Coastguard Worker 233*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TH A { 234*5e7646d2SAndroid Build Coastguard Worker color: #4444cc; 235*5e7646d2SAndroid Build Coastguard Worker} 236*5e7646d2SAndroid Build Coastguard Worker 237*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TD { 238*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid thin #eeeeee; 239*5e7646d2SAndroid Build Coastguard Worker padding-top: 5pt; 240*5e7646d2SAndroid Build Coastguard Worker padding-left: 5pt; 241*5e7646d2SAndroid Build Coastguard Worker} 242*5e7646d2SAndroid Build Coastguard Worker 243*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TR:nth-child(even) { 244*5e7646d2SAndroid Build Coastguard Worker background: #f8f8f8; 245*5e7646d2SAndroid Build Coastguard Worker} 246*5e7646d2SAndroid Build Coastguard Worker 247*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TR:nth-child(odd) { 248*5e7646d2SAndroid Build Coastguard Worker background: #f4f4f4; 249*5e7646d2SAndroid Build Coastguard Worker} 250*5e7646d2SAndroid Build Coastguard Worker 251*5e7646d2SAndroid Build Coastguard WorkerDT { 252*5e7646d2SAndroid Build Coastguard Worker margin-left: 36pt; 253*5e7646d2SAndroid Build Coastguard Worker margin-top: 12pt; 254*5e7646d2SAndroid Build Coastguard Worker} 255*5e7646d2SAndroid Build Coastguard Worker 256*5e7646d2SAndroid Build Coastguard WorkerDD { 257*5e7646d2SAndroid Build Coastguard Worker margin-left: 54pt; 258*5e7646d2SAndroid Build Coastguard Worker} 259*5e7646d2SAndroid Build Coastguard Worker 260*5e7646d2SAndroid Build Coastguard WorkerDL.category DT { 261*5e7646d2SAndroid Build Coastguard Worker font-weight: bold; 262*5e7646d2SAndroid Build Coastguard Worker} 263*5e7646d2SAndroid Build Coastguard Worker 264*5e7646d2SAndroid Build Coastguard WorkerP.summary { 265*5e7646d2SAndroid Build Coastguard Worker margin-left: 36pt; 266*5e7646d2SAndroid Build Coastguard Worker font-family: monaco, courier, monospace; 267*5e7646d2SAndroid Build Coastguard Worker} 268*5e7646d2SAndroid Build Coastguard Worker 269*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE { 270*5e7646d2SAndroid Build Coastguard Worker border: solid thin #999999; 271*5e7646d2SAndroid Build Coastguard Worker border-collapse: collapse; 272*5e7646d2SAndroid Build Coastguard Worker border-spacing: 0; 273*5e7646d2SAndroid Build Coastguard Worker margin: 10px; 274*5e7646d2SAndroid Build Coastguard Worker} 275*5e7646d2SAndroid Build Coastguard Worker 276*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE TD, DIV.summary TABLE TH { 277*5e7646d2SAndroid Build Coastguard Worker border: solid thin #999999; 278*5e7646d2SAndroid Build Coastguard Worker padding: 5px; 279*5e7646d2SAndroid Build Coastguard Worker text-align: left; 280*5e7646d2SAndroid Build Coastguard Worker vertical-align: top; 281*5e7646d2SAndroid Build Coastguard Worker} 282*5e7646d2SAndroid Build Coastguard Worker 283*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE THEAD TH { 284*5e7646d2SAndroid Build Coastguard Worker background: #eeeeee; 285*5e7646d2SAndroid Build Coastguard Worker} 286*5e7646d2SAndroid Build Coastguard Worker 287*5e7646d2SAndroid Build Coastguard Worker/* API documentation styles... */ 288*5e7646d2SAndroid Build Coastguard Workerdiv.body h1 { 289*5e7646d2SAndroid Build Coastguard Worker font-size: 250%; 290*5e7646d2SAndroid Build Coastguard Worker font-weight: bold; 291*5e7646d2SAndroid Build Coastguard Worker margin: 0; 292*5e7646d2SAndroid Build Coastguard Worker} 293*5e7646d2SAndroid Build Coastguard Workerdiv.body h2 { 294*5e7646d2SAndroid Build Coastguard Worker font-size: 250%; 295*5e7646d2SAndroid Build Coastguard Worker margin-top: 1.5em; 296*5e7646d2SAndroid Build Coastguard Worker} 297*5e7646d2SAndroid Build Coastguard Workerdiv.body h3 { 298*5e7646d2SAndroid Build Coastguard Worker font-size: 150%; 299*5e7646d2SAndroid Build Coastguard Worker margin-bottom: 0.5em; 300*5e7646d2SAndroid Build Coastguard Worker margin-top: 1.5em; 301*5e7646d2SAndroid Build Coastguard Worker} 302*5e7646d2SAndroid Build Coastguard Workerdiv.body h4 { 303*5e7646d2SAndroid Build Coastguard Worker font-size: 110%; 304*5e7646d2SAndroid Build Coastguard Worker margin-bottom: 0.5em; 305*5e7646d2SAndroid Build Coastguard Worker margin-top: 1.5em; 306*5e7646d2SAndroid Build Coastguard Worker} 307*5e7646d2SAndroid Build Coastguard Workerdiv.body h5 { 308*5e7646d2SAndroid Build Coastguard Worker font-size: 100%; 309*5e7646d2SAndroid Build Coastguard Worker margin-bottom: 0.5em; 310*5e7646d2SAndroid Build Coastguard Worker margin-top: 1.5em; 311*5e7646d2SAndroid Build Coastguard Worker} 312*5e7646d2SAndroid Build Coastguard Workerdiv.contents { 313*5e7646d2SAndroid Build Coastguard Worker background: #e8e8e8; 314*5e7646d2SAndroid Build Coastguard Worker border: solid thin black; 315*5e7646d2SAndroid Build Coastguard Worker padding: 10px; 316*5e7646d2SAndroid Build Coastguard Worker} 317*5e7646d2SAndroid Build Coastguard Workerdiv.contents h1 { 318*5e7646d2SAndroid Build Coastguard Worker font-size: 110%; 319*5e7646d2SAndroid Build Coastguard Worker} 320*5e7646d2SAndroid Build Coastguard Workerdiv.contents h2 { 321*5e7646d2SAndroid Build Coastguard Worker font-size: 100%; 322*5e7646d2SAndroid Build Coastguard Worker} 323*5e7646d2SAndroid Build Coastguard Workerdiv.contents ul.contents { 324*5e7646d2SAndroid Build Coastguard Worker font-size: 80%; 325*5e7646d2SAndroid Build Coastguard Worker} 326*5e7646d2SAndroid Build Coastguard Worker.class { 327*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px gray; 328*5e7646d2SAndroid Build Coastguard Worker} 329*5e7646d2SAndroid Build Coastguard Worker.constants { 330*5e7646d2SAndroid Build Coastguard Worker} 331*5e7646d2SAndroid Build Coastguard Worker.description { 332*5e7646d2SAndroid Build Coastguard Worker margin-top: 0.5em; 333*5e7646d2SAndroid Build Coastguard Worker} 334*5e7646d2SAndroid Build Coastguard Worker.discussion { 335*5e7646d2SAndroid Build Coastguard Worker} 336*5e7646d2SAndroid Build Coastguard Worker.enumeration { 337*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px gray; 338*5e7646d2SAndroid Build Coastguard Worker} 339*5e7646d2SAndroid Build Coastguard Worker.function { 340*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px gray; 341*5e7646d2SAndroid Build Coastguard Worker margin-bottom: 0; 342*5e7646d2SAndroid Build Coastguard Worker} 343*5e7646d2SAndroid Build Coastguard Worker.members { 344*5e7646d2SAndroid Build Coastguard Worker} 345*5e7646d2SAndroid Build Coastguard Worker.method { 346*5e7646d2SAndroid Build Coastguard Worker} 347*5e7646d2SAndroid Build Coastguard Worker.parameters { 348*5e7646d2SAndroid Build Coastguard Worker} 349*5e7646d2SAndroid Build Coastguard Worker.returnvalue { 350*5e7646d2SAndroid Build Coastguard Worker} 351*5e7646d2SAndroid Build Coastguard Worker.struct { 352*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px gray; 353*5e7646d2SAndroid Build Coastguard Worker} 354*5e7646d2SAndroid Build Coastguard Worker.typedef { 355*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px gray; 356*5e7646d2SAndroid Build Coastguard Worker} 357*5e7646d2SAndroid Build Coastguard Worker.union { 358*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px gray; 359*5e7646d2SAndroid Build Coastguard Worker} 360*5e7646d2SAndroid Build Coastguard Worker.variable { 361*5e7646d2SAndroid Build Coastguard Worker} 362*5e7646d2SAndroid Build Coastguard Workerh1, h2, h3, h4, h5, h6 { 363*5e7646d2SAndroid Build Coastguard Worker page-break-inside: avoid; 364*5e7646d2SAndroid Build Coastguard Worker} 365*5e7646d2SAndroid Build Coastguard Workerblockquote { 366*5e7646d2SAndroid Build Coastguard Worker border: solid thin gray; 367*5e7646d2SAndroid Build Coastguard Worker box-shadow: 3px 3px 5px rgba(0,0,0,0.5); 368*5e7646d2SAndroid Build Coastguard Worker padding: 10px 10px 0px; 369*5e7646d2SAndroid Build Coastguard Worker page-break-inside: avoid; 370*5e7646d2SAndroid Build Coastguard Worker} 371*5e7646d2SAndroid Build Coastguard Workerp code, li code, p.code, pre, ul.code li { 372*5e7646d2SAndroid Build Coastguard Worker background: rgba(127,127,127,0.1); 373*5e7646d2SAndroid Build Coastguard Worker border: thin dotted gray; 374*5e7646d2SAndroid Build Coastguard Worker font-family: monospace; 375*5e7646d2SAndroid Build Coastguard Worker hyphens: manual; 376*5e7646d2SAndroid Build Coastguard Worker -webkit-hyphens: manual; 377*5e7646d2SAndroid Build Coastguard Worker page-break-inside: avoid; 378*5e7646d2SAndroid Build Coastguard Worker} 379*5e7646d2SAndroid Build Coastguard Workerp.code, pre, ul.code li { 380*5e7646d2SAndroid Build Coastguard Worker padding: 10px; 381*5e7646d2SAndroid Build Coastguard Worker} 382*5e7646d2SAndroid Build Coastguard Workerp code, li code { 383*5e7646d2SAndroid Build Coastguard Worker padding: 2px 5px; 384*5e7646d2SAndroid Build Coastguard Worker} 385*5e7646d2SAndroid Build Coastguard Workera:link, a:visited { 386*5e7646d2SAndroid Build Coastguard Worker text-decoration: none; 387*5e7646d2SAndroid Build Coastguard Worker} 388*5e7646d2SAndroid Build Coastguard Workerspan.info { 389*5e7646d2SAndroid Build Coastguard Worker background: black; 390*5e7646d2SAndroid Build Coastguard Worker border: solid thin black; 391*5e7646d2SAndroid Build Coastguard Worker color: white; 392*5e7646d2SAndroid Build Coastguard Worker font-size: 80%; 393*5e7646d2SAndroid Build Coastguard Worker font-style: italic; 394*5e7646d2SAndroid Build Coastguard Worker font-weight: bold; 395*5e7646d2SAndroid Build Coastguard Worker white-space: nowrap; 396*5e7646d2SAndroid Build Coastguard Worker} 397*5e7646d2SAndroid Build Coastguard Workerh2 span.info, h3 span.info, h4 span.info { 398*5e7646d2SAndroid Build Coastguard Worker border-radius: 10px; 399*5e7646d2SAndroid Build Coastguard Worker float: right; 400*5e7646d2SAndroid Build Coastguard Worker font-size: 80%; 401*5e7646d2SAndroid Build Coastguard Worker padding: 3px 6px; 402*5e7646d2SAndroid Build Coastguard Worker} 403*5e7646d2SAndroid Build Coastguard Workerh2.title span.info, h3.title span.info, h4.title span.info { 404*5e7646d2SAndroid Build Coastguard Worker border-bottom-left-radius: 0px; 405*5e7646d2SAndroid Build Coastguard Worker border-bottom-right-radius: 0px; 406*5e7646d2SAndroid Build Coastguard Worker} 407*5e7646d2SAndroid Build Coastguard Workerh2.title span.info { 408*5e7646d2SAndroid Build Coastguard Worker padding: 4px 6px; 409*5e7646d2SAndroid Build Coastguard Worker} 410*5e7646d2SAndroid Build Coastguard Workerul.code, ul.contents, ul.subcontents { 411*5e7646d2SAndroid Build Coastguard Worker list-style-type: none; 412*5e7646d2SAndroid Build Coastguard Worker margin: 0; 413*5e7646d2SAndroid Build Coastguard Worker padding-left: 0; 414*5e7646d2SAndroid Build Coastguard Worker} 415*5e7646d2SAndroid Build Coastguard Workerul.code li { 416*5e7646d2SAndroid Build Coastguard Worker margin: 0; 417*5e7646d2SAndroid Build Coastguard Worker} 418*5e7646d2SAndroid Build Coastguard Workerul.contents > li { 419*5e7646d2SAndroid Build Coastguard Worker margin-top: 1em; 420*5e7646d2SAndroid Build Coastguard Worker} 421*5e7646d2SAndroid Build Coastguard Workerul.contents li ul.code, ul.contents li ul.subcontents { 422*5e7646d2SAndroid Build Coastguard Worker padding-left: 2em; 423*5e7646d2SAndroid Build Coastguard Worker} 424*5e7646d2SAndroid Build Coastguard Workertable.list { 425*5e7646d2SAndroid Build Coastguard Worker border-collapse: collapse; 426*5e7646d2SAndroid Build Coastguard Worker width: 100%; 427*5e7646d2SAndroid Build Coastguard Worker} 428*5e7646d2SAndroid Build Coastguard Workertable.list tr:nth-child(even) { 429*5e7646d2SAndroid Build Coastguard Worker background: rgba(127,127,127,0.1);]n} 430*5e7646d2SAndroid Build Coastguard Workertable.list th { 431*5e7646d2SAndroid Build Coastguard Worker border-right: 2px solid gray; 432*5e7646d2SAndroid Build Coastguard Worker font-family: monospace; 433*5e7646d2SAndroid Build Coastguard Worker padding: 5px 10px 5px 2px; 434*5e7646d2SAndroid Build Coastguard Worker text-align: right; 435*5e7646d2SAndroid Build Coastguard Worker vertical-align: top; 436*5e7646d2SAndroid Build Coastguard Worker} 437*5e7646d2SAndroid Build Coastguard Workertable.list td { 438*5e7646d2SAndroid Build Coastguard Worker padding: 5px 2px 5px 10px; 439*5e7646d2SAndroid Build Coastguard Worker text-align: left; 440*5e7646d2SAndroid Build Coastguard Worker vertical-align: top; 441*5e7646d2SAndroid Build Coastguard Worker} 442*5e7646d2SAndroid Build Coastguard Workerh1.title { 443*5e7646d2SAndroid Build Coastguard Worker} 444*5e7646d2SAndroid Build Coastguard Workerh2.title { 445*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px black; 446*5e7646d2SAndroid Build Coastguard Worker} 447*5e7646d2SAndroid Build Coastguard Workerh3.title { 448*5e7646d2SAndroid Build Coastguard Worker border-bottom: solid 2px black; 449*5e7646d2SAndroid Build Coastguard Worker} 450*5e7646d2SAndroid Build Coastguard Worker--></style> 451*5e7646d2SAndroid Build Coastguard Worker </head> 452*5e7646d2SAndroid Build Coastguard Worker <body> 453*5e7646d2SAndroid Build Coastguard Worker<!-- 454*5e7646d2SAndroid Build Coastguard Worker PPD API header for CUPS. 455*5e7646d2SAndroid Build Coastguard Worker 456*5e7646d2SAndroid Build Coastguard Worker Copyright © 2008-2019 by Apple Inc. 457*5e7646d2SAndroid Build Coastguard Worker 458*5e7646d2SAndroid Build Coastguard Worker Licensed under Apache License v2.0. See the file "LICENSE" for more 459*5e7646d2SAndroid Build Coastguard Worker information. 460*5e7646d2SAndroid Build Coastguard Worker--> 461*5e7646d2SAndroid Build Coastguard Worker 462*5e7646d2SAndroid Build Coastguard Worker<h1 class='title'>PPD API (DEPRECATED)</h1> 463*5e7646d2SAndroid Build Coastguard Worker 464*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 465*5e7646d2SAndroid Build Coastguard Worker 466*5e7646d2SAndroid Build Coastguard Worker<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p> 467*5e7646d2SAndroid Build Coastguard Worker</blockquote> 468*5e7646d2SAndroid Build Coastguard Worker 469*5e7646d2SAndroid Build Coastguard Worker<div class='summary'><table summary='General Information'> 470*5e7646d2SAndroid Build Coastguard Worker<thead> 471*5e7646d2SAndroid Build Coastguard Worker<tr> 472*5e7646d2SAndroid Build Coastguard Worker <th>Header</th> 473*5e7646d2SAndroid Build Coastguard Worker <th>cups/ppd.h</th> 474*5e7646d2SAndroid Build Coastguard Worker</tr> 475*5e7646d2SAndroid Build Coastguard Worker</thead> 476*5e7646d2SAndroid Build Coastguard Worker<tbody> 477*5e7646d2SAndroid Build Coastguard Worker<tr> 478*5e7646d2SAndroid Build Coastguard Worker <th>Library</th> 479*5e7646d2SAndroid Build Coastguard Worker <td>-lcups</td> 480*5e7646d2SAndroid Build Coastguard Worker</tr> 481*5e7646d2SAndroid Build Coastguard Worker<tr> 482*5e7646d2SAndroid Build Coastguard Worker <th>See Also</th> 483*5e7646d2SAndroid Build Coastguard Worker <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a><br> 484*5e7646d2SAndroid Build Coastguard Worker Programming: <a href='cupspm.html' target='_top'>CUPS Programming Manual</a><br> 485*5e7646d2SAndroid Build Coastguard Worker Specifications: <a href='spec-ppd.html' target='_top'>CUPS PPD Extensions</a></td> 486*5e7646d2SAndroid Build Coastguard Worker</tr> 487*5e7646d2SAndroid Build Coastguard Worker</tbody> 488*5e7646d2SAndroid Build Coastguard Worker</table></div> 489*5e7646d2SAndroid Build Coastguard Worker <div class="contents"> 490*5e7646d2SAndroid Build Coastguard Worker <h2 class="title">Contents</h2> 491*5e7646d2SAndroid Build Coastguard Worker <ul class="contents"> 492*5e7646d2SAndroid Build Coastguard Worker <li><a href="#OVERVIEW">Overview</a><ul class="subcontents"> 493*5e7646d2SAndroid Build Coastguard Worker <li><a href="#LOADING">Loading a PPD File</a></li> 494*5e7646d2SAndroid Build Coastguard Worker <li><a href="#OPTIONS_AND_GROUPS">Options and Groups</a></li> 495*5e7646d2SAndroid Build Coastguard Worker <li><a href="#CONSTRAINTS">Constraints</a></li> 496*5e7646d2SAndroid Build Coastguard Worker <li><a href="#PAGE_SIZES">Page Sizes</a></li> 497*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ATTRIBUTES">Attributes</a></li> 498*5e7646d2SAndroid Build Coastguard Worker </ul></li> 499*5e7646d2SAndroid Build Coastguard Worker <li><a href="#FUNCTIONS">Functions</a><ul class="subcontents"> 500*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsGetConflicts">cupsGetConflicts</a></li> 501*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsGetPPD">cupsGetPPD</a></li> 502*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsGetPPD2">cupsGetPPD2</a></li> 503*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsGetPPD3">cupsGetPPD3</a></li> 504*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsGetServerPPD">cupsGetServerPPD</a></li> 505*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMarkOptions">cupsMarkOptions</a></li> 506*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></li> 507*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsResolveConflicts">cupsResolveConflicts</a></li> 508*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdCollect">ppdCollect</a></li> 509*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdCollect2">ppdCollect2</a></li> 510*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdConflicts">ppdConflicts</a></li> 511*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdEmit">ppdEmit</a></li> 512*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdEmitAfterOrder">ppdEmitAfterOrder</a></li> 513*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdEmitFd">ppdEmitFd</a></li> 514*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdEmitJCL">ppdEmitJCL</a></li> 515*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdEmitJCLEnd">ppdEmitJCLEnd</a></li> 516*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdEmitString">ppdEmitString</a></li> 517*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFindAttr">ppdFindAttr</a></li> 518*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFindChoice">ppdFindChoice</a></li> 519*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFindCustomOption">ppdFindCustomOption</a></li> 520*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFindCustomParam">ppdFindCustomParam</a></li> 521*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFindMarkedChoice">ppdFindMarkedChoice</a></li> 522*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFindNextAttr">ppdFindNextAttr</a></li> 523*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFindOption">ppdFindOption</a></li> 524*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFirstCustomParam">ppdFirstCustomParam</a></li> 525*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdFirstOption">ppdFirstOption</a></li> 526*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdInstallableConflict">ppdInstallableConflict</a></li> 527*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdIsMarked">ppdIsMarked</a></li> 528*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdLocalize">ppdLocalize</a></li> 529*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdLocalizeAttr">ppdLocalizeAttr</a></li> 530*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></li> 531*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdLocalizeMarkerName">ppdLocalizeMarkerName</a></li> 532*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdMarkDefaults">ppdMarkDefaults</a></li> 533*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdMarkOption">ppdMarkOption</a></li> 534*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdNextCustomParam">ppdNextCustomParam</a></li> 535*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdNextOption">ppdNextOption</a></li> 536*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdPageLength">ppdPageLength</a></li> 537*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdPageSize">ppdPageSize</a></li> 538*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdPageSizeLimits">ppdPageSizeLimits</a></li> 539*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppdPageWidth">ppdPageWidth</a></li> 540*5e7646d2SAndroid Build Coastguard Worker </ul></li> 541*5e7646d2SAndroid Build Coastguard Worker <li><a href="#TYPES">Data Types</a><ul class="subcontents"> 542*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cups_interpret_cb_t">cups_interpret_cb_t</a></li> 543*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_attr_t">ppd_attr_t</a></li> 544*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_choice_t">ppd_choice_t</a></li> 545*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_conform_t">ppd_conform_t</a></li> 546*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_const_t">ppd_const_t</a></li> 547*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_coption_t">ppd_coption_t</a></li> 548*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cparam_t">ppd_cparam_t</a></li> 549*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cplimit_t">ppd_cplimit_t</a></li> 550*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cptype_t">ppd_cptype_t</a></li> 551*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cpvalue_t">ppd_cpvalue_t</a></li> 552*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cs_t">ppd_cs_t</a></li> 553*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_emul_t">ppd_emul_t</a></li> 554*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_file_t">ppd_file_t</a></li> 555*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_group_t">ppd_group_t</a></li> 556*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_option_t">ppd_option_t</a></li> 557*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_profile_t">ppd_profile_t</a></li> 558*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_section_t">ppd_section_t</a></li> 559*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_size_t">ppd_size_t</a></li> 560*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_status_t">ppd_status_t</a></li> 561*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_ui_t">ppd_ui_t</a></li> 562*5e7646d2SAndroid Build Coastguard Worker </ul></li> 563*5e7646d2SAndroid Build Coastguard Worker <li><a href="#STRUCTURES">Structures</a><ul class="subcontents"> 564*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_attr_s">ppd_attr_s</a></li> 565*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_choice_s">ppd_choice_s</a></li> 566*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_const_s">ppd_const_s</a></li> 567*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_coption_s">ppd_coption_s</a></li> 568*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cparam_s">ppd_cparam_s</a></li> 569*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_emul_s">ppd_emul_s</a></li> 570*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_file_s">ppd_file_s</a></li> 571*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_group_s">ppd_group_s</a></li> 572*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_option_s">ppd_option_s</a></li> 573*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_profile_s">ppd_profile_s</a></li> 574*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_size_s">ppd_size_s</a></li> 575*5e7646d2SAndroid Build Coastguard Worker </ul></li> 576*5e7646d2SAndroid Build Coastguard Worker <li><a href="#UNIONS">Unions</a><ul class="subcontents"> 577*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cplimit_u">ppd_cplimit_u</a></li> 578*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cpvalue_u">ppd_cpvalue_u</a></li> 579*5e7646d2SAndroid Build Coastguard Worker </ul></li> 580*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ENUMERATIONS">Enumerations</a><ul class="subcontents"> 581*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_conform_e">ppd_conform_e</a></li> 582*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cptype_e">ppd_cptype_e</a></li> 583*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_cs_e">ppd_cs_e</a></li> 584*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_section_e">ppd_section_e</a></li> 585*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_status_e">ppd_status_e</a></li> 586*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ppd_ui_e">ppd_ui_e</a></li> 587*5e7646d2SAndroid Build Coastguard Worker </ul></li> 588*5e7646d2SAndroid Build Coastguard Worker </ul> 589*5e7646d2SAndroid Build Coastguard Worker </div> 590*5e7646d2SAndroid Build Coastguard Worker <div class="body"> 591*5e7646d2SAndroid Build Coastguard Worker<!-- 592*5e7646d2SAndroid Build Coastguard Worker PPD API introduction for CUPS. 593*5e7646d2SAndroid Build Coastguard Worker 594*5e7646d2SAndroid Build Coastguard Worker Copyright © 2007-2019 by Apple Inc. 595*5e7646d2SAndroid Build Coastguard Worker Copyright © 1997-2006 by Easy Software Products, all rights reserved. 596*5e7646d2SAndroid Build Coastguard Worker 597*5e7646d2SAndroid Build Coastguard Worker Licensed under Apache License v2.0. See the file "LICENSE" for more 598*5e7646d2SAndroid Build Coastguard Worker information. 599*5e7646d2SAndroid Build Coastguard Worker--> 600*5e7646d2SAndroid Build Coastguard Worker 601*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='OVERVIEW'>Overview</a></h2> 602*5e7646d2SAndroid Build Coastguard Worker 603*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 604*5e7646d2SAndroid Build Coastguard Worker 605*5e7646d2SAndroid Build Coastguard Worker<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p> 606*5e7646d2SAndroid Build Coastguard Worker</blockquote> 607*5e7646d2SAndroid Build Coastguard Worker 608*5e7646d2SAndroid Build Coastguard Worker<p>The CUPS PPD API provides read-only access the data in PostScript Printer 609*5e7646d2SAndroid Build Coastguard WorkerDescription ("PPD") files which are used for all printers with a driver. With 610*5e7646d2SAndroid Build Coastguard Workerit you can obtain the data necessary to display printer options to users, mark 611*5e7646d2SAndroid Build Coastguard Workeroption choices and check for conflicting choices, and output marked choices in 612*5e7646d2SAndroid Build Coastguard WorkerPostScript output. The <a href="#ppd_file_t"><code>ppd_file_t</code></a> 613*5e7646d2SAndroid Build Coastguard Workerstructure contains all of the information in a PPD file.</p> 614*5e7646d2SAndroid Build Coastguard Worker 615*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 616*5e7646d2SAndroid Build Coastguard Worker 617*5e7646d2SAndroid Build Coastguard Worker<p>The CUPS PPD API uses the terms "option" and "choice" instead of the Adobe 618*5e7646d2SAndroid Build Coastguard Workerterms "MainKeyword" and "OptionKeyword" to refer to specific printer options and 619*5e7646d2SAndroid Build Coastguard Workerfeatures. CUPS also treats option ("MainKeyword") and choice ("OptionKeyword") 620*5e7646d2SAndroid Build Coastguard Workervalues as case-insensitive strings, so option "InputSlot" and choice "Upper" 621*5e7646d2SAndroid Build Coastguard Workerare equivalent to "inputslot" and "upper", respectively.</p> 622*5e7646d2SAndroid Build Coastguard Worker</blockquote> 623*5e7646d2SAndroid Build Coastguard Worker 624*5e7646d2SAndroid Build Coastguard Worker 625*5e7646d2SAndroid Build Coastguard Worker<h3><a name="LOADING">Loading a PPD File</a></h3> 626*5e7646d2SAndroid Build Coastguard Worker 627*5e7646d2SAndroid Build Coastguard Worker<p>The <a href="#ppdOpenFile"><code>ppdOpenFile</code></a> function "opens" a 628*5e7646d2SAndroid Build Coastguard WorkerPPD file and loads it into memory. For example, the following code opens the 629*5e7646d2SAndroid Build Coastguard Workercurrent printer's PPD file in a CUPS filter:</p> 630*5e7646d2SAndroid Build Coastguard Worker 631*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 632*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 633*5e7646d2SAndroid Build Coastguard Worker 634*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd = <a href="#ppdOpenFile">ppdOpenFile</a>(getenv("PPD")); 635*5e7646d2SAndroid Build Coastguard Worker</pre> 636*5e7646d2SAndroid Build Coastguard Worker 637*5e7646d2SAndroid Build Coastguard Worker<p>The return value is a pointer to a new 638*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t"><code>ppd_file_t</code></a> structure or <code>NULL</code> 639*5e7646d2SAndroid Build Coastguard Workerif the PPD file does not exist or cannot be loaded. The 640*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdClose"><code>ppdClose</code></a> function frees the memory used 641*5e7646d2SAndroid Build Coastguard Workerby the structure:</p> 642*5e7646d2SAndroid Build Coastguard Worker 643*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 644*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 645*5e7646d2SAndroid Build Coastguard Worker 646*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd; 647*5e7646d2SAndroid Build Coastguard Worker 648*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdClose">ppdClose</a>(ppd); 649*5e7646d2SAndroid Build Coastguard Worker</pre> 650*5e7646d2SAndroid Build Coastguard Worker 651*5e7646d2SAndroid Build Coastguard Worker<p>Once closed, pointers to the <a href="#ppd_file_t"><code>ppd_file_t</code></a> 652*5e7646d2SAndroid Build Coastguard Workerstructure and any data in it will no longer be valid.</p> 653*5e7646d2SAndroid Build Coastguard Worker 654*5e7646d2SAndroid Build Coastguard Worker<h3><a name="OPTIONS_AND_GROUPS">Options and Groups</a></h3> 655*5e7646d2SAndroid Build Coastguard Worker 656*5e7646d2SAndroid Build Coastguard Worker<p>PPD files support multiple options, which are stored in arrays of 657*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t"><code>ppd_option_t</code></a> and 658*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_choice_t"><code>ppd_choice_t</code></a> structures.</p> 659*5e7646d2SAndroid Build Coastguard Worker 660*5e7646d2SAndroid Build Coastguard Worker<p>Each option in turn is associated with a group stored in a 661*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_group_t"><code>ppd_group_t</code></a> structure. Groups can be 662*5e7646d2SAndroid Build Coastguard Workerspecified in the PPD file; if an option is not associated with a group 663*5e7646d2SAndroid Build Coastguard Workerthen it is put in an automatically-generated "General" group. Groups can also 664*5e7646d2SAndroid Build Coastguard Workerhave sub-groups, however CUPS currently ignores sub-groups because of past 665*5e7646d2SAndroid Build Coastguard Workerabuses of this functionality.</p> 666*5e7646d2SAndroid Build Coastguard Worker 667*5e7646d2SAndroid Build Coastguard Worker<p>Option choices are selected by marking them using one of three functions. The 668*5e7646d2SAndroid Build Coastguard Workerfirst is <a href="#ppdMarkDefaults"><code>ppdMarkDefaults</code></a> which 669*5e7646d2SAndroid Build Coastguard Workerselects all of the default options in the PPD file:</p> 670*5e7646d2SAndroid Build Coastguard Worker 671*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 672*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 673*5e7646d2SAndroid Build Coastguard Worker 674*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd; 675*5e7646d2SAndroid Build Coastguard Worker 676*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkDefaults">ppdMarkDefaults</a>(ppd); 677*5e7646d2SAndroid Build Coastguard Worker</pre> 678*5e7646d2SAndroid Build Coastguard Worker 679*5e7646d2SAndroid Build Coastguard Worker<p>The second is <a href="#ppdMarkOption"><code>ppdMarkOption</code></a> 680*5e7646d2SAndroid Build Coastguard Workerwhich selects a single option choice in the PPD file. For example, the following 681*5e7646d2SAndroid Build Coastguard Workercode selects the upper paper tray:</p> 682*5e7646d2SAndroid Build Coastguard Worker 683*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 684*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 685*5e7646d2SAndroid Build Coastguard Worker 686*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd; 687*5e7646d2SAndroid Build Coastguard Worker 688*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkOption">ppdMarkOption</a>(ppd, "InputSlot", "Upper"); 689*5e7646d2SAndroid Build Coastguard Worker</pre> 690*5e7646d2SAndroid Build Coastguard Worker 691*5e7646d2SAndroid Build Coastguard Worker<p>The last function is 692*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsMarkOptions"><code>cupsMarkOptions</code></a> which selects 693*5e7646d2SAndroid Build Coastguard Workermultiple option choices in the PPD file from an array of CUPS options, mapping 694*5e7646d2SAndroid Build Coastguard WorkerIPP attributes like "media" and "sides" to their corresponding PPD options. You 695*5e7646d2SAndroid Build Coastguard Workertypically use this function in a print filter with 696*5e7646d2SAndroid Build Coastguard Worker<code>cupsParseOptions</code> and 697*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkDefaults"><code>ppdMarkDefaults</code></a> to select all of 698*5e7646d2SAndroid Build Coastguard Workerthe option choices needed for the job, for example:</p> 699*5e7646d2SAndroid Build Coastguard Worker 700*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 701*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 702*5e7646d2SAndroid Build Coastguard Worker 703*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd = <a href="#ppdOpenFile">ppdOpenFile</a>(getenv("PPD")); 704*5e7646d2SAndroid Build Coastguard Workercups_option_t *options = NULL; 705*5e7646d2SAndroid Build Coastguard Workerint num_options = cupsParseOptions(argv[5], 0, &options); 706*5e7646d2SAndroid Build Coastguard Worker 707*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkDefaults">ppdMarkDefaults</a>(ppd); 708*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsMarkOptions">cupsMarkOptions</a>(ppd, num_options, options); 709*5e7646d2SAndroid Build Coastguard WorkercupsFreeOptions(num_options, options); 710*5e7646d2SAndroid Build Coastguard Worker</pre> 711*5e7646d2SAndroid Build Coastguard Worker 712*5e7646d2SAndroid Build Coastguard Worker 713*5e7646d2SAndroid Build Coastguard Worker<h3><a name="CONSTRAINTS">Constraints</a></h3> 714*5e7646d2SAndroid Build Coastguard Worker 715*5e7646d2SAndroid Build Coastguard Worker<p>PPD files support specification of conflict conditions, called 716*5e7646d2SAndroid Build Coastguard Workerconstraints, between different options. Constraints are stored in an array of 717*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_const_t"><code>ppd_const_t</code></a> structures which specify 718*5e7646d2SAndroid Build Coastguard Workerthe options and choices that conflict with each other. The 719*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdConflicts"><code>ppdConflicts</code></a> function tells you 720*5e7646d2SAndroid Build Coastguard Workerhow many of the selected options are incompatible. Since constraints are 721*5e7646d2SAndroid Build Coastguard Workernormally specified in pairs, the returned value is typically an even number.</p> 722*5e7646d2SAndroid Build Coastguard Worker 723*5e7646d2SAndroid Build Coastguard Worker 724*5e7646d2SAndroid Build Coastguard Worker<h3><a name="PAGE_SIZES">Page Sizes</a></h3> 725*5e7646d2SAndroid Build Coastguard Worker 726*5e7646d2SAndroid Build Coastguard Worker<p>Page sizes are special options which have physical dimensions and margins 727*5e7646d2SAndroid Build Coastguard Workerassociated with them. The size information is stored in 728*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t"><code>ppd_size_t</code></a> structures and is available 729*5e7646d2SAndroid Build Coastguard Workerby looking up the named size with the 730*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdPageSize"><code>ppdPageSize</code></a> function. The page size and 731*5e7646d2SAndroid Build Coastguard Workermargins are returned in units called points; there are 72 points per inch. If 732*5e7646d2SAndroid Build Coastguard Workeryou pass <code>NULL</code> for the size, the currently selected size is 733*5e7646d2SAndroid Build Coastguard Workerreturned:</p> 734*5e7646d2SAndroid Build Coastguard Worker 735*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 736*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 737*5e7646d2SAndroid Build Coastguard Worker 738*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd; 739*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, NULL); 740*5e7646d2SAndroid Build Coastguard Worker</pre> 741*5e7646d2SAndroid Build Coastguard Worker 742*5e7646d2SAndroid Build Coastguard Worker<p>Besides the standard page sizes listed in a PPD file, some printers 743*5e7646d2SAndroid Build Coastguard Workersupport variable or custom page sizes. Custom page sizes are supported if the 744*5e7646d2SAndroid Build Coastguard Worker<code>variables_sizes</code> member of the 745*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t"><code>ppd_file_t</code></a> structure is non-zero. 746*5e7646d2SAndroid Build Coastguard WorkerThe <code>custom_min</code>, <code>custom_max</code>, and 747*5e7646d2SAndroid Build Coastguard Worker<code>custom_margins</code> members of the 748*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t"><code>ppd_file_t</code></a> structure define the limits 749*5e7646d2SAndroid Build Coastguard Workerof the printable area. To get the resulting media size, use a page size string 750*5e7646d2SAndroid Build Coastguard Workerof the form "Custom.<I>width</I>x<I>length</I>", where "width" and "length" are 751*5e7646d2SAndroid Build Coastguard Workerin points. Custom page size names can also be specified in inches 752*5e7646d2SAndroid Build Coastguard Worker("Custom.<i>width</i>x<i>height</i>in"), centimeters 753*5e7646d2SAndroid Build Coastguard Worker("Custom.<i>width</i>x<i>height</i>cm"), or millimeters 754*5e7646d2SAndroid Build Coastguard Worker("Custom.<i>width</i>x<i>height</i>mm"):</p> 755*5e7646d2SAndroid Build Coastguard Worker 756*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 757*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 758*5e7646d2SAndroid Build Coastguard Worker 759*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd; 760*5e7646d2SAndroid Build Coastguard Worker 761*5e7646d2SAndroid Build Coastguard Worker/* Get an 576x720 point custom page size */ 762*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.576x720"); 763*5e7646d2SAndroid Build Coastguard Worker 764*5e7646d2SAndroid Build Coastguard Worker/* Get an 8x10 inch custom page size */ 765*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.8x10in"); 766*5e7646d2SAndroid Build Coastguard Worker 767*5e7646d2SAndroid Build Coastguard Worker/* Get a 100x200 millimeter custom page size */ 768*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.100x200mm"); 769*5e7646d2SAndroid Build Coastguard Worker 770*5e7646d2SAndroid Build Coastguard Worker/* Get a 12.7x34.5 centimeter custom page size */ 771*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.12.7x34.5cm"); 772*5e7646d2SAndroid Build Coastguard Worker</pre> 773*5e7646d2SAndroid Build Coastguard Worker 774*5e7646d2SAndroid Build Coastguard Worker<p>If the PPD does not support variable page sizes, the 775*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdPageSize"><code>ppdPageSize</code></a> function will return 776*5e7646d2SAndroid Build Coastguard Worker<code>NULL</code>.</p> 777*5e7646d2SAndroid Build Coastguard Worker 778*5e7646d2SAndroid Build Coastguard Worker 779*5e7646d2SAndroid Build Coastguard Worker<h3><a name="ATTRIBUTES">Attributes</a></h3> 780*5e7646d2SAndroid Build Coastguard Worker 781*5e7646d2SAndroid Build Coastguard Worker<p>Every PPD file is composed of one or more attributes. Most of these 782*5e7646d2SAndroid Build Coastguard Workerattributes are used to define groups, options, choices, and page sizes, 783*5e7646d2SAndroid Build Coastguard Workerhowever several informational attributes may be present which you can access 784*5e7646d2SAndroid Build Coastguard Workerin your program or filter. Attributes normally look like one of the following 785*5e7646d2SAndroid Build Coastguard Workerexamples in a PPD file:</p> 786*5e7646d2SAndroid Build Coastguard Worker 787*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 788*5e7646d2SAndroid Build Coastguard Worker*name: "value" 789*5e7646d2SAndroid Build Coastguard Worker*name spec: "value" 790*5e7646d2SAndroid Build Coastguard Worker*name spec/text: "value" 791*5e7646d2SAndroid Build Coastguard Worker</pre> 792*5e7646d2SAndroid Build Coastguard Worker 793*5e7646d2SAndroid Build Coastguard Worker<p>The <a href="#ppdFindAttr"><code>ppdFindAttr</code></a> and 794*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdFindNextAttr"><code>ppdFindNextAttr</code></a> functions find the 795*5e7646d2SAndroid Build Coastguard Workerfirst and next instances, respectively, of the named attribute with the given 796*5e7646d2SAndroid Build Coastguard Worker"spec" string and return a <a href="#ppd_attr_t"><code>ppd_attr_t</code></a> 797*5e7646d2SAndroid Build Coastguard Workerstructure. If you provide a NULL specifier string, all attributes with the 798*5e7646d2SAndroid Build Coastguard Workergiven name will be returned. For example, the following code lists all of the 799*5e7646d2SAndroid Build Coastguard Worker<code>Product</code> attributes in a PPD file:</p> 800*5e7646d2SAndroid Build Coastguard Worker 801*5e7646d2SAndroid Build Coastguard Worker<pre class="example"> 802*5e7646d2SAndroid Build Coastguard Worker#include <cups/ppd.h> 803*5e7646d2SAndroid Build Coastguard Worker 804*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd; 805*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *attr; 806*5e7646d2SAndroid Build Coastguard Worker 807*5e7646d2SAndroid Build Coastguard Workerfor (attr = <a href="#ppdFindAttr">ppdFindAttr</a>(ppd, "Product", NULL); 808*5e7646d2SAndroid Build Coastguard Worker attr != NULL; 809*5e7646d2SAndroid Build Coastguard Worker attr = <a href="#ppdFindNextAttr">ppdFindNextAttr</a>(ppd, "Product", NULL)) 810*5e7646d2SAndroid Build Coastguard Worker puts(attr->value); 811*5e7646d2SAndroid Build Coastguard Worker</pre> 812*5e7646d2SAndroid Build Coastguard Worker <h2 class="title"><a id="FUNCTIONS">Functions</a></h2> 813*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a id="cupsGetConflicts">cupsGetConflicts</a></h3> 814*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get a list of conflicting options in a marked PPD.</p> 815*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 816*5e7646d2SAndroid Build Coastguard Workerint cupsGetConflicts(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice, cups_option_t **options);</p> 817*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 818*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 819*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 820*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 821*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th> 822*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option to test</td></tr> 823*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th> 824*5e7646d2SAndroid Build Coastguard Worker <td class="description">Choice to test</td></tr> 825*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th> 826*5e7646d2SAndroid Build Coastguard Worker <td class="description">Conflicting options</td></tr> 827*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 828*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 829*5e7646d2SAndroid Build Coastguard Worker <p class="description">Number of conflicting options</p> 830*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 831*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function gets a list of options that would conflict if "option" and 832*5e7646d2SAndroid Build Coastguard Worker"choice" were marked in the PPD. You would typically call this function 833*5e7646d2SAndroid Build Coastguard Workerafter marking the currently selected options in the PPD in order to 834*5e7646d2SAndroid Build Coastguard Workerdetermine whether a new option selection would cause a conflict.<br> 835*5e7646d2SAndroid Build Coastguard Worker<br> 836*5e7646d2SAndroid Build Coastguard WorkerThe number of conflicting options are returned with "options" pointing to 837*5e7646d2SAndroid Build Coastguard Workerthe conflicting options. The returned option array must be freed using 838*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsFreeOptions"><code>cupsFreeOptions</code></a>. 839*5e7646d2SAndroid Build Coastguard Worker 840*5e7646d2SAndroid Build Coastguard Worker</p> 841*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsGetPPD">cupsGetPPD</a></h3> 842*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the PPD file for a printer on the default server.</p> 843*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 844*5e7646d2SAndroid Build Coastguard Workerconst char *cupsGetPPD(const char *name);</p> 845*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 846*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 847*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 848*5e7646d2SAndroid Build Coastguard Worker <td class="description">Destination name</td></tr> 849*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 850*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 851*5e7646d2SAndroid Build Coastguard Worker <p class="description">Filename for PPD file</p> 852*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 853*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">For classes, <code>cupsGetPPD</code> returns the PPD file for the first printer 854*5e7646d2SAndroid Build Coastguard Workerin the class.<br> 855*5e7646d2SAndroid Build Coastguard Worker<br> 856*5e7646d2SAndroid Build Coastguard WorkerThe returned filename is stored in a static buffer and is overwritten with 857*5e7646d2SAndroid Build Coastguard Workereach call to <code>cupsGetPPD</code> or <a href="#cupsGetPPD2"><code>cupsGetPPD2</code></a>. The caller "owns" the 858*5e7646d2SAndroid Build Coastguard Workerfile that is created and must <code>unlink</code> the returned filename.</p> 859*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 10.4 </span><a id="cupsGetPPD2">cupsGetPPD2</a></h3> 860*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the PPD file for a printer from the specified server.</p> 861*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 862*5e7646d2SAndroid Build Coastguard Workerconst char *cupsGetPPD2(http_t *http, const char *name);</p> 863*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 864*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 865*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th> 866*5e7646d2SAndroid Build Coastguard Worker <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr> 867*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 868*5e7646d2SAndroid Build Coastguard Worker <td class="description">Destination name</td></tr> 869*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 870*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 871*5e7646d2SAndroid Build Coastguard Worker <p class="description">Filename for PPD file</p> 872*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 873*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">For classes, <code>cupsGetPPD2</code> returns the PPD file for the first printer 874*5e7646d2SAndroid Build Coastguard Workerin the class.<br> 875*5e7646d2SAndroid Build Coastguard Worker<br> 876*5e7646d2SAndroid Build Coastguard WorkerThe returned filename is stored in a static buffer and is overwritten with 877*5e7646d2SAndroid Build Coastguard Workereach call to <a href="#cupsGetPPD"><code>cupsGetPPD</code></a> or <code>cupsGetPPD2</code>. The caller "owns" the 878*5e7646d2SAndroid Build Coastguard Workerfile that is created and must <code>unlink</code> the returned filename. 879*5e7646d2SAndroid Build Coastguard Worker 880*5e7646d2SAndroid Build Coastguard Worker</p> 881*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a id="cupsGetPPD3">cupsGetPPD3</a></h3> 882*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the PPD file for a printer on the specified 883*5e7646d2SAndroid Build Coastguard Workerserver if it has changed.</p> 884*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 885*5e7646d2SAndroid Build Coastguard Workerhttp_status_t cupsGetPPD3(http_t *http, const char *name, time_t *modtime, char *buffer, size_t bufsize);</p> 886*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 887*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 888*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th> 889*5e7646d2SAndroid Build Coastguard Worker <td class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></td></tr> 890*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 891*5e7646d2SAndroid Build Coastguard Worker <td class="description">Destination name</td></tr> 892*5e7646d2SAndroid Build Coastguard Worker<tr><th>modtime</th> 893*5e7646d2SAndroid Build Coastguard Worker <td class="description">Modification time</td></tr> 894*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th> 895*5e7646d2SAndroid Build Coastguard Worker <td class="description">Filename buffer</td></tr> 896*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th> 897*5e7646d2SAndroid Build Coastguard Worker <td class="description">Size of filename buffer</td></tr> 898*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 899*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 900*5e7646d2SAndroid Build Coastguard Worker <p class="description">HTTP status</p> 901*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 902*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">The "modtime" parameter contains the modification time of any 903*5e7646d2SAndroid Build Coastguard Workerlocally-cached content and is updated with the time from the PPD file on 904*5e7646d2SAndroid Build Coastguard Workerthe server.<br> 905*5e7646d2SAndroid Build Coastguard Worker<br> 906*5e7646d2SAndroid Build Coastguard WorkerThe "buffer" parameter contains the local PPD filename. If it contains 907*5e7646d2SAndroid Build Coastguard Workerthe empty string, a new temporary file is created, otherwise the existing 908*5e7646d2SAndroid Build Coastguard Workerfile will be overwritten as needed. The caller "owns" the file that is 909*5e7646d2SAndroid Build Coastguard Workercreated and must <code>unlink</code> the returned filename.<br> 910*5e7646d2SAndroid Build Coastguard Worker<br> 911*5e7646d2SAndroid Build Coastguard WorkerOn success, <code>HTTP_STATUS_OK</code> is returned for a new PPD file and 912*5e7646d2SAndroid Build Coastguard Worker<code>HTTP_STATUS_NOT_MODIFIED</code> if the existing PPD file is up-to-date. Any other 913*5e7646d2SAndroid Build Coastguard Workerstatus is an error.<br> 914*5e7646d2SAndroid Build Coastguard Worker<br> 915*5e7646d2SAndroid Build Coastguard WorkerFor classes, <code>cupsGetPPD3</code> returns the PPD file for the first printer 916*5e7646d2SAndroid Build Coastguard Workerin the class. 917*5e7646d2SAndroid Build Coastguard Worker 918*5e7646d2SAndroid Build Coastguard Worker</p> 919*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.3/macOS 10.5 </span><a id="cupsGetServerPPD">cupsGetServerPPD</a></h3> 920*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get an available PPD file from the server.</p> 921*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 922*5e7646d2SAndroid Build Coastguard Workerchar *cupsGetServerPPD(http_t *http, const char *name);</p> 923*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 924*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 925*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th> 926*5e7646d2SAndroid Build Coastguard Worker <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr> 927*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 928*5e7646d2SAndroid Build Coastguard Worker <td class="description">Name of PPD file ("ppd-name")</td></tr> 929*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 930*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 931*5e7646d2SAndroid Build Coastguard Worker <p class="description">Name of PPD file or <code>NULL</code> on error</p> 932*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 933*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function returns the named PPD file from the server. The 934*5e7646d2SAndroid Build Coastguard Workerlist of available PPDs is provided by the IPP <code>CUPS_GET_PPDS</code> 935*5e7646d2SAndroid Build Coastguard Workeroperation.<br> 936*5e7646d2SAndroid Build Coastguard Worker<br> 937*5e7646d2SAndroid Build Coastguard WorkerYou must remove (unlink) the PPD file when you are finished with 938*5e7646d2SAndroid Build Coastguard Workerit. The PPD filename is stored in a static location that will be 939*5e7646d2SAndroid Build Coastguard Workeroverwritten on the next call to <a href="#cupsGetPPD"><code>cupsGetPPD</code></a>, <a href="#cupsGetPPD2"><code>cupsGetPPD2</code></a>, 940*5e7646d2SAndroid Build Coastguard Workeror <a href="#cupsGetServerPPD"><code>cupsGetServerPPD</code></a>. 941*5e7646d2SAndroid Build Coastguard Worker 942*5e7646d2SAndroid Build Coastguard Worker</p> 943*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsMarkOptions">cupsMarkOptions</a></h3> 944*5e7646d2SAndroid Build Coastguard Worker <p class="description">Mark command-line options in a PPD file.</p> 945*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 946*5e7646d2SAndroid Build Coastguard Workerint cupsMarkOptions(<a href="#ppd_file_t">ppd_file_t</a> *ppd, int num_options, cups_option_t *options);</p> 947*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 948*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 949*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 950*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 951*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th> 952*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of options</td></tr> 953*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th> 954*5e7646d2SAndroid Build Coastguard Worker <td class="description">Options</td></tr> 955*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 956*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 957*5e7646d2SAndroid Build Coastguard Worker <p class="description">1 if conflicts exist, 0 otherwise</p> 958*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 959*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function maps the IPP "finishings", "media", "mirror", 960*5e7646d2SAndroid Build Coastguard Worker"multiple-document-handling", "output-bin", "print-color-mode", 961*5e7646d2SAndroid Build Coastguard Worker"print-quality", "printer-resolution", and "sides" attributes to their 962*5e7646d2SAndroid Build Coastguard Workercorresponding PPD options and choices.</p> 963*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3> 964*5e7646d2SAndroid Build Coastguard Worker <p class="description">Interpret PPD commands to create a page header.</p> 965*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 966*5e7646d2SAndroid Build Coastguard Workerint cupsRasterInterpretPPD(cups_page_header2_t *h, <a href="#ppd_file_t">ppd_file_t</a> *ppd, int num_options, cups_option_t *options, <a href="#cups_interpret_cb_t">cups_interpret_cb_t</a> func);</p> 967*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 968*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 969*5e7646d2SAndroid Build Coastguard Worker<tr><th>h</th> 970*5e7646d2SAndroid Build Coastguard Worker <td class="description">Page header to create</td></tr> 971*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 972*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 973*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th> 974*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of options</td></tr> 975*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th> 976*5e7646d2SAndroid Build Coastguard Worker <td class="description">Options</td></tr> 977*5e7646d2SAndroid Build Coastguard Worker<tr><th>func</th> 978*5e7646d2SAndroid Build Coastguard Worker <td class="description">Optional page header callback (<code>NULL</code> for none)</td></tr> 979*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 980*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 981*5e7646d2SAndroid Build Coastguard Worker <p class="description">0 on success, -1 on failure</p> 982*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 983*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function is used by raster image processing (RIP) filters like 984*5e7646d2SAndroid Build Coastguard Workercgpdftoraster and imagetoraster when writing CUPS raster data for a page. 985*5e7646d2SAndroid Build Coastguard WorkerIt is not used by raster printer driver filters which only read CUPS 986*5e7646d2SAndroid Build Coastguard Workerraster data.<br> 987*5e7646d2SAndroid Build Coastguard Worker<br> 988*5e7646d2SAndroid Build Coastguard Worker 989*5e7646d2SAndroid Build Coastguard Worker<code>cupsRasterInterpretPPD</code> does not mark the options in the PPD using 990*5e7646d2SAndroid Build Coastguard Workerthe "num_options" and "options" arguments. Instead, mark the options with 991*5e7646d2SAndroid Build Coastguard Worker<code>cupsMarkOptions</code> and <code>ppdMarkOption</code> prior to calling it - 992*5e7646d2SAndroid Build Coastguard Workerthis allows for per-page options without manipulating the options array.<br> 993*5e7646d2SAndroid Build Coastguard Worker<br> 994*5e7646d2SAndroid Build Coastguard WorkerThe "func" argument specifies an optional callback function that is 995*5e7646d2SAndroid Build Coastguard Workercalled prior to the computation of the final raster data. The function 996*5e7646d2SAndroid Build Coastguard Workercan make changes to the <a href="#cups_page_header2_t"><code>cups_page_header2_t</code></a> data as needed to use a 997*5e7646d2SAndroid Build Coastguard Workersupported raster format and then returns 0 on success and -1 if the 998*5e7646d2SAndroid Build Coastguard Workerrequested attributes cannot be supported.<br> 999*5e7646d2SAndroid Build Coastguard Worker<br> 1000*5e7646d2SAndroid Build Coastguard Worker 1001*5e7646d2SAndroid Build Coastguard Worker<code>cupsRasterInterpretPPD</code> supports a subset of the PostScript language. 1002*5e7646d2SAndroid Build Coastguard WorkerCurrently only the <code>[</code>, <code>]</code>, <code><<</code>, <code>>></code>, <code>{</code>, 1003*5e7646d2SAndroid Build Coastguard Worker<code>}</code>, <code>cleartomark</code>, <code>copy</code>, <code>dup</code>, <code>index</code>, 1004*5e7646d2SAndroid Build Coastguard Worker<code>pop</code>, <code>roll</code>, <code>setpagedevice</code>, and <code>stopped</code> operators 1005*5e7646d2SAndroid Build Coastguard Workerare supported. 1006*5e7646d2SAndroid Build Coastguard Worker 1007*5e7646d2SAndroid Build Coastguard Worker</p> 1008*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a id="cupsResolveConflicts">cupsResolveConflicts</a></h3> 1009*5e7646d2SAndroid Build Coastguard Worker <p class="description">Resolve conflicts in a marked PPD.</p> 1010*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1011*5e7646d2SAndroid Build Coastguard Workerint cupsResolveConflicts(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice, int *num_options, cups_option_t **options);</p> 1012*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1013*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1014*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1015*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1016*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th> 1017*5e7646d2SAndroid Build Coastguard Worker <td class="description">Newly selected option or <code>NULL</code> for none</td></tr> 1018*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th> 1019*5e7646d2SAndroid Build Coastguard Worker <td class="description">Newly selected choice or <code>NULL</code> for none</td></tr> 1020*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th> 1021*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of additional selected options</td></tr> 1022*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th> 1023*5e7646d2SAndroid Build Coastguard Worker <td class="description">Additional selected options</td></tr> 1024*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1025*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1026*5e7646d2SAndroid Build Coastguard Worker <p class="description">1 on success, 0 on failure</p> 1027*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1028*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function attempts to resolve any conflicts in a marked PPD, returning 1029*5e7646d2SAndroid Build Coastguard Workera list of option changes that are required to resolve them. On input, 1030*5e7646d2SAndroid Build Coastguard Worker"num_options" and "options" contain any pending option changes that have 1031*5e7646d2SAndroid Build Coastguard Workernot yet been marked, while "option" and "choice" contain the most recent 1032*5e7646d2SAndroid Build Coastguard Workerselection which may or may not be in "num_options" or "options".<br> 1033*5e7646d2SAndroid Build Coastguard Worker<br> 1034*5e7646d2SAndroid Build Coastguard WorkerOn successful return, "num_options" and "options" are updated to contain 1035*5e7646d2SAndroid Build Coastguard Worker"option" and "choice" along with any changes required to resolve conflicts 1036*5e7646d2SAndroid Build Coastguard Workerspecified in the PPD file and 1 is returned.<br> 1037*5e7646d2SAndroid Build Coastguard Worker<br> 1038*5e7646d2SAndroid Build Coastguard WorkerIf option conflicts cannot be resolved, "num_options" and "options" are not 1039*5e7646d2SAndroid Build Coastguard Workerchanged and 0 is returned.<br> 1040*5e7646d2SAndroid Build Coastguard Worker<br> 1041*5e7646d2SAndroid Build Coastguard WorkerWhen resolving conflicts, <code>cupsResolveConflicts</code> does not consider 1042*5e7646d2SAndroid Build Coastguard Workerchanges to the current page size (<code>media</code>, <code>PageSize</code>, and 1043*5e7646d2SAndroid Build Coastguard Worker<code>PageRegion</code>) or to the most recent option specified in "option". 1044*5e7646d2SAndroid Build Coastguard WorkerThus, if the only way to resolve a conflict is to change the page size 1045*5e7646d2SAndroid Build Coastguard Workeror the option the user most recently changed, <code>cupsResolveConflicts</code> 1046*5e7646d2SAndroid Build Coastguard Workerwill return 0 to indicate it was unable to resolve the conflicts.<br> 1047*5e7646d2SAndroid Build Coastguard Worker<br> 1048*5e7646d2SAndroid Build Coastguard WorkerThe <code>cupsResolveConflicts</code> function uses one of two sources of option 1049*5e7646d2SAndroid Build Coastguard Workerconstraint information. The preferred constraint information is defined by 1050*5e7646d2SAndroid Build Coastguard Worker<code>cupsUIConstraints</code> and <code>cupsUIResolver</code> attributes - in this 1051*5e7646d2SAndroid Build Coastguard Workercase, the PPD file provides constraint resolution actions.<br> 1052*5e7646d2SAndroid Build Coastguard Worker<br> 1053*5e7646d2SAndroid Build Coastguard WorkerThe backup constraint information is defined by the 1054*5e7646d2SAndroid Build Coastguard Worker<code>UIConstraints</code> and <code>NonUIConstraints</code> attributes. These 1055*5e7646d2SAndroid Build Coastguard Workerconstraints are resolved algorithmically by first selecting the default 1056*5e7646d2SAndroid Build Coastguard Workerchoice for the conflicting option, then iterating over all possible choices 1057*5e7646d2SAndroid Build Coastguard Workeruntil a non-conflicting option choice is found. 1058*5e7646d2SAndroid Build Coastguard Worker 1059*5e7646d2SAndroid Build Coastguard Worker</p> 1060*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdCollect">ppdCollect</a></h3> 1061*5e7646d2SAndroid Build Coastguard Worker <p class="description">Collect all marked options that reside in the specified 1062*5e7646d2SAndroid Build Coastguard Workersection.</p> 1063*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1064*5e7646d2SAndroid Build Coastguard Workerint ppdCollect(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_section_t">ppd_section_t</a> section, <a href="#ppd_choice_t">ppd_choice_t</a> ***choices);</p> 1065*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1066*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1067*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1068*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file data</td></tr> 1069*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th> 1070*5e7646d2SAndroid Build Coastguard Worker <td class="description">Section to collect</td></tr> 1071*5e7646d2SAndroid Build Coastguard Worker<tr><th>choices</th> 1072*5e7646d2SAndroid Build Coastguard Worker <td class="description">Pointers to choices</td></tr> 1073*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1074*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1075*5e7646d2SAndroid Build Coastguard Worker <p class="description">Number of options marked</p> 1076*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1077*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">The choices array should be freed using <code>free</code> when you are 1078*5e7646d2SAndroid Build Coastguard Workerfinished with it.</p> 1079*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdCollect2">ppdCollect2</a></h3> 1080*5e7646d2SAndroid Build Coastguard Worker <p class="description">Collect all marked options that reside in the 1081*5e7646d2SAndroid Build Coastguard Workerspecified section and minimum order.</p> 1082*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1083*5e7646d2SAndroid Build Coastguard Workerint ppdCollect2(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_section_t">ppd_section_t</a> section, float min_order, <a href="#ppd_choice_t">ppd_choice_t</a> ***choices);</p> 1084*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1085*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1086*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1087*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file data</td></tr> 1088*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th> 1089*5e7646d2SAndroid Build Coastguard Worker <td class="description">Section to collect</td></tr> 1090*5e7646d2SAndroid Build Coastguard Worker<tr><th>min_order</th> 1091*5e7646d2SAndroid Build Coastguard Worker <td class="description">Minimum OrderDependency value</td></tr> 1092*5e7646d2SAndroid Build Coastguard Worker<tr><th>choices</th> 1093*5e7646d2SAndroid Build Coastguard Worker <td class="description">Pointers to choices</td></tr> 1094*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1095*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1096*5e7646d2SAndroid Build Coastguard Worker <p class="description">Number of options marked</p> 1097*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1098*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">The choices array should be freed using <code>free</code> when you are 1099*5e7646d2SAndroid Build Coastguard Workerfinished with it. 1100*5e7646d2SAndroid Build Coastguard Worker 1101*5e7646d2SAndroid Build Coastguard Worker</p> 1102*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdConflicts">ppdConflicts</a></h3> 1103*5e7646d2SAndroid Build Coastguard Worker <p class="description">Check to see if there are any conflicts among the 1104*5e7646d2SAndroid Build Coastguard Workermarked option choices.</p> 1105*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1106*5e7646d2SAndroid Build Coastguard Workerint ppdConflicts(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p> 1107*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1108*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1109*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1110*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD to check</td></tr> 1111*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1112*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1113*5e7646d2SAndroid Build Coastguard Worker <p class="description">Number of conflicts found</p> 1114*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1115*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">The returned value is the same as returned by <a href="#ppdMarkOption"><code>ppdMarkOption</code></a>.</p> 1116*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdEmit">ppdEmit</a></h3> 1117*5e7646d2SAndroid Build Coastguard Worker <p class="description">Emit code for marked options to a file.</p> 1118*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1119*5e7646d2SAndroid Build Coastguard Workerint ppdEmit(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp, <a href="#ppd_section_t">ppd_section_t</a> section);</p> 1120*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1121*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1122*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1123*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1124*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th> 1125*5e7646d2SAndroid Build Coastguard Worker <td class="description">File to write to</td></tr> 1126*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th> 1127*5e7646d2SAndroid Build Coastguard Worker <td class="description">Section to write</td></tr> 1128*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1129*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1130*5e7646d2SAndroid Build Coastguard Worker <p class="description">0 on success, -1 on failure</p> 1131*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdEmitAfterOrder">ppdEmitAfterOrder</a></h3> 1132*5e7646d2SAndroid Build Coastguard Worker <p class="description">Emit a subset of the code for marked options to a file.</p> 1133*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1134*5e7646d2SAndroid Build Coastguard Workerint ppdEmitAfterOrder(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp, <a href="#ppd_section_t">ppd_section_t</a> section, int limit, float min_order);</p> 1135*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1136*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1137*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1138*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1139*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th> 1140*5e7646d2SAndroid Build Coastguard Worker <td class="description">File to write to</td></tr> 1141*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th> 1142*5e7646d2SAndroid Build Coastguard Worker <td class="description">Section to write</td></tr> 1143*5e7646d2SAndroid Build Coastguard Worker<tr><th>limit</th> 1144*5e7646d2SAndroid Build Coastguard Worker <td class="description">Non-zero to use min_order</td></tr> 1145*5e7646d2SAndroid Build Coastguard Worker<tr><th>min_order</th> 1146*5e7646d2SAndroid Build Coastguard Worker <td class="description">Lowest OrderDependency</td></tr> 1147*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1148*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1149*5e7646d2SAndroid Build Coastguard Worker <p class="description">0 on success, -1 on failure</p> 1150*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1151*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">When "limit" is non-zero, this function only emits options whose 1152*5e7646d2SAndroid Build Coastguard WorkerOrderDependency value is greater than or equal to "min_order".<br> 1153*5e7646d2SAndroid Build Coastguard Worker<br> 1154*5e7646d2SAndroid Build Coastguard WorkerWhen "limit" is zero, this function is identical to ppdEmit(). 1155*5e7646d2SAndroid Build Coastguard Worker 1156*5e7646d2SAndroid Build Coastguard Worker</p> 1157*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdEmitFd">ppdEmitFd</a></h3> 1158*5e7646d2SAndroid Build Coastguard Worker <p class="description">Emit code for marked options to a file.</p> 1159*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1160*5e7646d2SAndroid Build Coastguard Workerint ppdEmitFd(<a href="#ppd_file_t">ppd_file_t</a> *ppd, int fd, <a href="#ppd_section_t">ppd_section_t</a> section);</p> 1161*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1162*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1163*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1164*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1165*5e7646d2SAndroid Build Coastguard Worker<tr><th>fd</th> 1166*5e7646d2SAndroid Build Coastguard Worker <td class="description">File to write to</td></tr> 1167*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th> 1168*5e7646d2SAndroid Build Coastguard Worker <td class="description">Section to write</td></tr> 1169*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1170*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1171*5e7646d2SAndroid Build Coastguard Worker <p class="description">0 on success, -1 on failure</p> 1172*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdEmitJCL">ppdEmitJCL</a></h3> 1173*5e7646d2SAndroid Build Coastguard Worker <p class="description">Emit code for JCL options to a file.</p> 1174*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1175*5e7646d2SAndroid Build Coastguard Workerint ppdEmitJCL(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp, int job_id, const char *user, const char *title);</p> 1176*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1177*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1178*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1179*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1180*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th> 1181*5e7646d2SAndroid Build Coastguard Worker <td class="description">File to write to</td></tr> 1182*5e7646d2SAndroid Build Coastguard Worker<tr><th>job_id</th> 1183*5e7646d2SAndroid Build Coastguard Worker <td class="description">Job ID</td></tr> 1184*5e7646d2SAndroid Build Coastguard Worker<tr><th>user</th> 1185*5e7646d2SAndroid Build Coastguard Worker <td class="description">Username</td></tr> 1186*5e7646d2SAndroid Build Coastguard Worker<tr><th>title</th> 1187*5e7646d2SAndroid Build Coastguard Worker <td class="description">Title</td></tr> 1188*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1189*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1190*5e7646d2SAndroid Build Coastguard Worker <p class="description">0 on success, -1 on failure</p> 1191*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdEmitJCLEnd">ppdEmitJCLEnd</a></h3> 1192*5e7646d2SAndroid Build Coastguard Worker <p class="description">Emit JCLEnd code to a file.</p> 1193*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1194*5e7646d2SAndroid Build Coastguard Workerint ppdEmitJCLEnd(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp);</p> 1195*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1196*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1197*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1198*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1199*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th> 1200*5e7646d2SAndroid Build Coastguard Worker <td class="description">File to write to</td></tr> 1201*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1202*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1203*5e7646d2SAndroid Build Coastguard Worker <p class="description">0 on success, -1 on failure</p> 1204*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdEmitString">ppdEmitString</a></h3> 1205*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get a string containing the code for marked options.</p> 1206*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1207*5e7646d2SAndroid Build Coastguard Workerchar *ppdEmitString(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_section_t">ppd_section_t</a> section, float min_order);</p> 1208*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1209*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1210*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1211*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1212*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th> 1213*5e7646d2SAndroid Build Coastguard Worker <td class="description">Section to write</td></tr> 1214*5e7646d2SAndroid Build Coastguard Worker<tr><th>min_order</th> 1215*5e7646d2SAndroid Build Coastguard Worker <td class="description">Lowest OrderDependency</td></tr> 1216*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1217*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1218*5e7646d2SAndroid Build Coastguard Worker <p class="description">String containing option code or <code>NULL</code> if there is no option code</p> 1219*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1220*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">When "min_order" is greater than zero, this function only includes options 1221*5e7646d2SAndroid Build Coastguard Workerwhose OrderDependency value is greater than or equal to "min_order". 1222*5e7646d2SAndroid Build Coastguard WorkerOtherwise, all options in the specified section are included in the 1223*5e7646d2SAndroid Build Coastguard Workerreturned string.<br> 1224*5e7646d2SAndroid Build Coastguard Worker<br> 1225*5e7646d2SAndroid Build Coastguard WorkerThe return string is allocated on the heap and should be freed using 1226*5e7646d2SAndroid Build Coastguard Worker<code>free</code> when you are done with it. 1227*5e7646d2SAndroid Build Coastguard Worker 1228*5e7646d2SAndroid Build Coastguard Worker</p> 1229*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 10.3 </span><a id="ppdFindAttr">ppdFindAttr</a></h3> 1230*5e7646d2SAndroid Build Coastguard Worker <p class="description">Find the first matching attribute.</p> 1231*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1232*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *ppdFindAttr(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name, const char *spec);</p> 1233*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1234*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1235*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1236*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file data</td></tr> 1237*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 1238*5e7646d2SAndroid Build Coastguard Worker <td class="description">Attribute name</td></tr> 1239*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec</th> 1240*5e7646d2SAndroid Build Coastguard Worker <td class="description">Specifier string or <code>NULL</code></td></tr> 1241*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1242*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1243*5e7646d2SAndroid Build Coastguard Worker <p class="description">Attribute or <code>NULL</code> if not found</p> 1244*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdFindChoice">ppdFindChoice</a></h3> 1245*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return a pointer to an option choice.</p> 1246*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1247*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_choice_t">ppd_choice_t</a> *ppdFindChoice(<a href="#ppd_option_t">ppd_option_t</a> *o, const char *choice);</p> 1248*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1249*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1250*5e7646d2SAndroid Build Coastguard Worker<tr><th>o</th> 1251*5e7646d2SAndroid Build Coastguard Worker <td class="description">Pointer to option</td></tr> 1252*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th> 1253*5e7646d2SAndroid Build Coastguard Worker <td class="description">Name of choice</td></tr> 1254*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1255*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1256*5e7646d2SAndroid Build Coastguard Worker <p class="description">Choice pointer or <code>NULL</code></p> 1257*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdFindCustomOption">ppdFindCustomOption</a></h3> 1258*5e7646d2SAndroid Build Coastguard Worker <p class="description">Find a custom option.</p> 1259*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1260*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_coption_t">ppd_coption_t</a> *ppdFindCustomOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *keyword);</p> 1261*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1262*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1263*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1264*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1265*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword</th> 1266*5e7646d2SAndroid Build Coastguard Worker <td class="description">Custom option name</td></tr> 1267*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1268*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1269*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom option or NULL</p> 1270*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdFindCustomParam">ppdFindCustomParam</a></h3> 1271*5e7646d2SAndroid Build Coastguard Worker <p class="description">Find a parameter for a custom option.</p> 1272*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1273*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdFindCustomParam(<a href="#ppd_coption_t">ppd_coption_t</a> *opt, const char *name);</p> 1274*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1275*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1276*5e7646d2SAndroid Build Coastguard Worker<tr><th>opt</th> 1277*5e7646d2SAndroid Build Coastguard Worker <td class="description">Custom option</td></tr> 1278*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 1279*5e7646d2SAndroid Build Coastguard Worker <td class="description">Parameter name</td></tr> 1280*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1281*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1282*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom parameter or NULL</p> 1283*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdFindMarkedChoice">ppdFindMarkedChoice</a></h3> 1284*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return the marked choice for the specified option.</p> 1285*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1286*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_choice_t">ppd_choice_t</a> *ppdFindMarkedChoice(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option);</p> 1287*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1288*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1289*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1290*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1291*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th> 1292*5e7646d2SAndroid Build Coastguard Worker <td class="description">Keyword/option name</td></tr> 1293*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1294*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1295*5e7646d2SAndroid Build Coastguard Worker <p class="description">Pointer to choice or <code>NULL</code></p> 1296*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 10.3 </span><a id="ppdFindNextAttr">ppdFindNextAttr</a></h3> 1297*5e7646d2SAndroid Build Coastguard Worker <p class="description">Find the next matching attribute.</p> 1298*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1299*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *ppdFindNextAttr(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name, const char *spec);</p> 1300*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1301*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1302*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1303*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file data</td></tr> 1304*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 1305*5e7646d2SAndroid Build Coastguard Worker <td class="description">Attribute name</td></tr> 1306*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec</th> 1307*5e7646d2SAndroid Build Coastguard Worker <td class="description">Specifier string or <code>NULL</code></td></tr> 1308*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1309*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1310*5e7646d2SAndroid Build Coastguard Worker <p class="description">Attribute or <code>NULL</code> if not found</p> 1311*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdFindOption">ppdFindOption</a></h3> 1312*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return a pointer to the specified option.</p> 1313*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1314*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t">ppd_option_t</a> *ppdFindOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option);</p> 1315*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1316*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1317*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1318*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file data</td></tr> 1319*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th> 1320*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option/Keyword name</td></tr> 1321*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1322*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1323*5e7646d2SAndroid Build Coastguard Worker <p class="description">Pointer to option or <code>NULL</code></p> 1324*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdFirstCustomParam">ppdFirstCustomParam</a></h3> 1325*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return the first parameter for a custom option.</p> 1326*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1327*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdFirstCustomParam(<a href="#ppd_coption_t">ppd_coption_t</a> *opt);</p> 1328*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1329*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1330*5e7646d2SAndroid Build Coastguard Worker<tr><th>opt</th> 1331*5e7646d2SAndroid Build Coastguard Worker <td class="description">Custom option</td></tr> 1332*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1333*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1334*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom parameter or NULL</p> 1335*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdFirstOption">ppdFirstOption</a></h3> 1336*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return the first option in the PPD file.</p> 1337*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1338*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t">ppd_option_t</a> *ppdFirstOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p> 1339*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1340*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1341*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1342*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1343*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1344*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1345*5e7646d2SAndroid Build Coastguard Worker <p class="description">First option or <code>NULL</code></p> 1346*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1347*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">Options are returned from all groups in ascending alphanumeric order. 1348*5e7646d2SAndroid Build Coastguard Worker 1349*5e7646d2SAndroid Build Coastguard Worker</p> 1350*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a id="ppdInstallableConflict">ppdInstallableConflict</a></h3> 1351*5e7646d2SAndroid Build Coastguard Worker <p class="description">Test whether an option choice conflicts with 1352*5e7646d2SAndroid Build Coastguard Workeran installable option.</p> 1353*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1354*5e7646d2SAndroid Build Coastguard Workerint ppdInstallableConflict(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice);</p> 1355*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1356*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1357*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1358*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1359*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th> 1360*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option</td></tr> 1361*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th> 1362*5e7646d2SAndroid Build Coastguard Worker <td class="description">Choice</td></tr> 1363*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1364*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1365*5e7646d2SAndroid Build Coastguard Worker <p class="description">1 if conflicting, 0 if not conflicting</p> 1366*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1367*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function tests whether a particular option choice is available based 1368*5e7646d2SAndroid Build Coastguard Workeron constraints against options in the "InstallableOptions" group. 1369*5e7646d2SAndroid Build Coastguard Worker 1370*5e7646d2SAndroid Build Coastguard Worker</p> 1371*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdIsMarked">ppdIsMarked</a></h3> 1372*5e7646d2SAndroid Build Coastguard Worker <p class="description">Check to see if an option is marked.</p> 1373*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1374*5e7646d2SAndroid Build Coastguard Workerint ppdIsMarked(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice);</p> 1375*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1376*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1377*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1378*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file data</td></tr> 1379*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th> 1380*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option/Keyword name</td></tr> 1381*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th> 1382*5e7646d2SAndroid Build Coastguard Worker <td class="description">Choice name</td></tr> 1383*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1384*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1385*5e7646d2SAndroid Build Coastguard Worker <p class="description">Non-zero if option is marked</p> 1386*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdLocalize">ppdLocalize</a></h3> 1387*5e7646d2SAndroid Build Coastguard Worker <p class="description">Localize the PPD file to the current locale.</p> 1388*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1389*5e7646d2SAndroid Build Coastguard Workerint ppdLocalize(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p> 1390*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1391*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1392*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1393*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1394*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1395*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1396*5e7646d2SAndroid Build Coastguard Worker <p class="description">0 on success, -1 on error</p> 1397*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1398*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">All groups, options, and choices are localized, as are ICC profile 1399*5e7646d2SAndroid Build Coastguard Workerdescriptions, printer presets, and custom option parameters. Each 1400*5e7646d2SAndroid Build Coastguard Workerlocalized string uses the UTF-8 character encoding. 1401*5e7646d2SAndroid Build Coastguard Worker 1402*5e7646d2SAndroid Build Coastguard Worker</p> 1403*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdLocalizeAttr">ppdLocalizeAttr</a></h3> 1404*5e7646d2SAndroid Build Coastguard Worker <p class="description">Localize an attribute.</p> 1405*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1406*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *ppdLocalizeAttr(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *keyword, const char *spec);</p> 1407*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1408*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1409*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1410*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1411*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword</th> 1412*5e7646d2SAndroid Build Coastguard Worker <td class="description">Main keyword</td></tr> 1413*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec</th> 1414*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option keyword or <code>NULL</code> for none</td></tr> 1415*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1416*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1417*5e7646d2SAndroid Build Coastguard Worker <p class="description">Localized attribute or <code>NULL</code> if none exists</p> 1418*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1419*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function uses the current locale to find the localized attribute for 1420*5e7646d2SAndroid Build Coastguard Workerthe given main and option keywords. If no localized version of the 1421*5e7646d2SAndroid Build Coastguard Workerattribute exists for the current locale, the unlocalized version is returned.</p> 1422*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.3/macOS 10.5 </span><a id="ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></h3> 1423*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the localized version of a cupsIPPReason 1424*5e7646d2SAndroid Build Coastguard Workerattribute.</p> 1425*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1426*5e7646d2SAndroid Build Coastguard Workerconst char *ppdLocalizeIPPReason(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *reason, const char *scheme, char *buffer, size_t bufsize);</p> 1427*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1428*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1429*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1430*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1431*5e7646d2SAndroid Build Coastguard Worker<tr><th>reason</th> 1432*5e7646d2SAndroid Build Coastguard Worker <td class="description">IPP reason keyword to look up</td></tr> 1433*5e7646d2SAndroid Build Coastguard Worker<tr><th>scheme</th> 1434*5e7646d2SAndroid Build Coastguard Worker <td class="description">URI scheme or NULL for text</td></tr> 1435*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th> 1436*5e7646d2SAndroid Build Coastguard Worker <td class="description">Value buffer</td></tr> 1437*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th> 1438*5e7646d2SAndroid Build Coastguard Worker <td class="description">Size of value buffer</td></tr> 1439*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1440*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1441*5e7646d2SAndroid Build Coastguard Worker <p class="description">Value or NULL if not found</p> 1442*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1443*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function uses the current locale to find the corresponding reason 1444*5e7646d2SAndroid Build Coastguard Workertext or URI from the attribute value. If "scheme" is NULL or "text", 1445*5e7646d2SAndroid Build Coastguard Workerthe returned value contains human-readable (UTF-8) text from the translation 1446*5e7646d2SAndroid Build Coastguard Workerstring or attribute value. Otherwise the corresponding URI is returned.<br> 1447*5e7646d2SAndroid Build Coastguard Worker<br> 1448*5e7646d2SAndroid Build Coastguard WorkerIf no value of the requested scheme can be found, NULL is returned. 1449*5e7646d2SAndroid Build Coastguard Worker 1450*5e7646d2SAndroid Build Coastguard Worker</p> 1451*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a id="ppdLocalizeMarkerName">ppdLocalizeMarkerName</a></h3> 1452*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the localized version of a marker-names 1453*5e7646d2SAndroid Build Coastguard Workerattribute value.</p> 1454*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1455*5e7646d2SAndroid Build Coastguard Workerconst char *ppdLocalizeMarkerName(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p> 1456*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1457*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1458*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1459*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1460*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 1461*5e7646d2SAndroid Build Coastguard Worker <td class="description">Marker name to look up</td></tr> 1462*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1463*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1464*5e7646d2SAndroid Build Coastguard Worker <p class="description">Value or <code>NULL</code> if not found</p> 1465*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1466*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function uses the current locale to find the corresponding name 1467*5e7646d2SAndroid Build Coastguard Workertext from the attribute value. If no localized text for the requested 1468*5e7646d2SAndroid Build Coastguard Workername can be found, <code>NULL</code> is returned. 1469*5e7646d2SAndroid Build Coastguard Worker 1470*5e7646d2SAndroid Build Coastguard Worker</p> 1471*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdMarkDefaults">ppdMarkDefaults</a></h3> 1472*5e7646d2SAndroid Build Coastguard Worker <p class="description">Mark all default options in the PPD file.</p> 1473*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1474*5e7646d2SAndroid Build Coastguard Workervoid ppdMarkDefaults(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p> 1475*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1476*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1477*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1478*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1479*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1480*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdMarkOption">ppdMarkOption</a></h3> 1481*5e7646d2SAndroid Build Coastguard Worker <p class="description">Mark an option in a PPD file and return the number of 1482*5e7646d2SAndroid Build Coastguard Workerconflicts.</p> 1483*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1484*5e7646d2SAndroid Build Coastguard Workerint ppdMarkOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice);</p> 1485*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1486*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1487*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1488*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1489*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th> 1490*5e7646d2SAndroid Build Coastguard Worker <td class="description">Keyword</td></tr> 1491*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th> 1492*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option name</td></tr> 1493*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1494*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1495*5e7646d2SAndroid Build Coastguard Worker <p class="description">Number of conflicts</p> 1496*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdNextCustomParam">ppdNextCustomParam</a></h3> 1497*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return the next parameter for a custom option.</p> 1498*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1499*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdNextCustomParam(<a href="#ppd_coption_t">ppd_coption_t</a> *opt);</p> 1500*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1501*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1502*5e7646d2SAndroid Build Coastguard Worker<tr><th>opt</th> 1503*5e7646d2SAndroid Build Coastguard Worker <td class="description">Custom option</td></tr> 1504*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1505*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1506*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom parameter or NULL</p> 1507*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a id="ppdNextOption">ppdNextOption</a></h3> 1508*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return the next option in the PPD file.</p> 1509*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1510*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t">ppd_option_t</a> *ppdNextOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p> 1511*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1512*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1513*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1514*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1515*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1516*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1517*5e7646d2SAndroid Build Coastguard Worker <p class="description">Next option or <code>NULL</code></p> 1518*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1519*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">Options are returned from all groups in ascending alphanumeric order. 1520*5e7646d2SAndroid Build Coastguard Worker 1521*5e7646d2SAndroid Build Coastguard Worker</p> 1522*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdPageLength">ppdPageLength</a></h3> 1523*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the page length for the given size.</p> 1524*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1525*5e7646d2SAndroid Build Coastguard Workerfloat ppdPageLength(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p> 1526*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1527*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1528*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1529*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file</td></tr> 1530*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 1531*5e7646d2SAndroid Build Coastguard Worker <td class="description">Size name</td></tr> 1532*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1533*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1534*5e7646d2SAndroid Build Coastguard Worker <p class="description">Length of page in points or 0.0</p> 1535*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdPageSize">ppdPageSize</a></h3> 1536*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the page size record for the named size.</p> 1537*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1538*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *ppdPageSize(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p> 1539*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1540*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1541*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1542*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1543*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 1544*5e7646d2SAndroid Build Coastguard Worker <td class="description">Size name</td></tr> 1545*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1546*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1547*5e7646d2SAndroid Build Coastguard Worker <p class="description">Size record for page or NULL</p> 1548*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a id="ppdPageSizeLimits">ppdPageSizeLimits</a></h3> 1549*5e7646d2SAndroid Build Coastguard Worker <p class="description">Return the custom page size limits.</p> 1550*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1551*5e7646d2SAndroid Build Coastguard Workerint ppdPageSizeLimits(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_size_t">ppd_size_t</a> *minimum, <a href="#ppd_size_t">ppd_size_t</a> *maximum);</p> 1552*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1553*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1554*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1555*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1556*5e7646d2SAndroid Build Coastguard Worker<tr><th>minimum</th> 1557*5e7646d2SAndroid Build Coastguard Worker <td class="description">Minimum custom size</td></tr> 1558*5e7646d2SAndroid Build Coastguard Worker<tr><th>maximum</th> 1559*5e7646d2SAndroid Build Coastguard Worker <td class="description">Maximum custom size</td></tr> 1560*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1561*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1562*5e7646d2SAndroid Build Coastguard Worker <p class="description">1 if custom sizes are supported, 0 otherwise</p> 1563*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4> 1564*5e7646d2SAndroid Build Coastguard Worker <p class="discussion">This function returns the minimum and maximum custom page sizes and printable 1565*5e7646d2SAndroid Build Coastguard Workerareas based on the currently-marked (selected) options.<br> 1566*5e7646d2SAndroid Build Coastguard Worker<br> 1567*5e7646d2SAndroid Build Coastguard WorkerIf the specified PPD file does not support custom page sizes, both 1568*5e7646d2SAndroid Build Coastguard Worker"minimum" and "maximum" are filled with zeroes. 1569*5e7646d2SAndroid Build Coastguard Worker 1570*5e7646d2SAndroid Build Coastguard Worker</p> 1571*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdPageWidth">ppdPageWidth</a></h3> 1572*5e7646d2SAndroid Build Coastguard Worker <p class="description">Get the page width for the given size.</p> 1573*5e7646d2SAndroid Build Coastguard Worker<p class="code"> 1574*5e7646d2SAndroid Build Coastguard Workerfloat ppdPageWidth(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p> 1575*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4> 1576*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1577*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th> 1578*5e7646d2SAndroid Build Coastguard Worker <td class="description">PPD file record</td></tr> 1579*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th> 1580*5e7646d2SAndroid Build Coastguard Worker <td class="description">Size name</td></tr> 1581*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1582*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4> 1583*5e7646d2SAndroid Build Coastguard Worker <p class="description">Width of page in points or 0.0</p> 1584*5e7646d2SAndroid Build Coastguard Worker <h2 class="title"><a id="TYPES">Data Types</a></h2> 1585*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="cups_interpret_cb_t">cups_interpret_cb_t</a></h3> 1586*5e7646d2SAndroid Build Coastguard Worker <p class="description">cupsRasterInterpretPPD callback function</p> 1587*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1588*5e7646d2SAndroid Build Coastguard Workertypedef int (*cups_interpret_cb_t)(cups_page_header2_t *header, int preferred_bits); 1589*5e7646d2SAndroid Build Coastguard Worker</p> 1590*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_attr_t"><span class="info"> DEPRECATED </span>ppd_attr_t</a></h3> 1591*5e7646d2SAndroid Build Coastguard Worker <p class="description">PPD Attribute Structure </p> 1592*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1593*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_attr_s">ppd_attr_s</a> ppd_attr_t; 1594*5e7646d2SAndroid Build Coastguard Worker</p> 1595*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_choice_t"><span class="info"> DEPRECATED </span>ppd_choice_t</a></h3> 1596*5e7646d2SAndroid Build Coastguard Worker <p class="description">Option choices </p> 1597*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1598*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_choice_s">ppd_choice_s</a> ppd_choice_t; 1599*5e7646d2SAndroid Build Coastguard Worker</p> 1600*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_conform_t"><span class="info"> DEPRECATED </span>ppd_conform_t</a></h3> 1601*5e7646d2SAndroid Build Coastguard Worker <p class="description">Conformance Levels </p> 1602*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1603*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_conform_e">ppd_conform_e</a> ppd_conform_t; 1604*5e7646d2SAndroid Build Coastguard Worker</p> 1605*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_const_t"><span class="info"> DEPRECATED </span>ppd_const_t</a></h3> 1606*5e7646d2SAndroid Build Coastguard Worker <p class="description">Constraints </p> 1607*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1608*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_const_s">ppd_const_s</a> ppd_const_t; 1609*5e7646d2SAndroid Build Coastguard Worker</p> 1610*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_coption_t"><span class="info"> DEPRECATED </span>ppd_coption_t</a></h3> 1611*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Option </p> 1612*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1613*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_coption_s">ppd_coption_s</a> ppd_coption_t; 1614*5e7646d2SAndroid Build Coastguard Worker</p> 1615*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_cparam_t"><span class="info"> DEPRECATED </span>ppd_cparam_t</a></h3> 1616*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter </p> 1617*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1618*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_cparam_s">ppd_cparam_s</a> ppd_cparam_t; 1619*5e7646d2SAndroid Build Coastguard Worker</p> 1620*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_cplimit_t"><span class="info"> DEPRECATED </span>ppd_cplimit_t</a></h3> 1621*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter Limit </p> 1622*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1623*5e7646d2SAndroid Build Coastguard Workertypedef union <a href="#ppd_cplimit_u">ppd_cplimit_u</a> ppd_cplimit_t; 1624*5e7646d2SAndroid Build Coastguard Worker</p> 1625*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_cptype_t"><span class="info"> DEPRECATED </span>ppd_cptype_t</a></h3> 1626*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter Type </p> 1627*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1628*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_cptype_e">ppd_cptype_e</a> ppd_cptype_t; 1629*5e7646d2SAndroid Build Coastguard Worker</p> 1630*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_cpvalue_t"><span class="info"> DEPRECATED </span>ppd_cpvalue_t</a></h3> 1631*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter Value </p> 1632*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1633*5e7646d2SAndroid Build Coastguard Workertypedef union <a href="#ppd_cpvalue_u">ppd_cpvalue_u</a> ppd_cpvalue_t; 1634*5e7646d2SAndroid Build Coastguard Worker</p> 1635*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_cs_t"><span class="info"> DEPRECATED </span>ppd_cs_t</a></h3> 1636*5e7646d2SAndroid Build Coastguard Worker <p class="description">Colorspaces </p> 1637*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1638*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_cs_e">ppd_cs_e</a> ppd_cs_t; 1639*5e7646d2SAndroid Build Coastguard Worker</p> 1640*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_emul_t"><span class="info"> DEPRECATED </span>ppd_emul_t</a></h3> 1641*5e7646d2SAndroid Build Coastguard Worker <p class="description">Emulators </p> 1642*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1643*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_emul_s">ppd_emul_s</a> ppd_emul_t; 1644*5e7646d2SAndroid Build Coastguard Worker</p> 1645*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_file_t"><span class="info"> DEPRECATED </span>ppd_file_t</a></h3> 1646*5e7646d2SAndroid Build Coastguard Worker <p class="description">PPD File </p> 1647*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1648*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_file_s">ppd_file_s</a> ppd_file_t; 1649*5e7646d2SAndroid Build Coastguard Worker</p> 1650*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_group_t"><span class="info"> DEPRECATED </span>ppd_group_t</a></h3> 1651*5e7646d2SAndroid Build Coastguard Worker <p class="description">Groups </p> 1652*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1653*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_group_s">ppd_group_s</a> ppd_group_t; 1654*5e7646d2SAndroid Build Coastguard Worker</p> 1655*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_option_t"><span class="info"> DEPRECATED </span>ppd_option_t</a></h3> 1656*5e7646d2SAndroid Build Coastguard Worker <p class="description">Options </p> 1657*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1658*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_option_s">ppd_option_s</a> ppd_option_t; 1659*5e7646d2SAndroid Build Coastguard Worker</p> 1660*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_profile_t"><span class="info"> DEPRECATED </span>ppd_profile_t</a></h3> 1661*5e7646d2SAndroid Build Coastguard Worker <p class="description">sRGB Color Profiles </p> 1662*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1663*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_profile_s">ppd_profile_s</a> ppd_profile_t; 1664*5e7646d2SAndroid Build Coastguard Worker</p> 1665*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_section_t"><span class="info"> DEPRECATED </span>ppd_section_t</a></h3> 1666*5e7646d2SAndroid Build Coastguard Worker <p class="description">Order dependency sections </p> 1667*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1668*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_section_e">ppd_section_e</a> ppd_section_t; 1669*5e7646d2SAndroid Build Coastguard Worker</p> 1670*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_size_t"><span class="info"> DEPRECATED </span>ppd_size_t</a></h3> 1671*5e7646d2SAndroid Build Coastguard Worker <p class="description">Page Sizes </p> 1672*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1673*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_size_s">ppd_size_s</a> ppd_size_t; 1674*5e7646d2SAndroid Build Coastguard Worker</p> 1675*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_status_t"><span class="info"> DEPRECATED </span>ppd_status_t</a></h3> 1676*5e7646d2SAndroid Build Coastguard Worker <p class="description">Status Codes </p> 1677*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1678*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_status_e">ppd_status_e</a> ppd_status_t; 1679*5e7646d2SAndroid Build Coastguard Worker</p> 1680*5e7646d2SAndroid Build Coastguard Worker <h3 class="typedef"><a id="ppd_ui_t"><span class="info"> DEPRECATED </span>ppd_ui_t</a></h3> 1681*5e7646d2SAndroid Build Coastguard Worker <p class="description">UI Types </p> 1682*5e7646d2SAndroid Build Coastguard Worker <p class="code"> 1683*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t; 1684*5e7646d2SAndroid Build Coastguard Worker</p> 1685*5e7646d2SAndroid Build Coastguard Worker <h2 class="title"><a id="STRUCTURES">Structures</a></h2> 1686*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_attr_s">ppd_attr_s</a></h3> 1687*5e7646d2SAndroid Build Coastguard Worker <p class="description">PPD Attribute Structure </p> 1688*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_attr_s {<br> 1689*5e7646d2SAndroid Build Coastguard Worker    char name[PPD_MAX_NAME];<br> 1690*5e7646d2SAndroid Build Coastguard Worker    char spec[PPD_MAX_NAME];<br> 1691*5e7646d2SAndroid Build Coastguard Worker    char text[PPD_MAX_TEXT];<br> 1692*5e7646d2SAndroid Build Coastguard Worker    char *value;<br> 1693*5e7646d2SAndroid Build Coastguard Worker};</p> 1694*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1695*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1696*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th> 1697*5e7646d2SAndroid Build Coastguard Worker <td class="description">Name of attribute (cupsXYZ)</td></tr> 1698*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec[PPD_MAX_NAME] </th> 1699*5e7646d2SAndroid Build Coastguard Worker <td class="description">Specifier string, if any</td></tr> 1700*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th> 1701*5e7646d2SAndroid Build Coastguard Worker <td class="description">Human-readable text, if any</td></tr> 1702*5e7646d2SAndroid Build Coastguard Worker<tr><th>value </th> 1703*5e7646d2SAndroid Build Coastguard Worker <td class="description">Value string</td></tr> 1704*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1705*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_choice_s">ppd_choice_s</a></h3> 1706*5e7646d2SAndroid Build Coastguard Worker <p class="description">Option choices </p> 1707*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_choice_s {<br> 1708*5e7646d2SAndroid Build Coastguard Worker    char choice[PPD_MAX_NAME];<br> 1709*5e7646d2SAndroid Build Coastguard Worker    char *code;<br> 1710*5e7646d2SAndroid Build Coastguard Worker    char marked;<br> 1711*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_option_t">ppd_option_t</a> *option;<br> 1712*5e7646d2SAndroid Build Coastguard Worker    char text[PPD_MAX_TEXT];<br> 1713*5e7646d2SAndroid Build Coastguard Worker};</p> 1714*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1715*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1716*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice[PPD_MAX_NAME] </th> 1717*5e7646d2SAndroid Build Coastguard Worker <td class="description">Computer-readable option name</td></tr> 1718*5e7646d2SAndroid Build Coastguard Worker<tr><th>code </th> 1719*5e7646d2SAndroid Build Coastguard Worker <td class="description">Code to send for this option</td></tr> 1720*5e7646d2SAndroid Build Coastguard Worker<tr><th>marked </th> 1721*5e7646d2SAndroid Build Coastguard Worker <td class="description">0 if not selected, 1 otherwise</td></tr> 1722*5e7646d2SAndroid Build Coastguard Worker<tr><th>option </th> 1723*5e7646d2SAndroid Build Coastguard Worker <td class="description">Pointer to parent option structure</td></tr> 1724*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th> 1725*5e7646d2SAndroid Build Coastguard Worker <td class="description">Human-readable option name</td></tr> 1726*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1727*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_const_s">ppd_const_s</a></h3> 1728*5e7646d2SAndroid Build Coastguard Worker <p class="description">Constraints </p> 1729*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_const_s {<br> 1730*5e7646d2SAndroid Build Coastguard Worker    char choice1[PPD_MAX_NAME];<br> 1731*5e7646d2SAndroid Build Coastguard Worker    char choice2[PPD_MAX_NAME];<br> 1732*5e7646d2SAndroid Build Coastguard Worker    char option1[PPD_MAX_NAME];<br> 1733*5e7646d2SAndroid Build Coastguard Worker    char option2[PPD_MAX_NAME];<br> 1734*5e7646d2SAndroid Build Coastguard Worker};</p> 1735*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1736*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1737*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice1[PPD_MAX_NAME] </th> 1738*5e7646d2SAndroid Build Coastguard Worker <td class="description">First option/choice (blank for all)</td></tr> 1739*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice2[PPD_MAX_NAME] </th> 1740*5e7646d2SAndroid Build Coastguard Worker <td class="description">Second option/choice (blank for all)</td></tr> 1741*5e7646d2SAndroid Build Coastguard Worker<tr><th>option1[PPD_MAX_NAME] </th> 1742*5e7646d2SAndroid Build Coastguard Worker <td class="description">First keyword</td></tr> 1743*5e7646d2SAndroid Build Coastguard Worker<tr><th>option2[PPD_MAX_NAME] </th> 1744*5e7646d2SAndroid Build Coastguard Worker <td class="description">Second keyword</td></tr> 1745*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1746*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_coption_s">ppd_coption_s</a></h3> 1747*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Option </p> 1748*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_coption_s {<br> 1749*5e7646d2SAndroid Build Coastguard Worker    char keyword[PPD_MAX_NAME];<br> 1750*5e7646d2SAndroid Build Coastguard Worker    int marked;<br> 1751*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_option_t">ppd_option_t</a> *option;<br> 1752*5e7646d2SAndroid Build Coastguard Worker    cups_array_t *params;<br> 1753*5e7646d2SAndroid Build Coastguard Worker};</p> 1754*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1755*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1756*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword[PPD_MAX_NAME] </th> 1757*5e7646d2SAndroid Build Coastguard Worker <td class="description">Name of option that is being extended...</td></tr> 1758*5e7646d2SAndroid Build Coastguard Worker<tr><th>marked </th> 1759*5e7646d2SAndroid Build Coastguard Worker <td class="description">Extended option is marked</td></tr> 1760*5e7646d2SAndroid Build Coastguard Worker<tr><th>option </th> 1761*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option that is being extended...</td></tr> 1762*5e7646d2SAndroid Build Coastguard Worker<tr><th>params </th> 1763*5e7646d2SAndroid Build Coastguard Worker <td class="description">Parameters</td></tr> 1764*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1765*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_cparam_s">ppd_cparam_s</a></h3> 1766*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter </p> 1767*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_cparam_s {<br> 1768*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_cpvalue_t">ppd_cpvalue_t</a> current;<br> 1769*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_cplimit_t">ppd_cplimit_t</a> minimum, maximum;<br> 1770*5e7646d2SAndroid Build Coastguard Worker    char name[PPD_MAX_NAME];<br> 1771*5e7646d2SAndroid Build Coastguard Worker    int order;<br> 1772*5e7646d2SAndroid Build Coastguard Worker    char text[PPD_MAX_TEXT];<br> 1773*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_cptype_t">ppd_cptype_t</a> type;<br> 1774*5e7646d2SAndroid Build Coastguard Worker};</p> 1775*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1776*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1777*5e7646d2SAndroid Build Coastguard Worker<tr><th>current </th> 1778*5e7646d2SAndroid Build Coastguard Worker <td class="description">Current value</td></tr> 1779*5e7646d2SAndroid Build Coastguard Worker<tr><th>maximum </th> 1780*5e7646d2SAndroid Build Coastguard Worker <td class="description">Maximum value</td></tr> 1781*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th> 1782*5e7646d2SAndroid Build Coastguard Worker <td class="description">Parameter name</td></tr> 1783*5e7646d2SAndroid Build Coastguard Worker<tr><th>order </th> 1784*5e7646d2SAndroid Build Coastguard Worker <td class="description">Order (0 to N)</td></tr> 1785*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th> 1786*5e7646d2SAndroid Build Coastguard Worker <td class="description">Human-readable text</td></tr> 1787*5e7646d2SAndroid Build Coastguard Worker<tr><th>type </th> 1788*5e7646d2SAndroid Build Coastguard Worker <td class="description">Parameter type</td></tr> 1789*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1790*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_emul_s">ppd_emul_s</a></h3> 1791*5e7646d2SAndroid Build Coastguard Worker <p class="description">Emulators </p> 1792*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_emul_s {<br> 1793*5e7646d2SAndroid Build Coastguard Worker    char name[PPD_MAX_NAME];<br> 1794*5e7646d2SAndroid Build Coastguard Worker    char *start;<br> 1795*5e7646d2SAndroid Build Coastguard Worker    char *stop;<br> 1796*5e7646d2SAndroid Build Coastguard Worker};</p> 1797*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1798*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1799*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th> 1800*5e7646d2SAndroid Build Coastguard Worker <td class="description">Emulator name</td></tr> 1801*5e7646d2SAndroid Build Coastguard Worker<tr><th>start </th> 1802*5e7646d2SAndroid Build Coastguard Worker <td class="description">Code to switch to this emulation</td></tr> 1803*5e7646d2SAndroid Build Coastguard Worker<tr><th>stop </th> 1804*5e7646d2SAndroid Build Coastguard Worker <td class="description">Code to stop this emulation</td></tr> 1805*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1806*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_file_s">ppd_file_s</a></h3> 1807*5e7646d2SAndroid Build Coastguard Worker <p class="description">PPD File </p> 1808*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_file_s {<br> 1809*5e7646d2SAndroid Build Coastguard Worker    int accurate_screens;<br> 1810*5e7646d2SAndroid Build Coastguard Worker    int color_device;<br> 1811*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_cs_t">ppd_cs_t</a> colorspace;<br> 1812*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_const_t">ppd_const_t</a> *consts;<br> 1813*5e7646d2SAndroid Build Coastguard Worker    int contone_only;<br> 1814*5e7646d2SAndroid Build Coastguard Worker    float custom_margins[4];<br> 1815*5e7646d2SAndroid Build Coastguard Worker    float custom_max[2];<br> 1816*5e7646d2SAndroid Build Coastguard Worker    float custom_min[2];<br> 1817*5e7646d2SAndroid Build Coastguard Worker    char **filters;<br> 1818*5e7646d2SAndroid Build Coastguard Worker    int flip_duplex;<br> 1819*5e7646d2SAndroid Build Coastguard Worker    char **fonts;<br> 1820*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_group_t">ppd_group_t</a> *groups;<br> 1821*5e7646d2SAndroid Build Coastguard Worker    char *jcl_begin;<br> 1822*5e7646d2SAndroid Build Coastguard Worker    char *jcl_end;<br> 1823*5e7646d2SAndroid Build Coastguard Worker    char *jcl_ps;<br> 1824*5e7646d2SAndroid Build Coastguard Worker    int landscape;<br> 1825*5e7646d2SAndroid Build Coastguard Worker    char *lang_encoding;<br> 1826*5e7646d2SAndroid Build Coastguard Worker    char *lang_version;<br> 1827*5e7646d2SAndroid Build Coastguard Worker    int language_level;<br> 1828*5e7646d2SAndroid Build Coastguard Worker    int manual_copies;<br> 1829*5e7646d2SAndroid Build Coastguard Worker    char *manufacturer;<br> 1830*5e7646d2SAndroid Build Coastguard Worker    int model_number;<br> 1831*5e7646d2SAndroid Build Coastguard Worker    char *modelname;<br> 1832*5e7646d2SAndroid Build Coastguard Worker    char *nickname;<br> 1833*5e7646d2SAndroid Build Coastguard Worker    int num_consts;<br> 1834*5e7646d2SAndroid Build Coastguard Worker    int num_filters;<br> 1835*5e7646d2SAndroid Build Coastguard Worker    int num_fonts;<br> 1836*5e7646d2SAndroid Build Coastguard Worker    int num_groups;<br> 1837*5e7646d2SAndroid Build Coastguard Worker    int num_profiles;<br> 1838*5e7646d2SAndroid Build Coastguard Worker    int num_sizes;<br> 1839*5e7646d2SAndroid Build Coastguard Worker    char *patches;<br> 1840*5e7646d2SAndroid Build Coastguard Worker    char *pcfilename;<br> 1841*5e7646d2SAndroid Build Coastguard Worker    char *product;<br> 1842*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_profile_t">ppd_profile_t</a> *profiles;<br> 1843*5e7646d2SAndroid Build Coastguard Worker    char *protocols;<br> 1844*5e7646d2SAndroid Build Coastguard Worker    char *shortnickname;<br> 1845*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_size_t">ppd_size_t</a> *sizes;<br> 1846*5e7646d2SAndroid Build Coastguard Worker    int throughput;<br> 1847*5e7646d2SAndroid Build Coastguard Worker    char *ttrasterizer;<br> 1848*5e7646d2SAndroid Build Coastguard Worker    int variable_sizes;<br> 1849*5e7646d2SAndroid Build Coastguard Worker};</p> 1850*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1851*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1852*5e7646d2SAndroid Build Coastguard Worker<tr><th>accurate_screens </th> 1853*5e7646d2SAndroid Build Coastguard Worker <td class="description">1 = supports accurate screens, 0 = not</td></tr> 1854*5e7646d2SAndroid Build Coastguard Worker<tr><th>color_device </th> 1855*5e7646d2SAndroid Build Coastguard Worker <td class="description">1 = color device, 0 = grayscale</td></tr> 1856*5e7646d2SAndroid Build Coastguard Worker<tr><th>colorspace </th> 1857*5e7646d2SAndroid Build Coastguard Worker <td class="description">Default colorspace</td></tr> 1858*5e7646d2SAndroid Build Coastguard Worker<tr><th>consts </th> 1859*5e7646d2SAndroid Build Coastguard Worker <td class="description">UI/Non-UI constraints</td></tr> 1860*5e7646d2SAndroid Build Coastguard Worker<tr><th>contone_only </th> 1861*5e7646d2SAndroid Build Coastguard Worker <td class="description">1 = continuous tone only, 0 = not</td></tr> 1862*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_margins[4] </th> 1863*5e7646d2SAndroid Build Coastguard Worker <td class="description">Margins around page</td></tr> 1864*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_max[2] </th> 1865*5e7646d2SAndroid Build Coastguard Worker <td class="description">Maximum variable page size</td></tr> 1866*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_min[2] </th> 1867*5e7646d2SAndroid Build Coastguard Worker <td class="description">Minimum variable page size</td></tr> 1868*5e7646d2SAndroid Build Coastguard Worker<tr><th>filters </th> 1869*5e7646d2SAndroid Build Coastguard Worker <td class="description">Filter strings...</td></tr> 1870*5e7646d2SAndroid Build Coastguard Worker<tr><th>flip_duplex <span class="info"> DEPRECATED </span></th> 1871*5e7646d2SAndroid Build Coastguard Worker <td class="description">1 = Flip page for back sides </td></tr> 1872*5e7646d2SAndroid Build Coastguard Worker<tr><th>fonts </th> 1873*5e7646d2SAndroid Build Coastguard Worker <td class="description">Pre-loaded fonts</td></tr> 1874*5e7646d2SAndroid Build Coastguard Worker<tr><th>groups </th> 1875*5e7646d2SAndroid Build Coastguard Worker <td class="description">UI groups</td></tr> 1876*5e7646d2SAndroid Build Coastguard Worker<tr><th>jcl_begin </th> 1877*5e7646d2SAndroid Build Coastguard Worker <td class="description">Start JCL commands</td></tr> 1878*5e7646d2SAndroid Build Coastguard Worker<tr><th>jcl_end </th> 1879*5e7646d2SAndroid Build Coastguard Worker <td class="description">End JCL commands</td></tr> 1880*5e7646d2SAndroid Build Coastguard Worker<tr><th>jcl_ps </th> 1881*5e7646d2SAndroid Build Coastguard Worker <td class="description">Enter PostScript interpreter</td></tr> 1882*5e7646d2SAndroid Build Coastguard Worker<tr><th>landscape </th> 1883*5e7646d2SAndroid Build Coastguard Worker <td class="description">-90 or 90</td></tr> 1884*5e7646d2SAndroid Build Coastguard Worker<tr><th>lang_encoding </th> 1885*5e7646d2SAndroid Build Coastguard Worker <td class="description">Language encoding</td></tr> 1886*5e7646d2SAndroid Build Coastguard Worker<tr><th>lang_version </th> 1887*5e7646d2SAndroid Build Coastguard Worker <td class="description">Language version (English, Spanish, etc.)</td></tr> 1888*5e7646d2SAndroid Build Coastguard Worker<tr><th>language_level </th> 1889*5e7646d2SAndroid Build Coastguard Worker <td class="description">Language level of device</td></tr> 1890*5e7646d2SAndroid Build Coastguard Worker<tr><th>manual_copies </th> 1891*5e7646d2SAndroid Build Coastguard Worker <td class="description">1 = Copies done manually, 0 = hardware</td></tr> 1892*5e7646d2SAndroid Build Coastguard Worker<tr><th>manufacturer </th> 1893*5e7646d2SAndroid Build Coastguard Worker <td class="description">Manufacturer name</td></tr> 1894*5e7646d2SAndroid Build Coastguard Worker<tr><th>model_number </th> 1895*5e7646d2SAndroid Build Coastguard Worker <td class="description">Device-specific model number</td></tr> 1896*5e7646d2SAndroid Build Coastguard Worker<tr><th>modelname </th> 1897*5e7646d2SAndroid Build Coastguard Worker <td class="description">Model name (general)</td></tr> 1898*5e7646d2SAndroid Build Coastguard Worker<tr><th>nickname </th> 1899*5e7646d2SAndroid Build Coastguard Worker <td class="description">Nickname (specific)</td></tr> 1900*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_consts </th> 1901*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of UI/Non-UI constraints</td></tr> 1902*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_filters </th> 1903*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of filters</td></tr> 1904*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_fonts </th> 1905*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of pre-loaded fonts</td></tr> 1906*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_groups </th> 1907*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of UI groups</td></tr> 1908*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_profiles <span class="info"> DEPRECATED </span></th> 1909*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of sRGB color profiles </td></tr> 1910*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_sizes </th> 1911*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of page sizes</td></tr> 1912*5e7646d2SAndroid Build Coastguard Worker<tr><th>patches </th> 1913*5e7646d2SAndroid Build Coastguard Worker <td class="description">Patch commands to be sent to printer</td></tr> 1914*5e7646d2SAndroid Build Coastguard Worker<tr><th>pcfilename <span class="info"> CUPS 1.1.19/macOS 10.3 </span></th> 1915*5e7646d2SAndroid Build Coastguard Worker <td class="description">PCFileName string </td></tr> 1916*5e7646d2SAndroid Build Coastguard Worker<tr><th>product </th> 1917*5e7646d2SAndroid Build Coastguard Worker <td class="description">Product name (from PS RIP/interpreter)</td></tr> 1918*5e7646d2SAndroid Build Coastguard Worker<tr><th>profiles <span class="info"> DEPRECATED </span></th> 1919*5e7646d2SAndroid Build Coastguard Worker <td class="description">sRGB color profiles </td></tr> 1920*5e7646d2SAndroid Build Coastguard Worker<tr><th>protocols <span class="info"> CUPS 1.1.19/macOS 10.3 </span></th> 1921*5e7646d2SAndroid Build Coastguard Worker <td class="description">Protocols (BCP, TBCP) string </td></tr> 1922*5e7646d2SAndroid Build Coastguard Worker<tr><th>shortnickname </th> 1923*5e7646d2SAndroid Build Coastguard Worker <td class="description">Short version of nickname</td></tr> 1924*5e7646d2SAndroid Build Coastguard Worker<tr><th>sizes </th> 1925*5e7646d2SAndroid Build Coastguard Worker <td class="description">Page sizes</td></tr> 1926*5e7646d2SAndroid Build Coastguard Worker<tr><th>throughput </th> 1927*5e7646d2SAndroid Build Coastguard Worker <td class="description">Pages per minute</td></tr> 1928*5e7646d2SAndroid Build Coastguard Worker<tr><th>ttrasterizer </th> 1929*5e7646d2SAndroid Build Coastguard Worker <td class="description">Truetype rasterizer</td></tr> 1930*5e7646d2SAndroid Build Coastguard Worker<tr><th>variable_sizes </th> 1931*5e7646d2SAndroid Build Coastguard Worker <td class="description">1 = supports variable sizes, 0 = doesn't</td></tr> 1932*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1933*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_group_s">ppd_group_s</a></h3> 1934*5e7646d2SAndroid Build Coastguard Worker <p class="description">Groups </p> 1935*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_group_s {<br> 1936*5e7646d2SAndroid Build Coastguard Worker    char text[PPD_MAX_TEXT - PPD_MAX_NAME];<br> 1937*5e7646d2SAndroid Build Coastguard Worker    char name[PPD_MAX_NAME];<br> 1938*5e7646d2SAndroid Build Coastguard Worker    int num_options;<br> 1939*5e7646d2SAndroid Build Coastguard Worker    int num_subgroups;<br> 1940*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_option_t">ppd_option_t</a> *options;<br> 1941*5e7646d2SAndroid Build Coastguard Worker    struct <a href="#ppd_group_s">ppd_group_s</a> *subgroups;<br> 1942*5e7646d2SAndroid Build Coastguard Worker};</p> 1943*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1944*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1945*5e7646d2SAndroid Build Coastguard Worker<tr><th>PPD_MAX_NAME] </th> 1946*5e7646d2SAndroid Build Coastguard Worker <td class="description">Human-readable group name</td></tr> 1947*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] <span class="info"> CUPS 1.1.18/macOS 10.3 </span></th> 1948*5e7646d2SAndroid Build Coastguard Worker <td class="description">Group name </td></tr> 1949*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options </th> 1950*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of options</td></tr> 1951*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_subgroups </th> 1952*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of sub-groups</td></tr> 1953*5e7646d2SAndroid Build Coastguard Worker<tr><th>options </th> 1954*5e7646d2SAndroid Build Coastguard Worker <td class="description">Options</td></tr> 1955*5e7646d2SAndroid Build Coastguard Worker<tr><th>subgroups </th> 1956*5e7646d2SAndroid Build Coastguard Worker <td class="description">Sub-groups (max depth = 1)</td></tr> 1957*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1958*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_option_s">ppd_option_s</a></h3> 1959*5e7646d2SAndroid Build Coastguard Worker <p class="description">Options </p> 1960*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_option_s {<br> 1961*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_choice_t">ppd_choice_t</a> *choices;<br> 1962*5e7646d2SAndroid Build Coastguard Worker    char conflicted;<br> 1963*5e7646d2SAndroid Build Coastguard Worker    char defchoice[PPD_MAX_NAME];<br> 1964*5e7646d2SAndroid Build Coastguard Worker    char keyword[PPD_MAX_NAME];<br> 1965*5e7646d2SAndroid Build Coastguard Worker    int num_choices;<br> 1966*5e7646d2SAndroid Build Coastguard Worker    float order;<br> 1967*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_section_t">ppd_section_t</a> section;<br> 1968*5e7646d2SAndroid Build Coastguard Worker    char text[PPD_MAX_TEXT];<br> 1969*5e7646d2SAndroid Build Coastguard Worker    <a href="#ppd_ui_t">ppd_ui_t</a> ui;<br> 1970*5e7646d2SAndroid Build Coastguard Worker};</p> 1971*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 1972*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 1973*5e7646d2SAndroid Build Coastguard Worker<tr><th>choices </th> 1974*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option choices</td></tr> 1975*5e7646d2SAndroid Build Coastguard Worker<tr><th>conflicted </th> 1976*5e7646d2SAndroid Build Coastguard Worker <td class="description">0 if no conflicts exist, 1 otherwise</td></tr> 1977*5e7646d2SAndroid Build Coastguard Worker<tr><th>defchoice[PPD_MAX_NAME] </th> 1978*5e7646d2SAndroid Build Coastguard Worker <td class="description">Default option choice</td></tr> 1979*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword[PPD_MAX_NAME] </th> 1980*5e7646d2SAndroid Build Coastguard Worker <td class="description">Option keyword name ("PageSize", etc.)</td></tr> 1981*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_choices </th> 1982*5e7646d2SAndroid Build Coastguard Worker <td class="description">Number of option choices</td></tr> 1983*5e7646d2SAndroid Build Coastguard Worker<tr><th>order </th> 1984*5e7646d2SAndroid Build Coastguard Worker <td class="description">Order number</td></tr> 1985*5e7646d2SAndroid Build Coastguard Worker<tr><th>section </th> 1986*5e7646d2SAndroid Build Coastguard Worker <td class="description">Section for command</td></tr> 1987*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th> 1988*5e7646d2SAndroid Build Coastguard Worker <td class="description">Human-readable text</td></tr> 1989*5e7646d2SAndroid Build Coastguard Worker<tr><th>ui </th> 1990*5e7646d2SAndroid Build Coastguard Worker <td class="description">Type of UI option</td></tr> 1991*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 1992*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_profile_s">ppd_profile_s</a></h3> 1993*5e7646d2SAndroid Build Coastguard Worker <p class="description">sRGB Color Profiles </p> 1994*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_profile_s {<br> 1995*5e7646d2SAndroid Build Coastguard Worker    float density;<br> 1996*5e7646d2SAndroid Build Coastguard Worker    float gamma;<br> 1997*5e7646d2SAndroid Build Coastguard Worker    float matrix[3][3];<br> 1998*5e7646d2SAndroid Build Coastguard Worker    char media_type[PPD_MAX_NAME];<br> 1999*5e7646d2SAndroid Build Coastguard Worker    char resolution[PPD_MAX_NAME];<br> 2000*5e7646d2SAndroid Build Coastguard Worker};</p> 2001*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 2002*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 2003*5e7646d2SAndroid Build Coastguard Worker<tr><th>density </th> 2004*5e7646d2SAndroid Build Coastguard Worker <td class="description">Ink density to use</td></tr> 2005*5e7646d2SAndroid Build Coastguard Worker<tr><th>gamma </th> 2006*5e7646d2SAndroid Build Coastguard Worker <td class="description">Gamma correction to use</td></tr> 2007*5e7646d2SAndroid Build Coastguard Worker<tr><th>matrix[3][3] </th> 2008*5e7646d2SAndroid Build Coastguard Worker <td class="description">Transform matrix</td></tr> 2009*5e7646d2SAndroid Build Coastguard Worker<tr><th>media_type[PPD_MAX_NAME] </th> 2010*5e7646d2SAndroid Build Coastguard Worker <td class="description">Media type or "-"</td></tr> 2011*5e7646d2SAndroid Build Coastguard Worker<tr><th>resolution[PPD_MAX_NAME] </th> 2012*5e7646d2SAndroid Build Coastguard Worker <td class="description">Resolution or "-"</td></tr> 2013*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2014*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info"> DEPRECATED </span><a id="ppd_size_s">ppd_size_s</a></h3> 2015*5e7646d2SAndroid Build Coastguard Worker <p class="description">Page Sizes </p> 2016*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_size_s {<br> 2017*5e7646d2SAndroid Build Coastguard Worker    float bottom;<br> 2018*5e7646d2SAndroid Build Coastguard Worker    float left;<br> 2019*5e7646d2SAndroid Build Coastguard Worker    float length;<br> 2020*5e7646d2SAndroid Build Coastguard Worker    int marked;<br> 2021*5e7646d2SAndroid Build Coastguard Worker    char name[PPD_MAX_NAME];<br> 2022*5e7646d2SAndroid Build Coastguard Worker    float right;<br> 2023*5e7646d2SAndroid Build Coastguard Worker    float top;<br> 2024*5e7646d2SAndroid Build Coastguard Worker    float width;<br> 2025*5e7646d2SAndroid Build Coastguard Worker};</p> 2026*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 2027*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 2028*5e7646d2SAndroid Build Coastguard Worker<tr><th>bottom </th> 2029*5e7646d2SAndroid Build Coastguard Worker <td class="description">Bottom printable margin in points</td></tr> 2030*5e7646d2SAndroid Build Coastguard Worker<tr><th>left </th> 2031*5e7646d2SAndroid Build Coastguard Worker <td class="description">Left printable margin in points</td></tr> 2032*5e7646d2SAndroid Build Coastguard Worker<tr><th>length </th> 2033*5e7646d2SAndroid Build Coastguard Worker <td class="description">Length of media in points</td></tr> 2034*5e7646d2SAndroid Build Coastguard Worker<tr><th>marked </th> 2035*5e7646d2SAndroid Build Coastguard Worker <td class="description">Page size selected?</td></tr> 2036*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th> 2037*5e7646d2SAndroid Build Coastguard Worker <td class="description">Media size option</td></tr> 2038*5e7646d2SAndroid Build Coastguard Worker<tr><th>right </th> 2039*5e7646d2SAndroid Build Coastguard Worker <td class="description">Right printable margin in points</td></tr> 2040*5e7646d2SAndroid Build Coastguard Worker<tr><th>top </th> 2041*5e7646d2SAndroid Build Coastguard Worker <td class="description">Top printable margin in points</td></tr> 2042*5e7646d2SAndroid Build Coastguard Worker<tr><th>width </th> 2043*5e7646d2SAndroid Build Coastguard Worker <td class="description">Width of media in points</td></tr> 2044*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2045*5e7646d2SAndroid Build Coastguard Worker <h2 class="title"><a id="UNIONS">Unions</a></h2> 2046*5e7646d2SAndroid Build Coastguard Worker<h3 class="union"><span class="info"> DEPRECATED </span><a id="ppd_cplimit_u">ppd_cplimit_u</a></h3> 2047*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter Limit </p> 2048*5e7646d2SAndroid Build Coastguard Worker<p class="code">union ppd_cplimit_u {<br> 2049*5e7646d2SAndroid Build Coastguard Worker    float custom_curve;<br> 2050*5e7646d2SAndroid Build Coastguard Worker    int custom_int;<br> 2051*5e7646d2SAndroid Build Coastguard Worker    float custom_invcurve;<br> 2052*5e7646d2SAndroid Build Coastguard Worker    int custom_passcode;<br> 2053*5e7646d2SAndroid Build Coastguard Worker    int custom_password;<br> 2054*5e7646d2SAndroid Build Coastguard Worker    float custom_points;<br> 2055*5e7646d2SAndroid Build Coastguard Worker    float custom_real;<br> 2056*5e7646d2SAndroid Build Coastguard Worker    int custom_string;<br> 2057*5e7646d2SAndroid Build Coastguard Worker};</p> 2058*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 2059*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 2060*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_curve </th> 2061*5e7646d2SAndroid Build Coastguard Worker <td class="description">Gamma value</td></tr> 2062*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_int </th> 2063*5e7646d2SAndroid Build Coastguard Worker <td class="description">Integer value</td></tr> 2064*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_invcurve </th> 2065*5e7646d2SAndroid Build Coastguard Worker <td class="description">Gamma value</td></tr> 2066*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_passcode </th> 2067*5e7646d2SAndroid Build Coastguard Worker <td class="description">Passcode length</td></tr> 2068*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_password </th> 2069*5e7646d2SAndroid Build Coastguard Worker <td class="description">Password length</td></tr> 2070*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_points </th> 2071*5e7646d2SAndroid Build Coastguard Worker <td class="description">Measurement value</td></tr> 2072*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_real </th> 2073*5e7646d2SAndroid Build Coastguard Worker <td class="description">Real value</td></tr> 2074*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_string </th> 2075*5e7646d2SAndroid Build Coastguard Worker <td class="description">String length</td></tr> 2076*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2077*5e7646d2SAndroid Build Coastguard Worker<h3 class="union"><span class="info"> DEPRECATED </span><a id="ppd_cpvalue_u">ppd_cpvalue_u</a></h3> 2078*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter Value </p> 2079*5e7646d2SAndroid Build Coastguard Worker<p class="code">union ppd_cpvalue_u {<br> 2080*5e7646d2SAndroid Build Coastguard Worker    float custom_curve;<br> 2081*5e7646d2SAndroid Build Coastguard Worker    int custom_int;<br> 2082*5e7646d2SAndroid Build Coastguard Worker    float custom_invcurve;<br> 2083*5e7646d2SAndroid Build Coastguard Worker    char *custom_passcode;<br> 2084*5e7646d2SAndroid Build Coastguard Worker    char *custom_password;<br> 2085*5e7646d2SAndroid Build Coastguard Worker    float custom_points;<br> 2086*5e7646d2SAndroid Build Coastguard Worker    float custom_real;<br> 2087*5e7646d2SAndroid Build Coastguard Worker    char *custom_string;<br> 2088*5e7646d2SAndroid Build Coastguard Worker};</p> 2089*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4> 2090*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody> 2091*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_curve </th> 2092*5e7646d2SAndroid Build Coastguard Worker <td class="description">Gamma value</td></tr> 2093*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_int </th> 2094*5e7646d2SAndroid Build Coastguard Worker <td class="description">Integer value</td></tr> 2095*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_invcurve </th> 2096*5e7646d2SAndroid Build Coastguard Worker <td class="description">Gamma value</td></tr> 2097*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_passcode </th> 2098*5e7646d2SAndroid Build Coastguard Worker <td class="description">Passcode value</td></tr> 2099*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_password </th> 2100*5e7646d2SAndroid Build Coastguard Worker <td class="description">Password value</td></tr> 2101*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_points </th> 2102*5e7646d2SAndroid Build Coastguard Worker <td class="description">Measurement value</td></tr> 2103*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_real </th> 2104*5e7646d2SAndroid Build Coastguard Worker <td class="description">Real value</td></tr> 2105*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_string </th> 2106*5e7646d2SAndroid Build Coastguard Worker <td class="description">String value</td></tr> 2107*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2108*5e7646d2SAndroid Build Coastguard Worker <h2 class="title"><a id="ENUMERATIONS">Constants</a></h2> 2109*5e7646d2SAndroid Build Coastguard Worker <h3 class="enumeration"><a id="ppd_conform_e"><span class="info"> DEPRECATED </span>ppd_conform_e</a></h3> 2110*5e7646d2SAndroid Build Coastguard Worker <p class="description">Conformance Levels </p> 2111*5e7646d2SAndroid Build Coastguard Worker <h4 class="constants">Constants</h4> 2112*5e7646d2SAndroid Build Coastguard Worker <table class="list"><tbody> 2113*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CONFORM_RELAXED </th> <td class="description">Relax whitespace and control char</td></tr> 2114*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CONFORM_STRICT </th> <td class="description">Require strict conformance</td></tr> 2115*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2116*5e7646d2SAndroid Build Coastguard Worker <h3 class="enumeration"><a id="ppd_cptype_e"><span class="info"> DEPRECATED </span>ppd_cptype_e</a></h3> 2117*5e7646d2SAndroid Build Coastguard Worker <p class="description">Custom Parameter Type </p> 2118*5e7646d2SAndroid Build Coastguard Worker <h4 class="constants">Constants</h4> 2119*5e7646d2SAndroid Build Coastguard Worker <table class="list"><tbody> 2120*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_CURVE </th> <td class="description">Curve value for f(x) = x^value</td></tr> 2121*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_INT </th> <td class="description">Integer number value</td></tr> 2122*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_INVCURVE </th> <td class="description">Curve value for f(x) = x^(1/value)</td></tr> 2123*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_PASSCODE </th> <td class="description">String of (hidden) numbers</td></tr> 2124*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_PASSWORD </th> <td class="description">String of (hidden) characters</td></tr> 2125*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_POINTS </th> <td class="description">Measurement value in points</td></tr> 2126*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_REAL </th> <td class="description">Real number value</td></tr> 2127*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_STRING </th> <td class="description">String of characters</td></tr> 2128*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CUSTOM_UNKNOWN </th> <td class="description">Unknown type (error)</td></tr> 2129*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2130*5e7646d2SAndroid Build Coastguard Worker <h3 class="enumeration"><a id="ppd_cs_e"><span class="info"> DEPRECATED </span>ppd_cs_e</a></h3> 2131*5e7646d2SAndroid Build Coastguard Worker <p class="description">Colorspaces </p> 2132*5e7646d2SAndroid Build Coastguard Worker <h4 class="constants">Constants</h4> 2133*5e7646d2SAndroid Build Coastguard Worker <table class="list"><tbody> 2134*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CS_CMY </th> <td class="description">CMY colorspace</td></tr> 2135*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CS_CMYK </th> <td class="description">CMYK colorspace</td></tr> 2136*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CS_GRAY </th> <td class="description">Grayscale colorspace</td></tr> 2137*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CS_N </th> <td class="description">DeviceN colorspace</td></tr> 2138*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CS_RGB </th> <td class="description">RGB colorspace</td></tr> 2139*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_CS_RGBK </th> <td class="description">RGBK (K = gray) colorspace</td></tr> 2140*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2141*5e7646d2SAndroid Build Coastguard Worker <h3 class="enumeration"><a id="ppd_section_e"><span class="info"> DEPRECATED </span>ppd_section_e</a></h3> 2142*5e7646d2SAndroid Build Coastguard Worker <p class="description">Order dependency sections </p> 2143*5e7646d2SAndroid Build Coastguard Worker <h4 class="constants">Constants</h4> 2144*5e7646d2SAndroid Build Coastguard Worker <table class="list"><tbody> 2145*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ORDER_ANY </th> <td class="description">Option code can be anywhere in the file</td></tr> 2146*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ORDER_DOCUMENT </th> <td class="description">... must be in the DocumentSetup section</td></tr> 2147*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ORDER_EXIT </th> <td class="description">... must be sent prior to the document</td></tr> 2148*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ORDER_JCL </th> <td class="description">... must be sent as a JCL command</td></tr> 2149*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ORDER_PAGE </th> <td class="description">... must be in the PageSetup section</td></tr> 2150*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ORDER_PROLOG </th> <td class="description">... must be in the Prolog section</td></tr> 2151*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2152*5e7646d2SAndroid Build Coastguard Worker <h3 class="enumeration"><a id="ppd_status_e"><span class="info"> DEPRECATED </span>ppd_status_e</a></h3> 2153*5e7646d2SAndroid Build Coastguard Worker <p class="description">Status Codes </p> 2154*5e7646d2SAndroid Build Coastguard Worker <h4 class="constants">Constants</h4> 2155*5e7646d2SAndroid Build Coastguard Worker <table class="list"><tbody> 2156*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ALLOC_ERROR </th> <td class="description">Memory allocation error</td></tr> 2157*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_BAD_CLOSE_UI </th> <td class="description">Bad CloseUI/JCLCloseUI</td></tr> 2158*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_BAD_CUSTOM_PARAM </th> <td class="description">Bad custom parameter</td></tr> 2159*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_BAD_OPEN_GROUP </th> <td class="description">Bad OpenGroup</td></tr> 2160*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_BAD_OPEN_UI </th> <td class="description">Bad OpenUI/JCLOpenUI</td></tr> 2161*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_BAD_ORDER_DEPENDENCY </th> <td class="description">Bad OrderDependency</td></tr> 2162*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_BAD_UI_CONSTRAINTS </th> <td class="description">Bad UIConstraints</td></tr> 2163*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_BAD_VALUE </th> <td class="description">Bad value string</td></tr> 2164*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_FILE_OPEN_ERROR </th> <td class="description">Unable to open PPD file</td></tr> 2165*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ILLEGAL_CHARACTER </th> <td class="description">Illegal control character</td></tr> 2166*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ILLEGAL_MAIN_KEYWORD </th> <td class="description">Illegal main keyword string</td></tr> 2167*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ILLEGAL_OPTION_KEYWORD </th> <td class="description">Illegal option keyword string</td></tr> 2168*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ILLEGAL_TRANSLATION </th> <td class="description">Illegal translation string</td></tr> 2169*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_ILLEGAL_WHITESPACE </th> <td class="description">Illegal whitespace character</td></tr> 2170*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_INTERNAL_ERROR </th> <td class="description">Internal error</td></tr> 2171*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_LINE_TOO_LONG </th> <td class="description">Line longer than 255 chars</td></tr> 2172*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_MISSING_ASTERISK </th> <td class="description">Missing asterisk in column 0</td></tr> 2173*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_MISSING_CLOSE_GROUP </th> <td class="description">Missing CloseGroup</td></tr> 2174*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_MISSING_CLOSE_UI </th> <td class="description">Missing CloseUI/JCLCloseUI</td></tr> 2175*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_MISSING_OPTION_KEYWORD </th> <td class="description">Missing option keyword</td></tr> 2176*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_MISSING_PPDADOBE4 </th> <td class="description">Missing PPD-Adobe-4.x header</td></tr> 2177*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_MISSING_VALUE </th> <td class="description">Missing value string</td></tr> 2178*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_NESTED_OPEN_GROUP </th> <td class="description">OpenGroup without a CloseGroup first</td></tr> 2179*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_NESTED_OPEN_UI </th> <td class="description">OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first</td></tr> 2180*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_NULL_FILE </th> <td class="description">NULL PPD file pointer</td></tr> 2181*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_OK </th> <td class="description">OK</td></tr> 2182*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2183*5e7646d2SAndroid Build Coastguard Worker <h3 class="enumeration"><a id="ppd_ui_e"><span class="info"> DEPRECATED </span>ppd_ui_e</a></h3> 2184*5e7646d2SAndroid Build Coastguard Worker <p class="description">UI Types </p> 2185*5e7646d2SAndroid Build Coastguard Worker <h4 class="constants">Constants</h4> 2186*5e7646d2SAndroid Build Coastguard Worker <table class="list"><tbody> 2187*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_UI_BOOLEAN </th> <td class="description">True or False option</td></tr> 2188*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_UI_PICKMANY </th> <td class="description">Pick zero or more from a list</td></tr> 2189*5e7646d2SAndroid Build Coastguard Worker <tr><th>PPD_UI_PICKONE </th> <td class="description">Pick one from a list</td></tr> 2190*5e7646d2SAndroid Build Coastguard Worker</tbody></table> 2191*5e7646d2SAndroid Build Coastguard Worker </div> 2192*5e7646d2SAndroid Build Coastguard Worker </body> 2193*5e7646d2SAndroid Build Coastguard Worker</html> 2194