1pappl-printer(3)            pappl printer functions           pappl-printer(3)
2
3
4

NAME

6       pappl-printer - pappl printer functions
7

LIBRARY

9       Printer  Application  Framework  (libpappl, "pkg-config --cflags --libs
10       pappl")
11

SYNOPSIS

13       #include <pappl/pappl.h>
14
15       typedef struct _pappl_printer_s pappl_printer_t;
16
17       void
18       papplPrinterCancelAllJobs(pappl_printer_t *printer);
19
20
21       void
22       papplPrinterCloseDevice(pappl_printer_t *printer);
23
24
25       pappl_printer_t     *
26       papplPrinterCreate(pappl_system_t *system, int printer_id,  const  char
27       *printer_name,  const  char  *driver_name, const char *device_id, const
28       char *device_uri);
29
30       void
31       papplPrinterDelete(pappl_printer_t *printer);
32
33       pappl_job_t    *
34       papplPrinterFindJob(pappl_printer_t *printer, int job_id);
35
36       pappl_contact_t     *
37       papplPrinterGetContact(pappl_printer_t *printer, pappl_contact_t  *con‐
38       tact);
39
40       const char     *
41       papplPrinterGetDeviceID(pappl_printer_t *printer);
42
43       const char     *
44       papplPrinterGetDeviceURI(pappl_printer_t *printer);
45
46       char      *
47       papplPrinterGetDNSSDName(pappl_printer_t *printer, char *buffer, size_t
48       bufsize);
49
50       ipp_t          *
51       papplPrinterGetDriverAttributes(pappl_printer_t *printer);
52
53       pappl_driver_data_t *
54       papplPrinterGetDriverData(pappl_printer_t *printer, pappl_driver_data_t
55       *data);
56
57       const char     *
58       papplPrinterGetDriverName(pappl_printer_t *printer);
59
60       char      *
61       papplPrinterGetGeoLocation(pappl_printer_t   *printer,   char  *buffer,
62       size_t bufsize);
63
64       int
65       papplPrinterGetID(pappl_printer_t *printer);
66
67       int
68       papplPrinterGetImpressionsCompleted(pappl_printer_t *printer);
69
70       char      *
71       papplPrinterGetLocation(pappl_printer_t *printer, char *buffer,  size_t
72       bufsize);
73
74       int
75       papplPrinterGetMaxActiveJobs(pappl_printer_t *printer);
76
77       int
78       papplPrinterGetMaxCompletedJobs(pappl_printer_t *printer);
79
80       const char     *
81       papplPrinterGetName(pappl_printer_t *printer);
82
83       int
84       papplPrinterGetNextJobID(pappl_printer_t *printer);
85
86       int
87       papplPrinterGetNumberOfActiveJobs(pappl_printer_t *printer);
88
89       int
90       papplPrinterGetNumberOfCompletedJobs(pappl_printer_t *printer);
91
92       int
93       papplPrinterGetNumberOfJobs(pappl_printer_t *printer);
94
95       char      *
96       papplPrinterGetOrganization(pappl_printer_t   *printer,  char  *buffer,
97       size_t bufsize);
98
99       char      *
100       papplPrinterGetOrganizationalUnit(pappl_printer_t *printer, char  *buf‐
101       fer, size_t bufsize);
102
103       char      *
104       papplPrinterGetPrintGroup(pappl_printer_t   *printer,   char   *buffer,
105       size_t bufsize);
106
107       pappl_preason_t
108       papplPrinterGetReasons(pappl_printer_t *printer);
109
110       ipp_pstate_t
111       papplPrinterGetState(pappl_printer_t *printer);
112
113       int
114       papplPrinterGetSupplies(pappl_printer_t  *printer,  int   max_supplies,
115       pappl_supply_t *supplies);
116
117       pappl_system_t *
118       papplPrinterGetSystem(pappl_printer_t *printer);
119
120
121       void
122       papplPrinterIterateActiveJobs(pappl_printer_t  *printer, pappl_job_cb_t
123       cb, void *data, int first_index, int limit);
124
125       void
126       papplPrinterIterateAllJobs(pappl_printer_t *printer, pappl_job_cb_t cb,
127       void *data, int first_index, int limit);
128
129       void
130       papplPrinterIterateCompletedJobs(pappl_printer_t              *printer,
131       pappl_job_cb_t cb, void *data, int first_index, int limit);
132
133
134       pappl_device_t *
135       papplPrinterOpenDevice(pappl_printer_t *printer);
136
137
138       void
139       papplPrinterPause(pappl_printer_t *printer);
140
141       void
142       papplPrinterResume(pappl_printer_t *printer);
143
144
145       void
146       papplPrinterSetContact(pappl_printer_t *printer, pappl_contact_t  *con‐
147       tact);
148
149       void
150       papplPrinterSetDNSSDName(pappl_printer_t *printer, const char *value);
151
152       void
153       papplPrinterSetDriverData(pappl_printer_t *printer, pappl_driver_data_t
154       *data, ipp_t *attrs);
155
156       void
157       papplPrinterSetDriverDefaults(pappl_printer_t                 *printer,
158       pappl_driver_data_t *data);
159
160       void
161       papplPrinterSetGeoLocation(pappl_printer_t    *printer,    const   char
162       *value);
163
164       void
165       papplPrinterSetImpressionsCompleted(pappl_printer_t *printer, int add);
166
167       void
168       papplPrinterSetLocation(pappl_printer_t *printer, const char *value);
169
170       void
171       papplPrinterSetMaxActiveJobs(pappl_printer_t  *printer,   int   max_ac‐
172       tive_jobs);
173
174       void
175       papplPrinterSetMaxCompletedJobs(pappl_printer_t  *printer, int max_com‐
176       pleted_jobs);
177
178       void
179       papplPrinterSetNextJobID(pappl_printer_t *printer, int next_job_id);
180
181       void
182       papplPrinterSetOrganization(pappl_printer_t   *printer,   const    char
183       *value);
184
185       void
186       papplPrinterSetOrganizationalUnit(pappl_printer_t  *printer, const char
187       *value);
188
189       void
190       papplPrinterSetPrintGroup(pappl_printer_t *printer, const char *value);
191
192       void
193       papplPrinterSetReadyMedia(pappl_printer_t  *printer,   int   num_ready,
194       pappl_media_col_t *ready);
195
196       void
197       papplPrinterSetReasons(pappl_printer_t  *printer,  pappl_preason_t add,
198       pappl_preason_t remove);
199
200       void
201       papplPrinterSetSupplies(pappl_printer_t  *printer,  int   num_supplies,
202       pappl_supply_t *supplies);
203
204       void
205       papplPrinterSetUSB(pappl_printer_t  *printer,  unsigned  vendor_id, un‐
206       signed product_id, pappl_uoptions_t options);
207
208

DESCRIPTION

210       The PAPPL printer functions  provide  access  to  the  printer  object.
211       Printers  are  created and deleted by the printer application while the
212       life cycle of the pappl_printer_t objects are managed automatically  by
213       the system object for the printer application.
214
215       The  papplPrinterCreate function creates a new printer while the pappl‐
216       PrinterDelete function deletes a printer.
217
218       The papplPrinterPause function stops a printer while the  papplPrinter‐
219       Resume function starts a printer.
220
221       The  papplPrinterGet functions get the current values associated with a
222       printer while the papplPrinterSet functions set the current values  as‐
223       sociated with a printer.
224
225       The papplPrinterCancelAddJobs, papplPrinterFindJob, papplPrinterGetNum‐
226       berOfActiveJobs, papplPrinterGetNumberOfCompletedJobs, papplPrinterGet‐
227       NumberOfJobs,      papplPrinterIterateActiveJobs,     papplPrinterIter‐
228       ateAllJobs, and papplPrinterIterateCompletedJobs functions provide  ac‐
229       cess to the jobs queued on a printer.
230
231       The papplPrinterOpenDevice function provides access to the device asso‐
232       ciated with a printer when it is not processing a job.  The device must
233       be  later closed using the papplPrinterCloseDevice function so that the
234       printer can resume job processing.
235

ENUMERATIONS

237   pappl_color_mode_e
238       IPP "print-color-mode" bit values
239
240       PAPPL_COLOR_MODE_AUTO
241            ´auto' - Automatic color/monochrome print mode
242
243       PAPPL_COLOR_MODE_AUTO_MONOCHROME
244            ´auto-monochrome' - Automatic monochrome/process monochrome  print
245            mode
246
247       PAPPL_COLOR_MODE_BI_LEVEL
248            ´bi-level' - B&W (threshold) print mode
249
250       PAPPL_COLOR_MODE_COLOR
251            ´color' - Full color print mode
252
253       PAPPL_COLOR_MODE_MONOCHROME
254            ´monochrome' - Grayscale print mode using 1 color
255
256       PAPPL_COLOR_MODE_PROCESS_MONOCHROME
257            ´process-monochrome' - Grayscale print mode using multiple colors
258
259   pappl_content_e
260       IPP "print-content-optimize" bit values
261
262       PAPPL_CONTENT_AUTO
263            ´auto': Automatically determine content
264
265       PAPPL_CONTENT_GRAPHIC
266            ´graphic': Optimize for vector graphics
267
268       PAPPL_CONTENT_PHOTO
269            ´photo': Optimize for photos/continuous tone images
270
271       PAPPL_CONTENT_TEXT
272            ´text': Optimize for text
273
274       PAPPL_CONTENT_TEXT_AND_GRAPHIC
275            ´text-and-graphic': Optimize for text and vector graphics
276
277   pappl_duplex_e
278       Duplex printing support
279
280       PAPPL_DUPLEX_FLIPPED
281            Duplex with flipped back sides
282
283       PAPPL_DUPLEX_MANUAL_TUMBLE
284            Duplex with back side rotated 180 degrees for short-edge duplex
285
286       PAPPL_DUPLEX_NONE
287            No duplex printing support
288
289       PAPPL_DUPLEX_NORMAL
290            Duplex with normal back sides
291
292       PAPPL_DUPLEX_ROTATED
293            Duplex with back side rotated 180 degrees for long-edge duplex
294
295   pappl_finishings_e
296       IPP "finishings" bit values
297
298       PAPPL_FINISHINGS_NONE
299            ´none'
300
301       PAPPL_FINISHINGS_PUNCH
302            ´punch'
303
304       PAPPL_FINISHINGS_STAPLE
305            ´staple'
306
307       PAPPL_FINISHINGS_TRIM
308            ´trim'
309
310   pappl_identify_actions_e
311       IPP "identify-actions" bit values
312
313       PAPPL_IDENTIFY_ACTIONS_DISPLAY
314            ´display': Display a message
315
316       PAPPL_IDENTIFY_ACTIONS_FLASH
317            ´flash': Flash the display or a light
318
319       PAPPL_IDENTIFY_ACTIONS_NONE
320            No actions
321
322       PAPPL_IDENTIFY_ACTIONS_SOUND
323            ´sound': Make a sound
324
325       PAPPL_IDENTIFY_ACTIONS_SPEAK
326            ´speak': Speak a message
327
328   pappl_kind_e
329       IPP "printer-kind" bit values
330
331       PAPPL_KIND_DISC
332            ´disc'
333
334       PAPPL_KIND_DOCUMENT
335            ´document'
336
337       PAPPL_KIND_ENVELOPE
338            ´envelope'
339
340       PAPPL_KIND_LABEL
341            ´label'
342
343       PAPPL_KIND_LARGE_FORMAT
344            ´large-format'
345
346       PAPPL_KIND_PHOTO
347            ´photo'
348
349       PAPPL_KIND_POSTCARD
350            ´postcard'
351
352       PAPPL_KIND_RECEIPT
353            ´receipt'
354
355       PAPPL_KIND_ROLL
356            ´roll'
357
358   pappl_label_mode_e
359       IPP "label-mode-xxx" bit values
360
361       PAPPL_LABEL_MODE_APPLICATOR
362            ´applicator'
363
364       PAPPL_LABEL_MODE_CUTTER
365            ´cutter'
366
367       PAPPL_LABEL_MODE_CUTTER_DELAYED
368            ´cutter-delayed'
369
370       PAPPL_LABEL_MODE_KIOSK
371            ´kiosk'
372
373       PAPPL_LABEL_MODE_PEEL_OFF
374            ´peel-off'
375
376       PAPPL_LABEL_MODE_PEEL_OFF_PREPEEL
377            ´peel-off-prepeel'
378
379       PAPPL_LABEL_MODE_REWIND
380            ´rewind'
381
382       PAPPL_LABEL_MODE_RFID
383            ´rfid'
384
385       PAPPL_LABEL_MODE_TEAR_OFF
386            ´tear-off'
387
388   pappl_media_tracking_e
389       IPP "media-tracking" bit values
390
391       PAPPL_MEDIA_TRACKING_CONTINUOUS
392            ´continuous'
393
394       PAPPL_MEDIA_TRACKING_GAP
395            ´gap'
396
397       PAPPL_MEDIA_TRACKING_MARK
398            ´mark'
399
400       PAPPL_MEDIA_TRACKING_WEB
401            ´web'
402
403   pappl_preason_e
404       IPP "printer-state-reasons" bit values
405
406       PAPPL_PREASON_COVER_OPEN
407            ´cover-open'
408
409       PAPPL_PREASON_DEVICE_STATUS
410            Supported papplDeviceGetStatus bits
411
412       PAPPL_PREASON_INPUT_TRAY_MISSING
413            ´input-tray-missing'
414
415       PAPPL_PREASON_MARKER_SUPPLY_EMPTY
416            ´marker-supply-empty'
417
418       PAPPL_PREASON_MARKER_SUPPLY_LOW
419            ´marker-supply-low'
420
421       PAPPL_PREASON_MARKER_WASTE_ALMOST_FULL
422            ´marker-waste-almost-full'
423
424       PAPPL_PREASON_MARKER_WASTE_FULL
425            ´marker-waste-full'
426
427       PAPPL_PREASON_MEDIA_EMPTY
428            ´media-empty'
429
430       PAPPL_PREASON_MEDIA_JAM
431            ´media-jam'
432
433       PAPPL_PREASON_MEDIA_LOW
434            ´media-low'
435
436       PAPPL_PREASON_MEDIA_NEEDED
437            ´media-needed'
438
439       PAPPL_PREASON_NONE
440            ´none'
441
442       PAPPL_PREASON_OFFLINE
443            ´offline'
444
445       PAPPL_PREASON_OTHER
446            ´other'
447
448       PAPPL_PREASON_SPOOL_AREA_FULL
449            ´spool-area-full'
450
451       PAPPL_PREASON_TONER_EMPTY
452            ´toner-empty'
453
454       PAPPL_PREASON_TONER_LOW
455            ´toner-low'
456
457   pappl_raster_type_e
458       IPP "pwg-raster-document-type-supported" bit values
459
460       PAPPL_PWG_RASTER_TYPE_ADOBE_RGB_16
461            16-bit per component AdobeRGB
462
463       PAPPL_PWG_RASTER_TYPE_ADOBE_RGB_8
464            8-bit per component AdobeRGB
465
466       PAPPL_PWG_RASTER_TYPE_BLACK_1
467            1-bit (device) black
468
469       PAPPL_PWG_RASTER_TYPE_BLACK_16
470            16-bit (device) black
471
472       PAPPL_PWG_RASTER_TYPE_BLACK_8
473            8-bit (device) black
474
475       PAPPL_PWG_RASTER_TYPE_CMYK_16
476            16-bit per component (device) CMYK
477
478       PAPPL_PWG_RASTER_TYPE_CMYK_8
479            8-bit per component (device) CMYK
480
481       PAPPL_PWG_RASTER_TYPE_NONE
482            Do not force a particular raster type
483
484       PAPPL_PWG_RASTER_TYPE_RGB_16
485            16-bit per component (device) RGB)
486
487       PAPPL_PWG_RASTER_TYPE_RGB_8
488            8-bit per component (device) RGB
489
490       PAPPL_PWG_RASTER_TYPE_SGRAY_16
491            16-bit grayscale with 2.2 gamma
492
493       PAPPL_PWG_RASTER_TYPE_SGRAY_8
494            8-bit grayscale with 2.2 gamma
495
496       PAPPL_PWG_RASTER_TYPE_SRGB_16
497            16-bit per component sRGB
498
499       PAPPL_PWG_RASTER_TYPE_SRGB_8
500            8-bit per component sRGB
501
502   pappl_scaling_e
503       IPP "print-scaling" bit values
504
505       PAPPL_SCALING_AUTO
506            ´auto':  Scale  to  fit  (non-borderless)  or fill (borderless) if
507            larger, otherwise center
508
509       PAPPL_SCALING_AUTO_FIT
510            ´auto-fit': Scale to fit if larger, otherwise center
511
512       PAPPL_SCALING_FILL
513            ´fill': Scale to fill the media
514
515       PAPPL_SCALING_FIT
516            ´fit': Scale to fit within margins
517
518       PAPPL_SCALING_NONE
519            ´none': No scaling (center/crop)
520
521   pappl_sides_e
522       IPP "sides" bit values
523
524       PAPPL_SIDES_ONE_SIDED
525            ´one-sided'
526
527       PAPPL_SIDES_TWO_SIDED_LONG_EDGE
528            ´two-sided-long-edge'
529
530       PAPPL_SIDES_TWO_SIDED_SHORT_EDGE
531            ´two-sided-short-edge'
532
533   pappl_supply_color_e
534       "printer-supply" color values
535
536       PAPPL_SUPPLY_COLOR_BLACK
537            Black ink/toner (photo or matte)
538
539       PAPPL_SUPPLY_COLOR_CYAN
540            Cyan ink/toner
541
542       PAPPL_SUPPLY_COLOR_GRAY
543            Gray ink (sometimes marketed as light gray)
544
545       PAPPL_SUPPLY_COLOR_GREEN
546            Green ink
547
548       PAPPL_SUPPLY_COLOR_LIGHT_CYAN
549            Light cyan ink
550
551       PAPPL_SUPPLY_COLOR_LIGHT_GRAY
552            Light gray ink (sometimes marketed as light light gray)
553
554       PAPPL_SUPPLY_COLOR_LIGHT_MAGENTA
555            Light magenta ink
556
557       PAPPL_SUPPLY_COLOR_MAGENTA
558            Magenta ink/toner
559
560       PAPPL_SUPPLY_COLOR_NO_COLOR
561            No color (waste tank, etc.)
562
563       PAPPL_SUPPLY_COLOR_ORANGE
564            Orange ink
565
566       PAPPL_SUPPLY_COLOR_VIOLET
567            Violet ink
568
569       PAPPL_SUPPLY_COLOR_YELLOW
570            Yellow ink/toner
571
572   pappl_supply_type_e
573       IPP "printer-supply" type values
574
575       PAPPL_SUPPLY_TYPE_BANDING_SUPPLY
576            Banding finisher supplies
577
578       PAPPL_SUPPLY_TYPE_BINDING_SUPPLY
579            Binding finisher supplies
580
581       PAPPL_SUPPLY_TYPE_CLEANER_UNIT
582            Cleaning unit
583
584       PAPPL_SUPPLY_TYPE_CORONA_WIRE
585            Corona wire (laser printers)
586
587       PAPPL_SUPPLY_TYPE_COVERS
588            Cover finisher supplies
589
590       PAPPL_SUPPLY_TYPE_DEVELOPER
591            Developer supply
592
593       PAPPL_SUPPLY_TYPE_FUSER
594            Fuser (laser printers)
595
596       PAPPL_SUPPLY_TYPE_FUSER_CLEANING_PAD
597            Fuser cleaning pad (laser printers)
598
599       PAPPL_SUPPLY_TYPE_FUSER_OIL
600            Fuser oil supply (laser printers)
601
602       PAPPL_SUPPLY_TYPE_FUSER_OILER
603            Fuser oiler (laser printers)
604
605       PAPPL_SUPPLY_TYPE_FUSER_OIL_WICK
606            Fuser oil wick (laser printers)
607
608       PAPPL_SUPPLY_TYPE_INK
609            Ink supply
610
611       PAPPL_SUPPLY_TYPE_INK_CARTRIDGE
612            Ink cartridge
613
614       PAPPL_SUPPLY_TYPE_INK_RIBBON
615            Ink ribbon supply
616
617       PAPPL_SUPPLY_TYPE_INSERTS
618            Insert finisher supplies
619
620       PAPPL_SUPPLY_TYPE_OPC
621            Optical photoconductor (laser printers)
622
623       PAPPL_SUPPLY_TYPE_PAPER_WRAP
624            Wrap finisher supplies
625
626       PAPPL_SUPPLY_TYPE_RIBBON_WAX
627            Wax ribbon supply
628
629       PAPPL_SUPPLY_TYPE_SOLID_WAX
630            Solid wax supply
631
632       PAPPL_SUPPLY_TYPE_STAPLES
633            Staple finisher supplies
634
635       PAPPL_SUPPLY_TYPE_STITCHING_WIRE
636            Staple/stitch finisher supplies
637
638       PAPPL_SUPPLY_TYPE_TONER
639            Toner supply
640
641       PAPPL_SUPPLY_TYPE_TONER_CARTRIDGE
642            Toner cartridge
643
644       PAPPL_SUPPLY_TYPE_TRANSFER_UNIT
645            Transfer unit (laser printers)
646
647       PAPPL_SUPPLY_TYPE_WASTE_INK
648            Waste ink
649
650       PAPPL_SUPPLY_TYPE_WASTE_TONER
651            Waste toner
652
653       PAPPL_SUPPLY_TYPE_WASTE_WATER
654            Waste water
655
656       PAPPL_SUPPLY_TYPE_WASTE_WAX
657            Waste wax
658
659       PAPPL_SUPPLY_TYPE_WATER
660            Water supply
661
662   pappl_uoptions_e
663       USB gadget options
664
665       PAPPL_UOPTIONS_ETHERNET
666            Include USB ethernet gadget
667
668       PAPPL_UOPTIONS_NONE
669            No options (just USB printer)
670
671       PAPPL_UOPTIONS_SERIAL
672            Include USB serial gadget
673
674       PAPPL_UOPTIONS_STORAGE
675            Include USB mass storage gadget
676
677       PAPPL_UOPTIONS_STORAGE_READONLY
678            USB mass storage gadget is read-only
679
680       PAPPL_UOPTIONS_STORAGE_REMOVABLE
681            USB mass storage gadget is removable
682

FUNCTIONS

684   papplPrinterCancelAllJobs
685       Cancel all jobs on the printer.
686
687       void papplPrinterCancelAllJobs (
688           pappl_printer_t *printer
689       );
690
691       This function cancels all jobs on the printer.  If any job is currently
692       being printed, it will be stopped at a convenient time (usually the end
693       of a page) so that the printer will be left in a known state.
694
695   papplPrinterCloseDevice
696       Close the device associated with the printer.
697
698       void papplPrinterCloseDevice (
699           pappl_printer_t *printer
700       );
701
702       This function closes the device for a printer.  The  device  must  have
703       been previously opened using the papplPrinterOpenDevice function.
704
705   papplPrinterCreate
706       Create a new printer.
707
708       pappl_printer_t * papplPrinterCreate (
709           pappl_system_t *system,
710           int printer_id,
711           const char *printer_name,
712           const char *driver_name,
713           const char *device_id,
714           const char *device_uri
715       );
716
717       This  function creates a new printer (service) on the specified system.
718       The "type" argument specifies the type of service to  create  and  must
719       currently be the value PAPPL_SERVICE_TYPE_PRINT.
720
721       The  "printer_id" argument specifies a positive integer identifier that
722       is unique to the system.  If you specify a value of 0 a new  identifier
723       will be assigned.
724
725       The  "driver_name"  argument  specifies a named driver for the printer,
726       from the list of drivers  registered  with  the  papplSystemSetPrinter‐
727       Drivers function.
728
729       The "device_id" and "device_uri" arguments specify the IEEE-1284 device
730       ID and device URI strings for the printer.
731
732       On error, this function sets the errno variable to one of the following
733       values:
734
735EEXIST: A printer with the specified name already exists.
736
737EINVAL: Bad values for the arguments were specified.
738
739EIO: The driver callback failed.
740
741ENOENT: No driver callback has been set.
742
743ENOMEM: Ran out of memory.</li> </ul>
744
745   papplPrinterDelete
746       Delete a printer.
747
748       void papplPrinterDelete (
749           pappl_printer_t *printer
750       );
751
752       This  function  deletes a printer from a system, freeing all memory and
753       canceling all jobs as needed.
754
755   papplPrinterGetContact
756       Get the "printer-contact" value.
757
758       pappl_contact_t * papplPrinterGetContact (
759           pappl_printer_t *printer,
760           pappl_contact_t *contact
761       );
762
763       This function copies the current printer  contact  information  to  the
764       buffer pointed to by the "contact" argument.
765
766   papplPrinterGetDNSSDName
767       Get the current DNS-SD service name.
768
769       char * papplPrinterGetDNSSDName (
770           pappl_printer_t *printer,
771           char *buffer,
772           size_t bufsize
773       );
774
775       This  function  copies  the  current  DNS-SD service name to the buffer
776       pointed to by the "buffer" argument.
777
778   papplPrinterGetDeviceID
779       Get the IEEE-1284 device ID of the printer.
780
781       const char * papplPrinterGetDeviceID (
782           pappl_printer_t *printer
783       );
784
785       This function returns the IEEE-1284 device ID of the printer.
786
787   papplPrinterGetDeviceURI
788       Get the URI of the device associated with the printer.
789
790       const char * papplPrinterGetDeviceURI (
791           pappl_printer_t *printer
792       );
793
794       This function returns the device URI for the printer.
795
796   papplPrinterGetDriverAttributes
797       Get a copy of the current driver attributes.
798
799       ipp_t * papplPrinterGetDriverAttributes (
800           pappl_printer_t *printer
801       );
802
803       This function returns a copy the current driver attributes. Use the ip‐
804       pDelete  function  to  free the memory used for the attributes when you
805       are done.
806
807   papplPrinterGetDriverData
808       Get the current print driver data.
809
810       pappl_pr_driver_data_t * papplPrinterGetDriverData (
811           pappl_printer_t *printer,
812           pappl_pr_driver_data_t *data
813       );
814
815       This function copies the current print driver data, defaults, and ready
816       (loaded) media information into the specified buffer.
817
818   papplPrinterGetDriverName
819       Get the driver name for a printer.
820
821       const char * papplPrinterGetDriverName (
822           pappl_printer_t *printer
823       );
824
825       This function returns the driver name for the printer.
826
827   papplPrinterGetGeoLocation
828       Get the current geo-location as a "geo:" URI.
829
830       char * papplPrinterGetGeoLocation (
831           pappl_printer_t *printer,
832           char *buffer,
833           size_t bufsize
834       );
835
836       This  function copies the currently configured geographic location as a
837       "geo:" URI to the buffer pointed to by the "buffer" argument.
838
839   papplPrinterGetID
840       Get the printer ID.
841
842       int  papplPrinterGetID (
843           pappl_printer_t *printer
844       );
845
846       This function returns the printer's unique positive integer identifier.
847
848   papplPrinterGetImpressionsCompleted
849       Get the number of impressions (sides) that have been printed.
850
851       int  papplPrinterGetImpressionsCompleted (
852           pappl_printer_t *printer
853       );
854
855       This function returns the number of impressions that have been printed.
856       An impression is one side of an output page.
857
858   papplPrinterGetLocation
859       Get the location string.
860
861       char * papplPrinterGetLocation (
862           pappl_printer_t *printer,
863           char *buffer,
864           size_t bufsize
865       );
866
867       This  function copies the printer's human-readable location to the buf‐
868       fer pointed to by the "buffer" argument.
869
870   papplPrinterGetMaxActiveJobs
871       Get the maximum number of active (queued) jobs allowed by the printer.
872
873       int  papplPrinterGetMaxActiveJobs (
874           pappl_printer_t *printer
875       );
876
877       This function returns the  maximum  number  of  active  jobs  that  the
878       printer  supports,  as  configured  by the papplPrinterSetMaxActiveJobs
879       function.
880
881   papplPrinterGetMaxCompletedJobs
882       Get the maximum number of jobs retained for history by the printer.
883
884       int  papplPrinterGetMaxCompletedJobs (
885           pappl_printer_t *printer
886       );
887
888       This function returns the maximum number of jobs that are  retained  in
889       the  job  history  as configured by the papplPrinterSetMaxCompletedJobs
890       function.
891
892   papplPrinterGetName
893       Get the printer name.
894
895       const char * papplPrinterGetName (
896           pappl_printer_t *printer
897       );
898
899       This function returns the printer's human-readable name.
900
901   papplPrinterGetNextJobID
902       Get the next job ID.
903
904       int  papplPrinterGetNextJobID (
905           pappl_printer_t *printer
906       );
907
908       This function returns the positive integer identifier that will be used
909       for the next job that is created.
910
911   papplPrinterGetNumberOfActiveJobs
912       Get the number of active print jobs.
913
914       int  papplPrinterGetNumberOfActiveJobs (
915           pappl_printer_t *printer
916       );
917
918       This function returns the number of print jobs that are either printing
919       or waiting to be printed.
920
921   papplPrinterGetNumberOfCompletedJobs
922       Get the number of completed print jobs.
923
924       int  papplPrinterGetNumberOfCompletedJobs (
925           pappl_printer_t *printer
926       );
927
928       This function returns the number of print jobs that have been  aborted,
929       canceled, or completed.
930
931   papplPrinterGetNumberOfJobs
932       Get the total number of print jobs.
933
934       int  papplPrinterGetNumberOfJobs (
935           pappl_printer_t *printer
936       );
937
938       This function returns the number of print jobs that are printing, wait‐
939       ing to be printed, have been aborted, have been canceled, or have  com‐
940       pleted.
941
942   papplPrinterGetOrganization
943       Get the organization name.
944
945       char * papplPrinterGetOrganization (
946           pappl_printer_t *printer,
947           char *buffer,
948           size_t bufsize
949       );
950
951       This  function  copies  the  printer's  organization name to the buffer
952       pointed to by the "buffer" argument.
953
954   papplPrinterGetOrganizationalUnit
955       Get the organizational unit name.
956
957       char * papplPrinterGetOrganizationalUnit (
958           pappl_printer_t *printer,
959           char *buffer,
960           size_t bufsize
961       );
962
963       This function copies the printer's organizational unit name to the buf‐
964       fer pointed to by the "buffer" argument.
965
966   papplPrinterGetPath
967       Get the URL path for a printer web page.
968
969       char * papplPrinterGetPath (
970           pappl_printer_t *printer,
971           const char *subpath,
972           char *buffer,
973           size_t bufsize
974       );
975
976       This  function generates and returns the URL path for the printer's web
977       page.  The "subpath" argument specifies an optional sub-path for a spe‐
978       cific printer web page.
979
980   papplPrinterGetPrintGroup
981       Get the print authorization group, if any.
982
983       char * papplPrinterGetPrintGroup (
984           pappl_printer_t *printer,
985           char *buffer,
986           size_t bufsize
987       );
988
989       This function copies the printer's authorization group name to the buf‐
990       fer pointed to by the "buffer" argument.
991
992   papplPrinterGetReasons
993       Get the current "printer-state-reasons" bit values.
994
995       pappl_preason_t  papplPrinterGetReasons (
996           pappl_printer_t *printer
997       );
998
999       This function returns the current printer state reasons bitfield, which
1000       can  be updated by the printer driver and/or by the papplPrinterSetRea‐
1001       sons function.
1002
1003   papplPrinterGetState
1004       Get the current "printer-state" value.
1005
1006       ipp_pstate_t  papplPrinterGetState (
1007           pappl_printer_t *printer
1008       );
1009
1010       This function returns the current printer state as an enumeration:
1011
1012IPP_PSTATE_IDLE: The printer is idle and has no jobs to process.
1013
1014IPP_PSTATE_PROCESSING: The printer is processing a job and/or pro‐
1015            ducing output.
1016
1017IPP_PSTATE_STOPPED:  The  printer is stopped for maintenance.</li>
1018            </ul>
1019
1020   papplPrinterGetSupplies
1021       Get the current "printer-supplies" values.
1022
1023       int  papplPrinterGetSupplies (
1024           pappl_printer_t *printer,
1025           int max_supplies,
1026           pappl_supply_t *supplies
1027       );
1028
1029       This function copies the current printer supply values to the specified
1030       array.   The  "max_supplies" and "supplies" arguments can be 0 and NULL
1031       to query the number of supplies used.
1032
1033       The return value is the actual number of supplies used by the  printer,
1034       regardless of the size of the array.
1035
1036   papplPrinterGetSystem
1037       Get the system associated with the printer.
1038
1039       pappl_system_t * papplPrinterGetSystem (
1040           pappl_printer_t *printer
1041       );
1042
1043       This  function returns a pointer to the system object that contains the
1044       printer.
1045
1046   papplPrinterIterateActiveJobs
1047       Iterate over the active jobs.
1048
1049       void papplPrinterIterateActiveJobs (
1050           pappl_printer_t *printer,
1051           pappl_job_cb_t cb,
1052           void *data,
1053           int job_index,
1054           int limit
1055       );
1056
1057       This function iterates over jobs that are either printing or waiting to
1058       be  printed.   The  specified callback "cb" will be called once per job
1059       with the data pointer "data".
1060
1061       The "job_index" argument specifies the first job in the list  to  iter‐
1062       ate, where 1 is the first job, etc.  The "limit" argument specifies the
1063       maximum number of jobs to iterate - use 0 to iterate an unlimited  num‐
1064       ber of jobs.
1065
1066   papplPrinterIterateAllJobs
1067       Iterate over all the jobs.
1068
1069       void papplPrinterIterateAllJobs (
1070           pappl_printer_t *printer,
1071           pappl_job_cb_t cb,
1072           void *data,
1073           int job_index,
1074           int limit
1075       );
1076
1077       This function iterates over all jobs.  The specified callback "cb" will
1078       be called once per job with the data pointer "data".
1079
1080       The "job_index" argument specifies the first job in the list  to  iter‐
1081       ate, where 1 is the first job, etc.  The "limit" argument specifies the
1082       maximum number of jobs to iterate - use 0 to iterate an unlimited  num‐
1083       ber of jobs.
1084
1085   papplPrinterIterateCompletedJobs
1086       Iterate over the completed jobs.
1087
1088       void papplPrinterIterateCompletedJobs (
1089           pappl_printer_t *printer,
1090           pappl_job_cb_t cb,
1091           void *data,
1092           int job_index,
1093           int limit
1094       );
1095
1096       This  function  iterates  over jobs that are aborted, canceled, or com‐
1097       pleted.  The specified callback "cb" will be called once per  job  with
1098       the data pointer "data".
1099
1100       The  "job_index"  argument specifies the first job in the list to iter‐
1101       ate, where 1 is the first job, etc.  The "limit" argument specifies the
1102       maximum  number of jobs to iterate - use 0 to iterate an unlimited num‐
1103       ber of jobs.
1104
1105   papplPrinterOpenDevice
1106       Open the device associated with a printer.
1107
1108       pappl_device_t * papplPrinterOpenDevice (
1109           pappl_printer_t *printer
1110       );
1111
1112       This function opens the printer's device.  NULL is returned if the  de‐
1113       vice is already in use, for example while a job is being printed.
1114
1115       The  returned  device  must be closed using the papplPrinterCloseDevice
1116       function.
1117
1118   papplPrinterPause
1119       Pause (stop) a printer.
1120
1121       void papplPrinterPause (
1122           pappl_printer_t *printer
1123       );
1124
1125       This function pauses a printer.  If the printer is currently processing
1126       (printing) a job, it will be completed before the printer is stopped.
1127
1128   papplPrinterResume
1129       Resume (start) a printer.
1130
1131       void papplPrinterResume (
1132           pappl_printer_t *printer
1133       );
1134
1135       This function resumes a printer and starts processing any pending jobs.
1136
1137   papplPrinterSetContact
1138       Set the "printer-contact" value.
1139
1140       void papplPrinterSetContact (
1141           pappl_printer_t *printer,
1142           pappl_contact_t *contact
1143       );
1144
1145       This function sets the printer's contact information.
1146
1147   papplPrinterSetDNSSDName
1148       Set the DNS-SD service name.
1149
1150       void papplPrinterSetDNSSDName (
1151           pappl_printer_t *printer,
1152           const char *value
1153       );
1154
1155       This  function  sets  the  printer's DNS-SD service name.  If NULL, the
1156       printer will stop advertising the printer.
1157
1158   papplPrinterSetDriverData
1159       Set the driver data.
1160
1161       bool  papplPrinterSetDriverData (
1162           pappl_printer_t *printer,
1163           pappl_pr_driver_data_t *data,
1164           ipp_t *attrs
1165       );
1166
1167       This function validates and sets the driver  data,  including  all  de‐
1168       faults and ready (loaded) media.
1169
1170       5      Note: This function regenerates all of the driver-specific capa‐
1171              bility
1172
1173       5      attributes like "media-col-database", "sides-supported", and  so
1174              forth.
1175
1176       5      Use the papplPrinterSetDriverDefaults or
1177
1178       5      papplPrinterSetReadyMedia functions to efficiently change the
1179
1180       5      "xxx-default" or "xxx-ready" values, respectively.
1181
1182   papplPrinterSetDriverDefaults
1183       Set the default print option values.
1184
1185       bool  papplPrinterSetDriverDefaults (
1186           pappl_printer_t *printer,
1187           pappl_pr_driver_data_t *data,
1188           int num_vendor,
1189           cups_option_t *vendor
1190       );
1191
1192       This function validates and sets the printer's default print options.
1193
1194       5      Note: Unlike papplPrinterSetPrintDriverData, this function only
1195
1196       5      changes the "xxx_default" members of the driver data and is con‐
1197              sidered
1198
1199       5      lightweight.
1200
1201   papplPrinterSetGeoLocation
1202       Set the geo-location value as a "geo:" URI.
1203
1204       void papplPrinterSetGeoLocation (
1205           pappl_printer_t *printer,
1206           const char *value
1207       );
1208
1209       This function sets the printer's geographic location as a  "geo:"  URI.
1210       If NULL, the location is cleared to the 'unknown' value.
1211
1212   papplPrinterSetImpressionsCompleted
1213       Add impressions (sides) to the total count of printed impressions.
1214
1215       void papplPrinterSetImpressionsCompleted (
1216           pappl_printer_t *printer,
1217           int add
1218       );
1219
1220       This function adds to the printer's impressions counter.  An impression
1221       is one side of an output page.
1222
1223   papplPrinterSetLocation
1224       Set the location string.
1225
1226       void papplPrinterSetLocation (
1227           pappl_printer_t *printer,
1228           const char *value
1229       );
1230
1231       This function sets the printer's human-readable  location  string.   If
1232       NULL, the location is cleared.
1233
1234   papplPrinterSetMaxActiveJobs
1235       Set the maximum number of active jobs for the printer.
1236
1237       void papplPrinterSetMaxActiveJobs (
1238           pappl_printer_t *printer,
1239           int max_active_jobs
1240       );
1241
1242       This  function  sets  the maximum number of jobs that can be spooled on
1243       the printer at one time.
1244
1245       5      Note: This limit does not apply to streaming raster formats such
1246              as PWG
1247
1248       5      Raster since they are not spooled.
1249
1250   papplPrinterSetMaxCompletedJobs
1251       Set the maximum number of completed jobs for the printer.
1252
1253       void papplPrinterSetMaxCompletedJobs (
1254           pappl_printer_t *printer,
1255           int max_completed_jobs
1256       );
1257
1258       This  function  sets  the  maximum number of aborted, canceled, or com‐
1259       pleted jobs that are retained in the job history.
1260
1261   papplPrinterSetNextJobID
1262       Set the next "job-id" value.
1263
1264       void papplPrinterSetNextJobID (
1265           pappl_printer_t *printer,
1266           int next_job_id
1267       );
1268
1269       This function sets the next unique  positive  integer  identifier  that
1270       will be used for a job.
1271
1272       5      Note:  This function is normally only called once to restore the
1273              previous
1274
1275       5      state of the printer.
1276
1277   papplPrinterSetOrganization
1278       Set the organization name.
1279
1280       void papplPrinterSetOrganization (
1281           pappl_printer_t *printer,
1282           const char *value
1283       );
1284
1285       This function sets the printer's organization name.  If NULL the  value
1286       is cleared.
1287
1288   papplPrinterSetOrganizationalUnit
1289       Set the organizational unit name.
1290
1291       void papplPrinterSetOrganizationalUnit (
1292           pappl_printer_t *printer,
1293           const char *value
1294       );
1295
1296       This function sets the printer's organizational unit name.  If NULL the
1297       value is cleared.
1298
1299   papplPrinterSetPrintGroup
1300       Set the print authorization group, if any.
1301
1302       void papplPrinterSetPrintGroup (
1303           pappl_printer_t *printer,
1304           const char *value
1305       );
1306
1307       This function sets the printer's authorization  group.   If  NULL,  the
1308       group is cleared.
1309
1310       5      Note: The authorization group is only used if the system is cre‐
1311              ated with a
1312
1313       5      named authorization service.
1314
1315   papplPrinterSetReadyMedia
1316       Set the ready (loaded) media.
1317
1318       bool  papplPrinterSetReadyMedia (
1319           pappl_printer_t *printer,
1320           int num_ready,
1321           pappl_media_col_t *ready
1322       );
1323
1324       This function validates and sets the printer's ready (loaded) media.
1325
1326   papplPrinterSetReasons
1327       Add or remove values from "printer-state-reasons".
1328
1329       void papplPrinterSetReasons (
1330           pappl_printer_t *printer,
1331           pappl_preason_t add,
1332           pappl_preason_t remove
1333       );
1334
1335       This function updates the printer state reasons  bitfield  by  clearing
1336       any  bit  values in the "remove" argument and setting any bit values in
1337       the "add" argument.
1338
1339   papplPrinterSetSupplies
1340       Set/update the supplies for a printer.
1341
1342       void papplPrinterSetSupplies (
1343           pappl_printer_t *printer,
1344           int num_supplies,
1345           pappl_supply_t *supplies
1346       );
1347
1348       This function updates the supply information for the printer.
1349
1350   papplPrinterSetUSB
1351       Set the USB vendor and product IDs for a printer.
1352
1353       void papplPrinterSetUSB (
1354           pappl_printer_t *printer,
1355           unsigned vendor_id,
1356           unsigned product_id,
1357           pappl_uoptions_t options,
1358           const char *storagefile
1359       );
1360
1361       This function sets the USB vendor and product IDs for a printer as well
1362       as  specifying  USB  gadget options when the printer is registered with
1363       the USB device controller.
1364
1365       5      Note: USB gadget functionality is currently only available  when
1366              running
1367
1368       5      on Linux with compatible hardware such as the Raspberry Pi.
1369

STRUCTURES

1371   pappl_icon_s
1372       Printer PNG icon structure
1373
1374       struct pappl_icon_s
1375       {
1376         const void *data;
1377         size_t datalen;
1378         char filename[256];
1379       };
1380
1381   pappl_media_col_s
1382       Media details structure
1383
1384       struct pappl_media_col_s
1385       {
1386         int bottom_margin;
1387         int left_margin;
1388         int left_offset;
1389         int right_margin;
1390         int size_length;
1391         char size_name[64];
1392         int size_width;
1393         char source[64];
1394         int top_margin;
1395         int top_offset;
1396         pappl_media_tracking_t tracking;
1397         char type[64];
1398       };
1399
1400   pappl_pr_driver_data_s
1401       Printer driver data
1402
1403       struct pappl_pr_driver_data_s
1404       {
1405         const char *bin[PAPPL_MAX_BIN];
1406         int bin_default;
1407         bool borderless;
1408         int bottom_top;
1409         pappl_color_mode_t color_default;
1410         pappl_color_mode_t color_supported;
1411         pappl_content_t content_default;
1412         int darkness_configured;
1413         int darkness_default;
1414         int darkness_supported;
1415         pappl_pr_delete_cb_t delete_cb;
1416         pappl_duplex_t duplex;
1417         void *extension;
1418         const char *features[PAPPL_MAX_VENDOR];
1419         pappl_finishings_t finishings;
1420         pappl_raster_type_t force_raster_type;
1421         const char *format;
1422         pappl_dither_t gdither;
1423         bool has_supplies;
1424         pappl_icon_t icons[3];
1425         pappl_pr_identify_cb_t identify_cb;
1426         pappl_identify_actions_t identify_default;
1427         pappl_identify_actions_t identify_supported;
1428         bool input_face_up;
1429         pappl_kind_t kind;
1430         int left_offset_supported[2];
1431         int left_right;
1432         char make_and_model[128];
1433         const char *media[PAPPL_MAX_MEDIA];
1434         pappl_media_col_t media_default;
1435         pappl_media_col_t media_ready[PAPPL_MAX_SOURCE];
1436         pappl_label_mode_t mode_configured;
1437         pappl_label_mode_t mode_supported;
1438         int num_bin;
1439         int num_features;
1440         int num_media;
1441         int num_resolution;
1442         int num_source;
1443         int num_type;
1444         int num_vendor;
1445         ipp_orient_t orient_default;
1446         bool output_face_up;
1447         pappl_dither_t pdither;
1448         int ppm;
1449         int ppm_color;
1450         pappl_pr_printfile_cb_t printfile_cb;
1451         ipp_quality_t quality_default;
1452         pappl_raster_type_t raster_types;
1453         pappl_pr_rendjob_cb_t rendjob_cb;
1454         pappl_pr_rendpage_cb_t rendpage_cb;
1455         pappl_pr_rstartjob_cb_t rstartjob_cb;
1456         pappl_pr_rstartpage_cb_t rstartpage_cb;
1457         pappl_pr_rwriteline_cb_t rwriteline_cb;
1458         pappl_scaling_t scaling_default;
1459         pappl_sides_t sides_default;
1460         pappl_sides_t sides_supported;
1461         const char *source[PAPPL_MAX_SOURCE];
1462         int speed_default;
1463         int speed_supported[2];
1464         pappl_pr_status_cb_t status_cb;
1465         int tear_offset_configured;
1466         int tear_offset_supported[2];
1467         pappl_pr_testpage_cb_t testpage_cb;
1468         int top_offset_supported[2];
1469         pappl_media_tracking_t tracking_supported;
1470         const char *type[PAPPL_MAX_TYPE];
1471         const char *vendor[PAPPL_MAX_VENDOR];
1472         int x_default;
1473         int x_resolution[PAPPL_MAX_RESOLUTION];
1474         int y_default;
1475         int y_resolution[PAPPL_MAX_RESOLUTION];
1476       };
1477
1478   pappl_pr_options_s
1479       Combined print job options
1480
1481       struct pappl_pr_options_s
1482       {
1483         int copies;
1484         int darkness_configured;
1485         pappl_dither_t dither;
1486         pappl_finishings_t finishings;
1487         unsigned first_page;
1488         cups_page_header2_t header;
1489         unsigned last_page;
1490         pappl_media_col_t media;
1491         unsigned num_pages;
1492         int num_vendor;
1493         ipp_orient_t orientation_requested;
1494         char output_bin[64];
1495         pappl_color_mode_t print_color_mode;
1496         pappl_content_t print_content_optimize;
1497         int print_darkness;
1498         ipp_quality_t print_quality;
1499         pappl_scaling_t print_scaling;
1500         int print_speed;
1501         int printer_resolution[2];
1502         pappl_sides_t sides;
1503         cups_option_t *vendor;
1504       };
1505
1506   pappl_supply_s
1507       Supply data
1508
1509       struct pappl_supply_s
1510       {
1511         pappl_supply_color_t color;
1512         char description[256];
1513         bool is_consumed;
1514         int level;
1515         pappl_supply_type_t type;
1516       };
1517

TYPES

1519   pappl_color_mode_t
1520       Bitfield for IPP "print-color-mode" values
1521
1522       typedef unsigned pappl_color_mode_t;
1523
1524   pappl_content_t
1525       Bitfield for IPP "print-content-optimize" values
1526
1527       typedef unsigned pappl_content_t;
1528
1529   pappl_default_cb_t
1530       papplIterateDefaults callback
1531
1532       typedef void (*pappl_default_cb_t)(ipp_attribute_t *attr, void *data);
1533
1534   pappl_duplex_t
1535       Duplex printing support
1536
1537       typedef enum pappl_duplex_e pappl_duplex_t;
1538
1539   pappl_finishings_t
1540       Bitfield for IPP "finishings" values
1541
1542       typedef unsigned pappl_finishings_t;
1543
1544   pappl_icon_t
1545       Printer PNG icon structure
1546
1547       typedef struct pappl_icon_s pappl_icon_t;
1548
1549   pappl_identify_actions_t
1550       Bitfield for IPP "identify-actions" values
1551
1552       typedef unsigned pappl_identify_actions_t;
1553
1554   pappl_job_cb_t
1555       papplIterateXxxJobs callback function
1556
1557       typedef void (*pappl_job_cb_t)(pappl_job_t *job, void *data);
1558
1559   pappl_kind_t
1560       Bitfield for IPP "printer-kind" values
1561
1562       typedef unsigned pappl_kind_t;
1563
1564   pappl_label_mode_t
1565       Bitfield for IPP "label-mode-xxx" values
1566
1567       typedef unsigned short pappl_label_mode_t;
1568
1569   pappl_media_col_t
1570       Media details structure
1571
1572       typedef struct pappl_media_col_s pappl_media_col_t;
1573
1574   pappl_media_tracking_t
1575       Bitfield for IPP "media-tracking" values
1576
1577       typedef unsigned short pappl_media_tracking_t;
1578
1579   pappl_pr_delete_cb_t
1580       Printer deletion callback
1581
1582       typedef void (*pappl_pr_delete_cb_t)(pappl_printer_t *printer, pappl_pr_driver_data_t *data);
1583
1584   pappl_pr_identify_cb_t
1585       Identify-Printer callback
1586
1587       typedef void (*pappl_pr_identify_cb_t)(pappl_printer_t *printer, pappl_identify_actions_t actions, const char *message);
1588
1589   pappl_pr_printfile_cb_t
1590       Print a "raw" job callback
1591
1592       typedef bool (*pappl_pr_printfile_cb_t)(pappl_job_t *job, pappl_pr_options_t *options, pappl_device_t *device);
1593
1594   pappl_pr_rendjob_cb_t
1595       End a raster job callback
1596
1597       typedef bool (*pappl_pr_rendjob_cb_t)(pappl_job_t *job, pappl_pr_options_t *options, pappl_device_t *device);
1598
1599   pappl_pr_rendpage_cb_t
1600       End a raster page callback
1601
1602       typedef bool (*pappl_pr_rendpage_cb_t)(pappl_job_t *job, pappl_pr_options_t *options, pappl_device_t *device, unsigned page);
1603
1604   pappl_pr_rstartjob_cb_t
1605       Start a raster job callback
1606
1607       typedef bool (*pappl_pr_rstartjob_cb_t)(pappl_job_t *job, pappl_pr_options_t *options, pappl_device_t *device);
1608
1609   pappl_pr_rstartpage_cb_t
1610       Start a raster page callback
1611
1612       typedef bool (*pappl_pr_rstartpage_cb_t)(pappl_job_t *job, pappl_pr_options_t *options, pappl_device_t *device, unsigned page);
1613
1614   pappl_pr_rwriteline_cb_t
1615       Write a line of raster graphics callback
1616
1617       typedef bool (*pappl_pr_rwriteline_cb_t)(pappl_job_t *job, pappl_pr_options_t *options, pappl_device_t *device, unsigned y, const unsigned char *line);
1618
1619   pappl_pr_status_cb_t
1620       Update printer status callback
1621
1622       typedef bool (*pappl_pr_status_cb_t)(pappl_printer_t *printer);
1623
1624   pappl_pr_testpage_cb_t
1625       Print a test page callback
1626
1627       typedef const char * (*pappl_pr_testpage_cb_t)(pappl_printer_t *printer, char *buffer, size_t bufsize);
1628
1629   pappl_raster_type_t
1630       Bitfield for IPP "pwg-raster-document-type-supported" values
1631
1632       typedef unsigned pappl_raster_type_t;
1633
1634   pappl_scaling_t
1635       Bitfield for IPP "print-scaling" values
1636
1637       typedef unsigned pappl_scaling_t;
1638
1639   pappl_sides_t
1640       Bitfield for IPP "sides" values
1641
1642       typedef unsigned pappl_sides_t;
1643
1644   pappl_supply_color_t
1645       "printer-supply" color values
1646
1647       typedef enum pappl_supply_color_e pappl_supply_color_t;
1648
1649   pappl_supply_t
1650       Supply data
1651
1652       typedef struct pappl_supply_s pappl_supply_t;
1653
1654   pappl_supply_type_t
1655       IPP "printer-supply" type values
1656
1657       typedef enum pappl_supply_type_e pappl_supply_type_t;
1658
1659   pappl_uoptions_t
1660       USB gadget options bitfield
1661
1662       typedef unsigned pappl_uoptions_t;
1663

SEE ALSO

1665       pappl(1), pappl-client(3), pappl-device(3), pappl-job(3), pappl-log(3),
1666       pappl-mainline(3), pappl-makeresheader(1), pappl-printer(3),  pappl-re‐
1667       source(3), pappl-system(3), https://www.msweet.org/pappl
1668
1670       Copyright © 2019-2020 by Michael R Sweet.
1671
1672       PAPPL  is  licensed  under  the Apache License Version 2.0 with an (op‐
1673       tional) exception to allow linking against  GPL2/LGPL2  software  (like
1674       older  versions of CUPS), so it can be used freely in any project you'd
1675       like.  See the files "LICENSE" and "NOTICE" in the source  distribution
1676       for more information.
1677
1678
1679
16802021-02-15                  pappl printer functions           pappl-printer(3)
Impressum