summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2014-04-16 08:13:23 +0200
committerDidier Raboud <odyx@debian.org>2014-04-16 08:13:23 +0200
commitd7d42f6c969dc54157d85b7b6b611581bbfa7595 (patch)
treedfa630457b374b77f1f128cbc9104ea2d6963575 /src
parentccd50c2bd4db57503722816aa23a5092cbe69f40 (diff)
Imported Upstream version 5.2.10~pre1
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in294
-rw-r--r--src/cups/Makefile.am107
-rw-r--r--src/cups/Makefile.in1288
-rw-r--r--src/cups/backend_common.c863
-rw-r--r--src/cups/backend_common.h153
-rw-r--r--src/cups/blacklist136
-rw-r--r--src/cups/dnpds40_print.c1017
-rw-r--r--src/cups/genppd.c1148
-rw-r--r--src/cups/i18n.c12
-rw-r--r--src/cups/kodak1400_print.c764
-rw-r--r--src/cups/kodak605_print.c618
-rw-r--r--src/cups/kodak6800_print.c918
-rw-r--r--src/cups/mitsu70x_print.c532
-rw-r--r--src/cups/rastertoprinter.c28
-rw-r--r--src/cups/selphy_print.c1288
-rw-r--r--src/cups/shinko_s2145_print.c1782
-rw-r--r--src/cups/sony_updr150_print.c316
-rwxr-xr-xsrc/cups/test-ppds6
-rwxr-xr-xsrc/cups/test-rastertogutenprint.in8
-rw-r--r--src/escputil/Makefile.in260
-rw-r--r--src/escputil/d4lib.c49
-rw-r--r--src/escputil/escputil.c509
-rw-r--r--src/foomatic/Makefile.am6
-rw-r--r--src/foomatic/Makefile.in263
-rw-r--r--src/foomatic/foomatic-generator.in5
-rw-r--r--src/ghost/Makefile.in239
-rw-r--r--src/gimp2/Makefile.in266
-rw-r--r--src/gimp2/print-gutenprint.c28
-rw-r--r--src/gimp2/print.c25
-rw-r--r--src/gimp2/print_gimp.h40
-rw-r--r--src/gutenprintui2/Makefile.in392
-rw-r--r--src/gutenprintui2/curve.c11
-rw-r--r--src/gutenprintui2/gammacurve.c21
-rw-r--r--src/gutenprintui2/gutenprintui-internal.h32
-rw-r--r--src/gutenprintui2/panel.c48
-rw-r--r--src/gutenprintui2/plist.c29
-rw-r--r--src/gutenprintui2/printrcl.c157
-rw-r--r--src/gutenprintui2/printrcl.l6
-rw-r--r--src/gutenprintui2/ui-utils.c10
-rw-r--r--src/main/Makefile.in389
-rw-r--r--src/main/canon-inks.h362
-rw-r--r--src/main/canon-media-mode.h22417
-rw-r--r--src/main/canon-media.h156
-rw-r--r--src/main/canon-modes.h473
-rw-r--r--src/main/canon-printers.h286
-rw-r--r--src/main/curve.c11
-rw-r--r--src/main/dither-inks.c6
-rw-r--r--src/main/escp2-channels.c4
-rw-r--r--src/main/escp2-papers.c6
-rw-r--r--src/main/escp2-resolutions.c8
-rw-r--r--src/main/gutenprint-internal.h16
-rw-r--r--src/main/print-canon.c1242
-rw-r--r--src/main/print-canon.h520
-rw-r--r--src/main/print-color.c100
-rw-r--r--src/main/print-dither-matrices.c21
-rw-r--r--src/main/print-escp2-data.c7
-rw-r--r--src/main/print-escp2.c61
-rw-r--r--src/main/print-escp2.h6
-rw-r--r--src/main/print-lexmark.c95
-rw-r--r--src/main/print-list.c6
-rw-r--r--src/main/print-olympus.c2254
-rw-r--r--src/main/print-papers.c4
-rw-r--r--src/main/print-pcl.c37
-rw-r--r--src/main/print-raw.c21
-rw-r--r--src/main/print-util.c7
-rw-r--r--src/main/print-vars.c8
-rw-r--r--src/main/printers.c7
-rw-r--r--src/main/sequence.c12
-rw-r--r--src/main/string-list.c31
-rw-r--r--src/testpattern/Makefile.in757
-rw-r--r--src/testpattern/run-testpattern-2.in250
-rw-r--r--src/testpattern/testpattern.c25
-rw-r--r--src/testpattern/testpattern.h10
-rw-r--r--src/testpattern/testpatternl.c180
-rw-r--r--src/testpattern/testpatternl.l5
-rw-r--r--src/xml/Makefile.in347
-rw-r--r--src/xml/escp2/Makefile.in295
-rw-r--r--src/xml/escp2/inks/Makefile.am4
-rw-r--r--src/xml/escp2/inks/Makefile.in139
-rw-r--r--src/xml/escp2/inks/artisan.xml4
-rw-r--r--src/xml/escp2/inks/b500.xml4
-rw-r--r--src/xml/escp2/inks/c120.xml4
-rw-r--r--src/xml/escp2/inks/c64.xml4
-rw-r--r--src/xml/escp2/inks/c80.xml4
-rw-r--r--src/xml/escp2/inks/c82.xml4
-rw-r--r--src/xml/escp2/inks/claria.xml4
-rw-r--r--src/xml/escp2/inks/cmy.xml4
-rw-r--r--src/xml/escp2/inks/cmykrb.xml4
-rw-r--r--src/xml/escp2/inks/cmykro.xml4
-rw-r--r--src/xml/escp2/inks/cx3650.xml4
-rw-r--r--src/xml/escp2/inks/defaultblack.xml4
-rw-r--r--src/xml/escp2/inks/f360.xml4
-rw-r--r--src/xml/escp2/inks/f360_photo.xml4
-rw-r--r--src/xml/escp2/inks/f360_photo7_japan.xml4
-rw-r--r--src/xml/escp2/inks/f360_ultrachrome.xml4
-rw-r--r--src/xml/escp2/inks/f360_ultrachrome_k3.xml4
-rw-r--r--src/xml/escp2/inks/f360_ultrachrome_k3v.xml4
-rw-r--r--src/xml/escp2/inks/f360_ultrachrome_k3v_2.xml4
-rw-r--r--src/xml/escp2/inks/nx100.xml4
-rw-r--r--src/xml/escp2/inks/photo_gen0.xml4
-rw-r--r--src/xml/escp2/inks/photo_gen1.xml4
-rw-r--r--src/xml/escp2/inks/photo_gen2.xml4
-rw-r--r--src/xml/escp2/inks/photo_gen3.xml4
-rw-r--r--src/xml/escp2/inks/photo_gen3_4.xml4
-rw-r--r--src/xml/escp2/inks/photo_gen4.xml4
-rw-r--r--src/xml/escp2/inks/photo_pigment.xml4
-rw-r--r--src/xml/escp2/inks/picturemate_4.xml4
-rw-r--r--src/xml/escp2/inks/picturemate_6.xml4
-rw-r--r--src/xml/escp2/inks/pro_gen1.xml4
-rw-r--r--src/xml/escp2/inks/pro_gen2.xml4
-rw-r--r--src/xml/escp2/inks/pro_pigment.xml4
-rw-r--r--src/xml/escp2/inks/pro_ultrachrome.xml4
-rw-r--r--src/xml/escp2/inks/pro_ultrachrome_k3.xml4
-rw-r--r--src/xml/escp2/inks/pro_ultrachrome_k34.xml4
-rw-r--r--src/xml/escp2/inks/pro_ultrachrome_k3v.xml4
-rw-r--r--src/xml/escp2/inks/pro_ultrachrome_k3v10.xml724
-rw-r--r--src/xml/escp2/inks/pro_ultrachrome_k3v4.xml4
-rw-r--r--src/xml/escp2/inks/standard.xml4
-rw-r--r--src/xml/escp2/inks/standard_gen0.xml4
-rw-r--r--src/xml/escp2/inks/sx445.xml139
-rw-r--r--src/xml/escp2/inks/ultrachrome.xml4
-rw-r--r--src/xml/escp2/inks/wf40.xml4
-rw-r--r--src/xml/escp2/inks/wf500.xml4
-rw-r--r--src/xml/escp2/inks/x80.xml4
-rw-r--r--src/xml/escp2/inputslots/Makefile.am6
-rw-r--r--src/xml/escp2/inputslots/Makefile.in141
-rw-r--r--src/xml/escp2/inputslots/artisan.xml4
-rw-r--r--src/xml/escp2/inputslots/b500.xml4
-rw-r--r--src/xml/escp2/inputslots/cd.xml4
-rw-r--r--src/xml/escp2/inputslots/cd_cutter_roll_feed.xml4
-rw-r--r--src/xml/escp2/inputslots/cd_roll_feed.xml4
-rw-r--r--src/xml/escp2/inputslots/cutter_roll_feed.xml4
-rw-r--r--src/xml/escp2/inputslots/default-duplex.xml28
-rw-r--r--src/xml/escp2/inputslots/default.xml2
-rw-r--r--src/xml/escp2/inputslots/pro3880.xml4
-rw-r--r--src/xml/escp2/inputslots/pro_cutter_roll_feed.xml4
-rw-r--r--src/xml/escp2/inputslots/pro_roll_feed.xml4
-rw-r--r--src/xml/escp2/inputslots/r1800.xml4
-rw-r--r--src/xml/escp2/inputslots/r2400.xml4
-rw-r--r--src/xml/escp2/inputslots/r2880.xml4
-rw-r--r--src/xml/escp2/inputslots/rx680.xml4
-rw-r--r--src/xml/escp2/inputslots/rx700.xml4
-rw-r--r--src/xml/escp2/inputslots/spro5000.xml4
-rw-r--r--src/xml/escp2/inputslots/standard_roll_feed.xml4
-rw-r--r--src/xml/escp2/inputslots/wf7000.xml35
-rw-r--r--src/xml/escp2/media/Makefile.am3
-rw-r--r--src/xml/escp2/media/Makefile.in138
-rw-r--r--src/xml/escp2/media/artisan.xml4
-rw-r--r--src/xml/escp2/media/b500.xml4
-rw-r--r--src/xml/escp2/media/c120.xml4
-rw-r--r--src/xml/escp2/media/c64.xml4
-rw-r--r--src/xml/escp2/media/c80.xml4
-rw-r--r--src/xml/escp2/media/c82.xml4
-rw-r--r--src/xml/escp2/media/claria.xml4
-rw-r--r--src/xml/escp2/media/claria1400.xml4
-rw-r--r--src/xml/escp2/media/cmy.xml4
-rw-r--r--src/xml/escp2/media/cmykrb.xml4
-rw-r--r--src/xml/escp2/media/cmykro.xml4
-rw-r--r--src/xml/escp2/media/cx3650.xml4
-rw-r--r--src/xml/escp2/media/f360.xml4
-rw-r--r--src/xml/escp2/media/f360_photo.xml4
-rw-r--r--src/xml/escp2/media/f360_photo7_japan.xml4
-rw-r--r--src/xml/escp2/media/f360_ultrachrome.xml4
-rw-r--r--src/xml/escp2/media/f360_ultrachrome_k3.xml4
-rw-r--r--src/xml/escp2/media/f360_ultrachrome_k3v.xml4
-rw-r--r--src/xml/escp2/media/nx100.xml4
-rw-r--r--src/xml/escp2/media/photo_gen0.xml4
-rw-r--r--src/xml/escp2/media/photo_gen1.xml4
-rw-r--r--src/xml/escp2/media/photo_gen2.xml4
-rw-r--r--src/xml/escp2/media/photo_gen3.xml4
-rw-r--r--src/xml/escp2/media/photo_gen3_4.xml4
-rw-r--r--src/xml/escp2/media/photo_gen4.xml4
-rw-r--r--src/xml/escp2/media/photo_pigment.xml4
-rw-r--r--src/xml/escp2/media/picturemate_4.xml4
-rw-r--r--src/xml/escp2/media/picturemate_6.xml4
-rw-r--r--src/xml/escp2/media/pro3880_ultrachrome_k3v.xml4
-rw-r--r--src/xml/escp2/media/pro_gen1.xml4
-rw-r--r--src/xml/escp2/media/pro_gen2.xml4
-rw-r--r--src/xml/escp2/media/pro_pigment.xml4
-rw-r--r--src/xml/escp2/media/pro_ultrachrome.xml4
-rw-r--r--src/xml/escp2/media/pro_ultrachrome_k3.xml4
-rw-r--r--src/xml/escp2/media/pro_ultrachrome_k3v.xml4
-rw-r--r--src/xml/escp2/media/pro_ultrachrome_k3v10.xml925
-rw-r--r--src/xml/escp2/media/r800.xml4
-rw-r--r--src/xml/escp2/media/standard.xml4
-rw-r--r--src/xml/escp2/media/standard_gen0.xml4
-rw-r--r--src/xml/escp2/media/ultrachrome.xml4
-rw-r--r--src/xml/escp2/media/wf500.xml4
-rw-r--r--src/xml/escp2/media/x80.xml4
-rw-r--r--src/xml/escp2/mediasizes/Makefile.in137
-rw-r--r--src/xml/escp2/mediasizes/standard.xml4
-rw-r--r--src/xml/escp2/model/Makefile.am8
-rw-r--r--src/xml/escp2/model/Makefile.in143
-rw-r--r--src/xml/escp2/model/model_0.xml12
-rw-r--r--src/xml/escp2/model/model_1.xml12
-rw-r--r--src/xml/escp2/model/model_10.xml12
-rw-r--r--src/xml/escp2/model/model_100.xml14
-rw-r--r--src/xml/escp2/model/model_101.xml12
-rw-r--r--src/xml/escp2/model/model_102.xml4
-rw-r--r--src/xml/escp2/model/model_103.xml4
-rw-r--r--src/xml/escp2/model/model_104.xml4
-rw-r--r--src/xml/escp2/model/model_105.xml4
-rw-r--r--src/xml/escp2/model/model_106.xml4
-rw-r--r--src/xml/escp2/model/model_107.xml8
-rw-r--r--src/xml/escp2/model/model_108.xml24
-rw-r--r--src/xml/escp2/model/model_109.xml4
-rw-r--r--src/xml/escp2/model/model_11.xml12
-rw-r--r--src/xml/escp2/model/model_110.xml4
-rw-r--r--src/xml/escp2/model/model_111.xml12
-rw-r--r--src/xml/escp2/model/model_112.xml16
-rw-r--r--src/xml/escp2/model/model_113.xml16
-rw-r--r--src/xml/escp2/model/model_114.xml16
-rw-r--r--src/xml/escp2/model/model_115.xml4
-rw-r--r--src/xml/escp2/model/model_116.xml10
-rw-r--r--src/xml/escp2/model/model_117.xml10
-rw-r--r--src/xml/escp2/model/model_118.xml216
-rw-r--r--src/xml/escp2/model/model_119.xml216
-rw-r--r--src/xml/escp2/model/model_12.xml12
-rw-r--r--src/xml/escp2/model/model_120.xml216
-rw-r--r--src/xml/escp2/model/model_121.xml183
-rw-r--r--src/xml/escp2/model/model_13.xml12
-rw-r--r--src/xml/escp2/model/model_14.xml16
-rw-r--r--src/xml/escp2/model/model_15.xml16
-rw-r--r--src/xml/escp2/model/model_16.xml12
-rw-r--r--src/xml/escp2/model/model_17.xml12
-rw-r--r--src/xml/escp2/model/model_18.xml12
-rw-r--r--src/xml/escp2/model/model_19.xml12
-rw-r--r--src/xml/escp2/model/model_2.xml12
-rw-r--r--src/xml/escp2/model/model_20.xml16
-rw-r--r--src/xml/escp2/model/model_21.xml12
-rw-r--r--src/xml/escp2/model/model_22.xml16
-rw-r--r--src/xml/escp2/model/model_23.xml16
-rw-r--r--src/xml/escp2/model/model_24.xml12
-rw-r--r--src/xml/escp2/model/model_25.xml12
-rw-r--r--src/xml/escp2/model/model_26.xml16
-rw-r--r--src/xml/escp2/model/model_27.xml16
-rw-r--r--src/xml/escp2/model/model_28.xml16
-rw-r--r--src/xml/escp2/model/model_29.xml16
-rw-r--r--src/xml/escp2/model/model_3.xml12
-rw-r--r--src/xml/escp2/model/model_30.xml16
-rw-r--r--src/xml/escp2/model/model_31.xml16
-rw-r--r--src/xml/escp2/model/model_32.xml12
-rw-r--r--src/xml/escp2/model/model_33.xml12
-rw-r--r--src/xml/escp2/model/model_34.xml12
-rw-r--r--src/xml/escp2/model/model_35.xml16
-rw-r--r--src/xml/escp2/model/model_36.xml16
-rw-r--r--src/xml/escp2/model/model_37.xml16
-rw-r--r--src/xml/escp2/model/model_38.xml12
-rw-r--r--src/xml/escp2/model/model_39.xml12
-rw-r--r--src/xml/escp2/model/model_4.xml12
-rw-r--r--src/xml/escp2/model/model_40.xml16
-rw-r--r--src/xml/escp2/model/model_41.xml16
-rw-r--r--src/xml/escp2/model/model_42.xml12
-rw-r--r--src/xml/escp2/model/model_43.xml12
-rw-r--r--src/xml/escp2/model/model_44.xml12
-rw-r--r--src/xml/escp2/model/model_45.xml12
-rw-r--r--src/xml/escp2/model/model_46.xml18
-rw-r--r--src/xml/escp2/model/model_47.xml18
-rw-r--r--src/xml/escp2/model/model_48.xml16
-rw-r--r--src/xml/escp2/model/model_49.xml16
-rw-r--r--src/xml/escp2/model/model_5.xml12
-rw-r--r--src/xml/escp2/model/model_50.xml16
-rw-r--r--src/xml/escp2/model/model_51.xml16
-rw-r--r--src/xml/escp2/model/model_52.xml12
-rw-r--r--src/xml/escp2/model/model_53.xml18
-rw-r--r--src/xml/escp2/model/model_54.xml16
-rw-r--r--src/xml/escp2/model/model_55.xml12
-rw-r--r--src/xml/escp2/model/model_56.xml12
-rw-r--r--src/xml/escp2/model/model_57.xml18
-rw-r--r--src/xml/escp2/model/model_58.xml16
-rw-r--r--src/xml/escp2/model/model_59.xml12
-rw-r--r--src/xml/escp2/model/model_6.xml12
-rw-r--r--src/xml/escp2/model/model_60.xml12
-rw-r--r--src/xml/escp2/model/model_61.xml12
-rw-r--r--src/xml/escp2/model/model_62.xml16
-rw-r--r--src/xml/escp2/model/model_63.xml16
-rw-r--r--src/xml/escp2/model/model_64.xml20
-rw-r--r--src/xml/escp2/model/model_65.xml12
-rw-r--r--src/xml/escp2/model/model_66.xml12
-rw-r--r--src/xml/escp2/model/model_67.xml20
-rw-r--r--src/xml/escp2/model/model_68.xml20
-rw-r--r--src/xml/escp2/model/model_69.xml12
-rw-r--r--src/xml/escp2/model/model_7.xml16
-rw-r--r--src/xml/escp2/model/model_70.xml16
-rw-r--r--src/xml/escp2/model/model_71.xml20
-rw-r--r--src/xml/escp2/model/model_72.xml12
-rw-r--r--src/xml/escp2/model/model_73.xml16
-rw-r--r--src/xml/escp2/model/model_74.xml12
-rw-r--r--src/xml/escp2/model/model_75.xml12
-rw-r--r--src/xml/escp2/model/model_76.xml12
-rw-r--r--src/xml/escp2/model/model_77.xml12
-rw-r--r--src/xml/escp2/model/model_78.xml16
-rw-r--r--src/xml/escp2/model/model_79.xml12
-rw-r--r--src/xml/escp2/model/model_8.xml16
-rw-r--r--src/xml/escp2/model/model_80.xml12
-rw-r--r--src/xml/escp2/model/model_81.xml16
-rw-r--r--src/xml/escp2/model/model_82.xml16
-rw-r--r--src/xml/escp2/model/model_83.xml12
-rw-r--r--src/xml/escp2/model/model_84.xml16
-rw-r--r--src/xml/escp2/model/model_85.xml14
-rw-r--r--src/xml/escp2/model/model_86.xml12
-rw-r--r--src/xml/escp2/model/model_87.xml12
-rw-r--r--src/xml/escp2/model/model_88.xml4
-rw-r--r--src/xml/escp2/model/model_89.xml4
-rw-r--r--src/xml/escp2/model/model_9.xml16
-rw-r--r--src/xml/escp2/model/model_90.xml4
-rw-r--r--src/xml/escp2/model/model_91.xml20
-rw-r--r--src/xml/escp2/model/model_92.xml12
-rw-r--r--src/xml/escp2/model/model_93.xml12
-rw-r--r--src/xml/escp2/model/model_94.xml13
-rw-r--r--src/xml/escp2/model/model_95.xml12
-rw-r--r--src/xml/escp2/model/model_96.xml16
-rw-r--r--src/xml/escp2/model/model_97.xml18
-rw-r--r--src/xml/escp2/model/model_98.xml20
-rw-r--r--src/xml/escp2/model/model_99.xml14
-rw-r--r--src/xml/escp2/qualitypresets/Makefile.in137
-rw-r--r--src/xml/escp2/qualitypresets/p1_5.xml4
-rw-r--r--src/xml/escp2/qualitypresets/picturemate.xml4
-rw-r--r--src/xml/escp2/qualitypresets/prox900.xml4
-rw-r--r--src/xml/escp2/qualitypresets/standard.xml4
-rw-r--r--src/xml/escp2/qualitypresets/v2880.xml4
-rw-r--r--src/xml/escp2/qualitypresets/wf40.xml4
-rw-r--r--src/xml/escp2/weaves/Makefile.in137
-rw-r--r--src/xml/escp2/weaves/pro7000.xml4
-rw-r--r--src/xml/escp2/weaves/pro7500.xml4
-rw-r--r--src/xml/escp2/weaves/pro7600.xml4
-rw-r--r--src/xml/escp2/weaves/standard.xml4
-rw-r--r--src/xml/extract-strings.c16
-rw-r--r--src/xml/papers.xml43
-rw-r--r--src/xml/printers.xml1011
330 files changed, 35383 insertions, 15489 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index 9c0d149..f1fe497 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -20,6 +19,51 @@
#export STP_MODULE_PATH = $(top_builddir)/src/main/.libs:$(top_builddir)/src/main
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -38,8 +82,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -59,20 +103,58 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
@@ -105,6 +187,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -162,6 +245,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -173,6 +257,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -197,6 +282,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -352,6 +439,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -369,22 +457,25 @@ clean-libtool:
-rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
@@ -399,57 +490,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
-$(RECURSIVE_CLEAN_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -465,12 +511,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -482,15 +523,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -499,6 +536,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -535,13 +587,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -576,10 +625,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -658,22 +712,20 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
- install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am check check-am clean clean-generic clean-libtool \
- ctags ctags-recursive distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic clean-libtool cscopelist-am ctags \
+ ctags-am distclean distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am
@SET_MAKE@
diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
index 1e27ae0..75691af 100644
--- a/src/cups/Makefile.am
+++ b/src/cups/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.122 2012/03/25 17:54:32 rlk Exp $
+## $Id: Makefile.am,v 1.145 2014/02/12 13:42:27 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -27,7 +27,7 @@ include $(top_srcdir)/scripts/global.mk
empty=
PACKAGE = cups
-BASE_VERSION = \"@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@.@GUTENPRINT_MICRO_VERSION@\"
+BASE_VERSION = \"@GUTENPRINT_BASE_VERSION@\"
bindir = @cups_bindir@
sbindir = @cups_sbindir@
@@ -38,11 +38,17 @@ pkgsysconfdir = $(cups_conf_serverroot)
cupsexec_driverdir = $(pkglibdir)/driver
cupsexec_filterdir = $(pkglibdir)/filter
+
+if BUILD_LIBUSB_BACKENDS
+cupsexec_backenddir = $(pkglibdir)/backend
+cupsdata_blacklistdir = $(pkgdatadir)/usb/
+endif
+
if CUPS_PPDS_AT_TOP_LEVEL
cups_modeldir = $(pkgdatadir)/model/
DONT_UNINSTALL_PPDS=true
else
-cups_modeldir = $(pkgdatadir)/model/gutenprint/@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@/
+cups_modeldir = $(pkgdatadir)/model/gutenprint/@GUTENPRINT_RELEASE_VERSION@/
endif
LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS) $(CUPS_CFLAGS) -DBASE_VERSION=$(BASE_VERSION)
@@ -52,7 +58,6 @@ STP_NONLS_ENV= STP_MODULE_PATH=$(top_builddir)/src/main/.libs:$(top_builddir)/sr
STP_ENV= $(STP_NONLS_ENV) STP_LOCALEDIR=$(top_srcdir)/src/cups/catalog
## Programs
-
if BUILD_TRANSLATED_CUPS_PPDS
if BUILD_GLOBALIZED_CUPS_PPDS
PPD = ppd-global
@@ -70,14 +75,27 @@ BUILD_SIMPLE_PPDS=-DGENERATE_SIMPLIFIED_PPDS
endif
if BUILD_CUPS_1_2
-cupsexec_driver_PROGRAMS = gutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+cupsexec_driver_PROGRAMS = gutenprint.@GUTENPRINT_RELEASE_VERSION@
endif
if BUILD_CUPS
bin_PROGRAMS = cups-calibrate
-sbin_PROGRAMS = cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+sbin_PROGRAMS = cups-genppd.@GUTENPRINT_RELEASE_VERSION@
sbin_SCRIPTS = cups-genppdupdate
-cupsexec_filter_PROGRAMS = rastertogutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ commandtoepson commandtocanon
+cupsexec_filter_PROGRAMS = rastertogutenprint.@GUTENPRINT_RELEASE_VERSION@ commandtoepson commandtocanon
+
+if BUILD_LIBUSB_BACKENDS
+cupsexec_backend_PROGRAMS = backend_gutenprint
+endif
+
+## CUPS backends require no world-execute permissions if they are to be
+## executed as root, and the backend must be run as root.
+## See http://www.cups.org/documentation.php/doc-1.6/man-backend.html
+if BUILD_LIBUSB_BACKENDS
+install-exec-hook:
+ mv $(DESTDIR)$(pkglibdir)/backend/backend_gutenprint "$(DESTDIR)$(pkglibdir)/backend/gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb"
+ chmod 700 "$(DESTDIR)$(pkglibdir)/backend/gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb"
+endif
TESTS= test-ppds test-rastertogutenprint
noinst_SCRIPTS=test-rastertogutenprint
@@ -96,19 +114,27 @@ commandtocanon_LDADD = $(CUPS_LIBS)
commandtoepson_SOURCES = commandtoepson.c
commandtoepson_LDADD = $(CUPS_LIBS)
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GENPPD_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
+if BUILD_LIBUSB_BACKENDS
+backend_gutenprint_SOURCES = selphy_print.c kodak1400_print.c kodak6800_print.c kodak605_print.c shinko_s2145_print.c sony_updr150_print.c dnpds40_print.c mitsu70x_print.c backend_common.c backend_common.h
+
+backend_gutenprint_LDADD = $(LIBUSB_LIBS)
+backend_gutenprint_CPPFLAGS = $(LIBUSB_CFLAGS) -DURI_PREFIX=\"gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb\"
+endif
+
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_SOURCES = genppd.c i18n.c i18n.h
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS = -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LDADD = $(CUPS_LIBS) $(GENPPD_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
+
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES = genppd.c i18n.c i18n.h
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES = rastertoprinter.c i18n.c i18n.h
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = rastertoprinter.c i18n.c i18n.h
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
## Data
@@ -130,8 +156,14 @@ if USE_NLS
PPD_NLS_1 = ppd-nls
endif
+if BUILD_LIBUSB_BACKENDS
+INSTALL_BLACKLIST=install-blacklist
+install-blacklist:
+ $(mkdir_p) $(DESTDIR)$(cupsdata_blacklistdir)
+ $(INSTALL_DATA) blacklist $(DESTDIR)$(cupsdata_blacklistdir)/net.sf.gimp-print.usb-quirks
+endif
-install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
+install-data-local: $(INSTALL_DATA_LOCAL_DEPS) $(INSTALL_BLACKLIST)
if test -n "$(CUPS_PKG)" -a -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
$(mkdir_p) $(DESTDIR)$(cups_modeldir); \
cd ppd ; \
@@ -152,7 +184,7 @@ install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
$(INSTALL_DATA) $$file "$(DESTDIR)$(localedir)/$$lang/gutenprint_$$lang.po"; \
done
-uninstall-local: $(INSTALL_DATA_LOCAL_DEPS)
+uninstall-local: $(INSTALL_DATA_LOCAL_DEPS) $(INSTALL_BLACKLIST)
# Remove PPDs installed in new PPD location
if test -z "DONT_UNINSTALL_PPDS" ; then \
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
@@ -163,6 +195,8 @@ uninstall-local: $(INSTALL_DATA_LOCAL_DEPS)
lang=`basename $$file .po`; \
$(RM) "$(DESTDIR)$(localedir)/$$lang/gutenprint_$$lang.po"; \
done
+ $(RM) -f "$(DESTDIR)$(cupsdata_blacklistdir)/net.sf.gimp-print.usb-quirks"
+ $(RM) -f "$(DESTDIR)$(pkglibdir)/backend/gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb"
install-data-hook:
# Remove unused directories in install tree
@@ -172,6 +206,8 @@ install-data-hook:
-rmdir $(DESTDIR)$(pkgdatadir)
-rmdir $(DESTDIR)$(cupsexec_driverdir)
-rmdir $(DESTDIR)$(cupsexec_filterdir)
+ -rmdir $(DESTDIR)$(cupsexec_backenddir)
+ -rmdir $(DESTDIR)$(cupsdata_blacklistdir)
-rmdir $(DESTDIR)$(bindir)
-rmdir $(DESTDIR)$(pkglibdir)
-rmdir $(DESTDIR)$(pkgsysconfdir)
@@ -179,13 +215,13 @@ install-data-hook:
-rmdir `dirname $(DESTDIR)$(pkglibdir)`
-rmdir `dirname $(DESTDIR)$(pkgsysconfdir)`
-.PHONY: ppd ppd-stamp-pre ppd-stamp-nonls ppd-stamp-nls ppd-stamp-phony ppd-catalog-clean ppd-clean
+.PHONY: ppd ppd-stamp-pre ppd-stamp-nonls ppd-stamp-nls ppd-stamp-phony ppd-catalog-clean ppd-clean $(INSTALL_BLACKLIST)
all-local: $(INSTALL_DATA_LOCAL_DEPS)
ppd: ppd-stamp
-ppd-stamp: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(top_srcdir)/src/xml/xml-stamp
+ppd-stamp: cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(top_srcdir)/src/xml/xml-stamp
$(MAKE) ppd-stamp-pre
$(MAKE) ppd-stamp-phony
touch ppd-stamp
@@ -193,10 +229,10 @@ ppd-stamp: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(t
ppd-stamp-phony: $(PPD)
ppd-catalog-clean:
- -$(RM) -r catalog
+ $(RM) -rf catalog
ppd-clean:
- -$(RM) -r ppd
+ $(RM) -rf ppd
ppd-stamp-pre: ppd-catalog-clean ppd-clean
@@ -208,32 +244,32 @@ ppd-catalog: ppd-catalog-clean
$(INSTALL_DATA) $$file "catalog/$$lang/gutenprint_$$lang.po"; \
done
-ppd-nonls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+ppd-nonls: cups-genppd.@GUTENPRINT_RELEASE_VERSION@
$(mkdir_p) ppd/C
$(MAKE) ppd-catalog-clean
- LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ $(EXTRA_GENPPD_OPTS) -l C -p ppd/C
+ LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ @WHICH_PPDS@ $(EXTRA_GENPPD_OPTS) -l C -p ppd/C
-ppd-global: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+ppd-global: cups-genppd.@GUTENPRINT_RELEASE_VERSION@
@echo "Global PPDs:"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global
$(MAKE) ppd-catalog-clean
-ppd-global-ln: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+ppd-global-ln: cups-genppd.@GUTENPRINT_RELEASE_VERSION@
@echo "Global PPDs (localized numbers for testing):"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global -N
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global -N
$(MAKE) ppd-catalog-clean
-ppd-nls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ppd-nonls
+ppd-nls: cups-genppd.@GUTENPRINT_RELEASE_VERSION@ ppd-nonls
$(mkdir_p) ppd
$(MAKE) ppd-catalog
- for language in `$(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ -L` ; do \
- mkdir ppd/$$language ; \
- echo "$$language:" ; \
- LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -l $$language -p ppd/$$language; \
+ for language in `$(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ -L` ; do \
+ $(mkdir_p) ppd/$$language ; \
+ echo -n "$$language: " ; \
+ LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -l $$language -p ppd/$$language; \
done
$(MAKE) ppd-catalog-clean
@@ -261,6 +297,7 @@ MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
COPYING \
README \
+ blacklist \
calibrate.ppm \
command.txt \
command.types \
diff --git a/src/cups/Makefile.in b/src/cups/Makefile.in
index 8f8309d..991e2cd 100644
--- a/src/cups/Makefile.in
+++ b/src/cups/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -23,6 +22,51 @@
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgincludedir = $(includedir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
@@ -39,16 +83,19 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = README $(srcdir)/Info.plist.in $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/cups-genppdupdate.in \
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(srcdir)/Info.plist.in $(srcdir)/cups-genppdupdate.in \
$(srcdir)/test-rastertogutenprint.in \
- $(top_srcdir)/scripts/global.mk COPYING
-@BUILD_CUPS_1_2_TRUE@cupsexec_driver_PROGRAMS = gutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT)
+ $(top_srcdir)/scripts/depcomp \
+ $(top_srcdir)/scripts/test-driver COPYING README
+@BUILD_CUPS_1_2_TRUE@cupsexec_driver_PROGRAMS = gutenprint.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT)
@BUILD_CUPS_TRUE@bin_PROGRAMS = cups-calibrate$(EXEEXT)
-@BUILD_CUPS_TRUE@sbin_PROGRAMS = cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT)
-@BUILD_CUPS_TRUE@cupsexec_filter_PROGRAMS = rastertogutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT) \
+@BUILD_CUPS_TRUE@sbin_PROGRAMS = cups-genppd.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT)
+@BUILD_CUPS_TRUE@cupsexec_filter_PROGRAMS = rastertogutenprint.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT) \
@BUILD_CUPS_TRUE@ commandtoepson$(EXEEXT) \
@BUILD_CUPS_TRUE@ commandtocanon$(EXEEXT)
+@BUILD_CUPS_TRUE@@BUILD_LIBUSB_BACKENDS_TRUE@cupsexec_backend_PROGRAMS = backend_gutenprint$(EXEEXT)
subdir = src/cups
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -70,15 +117,37 @@ CONFIG_CLEAN_FILES = Info.plist cups-genppdupdate \
test-rastertogutenprint
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(cupsexec_backenddir)" \
"$(DESTDIR)$(cupsexec_driverdir)" \
"$(DESTDIR)$(cupsexec_filterdir)" "$(DESTDIR)$(sbindir)" \
"$(DESTDIR)$(sbindir)" "$(DESTDIR)$(pkgdatadir)" \
"$(DESTDIR)$(pkgsysconfdir)"
-PROGRAMS = $(bin_PROGRAMS) $(cupsexec_driver_PROGRAMS) \
- $(cupsexec_filter_PROGRAMS) $(sbin_PROGRAMS)
+PROGRAMS = $(bin_PROGRAMS) $(cupsexec_backend_PROGRAMS) \
+ $(cupsexec_driver_PROGRAMS) $(cupsexec_filter_PROGRAMS) \
+ $(sbin_PROGRAMS)
+am__backend_gutenprint_SOURCES_DIST = selphy_print.c kodak1400_print.c \
+ kodak6800_print.c kodak605_print.c shinko_s2145_print.c \
+ sony_updr150_print.c dnpds40_print.c mitsu70x_print.c \
+ backend_common.c backend_common.h
+@BUILD_LIBUSB_BACKENDS_TRUE@am_backend_gutenprint_OBJECTS = backend_gutenprint-selphy_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-kodak1400_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-kodak6800_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-kodak605_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-shinko_s2145_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-sony_updr150_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-dnpds40_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-mitsu70x_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-backend_common.$(OBJEXT)
+backend_gutenprint_OBJECTS = $(am_backend_gutenprint_OBJECTS)
+am__DEPENDENCIES_1 =
+@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_DEPENDENCIES = \
+@BUILD_LIBUSB_BACKENDS_TRUE@ $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
am_commandtocanon_OBJECTS = commandtocanon.$(OBJEXT)
commandtocanon_OBJECTS = $(am_commandtocanon_OBJECTS)
-am__DEPENDENCIES_1 =
commandtocanon_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_commandtoepson_OBJECTS = commandtoepson.$(OBJEXT)
commandtoepson_OBJECTS = $(am_commandtoepson_OBJECTS)
@@ -86,39 +155,40 @@ commandtoepson_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_cups_calibrate_OBJECTS = cups-calibrate.$(OBJEXT)
cups_calibrate_OBJECTS = $(am_cups_calibrate_OBJECTS)
cups_calibrate_DEPENDENCIES =
-am_cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS = cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.$(OBJEXT) \
- cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.$(OBJEXT)
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS = $(am_cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS)
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES = \
+am_cups_genppd_@GUTENPRINT_RELEASE_VERSION@_OBJECTS = \
+ cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.$(OBJEXT) \
+ cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.$(OBJEXT)
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_OBJECTS = \
+ $(am_cups_genppd_@GUTENPRINT_RELEASE_VERSION@_OBJECTS)
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES = \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(GUTENPRINT_LIBS)
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK = \
- $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) \
- $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) \
- $(CFLAGS) \
- $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS) \
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) \
+ $(CFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS) \
$(LDFLAGS) -o $@
-am_gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS = gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.$(OBJEXT) \
- gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.$(OBJEXT)
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS = $(am_gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS)
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES = \
+am_gutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS = \
+ gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.$(OBJEXT) \
+ gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.$(OBJEXT)
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS = \
+ $(am_gutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS)
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES = \
$(am__DEPENDENCIES_1) $(GUTENPRINT_LIBS)
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK = \
- $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) \
- $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) \
- $(CFLAGS) \
- $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS) \
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) \
+ $(CFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS) \
$(LDFLAGS) -o $@
-am_rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS = \
+am_rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS = \
rastertoprinter.$(OBJEXT) i18n.$(OBJEXT)
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS = $(am_rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS)
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES = \
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS = \
+ $(am_rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS)
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES = \
$(am__DEPENDENCIES_1) $(GUTENPRINT_LIBS)
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK = \
- $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LINK = $(LIBTOOL) \
+ $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS) \
+ $(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS) \
$(LDFLAGS) -o $@
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
@@ -141,41 +211,267 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
SCRIPTS = $(noinst_SCRIPTS) $(sbin_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(commandtocanon_SOURCES) $(commandtoepson_SOURCES) \
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(backend_gutenprint_SOURCES) $(commandtocanon_SOURCES) \
+ $(commandtoepson_SOURCES) $(cups_calibrate_SOURCES) \
+ $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_SOURCES) \
+ $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES) \
+ $(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES)
+DIST_SOURCES = $(am__backend_gutenprint_SOURCES_DIST) \
+ $(commandtocanon_SOURCES) $(commandtoepson_SOURCES) \
$(cups_calibrate_SOURCES) \
- $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES) \
- $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES) \
- $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES)
-DIST_SOURCES = $(commandtocanon_SOURCES) $(commandtoepson_SOURCES) \
- $(cups_calibrate_SOURCES) \
- $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES) \
- $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES) \
- $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES)
+ $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_SOURCES) \
+ $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES) \
+ $(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(pkgdata_DATA) $(pkgsysconf_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/scripts/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/scripts/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
pkgdatadir = $(cups_conf_datadir)
pkglibdir = $(cups_conf_serverbin)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -233,6 +529,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -244,6 +541,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -268,6 +566,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -388,11 +688,13 @@ top_srcdir = @top_srcdir@
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS)
GUTENPRINTUI_LIBS = $(top_builddir)/src/gutenprintui/libgutenprintui.la
empty =
-BASE_VERSION = \"@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@.@GUTENPRINT_MICRO_VERSION@\"
+BASE_VERSION = \"@GUTENPRINT_BASE_VERSION@\"
pkgsysconfdir = $(cups_conf_serverroot)
cupsexec_driverdir = $(pkglibdir)/driver
cupsexec_filterdir = $(pkglibdir)/filter
-@CUPS_PPDS_AT_TOP_LEVEL_FALSE@cups_modeldir = $(pkgdatadir)/model/gutenprint/@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@/
+@BUILD_LIBUSB_BACKENDS_TRUE@cupsexec_backenddir = $(pkglibdir)/backend
+@BUILD_LIBUSB_BACKENDS_TRUE@cupsdata_blacklistdir = $(pkgdatadir)/usb/
+@CUPS_PPDS_AT_TOP_LEVEL_FALSE@cups_modeldir = $(pkgdatadir)/model/gutenprint/@GUTENPRINT_RELEASE_VERSION@/
@CUPS_PPDS_AT_TOP_LEVEL_TRUE@cups_modeldir = $(pkgdatadir)/model/
@CUPS_PPDS_AT_TOP_LEVEL_TRUE@DONT_UNINSTALL_PPDS = true
LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS) $(CUPS_CFLAGS) -DBASE_VERSION=$(BASE_VERSION)
@@ -414,29 +716,34 @@ commandtocanon_SOURCES = commandtocanon.c
commandtocanon_LDADD = $(CUPS_LIBS)
commandtoepson_SOURCES = commandtoepson.c
commandtoepson_LDADD = $(CUPS_LIBS)
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GENPPD_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = rastertoprinter.c i18n.c i18n.h
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
-rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
+@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_SOURCES = selphy_print.c kodak1400_print.c kodak6800_print.c kodak605_print.c shinko_s2145_print.c sony_updr150_print.c dnpds40_print.c mitsu70x_print.c backend_common.c backend_common.h
+@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_LDADD = $(LIBUSB_LIBS)
+@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_CPPFLAGS = $(LIBUSB_CFLAGS) -DURI_PREFIX=\"gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb\"
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_SOURCES = genppd.c i18n.c i18n.h
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS = -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LDADD = $(CUPS_LIBS) $(GENPPD_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES = genppd.c i18n.c i18n.h
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
+gutenprint_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_SOURCES = rastertoprinter.c i18n.c i18n.h
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
+rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
@BUILD_CUPS_TRUE@CUPS_PKG = calibrate.ppm
@BUILD_CUPS_TRUE@CUPS_CONF = command.types
pkgdata_DATA = $(CUPS_PKG)
pkgsysconf_DATA = $(CUPS_CONF)
@BUILD_CUPS_PPDS_TRUE@INSTALL_DATA_LOCAL_DEPS = ppd-stamp
@USE_NLS_TRUE@PPD_NLS_1 = ppd-nls
+@BUILD_LIBUSB_BACKENDS_TRUE@INSTALL_BLACKLIST = install-blacklist
CLEANFILES = ppd-stamp
DISTCLEANFILES = cups-genppdupdate
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
COPYING \
README \
+ blacklist \
calibrate.ppm \
command.txt \
command.types \
@@ -445,7 +752,7 @@ EXTRA_DIST = \
all: all-am
.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -467,6 +774,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -484,14 +792,19 @@ test-rastertogutenprint: $(top_builddir)/config.status $(srcdir)/test-rastertogu
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -512,7 +825,8 @@ uninstall-binPROGRAMS:
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -525,16 +839,70 @@ clean-binPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+install-cupsexec_backendPROGRAMS: $(cupsexec_backend_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(cupsexec_backend_PROGRAMS)'; test -n "$(cupsexec_backenddir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(cupsexec_backenddir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(cupsexec_backenddir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(cupsexec_backenddir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(cupsexec_backenddir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-cupsexec_backendPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(cupsexec_backend_PROGRAMS)'; test -n "$(cupsexec_backenddir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(cupsexec_backenddir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(cupsexec_backenddir)" && rm -f $$files
+
+clean-cupsexec_backendPROGRAMS:
+ @list='$(cupsexec_backend_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
install-cupsexec_driverPROGRAMS: $(cupsexec_driver_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(cupsexec_driverdir)" || $(MKDIR_P) "$(DESTDIR)$(cupsexec_driverdir)"
@list='$(cupsexec_driver_PROGRAMS)'; test -n "$(cupsexec_driverdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(cupsexec_driverdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(cupsexec_driverdir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -555,7 +923,8 @@ uninstall-cupsexec_driverPROGRAMS:
@list='$(cupsexec_driver_PROGRAMS)'; test -n "$(cupsexec_driverdir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(cupsexec_driverdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(cupsexec_driverdir)" && rm -f $$files
@@ -570,14 +939,19 @@ clean-cupsexec_driverPROGRAMS:
rm -f $$list
install-cupsexec_filterPROGRAMS: $(cupsexec_filter_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(cupsexec_filterdir)" || $(MKDIR_P) "$(DESTDIR)$(cupsexec_filterdir)"
@list='$(cupsexec_filter_PROGRAMS)'; test -n "$(cupsexec_filterdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(cupsexec_filterdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(cupsexec_filterdir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -598,7 +972,8 @@ uninstall-cupsexec_filterPROGRAMS:
@list='$(cupsexec_filter_PROGRAMS)'; test -n "$(cupsexec_filterdir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(cupsexec_filterdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(cupsexec_filterdir)" && rm -f $$files
@@ -613,14 +988,19 @@ clean-cupsexec_filterPROGRAMS:
rm -f $$list
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -641,7 +1021,8 @@ uninstall-sbinPROGRAMS:
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
@@ -654,28 +1035,41 @@ clean-sbinPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-commandtocanon$(EXEEXT): $(commandtocanon_OBJECTS) $(commandtocanon_DEPENDENCIES)
+
+backend_gutenprint$(EXEEXT): $(backend_gutenprint_OBJECTS) $(backend_gutenprint_DEPENDENCIES) $(EXTRA_backend_gutenprint_DEPENDENCIES)
+ @rm -f backend_gutenprint$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(backend_gutenprint_OBJECTS) $(backend_gutenprint_LDADD) $(LIBS)
+
+commandtocanon$(EXEEXT): $(commandtocanon_OBJECTS) $(commandtocanon_DEPENDENCIES) $(EXTRA_commandtocanon_DEPENDENCIES)
@rm -f commandtocanon$(EXEEXT)
- $(LINK) $(commandtocanon_OBJECTS) $(commandtocanon_LDADD) $(LIBS)
-commandtoepson$(EXEEXT): $(commandtoepson_OBJECTS) $(commandtoepson_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(commandtocanon_OBJECTS) $(commandtocanon_LDADD) $(LIBS)
+
+commandtoepson$(EXEEXT): $(commandtoepson_OBJECTS) $(commandtoepson_DEPENDENCIES) $(EXTRA_commandtoepson_DEPENDENCIES)
@rm -f commandtoepson$(EXEEXT)
- $(LINK) $(commandtoepson_OBJECTS) $(commandtoepson_LDADD) $(LIBS)
-cups-calibrate$(EXEEXT): $(cups_calibrate_OBJECTS) $(cups_calibrate_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(commandtoepson_OBJECTS) $(commandtoepson_LDADD) $(LIBS)
+
+cups-calibrate$(EXEEXT): $(cups_calibrate_OBJECTS) $(cups_calibrate_DEPENDENCIES) $(EXTRA_cups_calibrate_DEPENDENCIES)
@rm -f cups-calibrate$(EXEEXT)
- $(LINK) $(cups_calibrate_OBJECTS) $(cups_calibrate_LDADD) $(LIBS)
-cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT): $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES)
- @rm -f cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT)
- $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD) $(LIBS)
-gutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT): $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES)
- @rm -f gutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT)
- $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD) $(LIBS)
-rastertogutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT): $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES)
- @rm -f rastertogutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT)
- $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK) $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(cups_calibrate_OBJECTS) $(cups_calibrate_LDADD) $(LIBS)
+
+cups-genppd.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT): $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_OBJECTS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES) $(EXTRA_cups_genppd_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES)
+ @rm -f cups-genppd.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT)
+ $(AM_V_CCLD)$(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LINK) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_OBJECTS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_LDADD) $(LIBS)
+
+gutenprint.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT): $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES) $(EXTRA_gutenprint_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES)
+ @rm -f gutenprint.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT)
+ $(AM_V_CCLD)$(gutenprint_@GUTENPRINT_RELEASE_VERSION@_LINK) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_LDADD) $(LIBS)
+
+rastertogutenprint.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT): $(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS) $(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES) $(EXTRA_rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_DEPENDENCIES)
+ @rm -f rastertogutenprint.@GUTENPRINT_RELEASE_VERSION@$(EXEEXT)
+ $(AM_V_CCLD)$(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LINK) $(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_OBJECTS) $(rastertogutenprint_@GUTENPRINT_RELEASE_VERSION@_LDADD) $(LIBS)
install-sbinSCRIPTS: $(sbin_SCRIPTS)
@$(NORMAL_INSTALL)
- test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
@list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
@@ -703,9 +1097,7 @@ uninstall-sbinSCRIPTS:
@list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 's,.*/,,;$(transform)'`; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(sbindir)" && rm -f $$files
+ dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -713,92 +1105,227 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-backend_common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-dnpds40_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-kodak1400_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-kodak605_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-kodak6800_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-mitsu70x_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-selphy_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-shinko_s2145_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-sony_updr150_print.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commandtocanon.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commandtoepson.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cups-calibrate.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i18n.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rastertoprinter.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+backend_gutenprint-selphy_print.o: selphy_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-selphy_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-selphy_print.Tpo -c -o backend_gutenprint-selphy_print.o `test -f 'selphy_print.c' || echo '$(srcdir)/'`selphy_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-selphy_print.Tpo $(DEPDIR)/backend_gutenprint-selphy_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='selphy_print.c' object='backend_gutenprint-selphy_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-selphy_print.o `test -f 'selphy_print.c' || echo '$(srcdir)/'`selphy_print.c
+
+backend_gutenprint-selphy_print.obj: selphy_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-selphy_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-selphy_print.Tpo -c -o backend_gutenprint-selphy_print.obj `if test -f 'selphy_print.c'; then $(CYGPATH_W) 'selphy_print.c'; else $(CYGPATH_W) '$(srcdir)/selphy_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-selphy_print.Tpo $(DEPDIR)/backend_gutenprint-selphy_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='selphy_print.c' object='backend_gutenprint-selphy_print.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-selphy_print.obj `if test -f 'selphy_print.c'; then $(CYGPATH_W) 'selphy_print.c'; else $(CYGPATH_W) '$(srcdir)/selphy_print.c'; fi`
+
+backend_gutenprint-kodak1400_print.o: kodak1400_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-kodak1400_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-kodak1400_print.Tpo -c -o backend_gutenprint-kodak1400_print.o `test -f 'kodak1400_print.c' || echo '$(srcdir)/'`kodak1400_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-kodak1400_print.Tpo $(DEPDIR)/backend_gutenprint-kodak1400_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kodak1400_print.c' object='backend_gutenprint-kodak1400_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-kodak1400_print.o `test -f 'kodak1400_print.c' || echo '$(srcdir)/'`kodak1400_print.c
+
+backend_gutenprint-kodak1400_print.obj: kodak1400_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-kodak1400_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-kodak1400_print.Tpo -c -o backend_gutenprint-kodak1400_print.obj `if test -f 'kodak1400_print.c'; then $(CYGPATH_W) 'kodak1400_print.c'; else $(CYGPATH_W) '$(srcdir)/kodak1400_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-kodak1400_print.Tpo $(DEPDIR)/backend_gutenprint-kodak1400_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kodak1400_print.c' object='backend_gutenprint-kodak1400_print.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-kodak1400_print.obj `if test -f 'kodak1400_print.c'; then $(CYGPATH_W) 'kodak1400_print.c'; else $(CYGPATH_W) '$(srcdir)/kodak1400_print.c'; fi`
+
+backend_gutenprint-kodak6800_print.o: kodak6800_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-kodak6800_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-kodak6800_print.Tpo -c -o backend_gutenprint-kodak6800_print.o `test -f 'kodak6800_print.c' || echo '$(srcdir)/'`kodak6800_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-kodak6800_print.Tpo $(DEPDIR)/backend_gutenprint-kodak6800_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kodak6800_print.c' object='backend_gutenprint-kodak6800_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-kodak6800_print.o `test -f 'kodak6800_print.c' || echo '$(srcdir)/'`kodak6800_print.c
+
+backend_gutenprint-kodak6800_print.obj: kodak6800_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-kodak6800_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-kodak6800_print.Tpo -c -o backend_gutenprint-kodak6800_print.obj `if test -f 'kodak6800_print.c'; then $(CYGPATH_W) 'kodak6800_print.c'; else $(CYGPATH_W) '$(srcdir)/kodak6800_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-kodak6800_print.Tpo $(DEPDIR)/backend_gutenprint-kodak6800_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kodak6800_print.c' object='backend_gutenprint-kodak6800_print.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-kodak6800_print.obj `if test -f 'kodak6800_print.c'; then $(CYGPATH_W) 'kodak6800_print.c'; else $(CYGPATH_W) '$(srcdir)/kodak6800_print.c'; fi`
+
+backend_gutenprint-kodak605_print.o: kodak605_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-kodak605_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-kodak605_print.Tpo -c -o backend_gutenprint-kodak605_print.o `test -f 'kodak605_print.c' || echo '$(srcdir)/'`kodak605_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-kodak605_print.Tpo $(DEPDIR)/backend_gutenprint-kodak605_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kodak605_print.c' object='backend_gutenprint-kodak605_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-kodak605_print.o `test -f 'kodak605_print.c' || echo '$(srcdir)/'`kodak605_print.c
+
+backend_gutenprint-kodak605_print.obj: kodak605_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-kodak605_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-kodak605_print.Tpo -c -o backend_gutenprint-kodak605_print.obj `if test -f 'kodak605_print.c'; then $(CYGPATH_W) 'kodak605_print.c'; else $(CYGPATH_W) '$(srcdir)/kodak605_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-kodak605_print.Tpo $(DEPDIR)/backend_gutenprint-kodak605_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kodak605_print.c' object='backend_gutenprint-kodak605_print.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-kodak605_print.obj `if test -f 'kodak605_print.c'; then $(CYGPATH_W) 'kodak605_print.c'; else $(CYGPATH_W) '$(srcdir)/kodak605_print.c'; fi`
+
+backend_gutenprint-shinko_s2145_print.o: shinko_s2145_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-shinko_s2145_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-shinko_s2145_print.Tpo -c -o backend_gutenprint-shinko_s2145_print.o `test -f 'shinko_s2145_print.c' || echo '$(srcdir)/'`shinko_s2145_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-shinko_s2145_print.Tpo $(DEPDIR)/backend_gutenprint-shinko_s2145_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shinko_s2145_print.c' object='backend_gutenprint-shinko_s2145_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-shinko_s2145_print.o `test -f 'shinko_s2145_print.c' || echo '$(srcdir)/'`shinko_s2145_print.c
+
+backend_gutenprint-shinko_s2145_print.obj: shinko_s2145_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-shinko_s2145_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-shinko_s2145_print.Tpo -c -o backend_gutenprint-shinko_s2145_print.obj `if test -f 'shinko_s2145_print.c'; then $(CYGPATH_W) 'shinko_s2145_print.c'; else $(CYGPATH_W) '$(srcdir)/shinko_s2145_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-shinko_s2145_print.Tpo $(DEPDIR)/backend_gutenprint-shinko_s2145_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shinko_s2145_print.c' object='backend_gutenprint-shinko_s2145_print.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-shinko_s2145_print.obj `if test -f 'shinko_s2145_print.c'; then $(CYGPATH_W) 'shinko_s2145_print.c'; else $(CYGPATH_W) '$(srcdir)/shinko_s2145_print.c'; fi`
+
+backend_gutenprint-sony_updr150_print.o: sony_updr150_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-sony_updr150_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-sony_updr150_print.Tpo -c -o backend_gutenprint-sony_updr150_print.o `test -f 'sony_updr150_print.c' || echo '$(srcdir)/'`sony_updr150_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-sony_updr150_print.Tpo $(DEPDIR)/backend_gutenprint-sony_updr150_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sony_updr150_print.c' object='backend_gutenprint-sony_updr150_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-sony_updr150_print.o `test -f 'sony_updr150_print.c' || echo '$(srcdir)/'`sony_updr150_print.c
+
+backend_gutenprint-sony_updr150_print.obj: sony_updr150_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-sony_updr150_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-sony_updr150_print.Tpo -c -o backend_gutenprint-sony_updr150_print.obj `if test -f 'sony_updr150_print.c'; then $(CYGPATH_W) 'sony_updr150_print.c'; else $(CYGPATH_W) '$(srcdir)/sony_updr150_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-sony_updr150_print.Tpo $(DEPDIR)/backend_gutenprint-sony_updr150_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sony_updr150_print.c' object='backend_gutenprint-sony_updr150_print.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-sony_updr150_print.obj `if test -f 'sony_updr150_print.c'; then $(CYGPATH_W) 'sony_updr150_print.c'; else $(CYGPATH_W) '$(srcdir)/sony_updr150_print.c'; fi`
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o: genppd.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='genppd.c' object='cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o' libtool=no @AMDEPBACKSLASH@
+backend_gutenprint-dnpds40_print.o: dnpds40_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-dnpds40_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-dnpds40_print.Tpo -c -o backend_gutenprint-dnpds40_print.o `test -f 'dnpds40_print.c' || echo '$(srcdir)/'`dnpds40_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-dnpds40_print.Tpo $(DEPDIR)/backend_gutenprint-dnpds40_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnpds40_print.c' object='backend_gutenprint-dnpds40_print.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-dnpds40_print.o `test -f 'dnpds40_print.c' || echo '$(srcdir)/'`dnpds40_print.c
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj: genppd.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='genppd.c' object='cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj' libtool=no @AMDEPBACKSLASH@
+backend_gutenprint-dnpds40_print.obj: dnpds40_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-dnpds40_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-dnpds40_print.Tpo -c -o backend_gutenprint-dnpds40_print.obj `if test -f 'dnpds40_print.c'; then $(CYGPATH_W) 'dnpds40_print.c'; else $(CYGPATH_W) '$(srcdir)/dnpds40_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-dnpds40_print.Tpo $(DEPDIR)/backend_gutenprint-dnpds40_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dnpds40_print.c' object='backend_gutenprint-dnpds40_print.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-dnpds40_print.obj `if test -f 'dnpds40_print.c'; then $(CYGPATH_W) 'dnpds40_print.c'; else $(CYGPATH_W) '$(srcdir)/dnpds40_print.c'; fi`
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o: i18n.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18n.c' object='cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o' libtool=no @AMDEPBACKSLASH@
+backend_gutenprint-mitsu70x_print.o: mitsu70x_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-mitsu70x_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-mitsu70x_print.Tpo -c -o backend_gutenprint-mitsu70x_print.o `test -f 'mitsu70x_print.c' || echo '$(srcdir)/'`mitsu70x_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-mitsu70x_print.Tpo $(DEPDIR)/backend_gutenprint-mitsu70x_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mitsu70x_print.c' object='backend_gutenprint-mitsu70x_print.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-mitsu70x_print.o `test -f 'mitsu70x_print.c' || echo '$(srcdir)/'`mitsu70x_print.c
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj: i18n.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18n.c' object='cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj' libtool=no @AMDEPBACKSLASH@
+backend_gutenprint-mitsu70x_print.obj: mitsu70x_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-mitsu70x_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-mitsu70x_print.Tpo -c -o backend_gutenprint-mitsu70x_print.obj `if test -f 'mitsu70x_print.c'; then $(CYGPATH_W) 'mitsu70x_print.c'; else $(CYGPATH_W) '$(srcdir)/mitsu70x_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-mitsu70x_print.Tpo $(DEPDIR)/backend_gutenprint-mitsu70x_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mitsu70x_print.c' object='backend_gutenprint-mitsu70x_print.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-mitsu70x_print.obj `if test -f 'mitsu70x_print.c'; then $(CYGPATH_W) 'mitsu70x_print.c'; else $(CYGPATH_W) '$(srcdir)/mitsu70x_print.c'; fi`
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o: genppd.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='genppd.c' object='gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o' libtool=no @AMDEPBACKSLASH@
+backend_gutenprint-backend_common.o: backend_common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-backend_common.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-backend_common.Tpo -c -o backend_gutenprint-backend_common.o `test -f 'backend_common.c' || echo '$(srcdir)/'`backend_common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-backend_common.Tpo $(DEPDIR)/backend_gutenprint-backend_common.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backend_common.c' object='backend_gutenprint-backend_common.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-backend_common.o `test -f 'backend_common.c' || echo '$(srcdir)/'`backend_common.c
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj: genppd.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='genppd.c' object='gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj' libtool=no @AMDEPBACKSLASH@
+backend_gutenprint-backend_common.obj: backend_common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-backend_common.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-backend_common.Tpo -c -o backend_gutenprint-backend_common.obj `if test -f 'backend_common.c'; then $(CYGPATH_W) 'backend_common.c'; else $(CYGPATH_W) '$(srcdir)/backend_common.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-backend_common.Tpo $(DEPDIR)/backend_gutenprint-backend_common.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backend_common.c' object='backend_gutenprint-backend_common.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-backend_common.obj `if test -f 'backend_common.c'; then $(CYGPATH_W) 'backend_common.c'; else $(CYGPATH_W) '$(srcdir)/backend_common.c'; fi`
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o: i18n.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18n.c' object='gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o' libtool=no @AMDEPBACKSLASH@
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o: genppd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='genppd.c' object='cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj: i18n.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18n.c' object='gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj' libtool=no @AMDEPBACKSLASH@
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.obj: genppd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.obj -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='genppd.c' object='cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
+
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.o: i18n.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.o -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='i18n.c' object='cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
+
+cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.obj: i18n.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.obj -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='i18n.c' object='cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
+
+gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.o: genppd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.o -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='genppd.c' object='gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
+
+gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.obj: genppd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.obj -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='genppd.c' object='gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-genppd.obj `if test -f 'genppd.c'; then $(CYGPATH_W) 'genppd.c'; else $(CYGPATH_W) '$(srcdir)/genppd.c'; fi`
+
+gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.o: i18n.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.o -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='i18n.c' object='gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.o `test -f 'i18n.c' || echo '$(srcdir)/'`i18n.c
+
+gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.obj: i18n.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.obj -MD -MP -MF $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.Tpo $(DEPDIR)/gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='i18n.c' object='gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gutenprint_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -c -o gutenprint_@GUTENPRINT_RELEASE_VERSION@-i18n.obj `if test -f 'i18n.c'; then $(CYGPATH_W) 'i18n.c'; else $(CYGPATH_W) '$(srcdir)/i18n.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
@@ -807,8 +1334,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgdataDATA: $(pkgdata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -822,13 +1352,14 @@ uninstall-pkgdataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
+ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
install-pkgsysconfDATA: $(pkgsysconf_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgsysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgsysconfdir)"
@list='$(pkgsysconf_DATA)'; test -n "$(pkgsysconfdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgsysconfdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgsysconfdir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -842,30 +1373,17 @@ uninstall-pkgsysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgsysconf_DATA)'; test -n "$(pkgsysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgsysconfdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgsysconfdir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ dir='$(DESTDIR)$(pkgsysconfdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -877,15 +1395,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -894,101 +1408,194 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- $(am__tty_colors); \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- col=$$red; res=XPASS; \
- ;; \
- *) \
- col=$$grn; res=PASS; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xfail=`expr $$xfail + 1`; \
- col=$$lgn; res=XFAIL; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- col=$$red; res=FAIL; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- col=$$blu; res=SKIP; \
- fi; \
- echo "$${col}$$res$${std}: $$tst"; \
- done; \
- if test "$$all" -eq 1; then \
- tests="test"; \
- All=""; \
- else \
- tests="tests"; \
- All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
fi; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="$$All$$all $$tests passed"; \
- else \
- if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
- banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all $$tests failed"; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ else \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
else \
- if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
- banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- if test "$$skip" -eq 1; then \
- skipped="($$skip test was not run)"; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
else \
- skipped="($$skip tests were not run)"; \
+ color_start= color_end=; \
fi; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- if test "$$failed" -eq 0; then \
- echo "$$grn$$dashes"; \
- else \
- echo "$$red$$dashes"; \
- fi; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes$$std"; \
- test "$$failed" -eq 0; \
- else :; fi
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+test-ppds.log: test-ppds
+ @p='test-ppds'; \
+ b='test-ppds'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-rastertogutenprint.log: test-rastertogutenprint
+ @p='test-rastertogutenprint'; \
+ b='test-rastertogutenprint'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1028,7 +1635,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) all-local
installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(cupsexec_driverdir)" "$(DESTDIR)$(cupsexec_filterdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkgsysconfdir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(cupsexec_backenddir)" "$(DESTDIR)$(cupsexec_driverdir)" "$(DESTDIR)$(cupsexec_filterdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkgsysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -1041,11 +1648,19 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -1059,11 +1674,14 @@ maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+@BUILD_CUPS_FALSE@install-exec-hook:
+@BUILD_LIBUSB_BACKENDS_FALSE@install-exec-hook:
clean: clean-am
-clean-am: clean-binPROGRAMS clean-cupsexec_driverPROGRAMS \
- clean-cupsexec_filterPROGRAMS clean-generic clean-libtool \
- clean-local clean-sbinPROGRAMS mostlyclean-am
+clean-am: clean-binPROGRAMS clean-cupsexec_backendPROGRAMS \
+ clean-cupsexec_driverPROGRAMS clean-cupsexec_filterPROGRAMS \
+ clean-generic clean-libtool clean-local clean-sbinPROGRAMS \
+ mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -1091,10 +1709,12 @@ install-dvi: install-dvi-am
install-dvi-am:
-install-exec-am: install-binPROGRAMS install-cupsexec_driverPROGRAMS \
+install-exec-am: install-binPROGRAMS install-cupsexec_backendPROGRAMS \
+ install-cupsexec_driverPROGRAMS \
install-cupsexec_filterPROGRAMS install-sbinPROGRAMS \
install-sbinSCRIPTS
-
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
install-html: install-html-am
install-html-am:
@@ -1133,32 +1753,37 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-binPROGRAMS uninstall-cupsexec_driverPROGRAMS \
+uninstall-am: uninstall-binPROGRAMS uninstall-cupsexec_backendPROGRAMS \
+ uninstall-cupsexec_driverPROGRAMS \
uninstall-cupsexec_filterPROGRAMS uninstall-local \
uninstall-pkgdataDATA uninstall-pkgsysconfDATA \
uninstall-sbinPROGRAMS uninstall-sbinSCRIPTS
-.MAKE: check-am install-am install-data-am install-strip
+.MAKE: check-am install-am install-data-am install-exec-am \
+ install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-TESTS check-am \
- clean clean-binPROGRAMS clean-cupsexec_driverPROGRAMS \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-TESTS \
+ check-am clean clean-binPROGRAMS \
+ clean-cupsexec_backendPROGRAMS clean-cupsexec_driverPROGRAMS \
clean-cupsexec_filterPROGRAMS clean-generic clean-libtool \
- clean-local clean-sbinPROGRAMS ctags dist-hook distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-binPROGRAMS \
+ clean-local clean-sbinPROGRAMS cscopelist-am ctags ctags-am \
+ dist-hook distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ install-cupsexec_backendPROGRAMS \
install-cupsexec_driverPROGRAMS \
install-cupsexec_filterPROGRAMS install-data install-data-am \
install-data-hook install-data-local install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgdataDATA \
+ install-dvi-am install-exec install-exec-am install-exec-hook \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-pkgdataDATA \
install-pkgsysconfDATA install-ps install-ps-am \
install-sbinPROGRAMS install-sbinSCRIPTS install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-binPROGRAMS \
+ recheck tags tags-am uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-cupsexec_backendPROGRAMS \
uninstall-cupsexec_driverPROGRAMS \
uninstall-cupsexec_filterPROGRAMS uninstall-local \
uninstall-pkgdataDATA uninstall-pkgsysconfDATA \
@@ -1181,7 +1806,14 @@ $(top_builddir)/src/gutenprintui2/libgutenprintui2.la:
cd $(top_builddir)/src/gutenprintui2; \
$(MAKE)
-install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
+@BUILD_CUPS_TRUE@@BUILD_LIBUSB_BACKENDS_TRUE@install-exec-hook:
+@BUILD_CUPS_TRUE@@BUILD_LIBUSB_BACKENDS_TRUE@ mv $(DESTDIR)$(pkglibdir)/backend/backend_gutenprint "$(DESTDIR)$(pkglibdir)/backend/gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb"
+@BUILD_CUPS_TRUE@@BUILD_LIBUSB_BACKENDS_TRUE@ chmod 700 "$(DESTDIR)$(pkglibdir)/backend/gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb"
+@BUILD_LIBUSB_BACKENDS_TRUE@install-blacklist:
+@BUILD_LIBUSB_BACKENDS_TRUE@ $(mkdir_p) $(DESTDIR)$(cupsdata_blacklistdir)
+@BUILD_LIBUSB_BACKENDS_TRUE@ $(INSTALL_DATA) blacklist $(DESTDIR)$(cupsdata_blacklistdir)/net.sf.gimp-print.usb-quirks
+
+install-data-local: $(INSTALL_DATA_LOCAL_DEPS) $(INSTALL_BLACKLIST)
if test -n "$(CUPS_PKG)" -a -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
$(mkdir_p) $(DESTDIR)$(cups_modeldir); \
cd ppd ; \
@@ -1202,7 +1834,7 @@ install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
$(INSTALL_DATA) $$file "$(DESTDIR)$(localedir)/$$lang/gutenprint_$$lang.po"; \
done
-uninstall-local: $(INSTALL_DATA_LOCAL_DEPS)
+uninstall-local: $(INSTALL_DATA_LOCAL_DEPS) $(INSTALL_BLACKLIST)
# Remove PPDs installed in new PPD location
if test -z "DONT_UNINSTALL_PPDS" ; then \
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
@@ -1213,6 +1845,8 @@ uninstall-local: $(INSTALL_DATA_LOCAL_DEPS)
lang=`basename $$file .po`; \
$(RM) "$(DESTDIR)$(localedir)/$$lang/gutenprint_$$lang.po"; \
done
+ $(RM) -f "$(DESTDIR)$(cupsdata_blacklistdir)/net.sf.gimp-print.usb-quirks"
+ $(RM) -f "$(DESTDIR)$(pkglibdir)/backend/gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb"
install-data-hook:
# Remove unused directories in install tree
@@ -1222,6 +1856,8 @@ install-data-hook:
-rmdir $(DESTDIR)$(pkgdatadir)
-rmdir $(DESTDIR)$(cupsexec_driverdir)
-rmdir $(DESTDIR)$(cupsexec_filterdir)
+ -rmdir $(DESTDIR)$(cupsexec_backenddir)
+ -rmdir $(DESTDIR)$(cupsdata_blacklistdir)
-rmdir $(DESTDIR)$(bindir)
-rmdir $(DESTDIR)$(pkglibdir)
-rmdir $(DESTDIR)$(pkgsysconfdir)
@@ -1229,13 +1865,13 @@ install-data-hook:
-rmdir `dirname $(DESTDIR)$(pkglibdir)`
-rmdir `dirname $(DESTDIR)$(pkgsysconfdir)`
-.PHONY: ppd ppd-stamp-pre ppd-stamp-nonls ppd-stamp-nls ppd-stamp-phony ppd-catalog-clean ppd-clean
+.PHONY: ppd ppd-stamp-pre ppd-stamp-nonls ppd-stamp-nls ppd-stamp-phony ppd-catalog-clean ppd-clean $(INSTALL_BLACKLIST)
all-local: $(INSTALL_DATA_LOCAL_DEPS)
ppd: ppd-stamp
-ppd-stamp: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(top_srcdir)/src/xml/xml-stamp
+ppd-stamp: cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(top_srcdir)/src/xml/xml-stamp
$(MAKE) ppd-stamp-pre
$(MAKE) ppd-stamp-phony
touch ppd-stamp
@@ -1243,10 +1879,10 @@ ppd-stamp: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(t
ppd-stamp-phony: $(PPD)
ppd-catalog-clean:
- -$(RM) -r catalog
+ $(RM) -rf catalog
ppd-clean:
- -$(RM) -r ppd
+ $(RM) -rf ppd
ppd-stamp-pre: ppd-catalog-clean ppd-clean
@@ -1258,32 +1894,32 @@ ppd-catalog: ppd-catalog-clean
$(INSTALL_DATA) $$file "catalog/$$lang/gutenprint_$$lang.po"; \
done
-ppd-nonls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+ppd-nonls: cups-genppd.@GUTENPRINT_RELEASE_VERSION@
$(mkdir_p) ppd/C
$(MAKE) ppd-catalog-clean
- LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ $(EXTRA_GENPPD_OPTS) -l C -p ppd/C
+ LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ @WHICH_PPDS@ $(EXTRA_GENPPD_OPTS) -l C -p ppd/C
-ppd-global: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+ppd-global: cups-genppd.@GUTENPRINT_RELEASE_VERSION@
@echo "Global PPDs:"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global
$(MAKE) ppd-catalog-clean
-ppd-global-ln: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
+ppd-global-ln: cups-genppd.@GUTENPRINT_RELEASE_VERSION@
@echo "Global PPDs (localized numbers for testing):"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global -N
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global -N
$(MAKE) ppd-catalog-clean
-ppd-nls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ppd-nonls
+ppd-nls: cups-genppd.@GUTENPRINT_RELEASE_VERSION@ ppd-nonls
$(mkdir_p) ppd
$(MAKE) ppd-catalog
- for language in `$(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ -L` ; do \
- mkdir ppd/$$language ; \
- echo "$$language:" ; \
- LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -l $$language -p ppd/$$language; \
+ for language in `$(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ -L` ; do \
+ $(mkdir_p) ppd/$$language ; \
+ echo -n "$$language: " ; \
+ LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_RELEASE_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -l $$language -p ppd/$$language; \
done
$(MAKE) ppd-catalog-clean
diff --git a/src/cups/backend_common.c b/src/cups/backend_common.c
new file mode 100644
index 0000000..1139e12
--- /dev/null
+++ b/src/cups/backend_common.c
@@ -0,0 +1,863 @@
+/*
+ * CUPS Backend common code
+ *
+ * Copyright (c) 2007-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include "backend_common.h"
+
+#define BACKEND_VERSION "0.42G"
+#ifndef URI_PREFIX
+#error "Must Define URI_PREFIX"
+#endif
+
+/* Global variables */
+int dyesub_debug = 0;
+int extra_vid = -1;
+int extra_pid = -1;
+int extra_type = -1;
+char *use_serno = NULL;
+
+/* Support Functions */
+
+#define ID_BUF_SIZE 2048
+static char *get_device_id(struct libusb_device_handle *dev)
+{
+ int length;
+ int iface = 0;
+ char *buf = malloc(ID_BUF_SIZE + 1);
+
+ if (libusb_kernel_driver_active(dev, iface))
+ libusb_detach_kernel_driver(dev, iface);
+
+ libusb_claim_interface(dev, iface);
+
+ if (libusb_control_transfer(dev,
+ LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_ENDPOINT_IN |
+ LIBUSB_RECIPIENT_INTERFACE,
+ 0, 0,
+ (iface << 8),
+ (unsigned char *)buf, ID_BUF_SIZE, 5000) < 0)
+ {
+ *buf = '\0';
+ goto done;
+ }
+
+ /* length is the first two bytes, MSB first */
+ length = (((unsigned)buf[0] & 255) << 8) |
+ ((unsigned)buf[1] & 255);
+
+ /* Sanity checks */
+ if (length > ID_BUF_SIZE || length < 14)
+ length = (((unsigned)buf[1] & 255) << 8) |
+ ((unsigned)buf[0] & 255);
+
+ if (length > ID_BUF_SIZE)
+ length = ID_BUF_SIZE;
+
+ if (length < 14) {
+ *buf = '\0';
+ goto done;
+ }
+
+ /* Move, and terminate */
+ memmove(buf, buf + 2, length);
+ buf[length] = '\0';
+
+done:
+ libusb_release_interface(dev, iface);
+
+ return buf;
+}
+
+int read_data(struct libusb_device_handle *dev, uint8_t endp,
+ uint8_t *buf, int buflen, int *readlen)
+{
+ int ret;
+
+ /* Clear buffer */
+ memset(buf, 0, buflen);
+
+ ret = libusb_bulk_transfer(dev, endp,
+ buf,
+ buflen,
+ readlen,
+ 10000);
+
+ if (ret < 0) {
+ ERROR("Failure to receive data from printer (libusb error %d: (%d/%d from 0x%02x))\n", ret, *readlen, buflen, endp);
+ goto done;
+ }
+
+ if (dyesub_debug) {
+ int i;
+ DEBUG("<- ");
+ for (i = 0 ; i < *readlen; i++) {
+ DEBUG2("%02x ", *(buf+i));
+ }
+ DEBUG2("\n");
+ }
+
+done:
+ return ret;
+}
+
+int send_data(struct libusb_device_handle *dev, uint8_t endp,
+ uint8_t *buf, int len)
+{
+ int num = 0;
+
+ if (dyesub_debug) {
+ DEBUG("Sending %d bytes to printer\n", len);
+ }
+
+ while (len) {
+ int len2 = (len > 65536) ? 65536: len;
+ int ret = libusb_bulk_transfer(dev, endp,
+ buf, len2,
+ &num, 15000);
+
+ if (dyesub_debug) {
+ int i;
+ DEBUG("-> ");
+ for (i = 0 ; i < len2; i++) {
+ DEBUG2("%02x ", *(buf+i));
+ }
+ DEBUG2("\n");
+ }
+
+ if (ret < 0) {
+ ERROR("Failure to send data to printer (libusb error %d: (%d/%d to 0x%02x))\n", ret, num, len, endp);
+ return ret;
+ }
+ len -= num;
+ buf += num;
+ }
+
+ return 0;
+}
+
+int terminate = 0;
+
+static void sigterm_handler(int signum) {
+ UNUSED(signum);
+
+ terminate = 1;
+ INFO("Job Cancelled");
+}
+
+static char *sanitize_string(char *str) {
+ int len = strlen(str);
+
+ while(len && (str[len-1] <= 0x20)) {
+ str[len-1] = 0;
+ len--;
+ }
+ return str;
+}
+
+/*
+
+ These functions are Public Domain code obtained from:
+
+ http://www.geekhideout.com/urlcode.shtml
+
+*/
+#include <ctype.h> /* for isalnum() */
+static char to_hex(char code) {
+ static const char hex[] = "0123456789abcdef";
+ return hex[code & 15];
+}
+static char from_hex(char ch) {
+ return isdigit(ch) ? ch - '0' : tolower(ch) - 'a' + 10;
+}
+/* Note -- caller must free returned pointer! */
+static char *url_encode(char *str) {
+ char *pstr = str, *buf = malloc(strlen(str) * 3 + 1), *pbuf = buf;
+
+ while (*pstr) {
+ if (isalnum(*pstr) || *pstr == '-' || *pstr == '_' || *pstr == '.' || *pstr == '~')
+ *pbuf++ = *pstr;
+ else if (*pstr == ' ')
+ *pbuf++ = '+';
+ else
+ *pbuf++ = '%', *pbuf++ = to_hex(*pstr >> 4), *pbuf++ = to_hex(*pstr & 15);
+ pstr++;
+ }
+ *pbuf = '\0';
+ return buf;
+}
+static char *url_decode(char *str) {
+ char *pstr = str, *buf = malloc(strlen(str) + 1), *pbuf = buf;
+ while (*pstr) {
+ if (*pstr == '%') {
+ if (pstr[1] && pstr[2]) {
+ *pbuf++ = from_hex(pstr[1]) << 4 | from_hex(pstr[2]);
+ pstr += 2;
+ }
+ } else if (*pstr == '+') {
+ *pbuf++ = ' ';
+ } else {
+ *pbuf++ = *pstr;
+ }
+ pstr++;
+ }
+ *pbuf = '\0';
+ return buf;
+}
+
+/* And now back to our regularly-scheduled programming */
+
+static int print_scan_output(struct libusb_device *device,
+ struct libusb_device_descriptor *desc,
+ char *prefix, char *manuf2,
+ int found, int match,
+ int scan_only, char *match_serno,
+ struct dyesub_backend *backend)
+{
+ struct libusb_device_handle *dev;
+
+ char buf[256];
+ char *product = NULL, *serial = NULL, *manuf = NULL;
+
+ if (libusb_open(device, &dev)) {
+ ERROR("Could not open device %04x:%04x (need to be root?)\n", desc->idVendor, desc->idProduct);
+ found = -1;
+ goto abort;
+ }
+
+ /* Query detailed info */
+ if (desc->iManufacturer) {
+ libusb_get_string_descriptor_ascii(dev, desc->iManufacturer, (unsigned char*)buf, STR_LEN_MAX);
+ sanitize_string(buf);
+ manuf = url_encode(buf);
+ }
+ buf[0] = 0;
+ if (desc->iProduct) {
+ libusb_get_string_descriptor_ascii(dev, desc->iProduct, (unsigned char *)buf, STR_LEN_MAX);
+ sanitize_string(buf);
+ product = url_encode(buf);
+ }
+ buf[0] = 0;
+ if (desc->iSerialNumber) {
+ libusb_get_string_descriptor_ascii(dev, desc->iSerialNumber, (unsigned char*)buf, STR_LEN_MAX);
+ sanitize_string(buf);
+ } else if (backend->query_serno) {
+ /* XXX this is ... a cut-n-paste hack */
+
+ int iface = 0;
+ struct libusb_config_descriptor *config;
+
+ if (libusb_kernel_driver_active(dev, iface))
+ libusb_detach_kernel_driver(dev, iface);
+
+ /* If we fail to claim the printer, it's already in use
+ so we should just skip over it... */
+ if (!libusb_claim_interface(dev, iface)) {
+ int i;
+ uint8_t endp_up, endp_down;
+ libusb_get_active_config_descriptor(device, &config);
+ for (i = 0 ; i < config->interface[0].altsetting[0].bNumEndpoints ; i++) {
+ if ((config->interface[0].altsetting[0].endpoint[i].bmAttributes & 3) == LIBUSB_TRANSFER_TYPE_BULK) {
+ if (config->interface[0].altsetting[0].endpoint[i].bEndpointAddress & LIBUSB_ENDPOINT_IN)
+ endp_up = config->interface[0].altsetting[0].endpoint[i].bEndpointAddress;
+ else
+ endp_down = config->interface[0].altsetting[0].endpoint[i].bEndpointAddress;
+ }
+ }
+
+ /* Ignore result since a failure isn't critical here */
+ backend->query_serno(dev, endp_up, endp_down, buf, STR_LEN_MAX);
+ libusb_release_interface(dev, iface);
+ }
+ }
+
+ if (!strlen(buf)) {
+ WARNING("**** THIS PRINTER DOES NOT REPORT A SERIAL NUMBER!\n");
+ WARNING("**** If you intend to use multiple printers of this typpe, you\n");
+ WARNING("**** must only plug one in at a time or unexpected behaivor will occur!\n");
+ serial = strdup("NONE_UNKNOWN");
+ } else {
+ serial = url_encode(buf);
+ }
+
+ if (dyesub_debug)
+ DEBUG("%sVID: %04X PID: %04X Manuf: '%s' Product: '%s' Serial: '%s'\n",
+ match ? "MATCH: " : "",
+ desc->idVendor, desc->idProduct, manuf, product, serial);
+
+ if (scan_only) {
+ int j = 0, k = 0;
+ char *ieee_id = get_device_id(dev);
+ char *product2 = url_decode(product);
+
+ /* URLify the manuf and model strings */
+ if (strlen(manuf2))
+ strncpy(buf, manuf2, sizeof(buf) - 2);
+ else
+ strncpy(buf, manuf, sizeof(buf) - 2);
+ k = strlen(buf);
+ buf[k++] = '/';
+ buf[k] = 0;
+
+ j = (manuf2 && strlen(manuf2)) ? strlen(manuf2) + 1 : 0;
+ strncpy(buf + k, product + j, sizeof(buf)-k);
+
+ fprintf(stdout, "direct %s://%s?serial=%s&backend=%s \"%s\" \"%s\" \"%s\" \"\"\n",
+ prefix, buf, serial, backend->uri_prefix,
+ product2, product2,
+ ieee_id? ieee_id : "");
+
+ if (ieee_id)
+ free(ieee_id);
+ if (product2)
+ free(product2);
+ }
+
+ /* If a serial number was passed down, use it. */
+ if (match_serno && strcmp(match_serno, (char*)serial)) {
+ found = -1;
+ }
+
+ /* Free things up */
+ if(serial) free(serial);
+ if(manuf) free(manuf);
+ if(product) free(product);
+
+ libusb_close(dev);
+abort:
+
+ return found;
+}
+
+static struct dyesub_backend *backends[] = {
+ &canonselphy_backend,
+ &kodak6800_backend,
+ &kodak605_backend,
+ &kodak1400_backend,
+ &shinkos2145_backend,
+ &updr150_backend,
+ &mitsu70x_backend,
+ &dnpds40_backend,
+ NULL,
+};
+
+static int find_and_enumerate(struct libusb_context *ctx,
+ struct libusb_device ***list,
+ struct dyesub_backend *backend,
+ char *match_serno,
+ int printer_type,
+ int scan_only)
+{
+ int num;
+ int i, j, k;
+ int found = -1;
+
+ /* Enumerate and find suitable device */
+ num = libusb_get_device_list(ctx, list);
+
+ for (i = 0 ; i < num ; i++) {
+ struct libusb_device_descriptor desc;
+ int match = 0;
+ libusb_get_device_descriptor((*list)[i], &desc);
+
+ for (k = 0 ; backends[k] ; k++) {
+ if (backend && backend != backends[k])
+ continue;
+ for (j = 0 ; backends[k]->devices[j].vid ; j++) {
+ if (desc.idVendor == backends[k]->devices[j].vid &&
+ desc.idProduct == backends[k]->devices[j].pid) {
+ match = 1;
+ if (printer_type == P_ANY ||
+ printer_type == backends[k]->devices[j].type)
+ found = i;
+ goto match;
+ }
+ }
+ }
+
+ match:
+ if (!match) {
+ if (extra_pid != -1 &&
+ extra_vid != -1 &&
+ extra_type != -1) {
+ if (extra_vid == desc.idVendor &&
+ extra_pid == desc.idProduct) {
+ match = 1;
+ if (printer_type == P_ANY ||
+ printer_type == extra_type)
+ found = i;
+ }
+ }
+ }
+
+ if (!match)
+ continue;
+
+ found = print_scan_output((*list)[i], &desc,
+ URI_PREFIX, backends[k]->devices[j].manuf_str,
+ found, (found == i),
+ scan_only, match_serno,
+ backends[k]);
+
+ if (found != -1 && !scan_only)
+ break;
+ }
+
+ return found;
+}
+
+static struct dyesub_backend *find_backend(char *uri_prefix)
+{
+ int i;
+
+
+ if (!uri_prefix)
+ return NULL;
+
+ for (i = 0; ; i++) {
+ struct dyesub_backend *backend = backends[i];
+ if (!backend)
+ return NULL;
+ if (!strcmp(uri_prefix, backend->uri_prefix))
+ return backend;
+ }
+ return NULL;
+}
+
+static void print_license_blurb(void)
+{
+ const char *license = "\n\
+Copyright 2007-2014 Solomon Peachy <pizza AT shaftnet DOT org>\n\
+\n\
+This program is free software; you can redistribute it and/or modify it\n\
+under the terms of the GNU General Public License as published by the Free\n\
+Software Foundation; either version 2 of the License, or (at your option)\n\
+any later version.\n\
+\n\
+This program is distributed in the hope that it will be useful, but\n\
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n\
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n\
+for more details.\n\
+\n\
+You should have received a copy of the GNU General Public License\n\
+along with this program; if not, write to the Free Software\n\
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\
+\n [http://www.gnu.org/licenses/gpl-2.0.html]\n\n";
+
+ fprintf(stderr, "%s", license);
+}
+
+static void print_help(char *argv0, struct dyesub_backend *backend)
+{
+ struct libusb_context *ctx = NULL;
+ struct libusb_device **list = NULL;
+
+ char *ptr = strrchr(argv0, '/');
+ if (ptr)
+ ptr++;
+ else
+ ptr = argv0;
+
+ if (!backend)
+ backend = find_backend(ptr);
+
+ if (!backend) {
+ int i;
+ DEBUG("CUPS Usage:\n");
+ DEBUG("\tDEVICE_URI=someuri %s job user title num-copies options [ filename ]\n", URI_PREFIX);
+ DEBUG("\n");
+ DEBUG("Standalone Usage:\n");
+ DEBUG("\t%s\n", URI_PREFIX);
+ DEBUG(" [ -D ] [ -G ] [ -S serialnum ] [ -B backendname ] \n");
+ DEBUG(" [ -V extra_vid ] [ -P extra_pid ] [ -T extra_type ] \n");
+ DEBUG(" [ [ backend_specific_args ] | [ - | infile ] ]\n");
+ for (i = 0; ; i++) {
+ backend = backends[i];
+ if (!backend)
+ break;
+ DEBUG(" -B %s\t# %s version %s\n",
+ backend->uri_prefix, backend->name, backend->version);
+ if (backend->cmdline_usage)
+ backend->cmdline_usage();
+ }
+ } else {
+ DEBUG("Standalone %s backend version %s\n",
+ backend->name, backend->version);
+ DEBUG("\t%s\n", backend->uri_prefix);
+ DEBUG("\t[ -D ] [ -S serialnum ] \n");
+ DEBUG("\t[ -V extra_vid ] [ -P extra_pid ] [ -T extra_type ] \n");
+ DEBUG("\t\t[ infile | - ]\n");
+
+ if (backend->cmdline_usage)
+ backend->cmdline_usage();
+ }
+ libusb_init(&ctx);
+ find_and_enumerate(ctx, &list, backend, NULL, P_ANY, 1);
+ libusb_free_device_list(list, 1);
+ libusb_exit(ctx);
+}
+
+int main (int argc, char **argv)
+{
+ struct libusb_context *ctx = NULL;
+ struct libusb_device **list = NULL;
+ struct libusb_device_handle *dev;
+ struct libusb_config_descriptor *config;
+
+ struct dyesub_backend *backend = NULL;
+ void * backend_ctx = NULL;
+
+ uint8_t endp_up = 0;
+ uint8_t endp_down = 0;
+
+ int data_fd = fileno(stdin);
+
+ int i;
+ int claimed;
+ int backend_cmd = 0;
+
+ int ret = 0;
+ int iface = 0;
+ int found = -1;
+ int copies = 1;
+ int jobid = 0;
+ int pages = 0;
+
+ char *uri;
+ char *fname = NULL;
+ int printer_type = P_ANY;
+
+ DEBUG("Multi-Call Dye-sublimation CUPS Backend version %s\n",
+ BACKEND_VERSION);
+ DEBUG("Copyright 2007-2014 Solomon Peachy\n");
+ DEBUG("This free software comes with ABSOLUTELY NO WARRANTY! \n");
+ DEBUG("Licensed under the GNU GPL. Run with '-G' for more details.\n");
+ DEBUG("\n");
+
+ /* First pass at cmdline parsing */
+ if (getenv("DYESUB_DEBUG"))
+ dyesub_debug++;
+ if (getenv("EXTRA_PID"))
+ extra_pid = strtol(getenv("EXTRA_PID"), NULL, 16);
+ if (getenv("EXTRA_VID"))
+ extra_pid = strtol(getenv("EXTRA_VID"), NULL, 16);
+ if (getenv("EXTRA_PID"))
+ extra_type = atoi(getenv("EXTRA_TYPE"));
+ if (getenv("BACKEND"))
+ backend = find_backend(getenv("BACKEND"));
+ use_serno = getenv("DEVICE");
+ uri = getenv("DEVICE_URI"); /* For CUPS */
+
+ /* Try to ensure we have a sane backend for standalone mode.
+ CUPS mode uses 'uri' later on. */
+ if (!backend) {
+ char *ptr = strrchr(argv[0], '/');
+ if (ptr)
+ ptr++;
+ else
+ ptr = argv[0];
+ backend = find_backend(ptr);
+ }
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, "B:DGhP:S:T:V:")) >= 0) {
+ switch(i) {
+ case 'B':
+ backend = find_backend(optarg);
+ if (!backend) {
+ fprintf(stderr, "ERROR: Unknown backend '%s'\n", optarg);
+ }
+ break;
+ case 'D':
+ dyesub_debug++;
+ break;
+ case 'G':
+ print_license_blurb();
+ exit(0);
+ case 'h':
+ print_help(argv[0], backend);
+ exit(0);
+ break;
+ case 'P':
+ extra_pid = strtol(optarg, NULL, 16);
+ break;
+ case 'S':
+ use_serno = optarg;
+ break;
+ case 'T':
+ extra_type = atoi(optarg);
+ break;
+ case 'V':
+ extra_pid = strtol(optarg, NULL, 16);
+ break;
+ case '?':
+ default: {
+ /* Check to see if it is claimed by the backend */
+ if (backend && backend->cmdline_arg) {
+ int keep = optind;
+ backend_cmd += backend->cmdline_arg(NULL, argc, argv);
+ optind = keep;
+ }
+ break;
+ }
+ }
+ }
+
+ if (dyesub_debug) {
+ const struct libusb_version *ver;
+ ver = libusb_get_version();
+ DEBUG(" ** running with libusb %d.%d.%d%s (%d)\n",
+ ver->major, ver->minor, ver->micro, (ver->rc? ver->rc : ""), ver->nano );
+
+ }
+
+ /* Make sure a filename was specified */
+ if (!backend_cmd && (optind == argc || !argv[optind])) {
+ print_help(argv[0], backend);
+ exit(0);
+ }
+
+ /* Are we running as a CUPS backend? */
+ if (uri) {
+ int base = optind; // XXX aka 1.
+ fname = argv[base + 5];
+ if (argv[base])
+ jobid = atoi(argv[base]);
+ if (argv[base + 3])
+ copies = atoi(argv[base + 3]);
+ if (fname) { /* IOW, is it specified? */
+ data_fd = open(fname, O_RDONLY);
+ if (data_fd < 0) {
+ perror("ERROR:Can't open input file");
+ exit(1);
+ }
+ } else {
+ fname = "-";
+ }
+
+ /* Ensure we're using BLOCKING I/O */
+ i = fcntl(data_fd, F_GETFL, 0);
+ if (i < 0) {
+ perror("ERROR:Can't open input");
+ exit(1);
+ }
+ i &= ~O_NONBLOCK;
+ i = fcntl(data_fd, F_SETFL, 0);
+ if (i < 0) {
+ perror("ERROR:Can't open input");
+ exit(1);
+ }
+
+ /* Figure out backend based on URI */
+ {
+ char *ptr = strstr (uri, "backend="), *ptr2;
+ if (!ptr) {
+ ERROR("Invalid URI prefix (%s)\n", uri);
+ exit(1);
+ }
+ ptr += 8;
+ ptr2 = strchr(ptr, '&');
+ if (ptr2)
+ *ptr2 = 0;
+
+ backend = find_backend(ptr);
+ if (!backend) {
+ ERROR("Invalid backend (%s)\n", ptr);
+ exit(1);
+ }
+ if (ptr2)
+ *ptr2 = '&';
+ }
+
+ use_serno = strchr(uri, '=');
+ if (!use_serno || !*(use_serno+1)) {
+ ERROR("Invalid URI (%s)\n", uri);
+ exit(1);
+ }
+ use_serno++;
+ {
+ char *ptr = strchr(use_serno, '&');
+ if (ptr)
+ *ptr = 0;
+ }
+ } else {
+ srand(getpid());
+ jobid = rand();
+
+ /* Grab the filename */
+ fname = argv[optind];
+
+ if (!fname && !backend_cmd) {
+ perror("ERROR:No input file");
+ exit(1);
+ }
+ if (fname) {
+ /* Open Input File */
+ if (strcmp("-", fname)) {
+ data_fd = open(fname, O_RDONLY);
+ if (data_fd < 0) {
+ perror("ERROR:Can't open input file");
+ exit(1);
+ }
+ }
+ }
+ }
+
+ /* Ignore SIGPIPE */
+ signal(SIGPIPE, SIG_IGN);
+ signal(SIGTERM, sigterm_handler);
+
+ /* Initialize backend */
+ DEBUG("Initializing '%s' backend (version %s)\n",
+ backend->name, backend->version);
+ backend_ctx = backend->init();
+
+ /* Parse printjob if necessary */
+ if (fname && backend->early_parse) {
+ printer_type = backend->early_parse(backend_ctx, data_fd);
+ if (printer_type < 0) {
+ ret = 5; /* CUPS_BACKEND_CANCEL */
+ goto done;
+ }
+ }
+
+ /* Libusb setup */
+ libusb_init(&ctx);
+ /* Enumerate devices */
+ found = find_and_enumerate(ctx, &list, backend, use_serno, printer_type, 0);
+
+ if (found == -1) {
+ ERROR("Printer open failure (No suitable printers found!)\n");
+ ret = 4; /* CUPS_BACKEND_STOP */
+ goto done;
+ }
+
+ ret = libusb_open(list[found], &dev);
+ if (ret) {
+ ERROR("Printer open failure (Need to be root?) (%d)\n", ret);
+ goto done;
+ }
+
+ claimed = libusb_kernel_driver_active(dev, iface);
+ if (claimed) {
+ ret = libusb_detach_kernel_driver(dev, iface);
+ if (ret) {
+ ERROR("Printer open failure (Could not detach printer from kernel)\n");
+ goto done_close;
+ }
+ }
+
+ ret = libusb_claim_interface(dev, iface);
+ if (ret) {
+ ERROR("Printer open failure (Could not claim printer interface)\n");
+ goto done_close;
+ }
+
+ ret = libusb_get_active_config_descriptor(list[found], &config);
+ if (ret) {
+ ERROR("Printer open failure (Could not fetch config descriptor)\n");
+ goto done_close;
+ }
+
+ for (i = 0 ; i < config->interface[0].altsetting[0].bNumEndpoints ; i++) {
+ if ((config->interface[0].altsetting[0].endpoint[i].bmAttributes & 3) == LIBUSB_TRANSFER_TYPE_BULK) {
+ if (config->interface[0].altsetting[0].endpoint[i].bEndpointAddress & LIBUSB_ENDPOINT_IN)
+ endp_up = config->interface[0].altsetting[0].endpoint[i].bEndpointAddress;
+ else
+ endp_down = config->interface[0].altsetting[0].endpoint[i].bEndpointAddress;
+ }
+ }
+
+ /* Attach backend to device */
+ backend->attach(backend_ctx, dev, endp_up, endp_down, jobid);
+
+ if (backend_cmd && !uri) {
+ if (backend->cmdline_arg(backend_ctx, argc, argv))
+ goto done_claimed;
+ if (!fname)
+ goto done_claimed;
+ }
+
+ /* Time for the main processing loop */
+ INFO("Printing started (%d copies)\n", copies);
+
+newpage:
+ /* Do early parsing if needed for subsequent pages */
+ if (pages && backend->early_parse) {
+ ret = backend->early_parse(backend_ctx, data_fd);
+ if (ret < 0)
+ goto done_multiple;
+ }
+
+ /* Read in data */
+ if (backend->read_parse(backend_ctx, data_fd)) {
+ if (pages)
+ goto done_multiple;
+ else
+ goto done_claimed;
+ }
+
+ INFO("Printing page %d\n", ++pages);
+
+ ret = backend->main_loop(backend_ctx, copies);
+ if (ret)
+ goto done_claimed;
+
+ /* Since we have no way of telling if there's more data remaining
+ to be read (without actually trying to read it), always assume
+ multiple print jobs. */
+ goto newpage;
+
+done_multiple:
+ close(data_fd);
+
+ /* Done printing */
+ INFO("All printing done (%d pages * %d copies)\n", pages, copies);
+ ret = 0;
+
+done_claimed:
+ libusb_release_interface(dev, iface);
+
+done_close:
+#if 0
+ if (claimed)
+ libusb_attach_kernel_driver(dev, iface);
+#endif
+ libusb_close(dev);
+done:
+
+ if (backend && backend_ctx)
+ backend->teardown(backend_ctx);
+
+ if (list)
+ libusb_free_device_list(list, 1);
+ if (ctx)
+ libusb_exit(ctx);
+
+ return ret;
+}
+
diff --git a/src/cups/backend_common.h b/src/cups/backend_common.h
new file mode 100644
index 0000000..286dedd
--- /dev/null
+++ b/src/cups/backend_common.h
@@ -0,0 +1,153 @@
+/*
+ * CUPS Backend common code
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include <libusb-1.0/libusb.h>
+#include <arpa/inet.h>
+
+#ifndef __BACKEND_COMMON_H
+#define __BACKEND_COMMON_H
+
+#define STR_LEN_MAX 64
+#define DEBUG( ... ) fprintf(stderr, "DEBUG: " __VA_ARGS__ )
+#define DEBUG2( ... ) fprintf(stderr, __VA_ARGS__ )
+#define INFO( ... ) fprintf(stderr, "INFO: " __VA_ARGS__ )
+#define WARNING( ... ) fprintf(stderr, "WARNING: " __VA_ARGS__ )
+#define ERROR( ... ) do { fprintf(stderr, "ERROR: " __VA_ARGS__ ); sleep(1); } while (0)
+
+#if (__BYTE_ORDER == __LITTLE_ENDIAN)
+#define le32_to_cpu(__x) __x
+#define le16_to_cpu(__x) __x
+#define be16_to_cpu(__x) ntohs(__x)
+#define be32_to_cpu(__x) ntohl(__x)
+#else
+#define le32_to_cpu(x) \
+ ({ \
+ uint32_t __x = (x); \
+ ((uint32_t)( \
+ (((uint32_t)(__x) & (uint32_t)0x000000ffUL) << 24) | \
+ (((uint32_t)(__x) & (uint32_t)0x0000ff00UL) << 8) | \
+ (((uint32_t)(__x) & (uint32_t)0x00ff0000UL) >> 8) | \
+ (((uint32_t)(__x) & (uint32_t)0xff000000UL) >> 24) )); \
+ })
+#define le16_to_cpu(x) \
+ ({ \
+ uint16_t __x = (x); \
+ ((uint16_t)( \
+ (((uint16_t)(__x) & (uint16_t)0x00ff) << 8) | \
+ (((uint16_t)(__x) & (uint16_t)0xff00) >> 8) | \
+ })
+#define be32_to_cpu(__x) __x
+#define be16_to_cpu(__x) __x
+#endif
+
+#define cpu_to_le16 le16_to_cpu
+#define cpu_to_le32 le32_to_cpu
+#define cpu_to_be16 be16_to_cpu
+#define cpu_to_be32 be32_to_cpu
+
+/* To cheat the compiler */
+#define UNUSED(expr) do { (void)(expr); } while (0)
+
+/* To enumerate supported devices */
+enum {
+ P_ANY = 0,
+ P_ES1,
+ P_ES2_20,
+ P_ES3_30,
+ P_ES40_CP790,
+ P_ES40,
+ P_CP790,
+ P_CP_XXX,
+ P_CP10,
+ P_KODAK_6800,
+ P_KODAK_6850,
+ P_KODAK_1400_805,
+ P_KODAK_605,
+ P_SHINKO_S2145,
+ P_SONY_UPDR150,
+ P_MITSU_D70X,
+ P_DNP_DS40,
+ P_DNP_DS80,
+ P_END,
+};
+
+struct device_id {
+ uint16_t vid;
+ uint16_t pid;
+ int type; /* P_** */
+ char *manuf_str;
+};
+
+/* Backend Functions */
+struct dyesub_backend {
+ char *name;
+ char *version;
+ char *uri_prefix;
+ void (*cmdline_usage)(void);
+ void *(*init)(void);
+ void (*attach)(void *ctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid);
+ void (*teardown)(void *ctx);
+ int (*cmdline_arg)(void *ctx, int argc, char **argv);
+ int (*early_parse)(void *ctx, int data_fd);
+ int (*read_parse)(void *ctx, int data_fd);
+ int (*main_loop)(void *ctx, int copies);
+ int (*query_serno)(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len);
+ struct device_id devices[];
+};
+
+/* Exported functions */
+int send_data(struct libusb_device_handle *dev, uint8_t endp,
+ uint8_t *buf, int len);
+int read_data(struct libusb_device_handle *dev, uint8_t endp,
+ uint8_t *buf, int buflen, int *readlen);
+
+/* Exported data */
+extern int terminate;
+extern int dyesub_debug;
+
+/* External data */
+extern struct dyesub_backend updr150_backend;
+extern struct dyesub_backend kodak6800_backend;
+extern struct dyesub_backend kodak605_backend;
+extern struct dyesub_backend kodak1400_backend;
+extern struct dyesub_backend shinkos2145_backend;
+extern struct dyesub_backend canonselphy_backend;
+extern struct dyesub_backend mitsu70x_backend;
+extern struct dyesub_backend dnpds40_backend;
+
+#endif /* __BACKEND_COMMON_H */
diff --git a/src/cups/blacklist b/src/cups/blacklist
new file mode 100644
index 0000000..02e3ae7
--- /dev/null
+++ b/src/cups/blacklist
@@ -0,0 +1,136 @@
+# Gutenprint USB backend 'quirks' file.
+#
+# This file ensures that all printers handled by the Gutenprint CUPS backends
+# are blacklisted by the default CUPS USB backend.
+#
+# Please note that this file requires CUPS 1.6.4 or 1.7-rc2 (or newer).
+#
+
+# Canon CP-10
+0x04a9 0x304a blacklist
+
+# Canon CP-100
+0x04a9 0x3063 blacklist
+
+# Canon CP-200
+0x04a9 0x307c blacklist
+
+# Canon CP-220
+0x04a9 0x30bd blacklist
+
+# Canon CP-300
+0x04a9 0x307d blacklist
+
+# Canon CP-330
+0x04a9 0x30be blacklist
+
+# Canon SELPHY CP400
+0x04a9 0x30f6 blacklist
+
+# Canon SELPHY CP500
+0x04a9 0x30f5 blacklist
+
+# Canon SELPHY CP510
+0x04a9 0x3128 blacklist
+
+# Canon SELPHY CP520
+# ??? UNKNOWN
+
+# Canon SELPHY CP530
+0x04a9 0x31b1 blacklist
+
+# Canon SELPHY CP600
+0x04a9 0x310b blacklist
+
+# Canon SELPHY CP710
+0x04a9 0x3127 blacklist
+
+# Canon SELPHY CP720
+0x04a9 0x3143 blacklist
+
+# Canon SELPHY CP730
+0x04a9 0x3142 blacklist
+
+# Canon SELPHY CP740
+0x04a9 0x3171 blacklist
+
+# Canon SELPHY CP750
+0x04a9 0x3170 blacklist
+
+# Canon SELPHY CP760
+0x04a9 0x31ab blacklist
+
+# Canon SELPHY CP770
+0x04a9 0x31aa blacklist
+
+# Canon SELPHY CP780
+0x04a9 0x31dd blacklist
+
+# Canon SELPHY CP790
+0x04a9 0x31e7 blacklist
+
+# Canon SELPHY CP800
+0x04a9 0x3214 blacklist
+
+# Canon SELPHY CP810
+0x04a9 0x3256 blacklist
+
+# Canon SELPHY CP820
+# ??? UNKNOWN
+
+# Canon SELPHY CP900
+0x04a9 0x3255 blacklist
+
+# Canon SELPHY CP910
+# ??? UNKNOWN
+
+# Canon SELPHY ES1
+0x04a9 0x3141 blacklist
+
+# Canon SELPHY ES2
+0x04a9 0x3185 blacklist
+
+# Canon SELPHY ES20
+0x04a9 0x3186 blacklist
+
+# Canon SELPHY ES3
+0x04a9 0x31af blacklist
+
+# Canon SELPHY ES30
+0x04a9 0x31b0 blacklist
+
+# Canon SELPHY ES40
+0x04a9 0x31ee blacklist
+
+# Kodak 805
+0x040a 0x4034 blacklist
+
+# Kodak 1400
+0x040a 0x4022 blacklist
+
+# Kodak 6800
+0x040a 0x4021 blacklist
+
+# Kodak 6850
+0x040a 0x402b blacklist
+
+# Kodak 605
+0x040a 0x402e blacklist
+
+# Shinko CHC-S2145 (aka Sinfonia CS2)
+0x10ce 0x000e blacklist
+
+# Sony UP-DR150
+0x054c 0x01e8 blacklist
+
+# Mitsubishi CP-D70/CP-D707
+0x06d3 0x3b30 blacklist
+
+# DNP DS40 + Citizen CX
+0x1343 0x0003 blacklist
+
+# DNP DS80 + Citizen CX-W
+0x1343 0x0004 blacklist
+
+# DNP DS-RX1 + Citizen CY
+0x1343 0x0005 blacklist
diff --git a/src/cups/dnpds40_print.c b/src/cups/dnpds40_print.c
new file mode 100644
index 0000000..c3cc689
--- /dev/null
+++ b/src/cups/dnpds40_print.c
@@ -0,0 +1,1017 @@
+/*
+ * DNP DS40/DS80 Photo Printer CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * Development of this backend was sponsored by:
+ *
+ * Marco Di Antonio and [ ilgruppodigitale.com ]
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+#define USB_VID_DNP 0x1343
+#define USB_PID_DNP_DS40 0x0003 // Also Citizen CX
+#define USB_PID_DNP_DS80 0x0004 // Also Citizen CX-W
+#define USB_PID_DNP_DSRX1 0x0005 // Also Citizen CY
+
+//#define USB_PID_CITIZEN_CW-01 XXXXX
+//#define USB_PID_CITIZEN_OP900 XXXXX
+//#define USB_PID_CITIZEN_CW-02 XXXXX
+//#define USB_PID_CITIZEN_OP900II XXXXX
+//#define USB_VID_MITSU 0x06D3
+//#define USB_PID_MITSU_CP3800DW XXXXX
+
+/* Private data stucture */
+struct dnpds40_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+
+ int type;
+
+ int buf_needed;
+ uint32_t last_matte;
+
+ uint8_t *qty_offset;
+
+ uint8_t *databuf;
+ int datalen;
+};
+
+struct dnpds40_cmd {
+ uint8_t esc; /* Fixed at ascii ESC, aka 0x1B */
+ uint8_t p; /* Fixed at ascii 'P' aka 0x50 */
+ uint8_t arg1[6];
+ uint8_t arg2[16];
+ uint8_t arg3[8]; /* Decimal value of arg4's length, or empty */
+ uint8_t arg4[0]; /* Extra payload if arg3 is non-empty
+ Doesn't have to be sent in the same URB */
+
+ /* All unused elements are set to 0x20 (ie ascii space) */
+};
+
+#define min(__x, __y) ((__x) < (__y)) ? __x : __y
+
+static void dnpds40_build_cmd(struct dnpds40_cmd *cmd, char *arg1, char *arg2, uint32_t arg3_len)
+{
+ memset(cmd, 0x20, sizeof(*cmd));
+ cmd->esc = 0x1b;
+ cmd->p = 0x50;
+ memcpy(cmd->arg1, arg1, min(strlen(arg1), sizeof(cmd->arg1)));
+ memcpy(cmd->arg2, arg2, min(strlen(arg2), sizeof(cmd->arg2)));
+ if (arg3_len) {
+ char buf[9];
+ snprintf(buf, sizeof(buf), "%08u", arg3_len);
+ memcpy(cmd->arg3, buf, 8);
+ }
+
+}
+
+static void dnpds40_cleanup_string(char *start, int len)
+{
+ char *ptr = strchr(start, 0x0d);
+
+ if (ptr && (ptr - start < len)) {
+ *ptr = 0x00; /* If there is a <CR>, terminate there */
+ len = ptr - start;
+ } else {
+ start[--len] = 0x00; /* force null-termination */
+ }
+
+ /* Trim trailing spaces */
+ while (len && start[len-1] == ' ') {
+ start[--len] = 0;
+ }
+}
+
+static char *dnpds40_media_types(char *str)
+{
+ char tmp[4];
+ int i;
+
+ memcpy(tmp, str + 4, 3);
+ tmp[3] = 0;
+
+ i = atoi(tmp);
+
+ switch (i) {
+ case 200: return "5x3.5 (L)";
+ case 210: return "5x7 (2L)";
+ case 300: return "6x4 (PC)";
+ case 310: return "6x8 (A5)";
+ case 400: return "6x9 (A5W)";
+ case 500: return "8x10";
+ case 510: return "8x12";
+ default:
+ break;
+ }
+
+ return "Unknown type";
+}
+
+static char *dnpds40_statuses(char *str)
+{
+ char tmp[6];
+ int i;
+ memcpy(tmp, str, 5);
+ tmp[5] = 0;
+
+ i = atoi(tmp);
+
+ switch (i) {
+ case 0: return "Idle";
+ case 1: return "Printing";
+ case 500: return "Cooling Print Head";
+ case 510: return "Cooling Paper Motor";
+ case 1000: return "Cover Open";
+ case 1010: return "No Scrap Box";
+ case 1100: return "Paper End";
+ case 1200: return "Ribbon End";
+ case 1300: return "Paper Jam";
+ case 1400: return "Ribbon Error";
+ case 1500: return "Paper Definition Error";
+ case 1600: return "Data Error";
+ case 2000: return "Head Voltage Error";
+ case 2100: return "Head Position Error";
+ case 2200: return "Power Supply Fan Error";
+ case 2300: return "Cutter Error";
+ case 2400: return "Pinch Roller Error";
+ case 2500: return "Abnormal Head Temperature";
+ case 2600: return "Abnormal Media Temperature";
+ case 2610: return "Abnormal Paper Motor Temperature";
+ case 2700: return "Ribbon Tension Error";
+ case 2800: return "RF-ID Module Error";
+ case 3000: return "System Error";
+ default:
+ break;
+ }
+
+ return "Unkown Error";
+}
+
+static int dnpds40_do_cmd(struct dnpds40_ctx *ctx,
+ struct dnpds40_cmd *cmd,
+ uint8_t *data, int len)
+{
+ int ret;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ (uint8_t*)cmd, sizeof(*cmd))))
+ return ret;
+
+ if (data && len)
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ data, len)))
+ return ret;
+
+ return 0;
+}
+
+static uint8_t * dnpds40_resp_cmd(struct dnpds40_ctx *ctx,
+ struct dnpds40_cmd *cmd,
+ int *len)
+{
+ char tmp[9];
+ uint8_t *respbuf;
+
+ int ret, i, num = 0;
+
+ memset(tmp, 0, sizeof(tmp));
+
+ if ((ret = dnpds40_do_cmd(ctx, cmd, NULL, 0)))
+ return NULL;
+
+ /* Read in the response header */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ (uint8_t*)tmp, 8, &num);
+ if (ret < 0)
+ return NULL;
+
+ if (num != 8) {
+ ERROR("Short read! (%d/%d)\n", num, 8);
+ return NULL;
+ }
+
+ i = atoi(tmp); /* Length of payload in bytes, possibly padded */
+ respbuf = malloc(i);
+
+ /* Read in the actual response */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ respbuf, i, &num);
+ if (ret < 0) {
+ free(respbuf);
+ return NULL;
+ }
+
+ if (num != i) {
+ ERROR("Short read! (%d/%d)\n", num, i);
+ free(respbuf);
+ return NULL;
+ }
+
+ *len = num;
+ return respbuf;
+}
+
+static int dnpds40_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len)
+{
+ struct dnpds40_cmd cmd;
+ uint8_t *resp;
+ int len = 0;
+
+ struct dnpds40_ctx ctx = {
+ .dev = dev,
+ .endp_up = endp_up,
+ .endp_down = endp_down,
+ };
+
+ /* Get Serial Number */
+ dnpds40_build_cmd(&cmd, "INFO", "SERIAL_NUMBER", 0);
+
+ resp = dnpds40_resp_cmd(&ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ strncpy(buf, (char*)resp, buf_len);
+ buf[buf_len-1] = 0;
+
+ free(resp);
+
+ return 0;
+}
+
+static void *dnpds40_init(void)
+{
+ struct dnpds40_ctx *ctx = malloc(sizeof(struct dnpds40_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct dnpds40_ctx));
+
+ ctx->type = P_ANY;
+
+ return ctx;
+}
+
+static void dnpds40_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct dnpds40_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
+
+ UNUSED(jobid);
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+ /* Map out device type */
+ if (desc.idProduct == USB_PID_DNP_DS40)
+ ctx->type = P_DNP_DS40;
+ else
+ ctx->type = P_DNP_DS80;
+
+}
+
+static void dnpds40_teardown(void *vctx) {
+ struct dnpds40_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+ free(ctx);
+}
+
+#define MAX_PRINTJOB_LEN (((2448*7536+1024+54))*3+1024) /* Worst-case */
+
+static int dnpds40_read_parse(void *vctx, int data_fd) {
+ struct dnpds40_ctx *ctx = vctx;
+ int run = 1;
+ char buf[9] = { 0 };
+
+ uint32_t matte = 0, multicut = 0, dpi = 0;
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ /* There's no way to figure out the total job length in advance, we
+ have to parse the stream until we get to the image plane data,
+ and even then the stream can contain arbitrary commands later.
+
+ So instead, we allocate a buffer of the maximum possible length,
+ then parse the incoming stream until we hit the START command at
+ the end of the job.
+ */
+
+ ctx->datalen = 0;
+ ctx->databuf = malloc(MAX_PRINTJOB_LEN);
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return 2;
+ }
+
+ while (run) {
+ int remain, i, j;
+ /* Read in command header */
+ i = read(data_fd, ctx->databuf + ctx->datalen,
+ sizeof(struct dnpds40_cmd));
+ if (i < 0)
+ return i;
+ if (i == 0)
+ break;
+ if (i < (int) sizeof(struct dnpds40_cmd))
+ return 1;
+
+ if (ctx->databuf[ctx->datalen + 0] != 0x1b ||
+ ctx->databuf[ctx->datalen + 1] != 0x50) {
+ ERROR("Unrecognized header data format @%d!\n", ctx->datalen);
+ return 1;
+ }
+
+ /* Parse out length of data chunk, if any */
+ memcpy(buf, ctx->databuf + ctx->datalen + 24, 8);
+ j = atoi(buf);
+
+ /* Read in data chunk as quickly as possible */
+ remain = j;
+ while (remain > 0) {
+ i = read(data_fd, ctx->databuf + ctx->datalen + sizeof(struct dnpds40_cmd),
+ remain);
+ if (i < 0)
+ return i;
+ if (i == 0)
+ return 1;
+ ctx->datalen += i;
+ remain -= i;
+ }
+ ctx->datalen -= j; /* Back it off */
+
+ /* Check for some offsets */
+ if(!memcmp("CNTRL QTY", ctx->databuf + ctx->datalen+2, 9)) {
+ ctx->qty_offset = ctx->databuf + ctx->datalen + 32;
+ }
+ if(!memcmp("CNTRL OVERCOAT", ctx->databuf + ctx->datalen+2, 14)) {
+ memcpy(buf, ctx->databuf + ctx->datalen + 32, 8);
+ matte = atoi(buf);
+ matte = le32_to_cpu(matte);
+ }
+ if(!memcmp("CNTRL MULTICUT", ctx->databuf + ctx->datalen+2, 14)) {
+ memcpy(buf, ctx->databuf + ctx->datalen + 32, 8);
+ multicut = atoi(buf);
+ multicut = le32_to_cpu(multicut);
+ }
+ if(!memcmp("IMAGE YPLANE", ctx->databuf + ctx->datalen + 2, 12)) {
+ uint32_t x_ppm;
+ memcpy(&x_ppm, ctx->databuf + ctx->datalen + 32 + 42, sizeof(x_ppm));
+ x_ppm = le32_to_cpu(x_ppm);
+
+ ctx->buf_needed = 1;
+ dpi = 300;
+
+ if (x_ppm == 23615) { /* pixels per meter, aka 600dpi */
+ dpi = 600;
+ if (ctx->type == P_DNP_DS80) { /* DS80/CX-W */
+ if (matte && (multicut == 21 || // A4 length
+ multicut == 20 || // 8x4*3
+ multicut == 19 || // 8x8+8x4
+ multicut == 15 || // 8x6*2
+ multicut == 7)) // 8x12
+ ctx->buf_needed = 2;
+ } else { /* DS40/CX/CY/etc */
+ if (multicut == 4 || // 6x8
+ multicut == 5 || // 6x9
+ multicut == 12) // 6x4*2
+ ctx->buf_needed = 2;
+ else if (matte && multicut == 3) // 5x7
+ ctx->buf_needed = 2;
+ }
+
+ /* If we are missing a multicut command,
+ we can't parse this job so must assume
+ worst case size needing both buffers! */
+ if (!multicut)
+ ctx->buf_needed = 2;
+ }
+ }
+
+ /* This is the last block.. */
+ if(!memcmp("CNTRL START", ctx->databuf + ctx->datalen + 2, 11))
+ run = 0;
+
+ /* Add in the size of this chunk */
+ ctx->datalen += sizeof(struct dnpds40_cmd) + j;
+ }
+
+ /* Special case: switching to matte or back needs both buffers */
+ if (matte != ctx->last_matte)
+ ctx->buf_needed = 2;
+
+ DEBUG("dpi %u matte %u(%u) mcut %u bufs %d\n",
+ dpi, matte, ctx->last_matte, multicut, ctx->buf_needed);
+
+ /* Track if our last print was matte */
+ ctx->last_matte = matte;
+
+ if (!ctx->datalen)
+ return 1;
+
+ return 0;
+}
+
+static int dnpds40_main_loop(void *vctx, int copies) {
+ struct dnpds40_ctx *ctx = vctx;
+ int ret;
+ struct dnpds40_cmd cmd;
+ uint8_t *resp = NULL;
+ int len = 0;
+
+ uint8_t *ptr;
+ char buf[9];
+
+ if (!ctx)
+ return 1;
+
+ /* Parse job to figure out quantity offset. */
+ if (copies > 1 && ctx->qty_offset) {
+ snprintf(buf, sizeof(buf), "%07d\r", copies);
+ memcpy(ctx->qty_offset, buf, 8);
+
+ // XXX should we set/reset BUFFCNTRL?
+ // XXX should we verify we have sufficient media for prints?
+ }
+
+top:
+
+ if (resp) free(resp);
+
+ /* Query status */
+ dnpds40_build_cmd(&cmd, "STATUS", "", 0);
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+ dnpds40_cleanup_string((char*)resp, len);
+
+ /* If we're not idle */
+ if (strcmp("00000", (char*)resp)) {
+ if (!strcmp("00001", (char*)resp)) {
+ free(resp);
+ /* Query buffer state */
+ dnpds40_build_cmd(&cmd, "INFO", "FREE_PBUFFER", 0);
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+ dnpds40_cleanup_string((char*)resp, len);
+
+ /* Check to see if we have sufficient buffers */
+ if (!strcmp("FBP00", (char*)resp) ||
+ (ctx->buf_needed == 1 && !strcmp("FBP01", (char*)resp))) {
+ INFO("Insufficient printer buffers, retrying...\n");
+ sleep(1);
+ goto top;
+ }
+ } else if (!strcmp("00500", (char*)resp) ||
+ !strcmp("00510", (char*)resp)) {
+ INFO("Printer cooling, retrying...\n");
+ sleep(1);
+ goto top;
+ }
+ free(resp);
+ ERROR("Printer Status: %s\n", dnpds40_statuses((char*)resp));
+ return 1;
+ }
+
+ /* Send the stream over as individual data chunks */
+ ptr = ctx->databuf;
+
+ while(ptr && ptr < (ctx->databuf + ctx->datalen)) {
+ int i;
+ buf[8] = 0;
+ memcpy(buf, ptr + 24, 8);
+ i = atoi(buf) + 32;
+
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ptr, i)))
+ return ret;
+
+ ptr += i;
+ }
+
+ /* This printer handles copies internally */
+ if (ctx->qty_offset)
+ copies = 1;
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ goto top;
+ }
+
+ if (resp) free(resp);
+
+ return 0;
+}
+
+static int dnpds40_get_info(struct dnpds40_ctx *ctx)
+{
+ struct dnpds40_cmd cmd;
+ uint8_t *resp;
+ int len = 0;
+
+ /* Get Serial Number */
+ dnpds40_build_cmd(&cmd, "INFO", "SERIAL_NUMBER", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Serial Number: '%s'\n", (char*)resp);
+
+ free(resp);
+
+ /* Get Firmware Version */
+ dnpds40_build_cmd(&cmd, "INFO", "FVER", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Firmware Version: '%s'\n", (char*)resp);
+
+ free(resp);
+
+ /* Get Sensor Info */
+ dnpds40_build_cmd(&cmd, "INFO", "SENSOR", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Sensor Info: '%s'\n", (char*)resp);
+ // XXX parse this out. Each token is 'XXX-###' delimited by '; '
+
+ free(resp);
+
+ /* Get Qty of prints made on this media? */
+ dnpds40_build_cmd(&cmd, "INFO", "PQTY", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Prints Performed(?): '%s'\n", (char*)resp + 4);
+
+ free(resp);
+
+ /* Get Horizonal resolution */
+ dnpds40_build_cmd(&cmd, "INFO", "RESOLUTION_H", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Horizontal Resolution: '%s' dpi\n", (char*)resp + 3);
+
+ free(resp);
+
+ /* Get Vertical resolution */
+ dnpds40_build_cmd(&cmd, "INFO", "RESOLUTION_V", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Vertical Resolution: '%s' dpi\n", (char*)resp + 3);
+
+ free(resp);
+
+ /* Get Media Color offset */
+ dnpds40_build_cmd(&cmd, "INFO", "MCOLOR", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Media Color Offset: '%02x%02x%02x%02x'\n", *(resp+2), *(resp+3),
+ *(resp+4), *(resp+5));
+
+ free(resp);
+
+ /* Get Media Lot */
+ dnpds40_build_cmd(&cmd, "INFO", "MLOT", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Media Lot Code: '%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x'\n",
+ *(resp+2), *(resp+3), *(resp+4), *(resp+5), *(resp+6), *(resp+7),
+ *(resp+8), *(resp+9), *(resp+10), *(resp+11), *(resp+12), *(resp+13));
+
+ free(resp);
+
+ /* Get Media ID Set (?) */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "MEDIA_ID_SET", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Media ID(?): '%s'\n", (char*)resp+4);
+
+ free(resp);
+
+ /* Get Color Control Data Version */
+ dnpds40_build_cmd(&cmd, "TBL_RD", "Version", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Color Data Version: '%s'\n", (char*)resp);
+
+ free(resp);
+
+ /* Get Color Control Data Checksum */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "CTRLD_CHKSUM", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Color Data Checksum: '%s'\n", (char*)resp);
+
+ free(resp);
+
+
+ return 0;
+}
+
+static int dnpds40_get_status(struct dnpds40_ctx *ctx)
+{
+ struct dnpds40_cmd cmd;
+ uint8_t *resp;
+ int len = 0;
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "STATUS", "", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Printer Status: %s => %s\n", (char*)resp, dnpds40_statuses((char*)resp));
+
+ free(resp);
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "INFO", "FREE_PBUFFER", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Free Buffers: '%s'\n", (char*)resp + 3);
+
+ free(resp);
+
+ /* Get Media Info */
+ dnpds40_build_cmd(&cmd, "INFO", "MEDIA", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Media Type: '%s'\n", dnpds40_media_types((char*)resp));
+
+#if 0
+ switch (*(resp+3)) {
+ case '1':
+ INFO(" Stickier paper\n");
+ break;
+ case '0':
+ INFO(" Standard paper\n");
+ break;
+ default:
+ INFO(" Unknown paper(%c)\n", *(resp+4));
+ break;
+ }
+ switch (*(resp+6)) {
+ case '1':
+ INFO(" With mark\n");
+ break;
+ case '0':
+ INFO(" Without mark\n");
+ break;
+ default:
+ INFO(" Unknown mark(%c)\n", *(resp+7));
+ break;
+ }
+#endif
+
+ free(resp);
+
+ /* Get Media remaining */
+ dnpds40_build_cmd(&cmd, "INFO", "MQTY", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Prints Remaining: '%s'\n", (char*)resp + 4);
+
+ free(resp);
+
+ return 0;
+}
+
+static int dnpds40_get_counters(struct dnpds40_ctx *ctx)
+{
+ struct dnpds40_cmd cmd;
+ uint8_t *resp;
+ int len = 0;
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "COUNTER_LIFE", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Lifetime Counter: '%s'\n", (char*)resp+2);
+
+ free(resp);
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "COUNTER_A", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("A Counter: '%s'\n", (char*)resp+2);
+
+ free(resp);
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "COUNTER_B", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("B Counter: '%s'\n", (char*)resp+2);
+
+ free(resp);
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "COUNTER_P", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("P Counter: '%s'\n", (char*)resp+2);
+
+ free(resp);
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "COUNTER_M", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("M Counter: '%s'\n", (char*)resp+2);
+
+ free(resp);
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "COUNTER_MATTE", 0);
+
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return -1;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ INFO("Matte Counter: '%s'\n", (char*)resp+4);
+
+ free(resp);
+
+ return 0;
+}
+
+static int dnpds40_clear_counter(struct dnpds40_ctx *ctx, char counter)
+{
+ struct dnpds40_cmd cmd;
+ char msg[4];
+ int ret;
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_WT", "COUNTER_CLEAR", 4);
+ msg[0] = 'C';
+ msg[1] = counter;
+ msg[2] = 0x0d; /* ie carriage return, ASCII '\r' */
+ msg[3] = 0x00;
+
+ if ((ret = dnpds40_do_cmd(ctx, &cmd, (uint8_t*)msg, 4)))
+ return ret;
+
+ return 0;
+}
+
+static int dnpds40_set_counter_p(struct dnpds40_ctx *ctx, char *arg)
+{
+ struct dnpds40_cmd cmd;
+ char msg[9];
+ int i = atoi(arg);
+ int ret;
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_WT", "COUNTERP_SET", 8);
+ snprintf(msg, sizeof(msg), "%08d", i);
+
+ if ((ret = dnpds40_do_cmd(ctx, &cmd, (uint8_t*)msg, 8)))
+ return ret;
+
+ return 0;
+}
+
+static void dnpds40_cmdline(void)
+{
+ DEBUG("\t\t[ -i ] # Query printer info\n");
+ DEBUG("\t\t[ -s ] # Query status\n");
+ DEBUG("\t\t[ -n ] # Query counters\n");
+ DEBUG("\t\t[ -N A|B|M ] # Clear counter A/B/M\n");
+ DEBUG("\t\t[ -p num ] # Set counter P\n");
+
+}
+
+static int dnpds40_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct dnpds40_ctx *ctx = vctx;
+ int i, j = 0;
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, "inN:p:s")) >= 0) {
+ switch(i) {
+ case 'i':
+ if (ctx) {
+ j = dnpds40_get_info(ctx);
+ break;
+ }
+ return 1;
+ case 'n':
+ if (ctx) {
+ j = dnpds40_get_counters(ctx);
+ break;
+ }
+ return 1;
+ case 'N':
+ if (optarg[0] != 'A' &&
+ optarg[0] != 'B' &&
+ optarg[0] != 'M')
+ return -1;
+ if (ctx) {
+ j = dnpds40_clear_counter(ctx, optarg[0]);
+ break;
+ }
+ return 1;
+ case 'p':
+ if (ctx) {
+ j = dnpds40_set_counter_p(ctx, optarg);
+ break;
+ }
+ return 1;
+ case 's':
+ if (ctx) {
+ j = dnpds40_get_status(ctx);
+ break;
+ }
+ return 1;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+/* Exported */
+struct dyesub_backend dnpds40_backend = {
+ .name = "DNP DS40/DS80/DSRX1",
+ .version = "0.29",
+ .uri_prefix = "dnpds40",
+ .cmdline_usage = dnpds40_cmdline,
+ .cmdline_arg = dnpds40_cmdline_arg,
+ .init = dnpds40_init,
+ .attach = dnpds40_attach,
+ .teardown = dnpds40_teardown,
+ .read_parse = dnpds40_read_parse,
+ .main_loop = dnpds40_main_loop,
+ .query_serno = dnpds40_query_serno,
+ .devices = {
+ { USB_VID_DNP, USB_PID_DNP_DS40, P_DNP_DS40, ""},
+ { USB_VID_DNP, USB_PID_DNP_DS80, P_DNP_DS80, ""},
+ { USB_VID_DNP, USB_PID_DNP_DSRX1, P_DNP_DS40, ""},
+// { USB_VID_CITIZEN, USB_PID_CITIZEN_CW-02, P_DNP_DS40, ""},
+// { USB_VID_CITIZEN, USB_PID_CITIZEN_OP900II, P_DNP_DS40, ""},
+// { USB_VID_CITIZEN, USB_PID_CITIZEN_CW-01, P_DNP_DS40, ""},
+// { USB_VID_CITIZEN, USB_PID_CITIZEN_OP900, P_DNP_DS40, ""},
+// { USB_VID_MITSU, USB_PID_MITSU_CP38000W, P_DNP_DS80, ""},
+ { 0, 0, 0, ""}
+ }
+};
diff --git a/src/cups/genppd.c b/src/cups/genppd.c
index f2dded8..7b55c13 100644
--- a/src/cups/genppd.c
+++ b/src/cups/genppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: genppd.c,v 1.192 2012/03/25 17:54:32 rlk Exp $"
+ * "$Id: genppd.c,v 1.196 2014/02/13 02:30:27 rlk Exp $"
*
* PPD file generation program for the CUPS drivers.
*
@@ -40,6 +40,8 @@
* Include necessary headers...
*/
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -55,27 +57,25 @@
#include <ctype.h>
#include <errno.h>
#include <libgen.h>
+#if defined(HAVE_VARARGS_H) && !defined(HAVE_STDARG_H)
+#include <varargs.h>
+#else
+#include <stdarg.h>
+#endif
#ifdef CUPS_DRIVER_INTERFACE
# ifdef HAVE_LIBZ
# undef HAVE_LIBZ
# endif /* HAVE_LIBZ */
#endif /* CUPS_DRIVER_INTERFACE */
-
-static const char *cups_modeldir = CUPS_MODELDIR;
-
#ifdef HAVE_LIBZ
#include <zlib.h>
-static const char *gzext = ".gz";
-#else
-static const char *gzext = "";
-# define gzopen fopen
-# define gzclose fclose
-# define gzFile FILE *
-# define gzprintf fprintf
-# define gzputs(f,s) fputs((s),(f))
+static int use_compression = 1;
#endif
+static const char *cups_modeldir = CUPS_MODELDIR;
+static const char *gpext = "";
+
#include <cups/cups.h>
#include <cups/raster.h>
@@ -165,6 +165,17 @@ const char *parameter_level_names[] =
_("Extra 5")
};
+#ifdef HAVE_LIBZ
+typedef union
+{
+ gzFile gzf;
+ FILE *f;
+} _gpfile;
+
+typedef _gpfile *gpFile;
+#else
+#define gpFile FILE *
+#endif
/*
* Local functions...
@@ -184,18 +195,22 @@ static void help(void);
static void printlangs(char** langs);
static void printmodels(int verbose);
static void usage(void);
+static gpFile gpopen(const char *path, const char *mode);
+static int gpclose(gpFile f);
#endif /* !CUPS_DRIVER_INTERFACE */
+static int gpputs(gpFile f, const char *s);
+static int gpprintf(gpFile f, const char *format, ...);
static char **getlangs(void);
static int is_special_option(const char *name);
-static void print_group_close(gzFile fp, stp_parameter_class_t p_class,
+static void print_group_close(gpFile fp, stp_parameter_class_t p_class,
stp_parameter_level_t p_level,
const char *language,
const stp_string_list_t *po);
-static void print_group_open(gzFile fp, stp_parameter_class_t p_class,
+static void print_group_open(gpFile fp, stp_parameter_class_t p_class,
stp_parameter_level_t p_level,
const char *language,
const stp_string_list_t *po);
-static int write_ppd(gzFile fp, const stp_printer_t *p,
+static int write_ppd(gpFile fp, const stp_printer_t *p,
const char *language, const char *ppd_location,
ppd_type_t ppd_type, const char *filename);
@@ -357,7 +372,7 @@ cat_ppd(const char *uri) /* I - Driver URI */
cups_modeldir,
cups_modeldir[strlen(cups_modeldir) - 1] == '/' ? "" : "/",
lang ? lang : "C",
- filename, gzext);
+ filename, gpext);
return (write_ppd(stdout, p, lang, ppd_location, ppd_type, filename));
}
@@ -459,7 +474,7 @@ main(int argc, /* I - Number of command-line arguments */
for (;;)
{
- if ((i = getopt(argc, argv, "23hvqc:p:l:LMVd:saNCb")) == -1)
+ if ((i = getopt(argc, argv, "23hvqc:p:l:LMVd:saNCbZz")) == -1)
break;
switch (i)
@@ -533,12 +548,26 @@ main(int argc, /* I - Number of command-line arguments */
case 'b':
use_base_version = 1;
break;
+ case 'z':
+#ifdef HAVE_LIBZ
+ use_compression = 1;
+#endif
+ break;
+ case 'Z':
+#ifdef HAVE_LIBZ
+ use_compression = 0;
+#endif
+ break;
default:
usage();
exit(EXIT_FAILURE);
break;
}
}
+ if (use_compression)
+ gpext = ".gz";
+ else
+ gpext = "";
if (optind < argc) {
int n, numargs;
numargs = argc-optind;
@@ -653,11 +682,12 @@ generate_ppd(
ppd_type_t ppd_type) /* I - full, simplified, no color */
{
int status; /* Exit status */
- gzFile fp; /* File to write to */
+ gpFile fp; /* File to write to */
char filename[1024], /* Filename */
ppd_location[1024]; /* Installed location */
struct stat dir; /* Prefix dir status */
const char *ppd_infix;
+ static int ppd_counter = 0; /* Notification counter */
/*
* Skip the PostScript drivers...
@@ -706,13 +736,13 @@ generate_ppd(
snprintf(filename, sizeof(filename) - 1, "%s/stp-%s.%s%s%s%s",
prefix, stp_printer_get_driver(p), GUTENPRINT_RELEASE_VERSION,
- ppd_infix, ppdext, gzext);
+ ppd_infix, ppdext, gpext);
/*
* Open the PPD file...
*/
- if ((fp = gzopen(filename, "wb")) == NULL)
+ if ((fp = gpopen(filename, "wb")) == NULL)
{
fprintf(stderr, "cups-genppd: Unable to create file \"%s\" - %s.\n",
filename, strerror(errno));
@@ -721,7 +751,7 @@ generate_ppd(
if (verbose)
fprintf(stderr, "Writing %s...\n", filename);
- else
+ else if ((ppd_counter++ % 50) == 0)
fprintf(stderr, ".");
snprintf(ppd_location, sizeof(ppd_location), "%s%s%s/%s",
@@ -737,7 +767,7 @@ generate_ppd(
status = write_ppd(fp, p, language, ppd_location, ppd_type,
basename(filename));
- gzclose(fp);
+ gpclose(fp);
return (status);
}
@@ -761,13 +791,19 @@ help(void)
" -V Show version information and defaults.\n"
" The default is to output PPDs.\n");
puts("Options:\n"
+ " -N Localize numbers.\n"
" -l locale Output PPDs translated with messages for locale.\n"
" -p prefix Output PPDs in directory prefix.\n"
" -d prefix Embed directory prefix in PPD file.\n"
" -s Generate simplified PPD files.\n"
" -a Generate all (simplified and full) PPD files.\n"
" -q Quiet mode.\n"
- " -v Verbose mode.\n"
+ " -v Verbose mode.\n");
+ puts(
+#ifdef HAVE_LIBZ
+ " -z Compress PPD files.\n"
+ " -Z Don't compress PPD files.\n"
+#endif
"models:\n"
" A list of printer models, either the driver or quoted full name.\n");
}
@@ -834,8 +870,102 @@ printmodels(int verbose) /* I - Verbosity level */
exit(EXIT_SUCCESS);
}
+static gpFile
+gpopen(const char *path, const char *mode)
+{
+#ifdef HAVE_LIBZ
+ gpFile f = stp_malloc(sizeof(_gpfile));
+ if (use_compression)
+ {
+ f->gzf = gzopen(path, mode);
+ if (!f->gzf)
+ {
+ stp_free(f);
+ return NULL;
+ }
+ return f;
+ }
+ else
+#endif
+ {
+ FILE *fl = fopen(path, mode);
+#ifdef HAVE_LIBZ
+ if (fl)
+ {
+ f->f = fl;
+ return f;
+ }
+ else
+ {
+ stp_free(f);
+ return NULL;
+ }
+#else
+ return fl;
+#endif
+ }
+}
+
+static int
+gpclose(gpFile f)
+{
+ int status;
+#ifdef HAVE_LIBZ
+ if (use_compression)
+ status = gzclose(f->gzf);
+ else
+ status = fclose(f->f);
+ stp_free(f);
+#else
+ status = fclose(f);
+#endif
+ return status;
+}
+
#endif /* !CUPS_DRIVER_INTERFACE */
+static int
+gpputs(gpFile f, const char *s)
+{
+#ifdef HAVE_LIBZ
+ if (use_compression)
+ return gzputs(f->gzf, s);
+ else
+ return fputs(s, f->f);
+#else
+ return fputs(s, f);
+#endif
+}
+
+static int
+gpprintf(gpFile f, const char *format, ...)
+{
+ int status;
+ int current_allocation = 64;
+ char *result = stp_malloc(current_allocation);
+ while (1)
+ {
+ int bytes;
+ va_list args;
+ va_start(args, format);
+ bytes = vsnprintf(result, current_allocation, format, args);
+ va_end(args);
+ if (bytes >= 0 && bytes < current_allocation)
+ break;
+ else
+ {
+ stp_free(result);
+ if (bytes < 0)
+ current_allocation *= 2;
+ else
+ current_allocation = bytes + 1;
+ result = stp_malloc(current_allocation);
+ }
+ }
+ status = gpputs(f, result);
+ stp_free(result);
+ return status;
+}
/*
* 'getlangs()' - Get a list of available translations.
@@ -921,7 +1051,7 @@ bytelen(const char *buffer)
#define PPD_MAX_SHORT_NICKNAME (31)
static void
-print_ppd_header(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
+print_ppd_header(gpFile fp, ppd_type_t ppd_type, int model, const char *driver,
const char *family, const char *long_name,
const char *manufacturer, const char *device_id,
const char *ppd_location,
@@ -932,36 +1062,36 @@ print_ppd_header(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
/*
* Write a standard header...
*/
- gzputs(fp, "*PPD-Adobe: \"4.3\"\n");
- gzputs(fp, "*% PPD file for CUPS/Gutenprint.\n");
- gzputs(fp, "*% Copyright 1993-2008 by Mike Sweet and Robert Krawitz.\n");
- gzputs(fp, "*% This program is free software; you can redistribute it and/or\n");
- gzputs(fp, "*% modify it under the terms of the GNU General Public License,\n");
- gzputs(fp, "*% version 2, as published by the Free Software Foundation.\n");
- gzputs(fp, "*%\n");
- gzputs(fp, "*% This program is distributed in the hope that it will be useful, but\n");
- gzputs(fp, "*% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n");
- gzputs(fp, "*% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n");
- gzputs(fp, "*% for more details.\n");
- gzputs(fp, "*%\n");
- gzputs(fp, "*% You should have received a copy of the GNU General Public License\n");
- gzputs(fp, "*% along with this program; if not, write to the Free Software\n");
- gzputs(fp, "*% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n");
- gzputs(fp, "*%\n");
- gzputs(fp, "*FormatVersion: \"4.3\"\n");
+ gpputs(fp, "*PPD-Adobe: \"4.3\"\n");
+ gpputs(fp, "*% PPD file for CUPS/Gutenprint.\n");
+ gpputs(fp, "*% Copyright 1993-2008 by Mike Sweet and Robert Krawitz.\n");
+ gpputs(fp, "*% This program is free software; you can redistribute it and/or\n");
+ gpputs(fp, "*% modify it under the terms of the GNU General Public License,\n");
+ gpputs(fp, "*% version 2, as published by the Free Software Foundation.\n");
+ gpputs(fp, "*%\n");
+ gpputs(fp, "*% This program is distributed in the hope that it will be useful, but\n");
+ gpputs(fp, "*% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n");
+ gpputs(fp, "*% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n");
+ gpputs(fp, "*% for more details.\n");
+ gpputs(fp, "*%\n");
+ gpputs(fp, "*% You should have received a copy of the GNU General Public License\n");
+ gpputs(fp, "*% along with this program; if not, write to the Free Software\n");
+ gpputs(fp, "*% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n");
+ gpputs(fp, "*%\n");
+ gpputs(fp, "*FormatVersion: \"4.3\"\n");
if (use_base_version)
- gzputs(fp, "*FileVersion: \"" BASE_VERSION "\"\n");
+ gpputs(fp, "*FileVersion: \"" BASE_VERSION "\"\n");
else
- gzputs(fp, "*FileVersion: \"" VERSION "\"\n");
+ gpputs(fp, "*FileVersion: \"" VERSION "\"\n");
/* Specify language of PPD translation */
/* TRANSLATORS: Specify the language of the PPD translation.
* Use the English name of your language here, e.g. "Swedish" instead of
* "Svenska". */
- gzprintf(fp, "*LanguageVersion: %s\n", _("English"));
+ gpprintf(fp, "*LanguageVersion: %s\n", _("English"));
if (language)
- gzputs(fp, "*LanguageEncoding: UTF-8\n");
+ gpputs(fp, "*LanguageEncoding: UTF-8\n");
else
- gzputs(fp, "*LanguageEncoding: ISOLatin1\n");
+ gpputs(fp, "*LanguageEncoding: ISOLatin1\n");
/*
* Strictly speaking, the PCFileName attribute should be a 12 character
* max (12345678.ppd) filename, as a requirement of the old PPD spec.
@@ -969,10 +1099,10 @@ print_ppd_header(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
* the driver name, and makes the filename all UPPERCASE as well...
*/
- gzprintf(fp, "*PCFileName: \"STP%05d.PPD\"\n",
+ gpprintf(fp, "*PCFileName: \"STP%05d.PPD\"\n",
stp_get_printer_index_by_driver(driver) +
((int) ppd_type * stp_printer_model_count()));
- gzprintf(fp, "*Manufacturer: \"%s\"\n", manufacturer);
+ gpprintf(fp, "*Manufacturer: \"%s\"\n", manufacturer);
/*
* The Product attribute specifies the string returned by the PostScript
@@ -983,36 +1113,36 @@ print_ppd_header(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
* CUPS-based drivers. (This is a change from Gutenprint 5.0 and earlier)
*/
- gzprintf(fp, "*Product: \"(%s)\"\n", long_name);
+ gpprintf(fp, "*Product: \"(%s)\"\n", long_name);
/*
* The ModelName attribute now provides the long name rather than the
* short driver name... The rastertoprinter driver looks up both...
*/
- gzprintf(fp, "*ModelName: \"%s\"\n", long_name);
+ gpprintf(fp, "*ModelName: \"%s\"\n", long_name);
strncpy(short_long_name, long_name, PPD_MAX_SHORT_NICKNAME);
short_long_name[PPD_MAX_SHORT_NICKNAME] = '\0';
- gzprintf(fp, "*ShortNickName: \"%s\"\n", short_long_name);
+ gpprintf(fp, "*ShortNickName: \"%s\"\n", short_long_name);
/*
* NOTE - code in rastertoprinter looks for this version string.
* If this is changed, the corresponding change must be made in
* rastertoprinter.c. Look for "ppd->nickname"
*/
- gzprintf(fp, "*NickName: \"%s%s%s%s\"\n",
+ gpprintf(fp, "*NickName: \"%s%s%s%s\"\n",
long_name, CUPS_PPD_NICKNAME_STRING, VERSION,
(ppd_type == PPD_SIMPLIFIED ? " Simplified" :
ppd_type == PPD_NO_COLOR_OPTS ? " No Color Options" : ""));
if (cups_ppd_ps_level == 2)
- gzputs(fp, "*PSVersion: \"(2017.000) 550\"\n");
+ gpputs(fp, "*PSVersion: \"(2017.000) 550\"\n");
else
- gzputs(fp, "*PSVersion: \"(3010.000) 0\"\n");
- gzprintf(fp, "*LanguageLevel: \"%d\"\n", cups_ppd_ps_level);
+ gpputs(fp, "*PSVersion: \"(3010.000) 0\"\n");
+ gpprintf(fp, "*LanguageLevel: \"%d\"\n", cups_ppd_ps_level);
}
static void
-print_ppd_header_3(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
+print_ppd_header_3(gpFile fp, ppd_type_t ppd_type, int model, const char *driver,
const char *family, const char *long_name,
const char *manufacturer, const char *device_id,
const char *ppd_location,
@@ -1020,17 +1150,17 @@ print_ppd_header_3(gzFile fp, ppd_type_t ppd_type, int model, const char *driver
char **all_langs)
{
int i;
- gzputs(fp, "*FileSystem: False\n");
- gzputs(fp, "*LandscapeOrientation: Plus90\n");
- gzputs(fp, "*TTRasterizer: Type42\n");
+ gpputs(fp, "*FileSystem: False\n");
+ gpputs(fp, "*LandscapeOrientation: Plus90\n");
+ gpputs(fp, "*TTRasterizer: Type42\n");
- gzputs(fp, "*cupsVersion: 1.2\n");
- gzputs(fp, "*cupsManualCopies: True\n");
- gzprintf(fp, "*cupsFilter: \"application/vnd.cups-raster 100 rastertogutenprint.%s\"\n", GUTENPRINT_RELEASE_VERSION);
+ gpputs(fp, "*cupsVersion: 1.2\n");
+ gpputs(fp, "*cupsManualCopies: True\n");
+ gpprintf(fp, "*cupsFilter: \"application/vnd.cups-raster 100 rastertogutenprint.%s\"\n", GUTENPRINT_RELEASE_VERSION);
if (strcasecmp(manufacturer, "EPSON") == 0)
- gzputs(fp, "*cupsFilter: \"application/vnd.cups-command 33 commandtoepson\"\n");
+ gpputs(fp, "*cupsFilter: \"application/vnd.cups-command 33 commandtoepson\"\n");
if (device_id)
- gzprintf(fp, "*1284DeviceID: \"%s\"\n", device_id);
+ gpprintf(fp, "*1284DeviceID: \"%s\"\n", device_id);
if (!language)
{
/*
@@ -1044,31 +1174,31 @@ print_ppd_header_3(gzFile fp, ppd_type_t ppd_type, int model, const char *driver
if (!strcmp(all_langs[i], "C") || !strcmp(all_langs[i], "en"))
continue;
- gzprintf(fp, "%s%s", prefix, all_langs[i]);
+ gpprintf(fp, "%s%s", prefix, all_langs[i]);
prefix = " ";
}
if (!strcmp(prefix, " "))
- gzputs(fp, "\"\n");
+ gpputs(fp, "\"\n");
}
}
static void
-print_ppd_header_2(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
+print_ppd_header_2(gpFile fp, ppd_type_t ppd_type, int model, const char *driver,
const char *family, const char *long_name,
const char *manufacturer, const char *device_id,
const char *ppd_location,
const char *language, const stp_string_list_t *po,
char **all_langs)
{
- gzprintf(fp, "*StpDriverName: \"%s\"\n", driver);
- gzprintf(fp, "*StpDriverModelFamily: \"%d_%s\"\n", model, family);
- gzprintf(fp, "*StpPPDLocation: \"%s\"\n", ppd_location);
- gzprintf(fp, "*StpLocale: \"%s\"\n", language ? language : "C");
+ gpprintf(fp, "*StpDriverName: \"%s\"\n", driver);
+ gpprintf(fp, "*StpDriverModelFamily: \"%d_%s\"\n", model, family);
+ gpprintf(fp, "*StpPPDLocation: \"%s\"\n", ppd_location);
+ gpprintf(fp, "*StpLocale: \"%s\"\n", language ? language : "C");
}
static void
-print_page_sizes(gzFile fp, stp_vars_t *v, int simplified,
+print_page_sizes(gpFile fp, stp_vars_t *v, int simplified,
const stp_string_list_t *po)
{
int variable_sizes = 0;
@@ -1149,62 +1279,62 @@ print_page_sizes(gzFile fp, stp_vars_t *v, int simplified,
* applications still look for it to provide custom page size support.
*/
- gzprintf(fp, "*VariablePaperSize: %s\n\n", variable_sizes ? "true" : "false");
+ gpprintf(fp, "*VariablePaperSize: %s\n\n", variable_sizes ? "true" : "false");
if (stp_parameter_has_category_value(v, &desc, "Color", "Yes"))
- gzputs(fp, "*ColorKeyWords: \"PageSize\"\n");
- gzprintf(fp, "*OpenUI *PageSize/%s: PickOne\n", _("Media Size"));
- gzputs(fp, "*OPOptionHints PageSize: \"dropdown\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *PageSize\n");
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpputs(fp, "*ColorKeyWords: \"PageSize\"\n");
+ gpprintf(fp, "*OpenUI *PageSize/%s: PickOne\n", _("Media Size"));
+ gpputs(fp, "*OPOptionHints PageSize: \"dropdown\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *PageSize\n");
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc.name, desc.p_type, desc.is_mandatory,
desc.p_class, desc.p_level, desc.channel, 0.0, 0.0, 0.0);
- gzprintf(fp, "*DefaultPageSize: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultPageSize: %s\n", desc.deflt.str);
+ gpprintf(fp, "*DefaultPageSize: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultPageSize: %s\n", desc.deflt.str);
for (i = 0; i < cur_opt; i ++)
{
- gzprintf(fp, "*PageSize %s", the_papers[i].name);
- gzprintf(fp, "/%s:\t\"<</PageSize[%d %d]/ImagingBBox null>>setpagedevice\"\n",
+ gpprintf(fp, "*PageSize %s", the_papers[i].name);
+ gpprintf(fp, "/%s:\t\"<</PageSize[%d %d]/ImagingBBox null>>setpagedevice\"\n",
the_papers[i].text, the_papers[i].width, the_papers[i].height);
}
- gzputs(fp, "*CloseUI: *PageSize\n\n");
+ gpputs(fp, "*CloseUI: *PageSize\n\n");
if (stp_parameter_has_category_value(v, &desc, "Color", "Yes"))
- gzputs(fp, "*ColorKeyWords: \"PageRegion\"\n");
- gzprintf(fp, "*OpenUI *PageRegion/%s: PickOne\n", _("Media Size"));
- gzputs(fp, "*OPOptionHints PageRegion: \"dropdown\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *PageRegion\n");
- gzprintf(fp, "*DefaultPageRegion: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultPageRegion: %s\n", desc.deflt.str);
+ gpputs(fp, "*ColorKeyWords: \"PageRegion\"\n");
+ gpprintf(fp, "*OpenUI *PageRegion/%s: PickOne\n", _("Media Size"));
+ gpputs(fp, "*OPOptionHints PageRegion: \"dropdown\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *PageRegion\n");
+ gpprintf(fp, "*DefaultPageRegion: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultPageRegion: %s\n", desc.deflt.str);
for (i = 0; i < cur_opt; i ++)
{
- gzprintf(fp, "*PageRegion %s", the_papers[i].name);
- gzprintf(fp, "/%s:\t\"<</PageSize[%d %d]/ImagingBBox null>>setpagedevice\"\n",
+ gpprintf(fp, "*PageRegion %s", the_papers[i].name);
+ gpprintf(fp, "/%s:\t\"<</PageSize[%d %d]/ImagingBBox null>>setpagedevice\"\n",
the_papers[i].text, the_papers[i].width, the_papers[i].height);
}
- gzputs(fp, "*CloseUI: *PageRegion\n\n");
+ gpputs(fp, "*CloseUI: *PageRegion\n\n");
- gzprintf(fp, "*DefaultImageableArea: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultImageableArea: %s\n", desc.deflt.str);
+ gpprintf(fp, "*DefaultImageableArea: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultImageableArea: %s\n", desc.deflt.str);
for (i = 0; i < cur_opt; i ++)
{
- gzprintf(fp, "*ImageableArea %s", the_papers[i].name);
- gzprintf(fp, "/%s:\t\"%d %d %d %d\"\n", the_papers[i].text,
+ gpprintf(fp, "*ImageableArea %s", the_papers[i].name);
+ gpprintf(fp, "/%s:\t\"%d %d %d %d\"\n", the_papers[i].text,
the_papers[i].left, the_papers[i].bottom,
the_papers[i].right, the_papers[i].top);
}
- gzputs(fp, "\n");
+ gpputs(fp, "\n");
- gzprintf(fp, "*DefaultPaperDimension: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultPaperDimension: %s\n", desc.deflt.str);
+ gpprintf(fp, "*DefaultPaperDimension: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultPaperDimension: %s\n", desc.deflt.str);
for (i = 0; i < cur_opt; i ++)
{
- gzprintf(fp, "*PaperDimension %s", the_papers[i].name);
- gzprintf(fp, "/%s:\t\"%d %d\"\n",
+ gpprintf(fp, "*PaperDimension %s", the_papers[i].name);
+ gpprintf(fp, "/%s:\t\"%d %d\"\n",
the_papers[i].text, the_papers[i].width, the_papers[i].height);
}
- gzputs(fp, "\n");
+ gpputs(fp, "\n");
if (variable_sizes)
{
@@ -1221,18 +1351,18 @@ print_page_sizes(gzFile fp, stp_vars_t *v, int simplified,
if (right > width)
width = right;
- gzprintf(fp, "*MaxMediaWidth: \"%d\"\n", max_width);
- gzprintf(fp, "*MaxMediaHeight: \"%d\"\n", max_height);
- gzprintf(fp, "*HWMargins: %d %d %d %d\n",
+ gpprintf(fp, "*MaxMediaWidth: \"%d\"\n", max_width);
+ gpprintf(fp, "*MaxMediaHeight: \"%d\"\n", max_height);
+ gpprintf(fp, "*HWMargins: %d %d %d %d\n",
left, height - bottom, width - right, top);
- gzputs(fp, "*CustomPageSize True: \"pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice\"\n");
- gzprintf(fp, "*ParamCustomPageSize Width: 1 points %d %d\n",
+ gpputs(fp, "*CustomPageSize True: \"pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice\"\n");
+ gpprintf(fp, "*ParamCustomPageSize Width: 1 points %d %d\n",
min_width, max_width);
- gzprintf(fp, "*ParamCustomPageSize Height: 2 points %d %d\n",
+ gpprintf(fp, "*ParamCustomPageSize Height: 2 points %d %d\n",
min_height, max_height);
- gzputs(fp, "*ParamCustomPageSize WidthOffset: 3 points 0 0\n");
- gzputs(fp, "*ParamCustomPageSize HeightOffset: 4 points 0 0\n");
- gzputs(fp, "*ParamCustomPageSize Orientation: 5 int 0 0\n\n");
+ gpputs(fp, "*ParamCustomPageSize WidthOffset: 3 points 0 0\n");
+ gpputs(fp, "*ParamCustomPageSize HeightOffset: 4 points 0 0\n");
+ gpputs(fp, "*ParamCustomPageSize Orientation: 5 int 0 0\n\n");
stp_clear_string_parameter(v, "PageSize");
}
@@ -1242,33 +1372,33 @@ print_page_sizes(gzFile fp, stp_vars_t *v, int simplified,
}
static void
-print_color_setup(gzFile fp, int simplified, int printer_is_color,
+print_color_setup(gpFile fp, int simplified, int printer_is_color,
const stp_string_list_t *po)
{
- gzputs(fp, "*ColorKeyWords: \"ColorModel\"\n");
- gzprintf(fp, "*OpenUI *ColorModel/%s: PickOne\n", _("Color Model"));
- gzputs(fp, "*OPOptionHints ColorModel: \"radiobuttons\"\n");
- gzputs(fp, "*OrderDependency: 2 AnySetup *ColorModel\n");
+ gpputs(fp, "*ColorKeyWords: \"ColorModel\"\n");
+ gpprintf(fp, "*OpenUI *ColorModel/%s: PickOne\n", _("Color Model"));
+ gpputs(fp, "*OPOptionHints ColorModel: \"radiobuttons\"\n");
+ gpputs(fp, "*OrderDependency: 2 AnySetup *ColorModel\n");
if (printer_is_color)
{
- gzputs(fp, "*DefaultColorModel: RGB\n");
- gzputs(fp, "*StpDefaultColorModel: RGB\n");
+ gpputs(fp, "*DefaultColorModel: RGB\n");
+ gpputs(fp, "*StpDefaultColorModel: RGB\n");
}
else
{
- gzputs(fp, "*DefaultColorModel: Gray\n");
- gzputs(fp, "*StpDefaultColorModel: Gray\n");
+ gpputs(fp, "*DefaultColorModel: Gray\n");
+ gpputs(fp, "*StpDefaultColorModel: Gray\n");
}
- gzprintf(fp, "*ColorModel Gray/%s:\t\"<<"
+ gpprintf(fp, "*ColorModel Gray/%s:\t\"<<"
"/cupsColorSpace %d"
"/cupsColorOrder %d"
"%s"
">>setpagedevice\"\n",
_("Grayscale"), CUPS_CSPACE_W, CUPS_ORDER_CHUNKED,
simplified ? "/cupsBitsPerColor 8/cupsPreferredBitsPerColor 16" : "");
- gzprintf(fp, "*ColorModel Black/%s:\t\"<<"
+ gpprintf(fp, "*ColorModel Black/%s:\t\"<<"
"/cupsColorSpace %d"
"/cupsColorOrder %d"
"%s"
@@ -1278,28 +1408,28 @@ print_color_setup(gzFile fp, int simplified, int printer_is_color,
if (printer_is_color)
{
- gzprintf(fp, "*ColorModel RGB/%s:\t\"<<"
+ gpprintf(fp, "*ColorModel RGB/%s:\t\"<<"
"/cupsColorSpace %d"
"/cupsColorOrder %d"
"%s"
">>setpagedevice\"\n",
_("RGB Color"), CUPS_CSPACE_RGB, CUPS_ORDER_CHUNKED,
simplified ? "/cupsBitsPerColor 8/cupsPreferredBitsPerColor 16" : "");
- gzprintf(fp, "*ColorModel CMY/%s:\t\"<<"
+ gpprintf(fp, "*ColorModel CMY/%s:\t\"<<"
"/cupsColorSpace %d"
"/cupsColorOrder %d"
"%s"
">>setpagedevice\"\n",
_("CMY Color"), CUPS_CSPACE_CMY, CUPS_ORDER_CHUNKED,
simplified ? "/cupsBitsPerColor 8/cupsPreferredBitsPerColor 16" : "");
- gzprintf(fp, "*ColorModel CMYK/%s:\t\"<<"
+ gpprintf(fp, "*ColorModel CMYK/%s:\t\"<<"
"/cupsColorSpace %d"
"/cupsColorOrder %d"
"%s"
">>setpagedevice\"\n",
_("CMYK"), CUPS_CSPACE_CMYK, CUPS_ORDER_CHUNKED,
simplified ? "/cupsBitsPerColor 8/cupsPreferredBitsPerColor 16" : "");
- gzprintf(fp, "*ColorModel KCMY/%s:\t\"<<"
+ gpprintf(fp, "*ColorModel KCMY/%s:\t\"<<"
"/cupsColorSpace %d"
"/cupsColorOrder %d"
"%s"
@@ -1308,30 +1438,30 @@ print_color_setup(gzFile fp, int simplified, int printer_is_color,
simplified ? "/cupsBitsPerColor 8/cupsPreferredBitsPerColor 16" : "");
}
- gzputs(fp, "*CloseUI: *ColorModel\n\n");
+ gpputs(fp, "*CloseUI: *ColorModel\n\n");
if (!simplified)
{
/*
* 8 or 16 bit color (16 bit is slower)
*/
- gzputs(fp, "*ColorKeyWords: \"StpColorPrecision\"\n");
- gzprintf(fp, "*OpenUI *StpColorPrecision/%s: PickOne\n", _("Color Precision"));
- gzputs(fp, "*OPOptionHints StpColorPrecision: \"radiobuttons\"\n");
- gzputs(fp, "*OrderDependency: 1 AnySetup *StpColorPrecision\n");
- gzputs(fp, "*DefaultStpColorPrecision: Normal\n");
- gzputs(fp, "*StpDefaultStpColorPrecision: Normal\n");
- gzprintf(fp, "*StpColorPrecision Normal/%s:\t\"<<"
+ gpputs(fp, "*ColorKeyWords: \"StpColorPrecision\"\n");
+ gpprintf(fp, "*OpenUI *StpColorPrecision/%s: PickOne\n", _("Color Precision"));
+ gpputs(fp, "*OPOptionHints StpColorPrecision: \"radiobuttons\"\n");
+ gpputs(fp, "*OrderDependency: 1 AnySetup *StpColorPrecision\n");
+ gpputs(fp, "*DefaultStpColorPrecision: Normal\n");
+ gpputs(fp, "*StpDefaultStpColorPrecision: Normal\n");
+ gpprintf(fp, "*StpColorPrecision Normal/%s:\t\"<<"
"/cupsBitsPerColor 8>>setpagedevice\"\n", _("Normal"));
- gzprintf(fp, "*StpColorPrecision Best/%s:\t\"<<"
+ gpprintf(fp, "*StpColorPrecision Best/%s:\t\"<<"
"/cupsBitsPerColor 8"
"/cupsPreferredBitsPerColor 16>>setpagedevice\"\n", _("Best"));
- gzputs(fp, "*CloseUI: *StpColorPrecision\n\n");
+ gpputs(fp, "*CloseUI: *StpColorPrecision\n\n");
}
}
static void
print_group(
- gzFile fp, /* I - File to write to */
+ gpFile fp, /* I - File to write to */
const char *what,
stp_parameter_class_t p_class, /* I - Option class */
stp_parameter_level_t p_level, /* I - Option level */
@@ -1343,7 +1473,7 @@ print_group(
const char *level = stp_i18n_lookup(po, parameter_level_names[p_level]);
size_t bytes = bytelen(class) + bytelen(level);
snprintf(buf, 40, "%s%s%s", class, bytes < 39 ? " " : "", level);
- gzprintf(fp, "*%sGroup: C%dL%d/%s\n", what, p_class, p_level, buf);
+ gpprintf(fp, "*%sGroup: C%dL%d/%s\n", what, p_class, p_level, buf);
if (language && !strcmp(language, "C") && !strcmp(what, "Open"))
{
char **all_langs = getlangs();/* All languages */
@@ -1364,12 +1494,12 @@ print_group(
level = stp_i18n_lookup(altpo, parameter_level_names[p_level]);
bytes = bytelen(class) + bytelen(level);
snprintf(buf, 40, "%s%s%s", class, bytes < 39 ? " " : "", level);
- gzprintf(fp, "*%s.Translation C%dL%d/%s: \"\"\n",
+ gpprintf(fp, "*%s.Translation C%dL%d/%s: \"\"\n",
lang, p_class, p_level, buf);
}
}
}
- gzputs(fp, "\n");
+ gpputs(fp, "\n");
}
/*
@@ -1378,7 +1508,7 @@ print_group(
static void
print_group_close(
- gzFile fp, /* I - File to write to */
+ gpFile fp, /* I - File to write to */
stp_parameter_class_t p_class, /* I - Option class */
stp_parameter_level_t p_level, /* I - Option level */
const char *language, /* I - language */
@@ -1394,7 +1524,7 @@ print_group_close(
static void
print_group_open(
- gzFile fp, /* I - File to write to */
+ gpFile fp, /* I - File to write to */
stp_parameter_class_t p_class, /* I - Option class */
stp_parameter_level_t p_level, /* I - Option level */
const char *language, /* I - language */
@@ -1404,7 +1534,7 @@ print_group_open(
}
static void
-print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
+print_one_option(gpFile fp, stp_vars_t *v, const stp_string_list_t *po,
ppd_type_t ppd_type, const stp_parameter_t *lparam,
const stp_parameter_t *desc)
{
@@ -1418,10 +1548,10 @@ print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
int is_color_opt = stp_parameter_has_category_value(v, desc, "Color", "Yes");
int skip_color = (ppd_type == PPD_NO_COLOR_OPTS && is_color_opt);
if (is_color_opt)
- gzprintf(fp, "*ColorKeyWords: \"Stp%s\"\n", desc->name);
- gzprintf(fp, "*OpenUI *Stp%s/%s: PickOne\n",
+ gpprintf(fp, "*ColorKeyWords: \"Stp%s\"\n", desc->name);
+ gpprintf(fp, "*OpenUI *Stp%s/%s: PickOne\n",
desc->name, stp_i18n_lookup(po, desc->text));
- gzprintf(fp, "*OrderDependency: 10 AnySetup *Stp%s\n", desc->name);
+ gpprintf(fp, "*OrderDependency: 10 AnySetup *Stp%s\n", desc->name);
switch (desc->p_type)
{
case STP_PARAMETER_TYPE_STRING_LIST:
@@ -1429,72 +1559,72 @@ print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
if (! skip_color)
{
if (num_opts > 3)
- gzprintf(fp, "*OPOptionHints Stp%s: \"dropdown\"\n", lparam->name);
+ gpprintf(fp, "*OPOptionHints Stp%s: \"dropdown\"\n", lparam->name);
else
- gzprintf(fp, "*OPOptionHints Stp%s: \"radiobuttons\"\n", lparam->name);
+ gpprintf(fp, "*OPOptionHints Stp%s: \"radiobuttons\"\n", lparam->name);
}
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc->name, desc->p_type, desc->is_mandatory, desc->p_class,
desc->p_level, desc->channel, 0.0, 0.0, 0.0);
if (desc->is_mandatory)
{
- gzprintf(fp, "*DefaultStp%s: %s\n", desc->name, desc->deflt.str);
- gzprintf(fp, "*StpDefaultStp%s: %s\n", desc->name, desc->deflt.str);
+ gpprintf(fp, "*DefaultStp%s: %s\n", desc->name, desc->deflt.str);
+ gpprintf(fp, "*StpDefaultStp%s: %s\n", desc->name, desc->deflt.str);
}
else
{
- gzprintf(fp, "*DefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
+ gpprintf(fp, "*DefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
}
for (i = 0; i < num_opts; i++)
{
opt = stp_string_list_param(desc->bounds.str, i);
if (skip_color && strcmp(opt->name, desc->deflt.str) != 0)
- gzprintf(fp, "*?Stp%s %s/%s: \"\"\n",
+ gpprintf(fp, "*?Stp%s %s/%s: \"\"\n",
desc->name, opt->name, stp_i18n_lookup(po, opt->text));
else
- gzprintf(fp, "*Stp%s %s/%s: \"\"\n",
+ gpprintf(fp, "*Stp%s %s/%s: \"\"\n",
desc->name, opt->name, stp_i18n_lookup(po, opt->text));
}
break;
case STP_PARAMETER_TYPE_BOOLEAN:
- gzprintf(fp, "*OPOptionHints Stp%s: \"checkbox\"\n", lparam->name);
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*OPOptionHints Stp%s: \"checkbox\"\n", lparam->name);
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc->name, desc->p_type, desc->is_mandatory, desc->p_class,
desc->p_level, desc->channel, 0.0, 0.0,
desc->deflt.boolean ? 1.0 : 0.0);
if (desc->is_mandatory)
{
- gzprintf(fp, "*DefaultStp%s: %s\n", desc->name,
+ gpprintf(fp, "*DefaultStp%s: %s\n", desc->name,
desc->deflt.boolean ? "True" : "False");
- gzprintf(fp, "*StpDefaultStp%s: %s\n", desc->name,
+ gpprintf(fp, "*StpDefaultStp%s: %s\n", desc->name,
desc->deflt.boolean ? "True" : "False");
if (skip_color)
- gzprintf(fp, "*Stp%s %s/%s: \"\"\n",
+ gpprintf(fp, "*Stp%s %s/%s: \"\"\n",
desc->name, desc->deflt.boolean ? "True" : "False",
desc->deflt.boolean ? _("Yes") : _("No"));
}
else
{
- gzprintf(fp, "*DefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
+ gpprintf(fp, "*DefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
}
- gzprintf(fp, "*%sStp%s %s/%s: \"\"\n",
+ gpprintf(fp, "*%sStp%s %s/%s: \"\"\n",
(skip_color ? "?" : ""), desc->name, "False", _("No"));
- gzprintf(fp, "*%sStp%s %s/%s: \"\"\n",
+ gpprintf(fp, "*%sStp%s %s/%s: \"\"\n",
(skip_color ? "?" : ""), desc->name, "True", _("Yes"));
break;
case STP_PARAMETER_TYPE_DOUBLE:
- gzprintf(fp, "*OPOptionHints Stp%s: \"slider input spinbox\"\n",
+ gpprintf(fp, "*OPOptionHints Stp%s: \"slider input spinbox\"\n",
lparam->name);
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc->name, desc->p_type, desc->is_mandatory, desc->p_class,
desc->p_level, desc->channel, desc->bounds.dbl.lower,
desc->bounds.dbl.upper, desc->deflt.dbl);
- gzprintf(fp, "*DefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*DefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
if (!skip_color)
{
for (i = desc->bounds.dbl.lower * 1000;
@@ -1502,55 +1632,55 @@ print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
{
if (desc->deflt.dbl * 1000 == i && desc->is_mandatory)
{
- gzprintf(fp, "*Stp%s None/%.3f: \"\"\n",
+ gpprintf(fp, "*Stp%s None/%.3f: \"\"\n",
desc->name, ((double) i) * .001);
printed_default_value = 1;
}
else
- gzprintf(fp, "*Stp%s %d/%.3f: \"\"\n",
+ gpprintf(fp, "*Stp%s %d/%.3f: \"\"\n",
desc->name, i, ((double) i) * .001);
}
}
if (!desc->is_mandatory)
- gzprintf(fp, "*Stp%s None/%s: \"\"\n", desc->name, _("None"));
+ gpprintf(fp, "*Stp%s None/%s: \"\"\n", desc->name, _("None"));
else if (! printed_default_value)
- gzprintf(fp, "*Stp%s None/%.3f: \"\"\n", desc->name, desc->deflt.dbl);
- gzprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
+ gpprintf(fp, "*Stp%s None/%.3f: \"\"\n", desc->name, desc->deflt.dbl);
+ gpprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
/*
* Add custom option code and value parameter...
*/
- gzprintf(fp, "*CustomStp%s True: \"pop\"\n", desc->name);
- gzprintf(fp, "*ParamCustomStp%s Value/%s: 1 real %.3f %.3f\n\n",
+ gpprintf(fp, "*CustomStp%s True: \"pop\"\n", desc->name);
+ gpprintf(fp, "*ParamCustomStp%s Value/%s: 1 real %.3f %.3f\n\n",
desc->name, _("Value"), desc->bounds.dbl.lower,
desc->bounds.dbl.upper);
if (!simplified && !skip_color)
{
if (is_color_opt)
- gzprintf(fp, "*ColorKeyWords: \"StpFine%s\"\n", desc->name);
- gzprintf(fp, "*OpenUI *StpFine%s/%s %s: PickOne\n",
+ gpprintf(fp, "*ColorKeyWords: \"StpFine%s\"\n", desc->name);
+ gpprintf(fp, "*OpenUI *StpFine%s/%s %s: PickOne\n",
desc->name, stp_i18n_lookup(po, desc->text),
_("Fine Adjustment"));
- gzprintf(fp, "*OPOptionHints StpFine%s: \"hide\"\n", lparam->name);
- gzprintf(fp, "*StpStpFine%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*OPOptionHints StpFine%s: \"hide\"\n", lparam->name);
+ gpprintf(fp, "*StpStpFine%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc->name, STP_PARAMETER_TYPE_INVALID, 0,
0, 0, -1, 0.0, 0.0, 0.0);
- gzprintf(fp, "*DefaultStpFine%s: None\n", desc->name);
- gzprintf(fp, "*StpDefaultStpFine%s: None\n", desc->name);
- gzprintf(fp, "*StpFine%s None/0.000: \"\"\n", desc->name);
+ gpprintf(fp, "*DefaultStpFine%s: None\n", desc->name);
+ gpprintf(fp, "*StpDefaultStpFine%s: None\n", desc->name);
+ gpprintf(fp, "*StpFine%s None/0.000: \"\"\n", desc->name);
for (i = 0; i < 100; i += 5)
- gzprintf(fp, "*StpFine%s %d/%.3f: \"\"\n",
+ gpprintf(fp, "*StpFine%s %d/%.3f: \"\"\n",
desc->name, i, ((double) i) * .001);
- gzprintf(fp, "*CloseUI: *StpFine%s\n\n", desc->name);
+ gpprintf(fp, "*CloseUI: *StpFine%s\n\n", desc->name);
}
print_close_ui = 0;
break;
case STP_PARAMETER_TYPE_DIMENSION:
- gzprintf(fp, "*OPOptionHints Stp%s: \"length slider input spinbox\"\n",
+ gpprintf(fp, "*OPOptionHints Stp%s: \"length slider input spinbox\"\n",
lparam->name);
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc->name, desc->p_type, desc->is_mandatory,
desc->p_class, desc->p_level, desc->channel,
(double) desc->bounds.dimension.lower,
@@ -1558,16 +1688,16 @@ print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
(double) desc->deflt.dimension);
if (desc->is_mandatory)
{
- gzprintf(fp, "*DefaultStp%s: %d\n",
+ gpprintf(fp, "*DefaultStp%s: %d\n",
desc->name, desc->deflt.dimension);
- gzprintf(fp, "*StpDefaultStp%s: %d\n",
+ gpprintf(fp, "*StpDefaultStp%s: %d\n",
desc->name, desc->deflt.dimension);
}
else
{
- gzprintf(fp, "*DefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
+ gpprintf(fp, "*DefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
}
if (!skip_color)
{
@@ -1576,26 +1706,26 @@ print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
{
snprintf(dimstr, sizeof(dimstr), _("%.1f mm"),
(double)i * 25.4 / 72.0);
- gzprintf(fp, "*Stp%s %d/%s: \"\"\n", desc->name, i, dimstr);
+ gpprintf(fp, "*Stp%s %d/%s: \"\"\n", desc->name, i, dimstr);
}
}
print_close_ui = 0;
- gzprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
+ gpprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
/*
* Add custom option code and value parameter...
*/
- gzprintf(fp, "*CustomStp%s True: \"pop\"\n", desc->name);
- gzprintf(fp, "*ParamCustomStp%s Value/%s: 1 points %d %d\n\n",
+ gpprintf(fp, "*CustomStp%s True: \"pop\"\n", desc->name);
+ gpprintf(fp, "*ParamCustomStp%s Value/%s: 1 points %d %d\n\n",
desc->name, _("Value"), desc->bounds.dimension.lower,
desc->bounds.dimension.upper);
break;
case STP_PARAMETER_TYPE_INT:
- gzprintf(fp, "*OPOptionHints Stp%s: \"input spinbox\"\n", lparam->name);
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*OPOptionHints Stp%s: \"input spinbox\"\n", lparam->name);
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc->name, desc->p_type, desc->is_mandatory, desc->p_class,
desc->p_level, desc->channel,
(double) desc->bounds.integer.lower,
@@ -1603,33 +1733,33 @@ print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
(double) desc->deflt.integer);
if (desc->is_mandatory)
{
- gzprintf(fp, "*DefaultStp%s: %d\n", desc->name, desc->deflt.integer);
- gzprintf(fp, "*StpDefaultStp%s: %d\n", desc->name, desc->deflt.integer);
+ gpprintf(fp, "*DefaultStp%s: %d\n", desc->name, desc->deflt.integer);
+ gpprintf(fp, "*StpDefaultStp%s: %d\n", desc->name, desc->deflt.integer);
if (skip_color)
- gzprintf(fp, "*Stp%s %d/%d: \"\"\n", desc->name,
+ gpprintf(fp, "*Stp%s %d/%d: \"\"\n", desc->name,
desc->deflt.integer, desc->deflt.integer);
}
else
{
- gzprintf(fp, "*DefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
- gzprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
+ gpprintf(fp, "*DefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*StpDefaultStp%s: None\n", desc->name);
+ gpprintf(fp, "*Stp%s %s/%s: \"\"\n", desc->name, "None", _("None"));
}
for (i = desc->bounds.integer.lower; i <= desc->bounds.integer.upper; i++)
{
- gzprintf(fp, "*%sStp%s %d/%d: \"\"\n",
+ gpprintf(fp, "*%sStp%s %d/%d: \"\"\n",
(skip_color ? "?" : ""), desc->name, i, i);
}
print_close_ui = 0;
- gzprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
+ gpprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
/*
* Add custom option code and value parameter...
*/
- gzprintf(fp, "*CustomStp%s True: \"pop\"\n", desc->name);
- gzprintf(fp, "*ParamCustomStp%s Value/%s: 1 int %d %d\n\n", desc->name,
+ gpprintf(fp, "*CustomStp%s True: \"pop\"\n", desc->name);
+ gpprintf(fp, "*ParamCustomStp%s Value/%s: 1 int %d %d\n\n", desc->name,
_("Value"), desc->bounds.dimension.lower,
desc->bounds.dimension.upper);
@@ -1638,11 +1768,11 @@ print_one_option(gzFile fp, stp_vars_t *v, const stp_string_list_t *po,
break;
}
if (print_close_ui)
- gzprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
+ gpprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
}
static void
-print_one_localization(gzFile fp, const stp_string_list_t *po,
+print_one_localization(gpFile fp, const stp_string_list_t *po,
int simplified, const char *lang,
const stp_parameter_t *lparam,
const stp_parameter_t *desc)
@@ -1651,30 +1781,30 @@ print_one_localization(gzFile fp, const stp_string_list_t *po,
int i;
const stp_param_string_t *opt;
char dimstr[255]; /* Dimension string */
-
- gzprintf(fp, "*%s.Translation Stp%s/%s: \"\"\n", lang,
+
+ gpprintf(fp, "*%s.Translation Stp%s/%s: \"\"\n", lang,
desc->name, stp_i18n_lookup(po, desc->text));
switch (desc->p_type)
{
case STP_PARAMETER_TYPE_STRING_LIST:
if (!desc->is_mandatory)
- gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
+ gpprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
"None", _("None"));
num_opts = stp_string_list_count(desc->bounds.str);
for (i = 0; i < num_opts; i++)
{
opt = stp_string_list_param(desc->bounds.str, i);
- gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang,
desc->name, opt->name, stp_i18n_lookup(po, opt->text));
}
break;
case STP_PARAMETER_TYPE_BOOLEAN:
if (!desc->is_mandatory)
- gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
+ gpprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
"None", _("None"));
- gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name, "False", _("No"));
- gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name, "True", _("Yes"));
+ gpprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name, "False", _("No"));
+ gpprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name, "True", _("Yes"));
break;
case STP_PARAMETER_TYPE_DOUBLE:
@@ -1684,28 +1814,28 @@ print_one_localization(gzFile fp, const stp_string_list_t *po,
i <= desc->bounds.dbl.upper * 1000; i += 100)
{
if (desc->deflt.dbl * 1000 == i && desc->is_mandatory)
- gzprintf(fp, "*%s.Stp%s None/%.3f: \"\"\n", lang,
+ gpprintf(fp, "*%s.Stp%s None/%.3f: \"\"\n", lang,
desc->name, ((double) i) * .001);
else
- gzprintf(fp, "*%s.Stp%s %d/%.3f: \"\"\n", lang,
+ gpprintf(fp, "*%s.Stp%s %d/%.3f: \"\"\n", lang,
desc->name, i, ((double) i) * .001);
}
}
if (!desc->is_mandatory)
- gzprintf(fp, "*%s.Stp%s None/%s: \"\"\n", lang, desc->name, _("None"));
- gzprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.Stp%s None/%s: \"\"\n", lang, desc->name, _("None"));
+ gpprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
desc->name, _("Value"));
if (!simplified)
{
- gzprintf(fp, "*%s.Translation StpFine%s/%s %s: \"\"\n", lang,
+ gpprintf(fp, "*%s.Translation StpFine%s/%s %s: \"\"\n", lang,
desc->name, stp_i18n_lookup(po, desc->text),
_("Fine Adjustment"));
- gzprintf(fp, "*%s.StpFine%s None/%.3f: \"\"\n", lang,
+ gpprintf(fp, "*%s.StpFine%s None/%.3f: \"\"\n", lang,
desc->name, 0.0);
if (localize_numbers)
{
for (i = 0; i < 100; i += 5)
- gzprintf(fp, "*%s.StpFine%s %d/%.3f: \"\"\n", lang,
+ gpprintf(fp, "*%s.StpFine%s %d/%.3f: \"\"\n", lang,
desc->name, i, ((double) i) * .001);
}
}
@@ -1713,7 +1843,7 @@ print_one_localization(gzFile fp, const stp_string_list_t *po,
case STP_PARAMETER_TYPE_DIMENSION:
if (!desc->is_mandatory)
- gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
+ gpprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
"None", _("None"));
/* Unlike the other fields, dimensions are not strictly numbers */
for (i = desc->bounds.dimension.lower;
@@ -1721,26 +1851,26 @@ print_one_localization(gzFile fp, const stp_string_list_t *po,
{
snprintf(dimstr, sizeof(dimstr), _("%.1f mm"),
(double)i * 25.4 / 72.0);
- gzprintf(fp, "*%s.Stp%s %d/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.Stp%s %d/%s: \"\"\n", lang,
desc->name, i, dimstr);
}
- gzprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
desc->name, _("Value"));
break;
case STP_PARAMETER_TYPE_INT:
if (!desc->is_mandatory)
- gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
+ gpprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc->name,
"None", _("None"));
if (localize_numbers)
{
for (i = desc->bounds.integer.lower;
i <= desc->bounds.integer.upper; i++)
{
- gzprintf(fp, "*%s.Stp%s %d/%d: \"\"\n", lang, desc->name, i, i);
+ gpprintf(fp, "*%s.Stp%s %d/%d: \"\"\n", lang, desc->name, i, i);
}
}
- gzprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
desc->name, _("Value"));
break;
@@ -1750,44 +1880,44 @@ print_one_localization(gzFile fp, const stp_string_list_t *po,
}
static void
-print_standard_fonts(gzFile fp)
+print_standard_fonts(gpFile fp)
{
- gzputs(fp, "\n*DefaultFont: Courier\n");
- gzputs(fp, "*Font AvantGarde-Book: Standard \"(001.006S)\" Standard ROM\n");
- gzputs(fp, "*Font AvantGarde-BookOblique: Standard \"(001.006S)\" Standard ROM\n");
- gzputs(fp, "*Font AvantGarde-Demi: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font AvantGarde-DemiOblique: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Bookman-Demi: Standard \"(001.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Bookman-DemiItalic: Standard \"(001.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Bookman-Light: Standard \"(001.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Bookman-LightItalic: Standard \"(001.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Courier: Standard \"(002.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Courier-Bold: Standard \"(002.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Courier-BoldOblique: Standard \"(002.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Courier-Oblique: Standard \"(002.004S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica: Standard \"(001.006S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica-Bold: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica-BoldOblique: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica-Narrow: Standard \"(001.006S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica-Narrow-Bold: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica-Narrow-BoldOblique: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica-Narrow-Oblique: Standard \"(001.006S)\" Standard ROM\n");
- gzputs(fp, "*Font Helvetica-Oblique: Standard \"(001.006S)\" Standard ROM\n");
- gzputs(fp, "*Font NewCenturySchlbk-Bold: Standard \"(001.009S)\" Standard ROM\n");
- gzputs(fp, "*Font NewCenturySchlbk-BoldItalic: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font NewCenturySchlbk-Italic: Standard \"(001.006S)\" Standard ROM\n");
- gzputs(fp, "*Font NewCenturySchlbk-Roman: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Palatino-Bold: Standard \"(001.005S)\" Standard ROM\n");
- gzputs(fp, "*Font Palatino-BoldItalic: Standard \"(001.005S)\" Standard ROM\n");
- gzputs(fp, "*Font Palatino-Italic: Standard \"(001.005S)\" Standard ROM\n");
- gzputs(fp, "*Font Palatino-Roman: Standard \"(001.005S)\" Standard ROM\n");
- gzputs(fp, "*Font Symbol: Special \"(001.007S)\" Special ROM\n");
- gzputs(fp, "*Font Times-Bold: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Times-BoldItalic: Standard \"(001.009S)\" Standard ROM\n");
- gzputs(fp, "*Font Times-Italic: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font Times-Roman: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font ZapfChancery-MediumItalic: Standard \"(001.007S)\" Standard ROM\n");
- gzputs(fp, "*Font ZapfDingbats: Special \"(001.004S)\" Standard ROM\n");
+ gpputs(fp, "\n*DefaultFont: Courier\n");
+ gpputs(fp, "*Font AvantGarde-Book: Standard \"(001.006S)\" Standard ROM\n");
+ gpputs(fp, "*Font AvantGarde-BookOblique: Standard \"(001.006S)\" Standard ROM\n");
+ gpputs(fp, "*Font AvantGarde-Demi: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font AvantGarde-DemiOblique: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Bookman-Demi: Standard \"(001.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Bookman-DemiItalic: Standard \"(001.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Bookman-Light: Standard \"(001.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Bookman-LightItalic: Standard \"(001.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Courier: Standard \"(002.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Courier-Bold: Standard \"(002.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Courier-BoldOblique: Standard \"(002.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Courier-Oblique: Standard \"(002.004S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica: Standard \"(001.006S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica-Bold: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica-BoldOblique: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica-Narrow: Standard \"(001.006S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica-Narrow-Bold: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica-Narrow-BoldOblique: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica-Narrow-Oblique: Standard \"(001.006S)\" Standard ROM\n");
+ gpputs(fp, "*Font Helvetica-Oblique: Standard \"(001.006S)\" Standard ROM\n");
+ gpputs(fp, "*Font NewCenturySchlbk-Bold: Standard \"(001.009S)\" Standard ROM\n");
+ gpputs(fp, "*Font NewCenturySchlbk-BoldItalic: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font NewCenturySchlbk-Italic: Standard \"(001.006S)\" Standard ROM\n");
+ gpputs(fp, "*Font NewCenturySchlbk-Roman: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Palatino-Bold: Standard \"(001.005S)\" Standard ROM\n");
+ gpputs(fp, "*Font Palatino-BoldItalic: Standard \"(001.005S)\" Standard ROM\n");
+ gpputs(fp, "*Font Palatino-Italic: Standard \"(001.005S)\" Standard ROM\n");
+ gpputs(fp, "*Font Palatino-Roman: Standard \"(001.005S)\" Standard ROM\n");
+ gpputs(fp, "*Font Symbol: Special \"(001.007S)\" Special ROM\n");
+ gpputs(fp, "*Font Times-Bold: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Times-BoldItalic: Standard \"(001.009S)\" Standard ROM\n");
+ gpputs(fp, "*Font Times-Italic: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font Times-Roman: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font ZapfChancery-MediumItalic: Standard \"(001.007S)\" Standard ROM\n");
+ gpputs(fp, "*Font ZapfDingbats: Special \"(001.004S)\" Standard ROM\n");
}
/*
@@ -1796,7 +1926,7 @@ print_standard_fonts(gzFile fp)
static int /* O - Exit status */
write_ppd(
- gzFile fp, /* I - File to write to */
+ gpFile fp, /* I - File to write to */
const stp_printer_t *p, /* I - Printer driver */
const char *language, /* I - Primary language */
const char *ppd_location, /* I - Location of PPD file */
@@ -1858,17 +1988,17 @@ write_ppd(
if (stp_string_list_is_present(desc.bounds.str, "Color"))
{
printer_is_color = 1;
- gzputs(fp, "*ColorDevice: True\n");
+ gpputs(fp, "*ColorDevice: True\n");
}
else
{
printer_is_color = 0;
- gzputs(fp, "*ColorDevice: False\n");
+ gpputs(fp, "*ColorDevice: False\n");
}
if (strcmp(desc.deflt.str, "Color") == 0)
- gzputs(fp, "*DefaultColorSpace: RGB\n");
+ gpputs(fp, "*DefaultColorSpace: RGB\n");
else
- gzputs(fp, "*DefaultColorSpace: Gray\n");
+ gpputs(fp, "*DefaultColorSpace: Gray\n");
}
stp_parameter_description_destroy(&desc);
@@ -1879,15 +2009,15 @@ write_ppd(
/* Macintosh color management */
#ifdef __APPLE__
- gzputs(fp, "*cupsICCProfile Gray../Grayscale: \"/System/Library/ColorSync/Profiles/sRGB Profile.icc\"\n");
- gzputs(fp, "*cupsICCProfile RGB../Color: \"/System/Library/ColorSync/Profiles/sRGB Profile.icc\"\n");
- gzputs(fp, "*cupsICCProfile CMYK../Color: \"/System/Library/ColorSync/Profiles/Generic CMYK Profile.icc\"\n");
- gzputs(fp, "*APSupportsCustomColorMatching: true\n");
- gzputs(fp, "*APDefaultCustomColorMatchingProfile: sRGB\n");
- gzputs(fp, "*APCustomColorMatchingProfile: sRGB\n");
+ gpputs(fp, "*cupsICCProfile Gray../Grayscale: \"/System/Library/ColorSync/Profiles/sRGB Profile.icc\"\n");
+ gpputs(fp, "*cupsICCProfile RGB../Color: \"/System/Library/ColorSync/Profiles/sRGB Profile.icc\"\n");
+ gpputs(fp, "*cupsICCProfile CMYK../Color: \"/System/Library/ColorSync/Profiles/Generic CMYK Profile.icc\"\n");
+ gpputs(fp, "*APSupportsCustomColorMatching: true\n");
+ gpputs(fp, "*APDefaultCustomColorMatchingProfile: sRGB\n");
+ gpputs(fp, "*APCustomColorMatchingProfile: sRGB\n");
#endif
- gzputs(fp, "\n");
+ gpputs(fp, "\n");
print_ppd_header_2(fp, ppd_type, model, driver, family, long_name,
manufacturer, device_id, ppd_location, language, po,
@@ -1915,33 +2045,34 @@ write_ppd(
*/
stp_describe_parameter(v, "MediaType", &desc);
- num_opts = stp_string_list_count(desc.bounds.str);
- if (num_opts > 0)
+ if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST && desc.is_active &&
+ stp_string_list_count(desc.bounds.str) > 0)
{
int is_color_opt =
stp_parameter_has_category_value(v, &desc, "Color", "Yes");
int nocolor = skip_color && is_color_opt;
+ num_opts = stp_string_list_count(desc.bounds.str);
if (is_color_opt)
- gzprintf(fp, "*ColorKeyWords: \"MediaType\"\n");
- gzprintf(fp, "*OpenUI *MediaType/%s: PickOne\n", _("Media Type"));
- gzputs(fp, "*OPOptionHints MediaType: \"dropdown\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *MediaType\n");
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*ColorKeyWords: \"MediaType\"\n");
+ gpprintf(fp, "*OpenUI *MediaType/%s: PickOne\n", _("Media Type"));
+ gpputs(fp, "*OPOptionHints MediaType: \"dropdown\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *MediaType\n");
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc.name, desc.p_type, desc.is_mandatory,
desc.p_class, desc.p_level, desc.channel, 0.0, 0.0, 0.0);
- gzprintf(fp, "*DefaultMediaType: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultMediaType: %s\n", desc.deflt.str);
+ gpprintf(fp, "*DefaultMediaType: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultMediaType: %s\n", desc.deflt.str);
for (i = 0; i < num_opts; i ++)
{
opt = stp_string_list_param(desc.bounds.str, i);
- gzprintf(fp, "*%sMediaType %s/%s:\t\"<</MediaType(%s)>>setpagedevice\"\n",
+ gpprintf(fp, "*%sMediaType %s/%s:\t\"<</MediaType(%s)>>setpagedevice\"\n",
nocolor && strcmp(opt->name, desc.deflt.str) != 0 ? "?" : "",
opt->name, stp_i18n_lookup(po, opt->text), opt->name);
}
- gzputs(fp, "*CloseUI: *MediaType\n\n");
+ gpputs(fp, "*CloseUI: *MediaType\n\n");
}
stp_parameter_description_destroy(&desc);
@@ -1950,33 +2081,34 @@ write_ppd(
*/
stp_describe_parameter(v, "InputSlot", &desc);
- num_opts = stp_string_list_count(desc.bounds.str);
- if (num_opts > 0)
+ if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST && desc.is_active &&
+ stp_string_list_count(desc.bounds.str) > 0)
{
int is_color_opt =
stp_parameter_has_category_value(v, &desc, "Color", "Yes");
int nocolor = skip_color && is_color_opt;
+ num_opts = stp_string_list_count(desc.bounds.str);
if (is_color_opt)
- gzprintf(fp, "*ColorKeyWords: \"InputSlot\"\n");
- gzprintf(fp, "*OpenUI *InputSlot/%s: PickOne\n", _("Media Source"));
- gzputs(fp, "*OPOptionHints InputSlot: \"dropdown\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *InputSlot\n");
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*ColorKeyWords: \"InputSlot\"\n");
+ gpprintf(fp, "*OpenUI *InputSlot/%s: PickOne\n", _("Media Source"));
+ gpputs(fp, "*OPOptionHints InputSlot: \"dropdown\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *InputSlot\n");
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc.name, desc.p_type, desc.is_mandatory,
desc.p_class, desc.p_level, desc.channel, 0.0, 0.0, 0.0);
- gzprintf(fp, "*DefaultInputSlot: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultInputSlot: %s\n", desc.deflt.str);
+ gpprintf(fp, "*DefaultInputSlot: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultInputSlot: %s\n", desc.deflt.str);
for (i = 0; i < num_opts; i ++)
{
opt = stp_string_list_param(desc.bounds.str, i);
- gzprintf(fp, "*%sInputSlot %s/%s:\t\"<</MediaClass(%s)>>setpagedevice\"\n",
+ gpprintf(fp, "*%sInputSlot %s/%s:\t\"<</MediaClass(%s)>>setpagedevice\"\n",
nocolor && strcmp(opt->name, desc.deflt.str) != 0 ? "?" : "",
opt->name, stp_i18n_lookup(po, opt->text), opt->name);
}
- gzputs(fp, "*CloseUI: *InputSlot\n\n");
+ gpputs(fp, "*CloseUI: *InputSlot\n\n");
}
stp_parameter_description_destroy(&desc);
@@ -1991,21 +2123,21 @@ write_ppd(
stp_parameter_has_category_value(v, &desc, "Color", "Yes");
int nocolor = skip_color && is_color_opt;
if (is_color_opt)
- gzprintf(fp, "*ColorKeyWords: \"Quality\"\n");
+ gpprintf(fp, "*ColorKeyWords: \"Quality\"\n");
stp_clear_string_parameter(v, "Resolution");
has_quality_parameter = 1;
num_opts = stp_string_list_count(desc.bounds.str);
- gzprintf(fp, "*OpenUI *StpQuality/%s: PickOne\n", stp_i18n_lookup(po, desc.text));
+ gpprintf(fp, "*OpenUI *StpQuality/%s: PickOne\n", stp_i18n_lookup(po, desc.text));
if (num_opts > 3)
- gzputs(fp, "*OPOptionHints Quality: \"radiobuttons\"\n");
+ gpputs(fp, "*OPOptionHints Quality: \"radiobuttons\"\n");
else
- gzputs(fp, "*OPOptionHints Quality: \"dropdown\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *StpQuality\n");
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpputs(fp, "*OPOptionHints Quality: \"dropdown\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *StpQuality\n");
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc.name, desc.p_type, desc.is_mandatory,
desc.p_type, desc.p_level, desc.channel, 0.0, 0.0, 0.0);
- gzprintf(fp, "*DefaultStpQuality: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultStpQuality: %s\n", desc.deflt.str);
+ gpprintf(fp, "*DefaultStpQuality: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultStpQuality: %s\n", desc.deflt.str);
for (i = 0; i < num_opts; i++)
{
opt = stp_string_list_param(desc.bounds.str, i);
@@ -2021,11 +2153,11 @@ write_ppd(
stp_clear_string_parameter(v, "Resolution");
stp_parameter_description_destroy(&res_desc);
}
- gzprintf(fp, "*%sStpQuality %s/%s:\t\"<</HWResolution[%d %d]/cupsRowFeed %d>>setpagedevice\"\n",
+ gpprintf(fp, "*%sStpQuality %s/%s:\t\"<</HWResolution[%d %d]/cupsRowFeed %d>>setpagedevice\"\n",
nocolor && strcmp(opt->name, desc.deflt.str) != 0 ? "?" : "",
opt->name, stp_i18n_lookup(po, opt->text), xdpi, ydpi, i + 1);
}
- gzputs(fp, "*CloseUI: *StpQuality\n\n");
+ gpputs(fp, "*CloseUI: *StpQuality\n\n");
}
stp_parameter_description_destroy(&desc);
stp_clear_string_parameter(v, "Quality");
@@ -2035,136 +2167,139 @@ write_ppd(
*/
stp_describe_parameter(v, "Resolution", &desc);
- num_opts = stp_string_list_count(desc.bounds.str);
- if (!simplified || desc.p_level == STP_PARAMETER_LEVEL_BASIC)
+ if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST && desc.is_active)
{
- int is_color_opt =
- stp_parameter_has_category_value(v, &desc, "Color", "Yes");
- int nocolor = skip_color && is_color_opt;
- stp_string_list_t *res_list = stp_string_list_create();
- char res_name[64]; /* Plenty long enough for XXXxYYYdpi */
- int resolution_ok;
- int tmp_xdpi, tmp_ydpi;
-
- if (is_color_opt)
- gzprintf(fp, "*ColorKeyWords: \"Resolution\"\n");
- gzprintf(fp, "*OpenUI *Resolution/%s: PickOne\n", _("Resolution"));
- if (num_opts > 3)
- gzputs(fp, "*OPOptionHints Resolution: \"resolution radiobuttons\"\n");
- else
- gzputs(fp, "*OPOptionHints Resolution: \"resolution dropdown\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *Resolution\n");
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
- desc.name, desc.p_type, desc.is_mandatory,
- desc.p_class, desc.p_level, desc.channel, 0.0, 0.0, 0.0);
- if (has_quality_parameter)
+ num_opts = stp_string_list_count(desc.bounds.str);
+ if (!simplified || desc.p_level == STP_PARAMETER_LEVEL_BASIC)
{
- stp_parameter_t desc1;
- stp_clear_string_parameter(v, "Resolution");
- stp_describe_parameter(v, "Quality", &desc1);
- stp_set_string_parameter(v, "Quality", desc1.deflt.str);
- stp_parameter_description_destroy(&desc1);
- stp_describe_resolution(v, &xdpi, &ydpi);
- stp_clear_string_parameter(v, "Quality");
- tmp_xdpi = xdpi;
- while (tmp_xdpi > MAXIMUM_SAFE_PPD_X_RESOLUTION)
- tmp_xdpi /= 2;
- tmp_ydpi = ydpi;
- while (tmp_ydpi > MAXIMUM_SAFE_PPD_Y_RESOLUTION)
- tmp_ydpi /= 2;
- if (tmp_ydpi < tmp_xdpi)
- tmp_xdpi = tmp_ydpi;
- /*
- Make the default resolution look like an almost square resolution
- so that applications using it will be less likely to generate
- excess resolution. However, make the hardware resolution
- match the printer default.
- */
- (void) snprintf(res_name, 63, "%dx%ddpi", tmp_xdpi + 1, tmp_xdpi);
- default_resolution = stp_strdup(res_name);
- stp_string_list_add_string(res_list, res_name, res_name);
- gzprintf(fp, "*DefaultResolution: %s\n", res_name);
- gzprintf(fp, "*StpDefaultResolution: %s\n", res_name);
- gzprintf(fp, "*Resolution %s/%s:\t\"<</HWResolution[%d %d]>>setpagedevice\"\n",
- res_name, _("Automatic"), xdpi, ydpi);
- gzprintf(fp, "*StpResolutionMap: %s %s\n", res_name, "None");
- }
- else
- {
- stp_set_string_parameter(v, "Resolution", desc.deflt.str);
- stp_describe_resolution(v, &xdpi, &ydpi);
-
- if (xdpi == ydpi)
- (void) snprintf(res_name, 63, "%ddpi", xdpi);
- else
- (void) snprintf(res_name, 63, "%dx%ddpi", xdpi, ydpi);
- gzprintf(fp, "*DefaultResolution: %s\n", res_name);
- gzprintf(fp, "*StpDefaultResolution: %s\n", res_name);
- /*
- * We need to add this to the resolution list here so that
- * some non-default resolution won't wind up with the
- * default resolution name
- */
- stp_string_list_add_string(res_list, res_name, res_name);
- }
+ int is_color_opt =
+ stp_parameter_has_category_value(v, &desc, "Color", "Yes");
+ int nocolor = skip_color && is_color_opt;
+ stp_string_list_t *res_list = stp_string_list_create();
+ char res_name[64]; /* Plenty long enough for XXXxYYYdpi */
+ int resolution_ok;
+ int tmp_xdpi, tmp_ydpi;
- stp_clear_string_parameter(v, "Quality");
- for (i = 0; i < num_opts; i ++)
- {
- /*
- * Strip resolution name to its essentials...
- */
- opt = stp_string_list_param(desc.bounds.str, i);
- stp_set_string_parameter(v, "Resolution", opt->name);
- stp_describe_resolution(v, &xdpi, &ydpi);
+ if (is_color_opt)
+ gpprintf(fp, "*ColorKeyWords: \"Resolution\"\n");
+ gpprintf(fp, "*OpenUI *Resolution/%s: PickOne\n", _("Resolution"));
+ if (num_opts > 3)
+ gpputs(fp, "*OPOptionHints Resolution: \"resolution radiobuttons\"\n");
+ else
+ gpputs(fp, "*OPOptionHints Resolution: \"resolution dropdown\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *Resolution\n");
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ desc.name, desc.p_type, desc.is_mandatory,
+ desc.p_class, desc.p_level, desc.channel, 0.0, 0.0, 0.0);
+ if (has_quality_parameter)
+ {
+ stp_parameter_t desc1;
+ stp_clear_string_parameter(v, "Resolution");
+ stp_describe_parameter(v, "Quality", &desc1);
+ stp_set_string_parameter(v, "Quality", desc1.deflt.str);
+ stp_parameter_description_destroy(&desc1);
+ stp_describe_resolution(v, &xdpi, &ydpi);
+ stp_clear_string_parameter(v, "Quality");
+ tmp_xdpi = xdpi;
+ while (tmp_xdpi > MAXIMUM_SAFE_PPD_X_RESOLUTION)
+ tmp_xdpi /= 2;
+ tmp_ydpi = ydpi;
+ while (tmp_ydpi > MAXIMUM_SAFE_PPD_Y_RESOLUTION)
+ tmp_ydpi /= 2;
+ if (tmp_ydpi < tmp_xdpi)
+ tmp_xdpi = tmp_ydpi;
+ /*
+ Make the default resolution look like an almost square resolution
+ so that applications using it will be less likely to generate
+ excess resolution. However, make the hardware resolution
+ match the printer default.
+ */
+ (void) snprintf(res_name, 63, "%dx%ddpi", tmp_xdpi + 1, tmp_xdpi);
+ default_resolution = stp_strdup(res_name);
+ stp_string_list_add_string(res_list, res_name, res_name);
+ gpprintf(fp, "*DefaultResolution: %s\n", res_name);
+ gpprintf(fp, "*StpDefaultResolution: %s\n", res_name);
+ gpprintf(fp, "*Resolution %s/%s:\t\"<</HWResolution[%d %d]>>setpagedevice\"\n",
+ res_name, _("Automatic"), xdpi, ydpi);
+ gpprintf(fp, "*StpResolutionMap: %s %s\n", res_name, "None");
+ }
+ else
+ {
+ stp_set_string_parameter(v, "Resolution", desc.deflt.str);
+ stp_describe_resolution(v, &xdpi, &ydpi);
- /* This should only happen with a "None" resolution */
- if (xdpi == -1 || ydpi == -1)
- continue;
+ if (xdpi == ydpi)
+ (void) snprintf(res_name, 63, "%ddpi", xdpi);
+ else
+ (void) snprintf(res_name, 63, "%dx%ddpi", xdpi, ydpi);
+ gpprintf(fp, "*DefaultResolution: %s\n", res_name);
+ gpprintf(fp, "*StpDefaultResolution: %s\n", res_name);
+ /*
+ * We need to add this to the resolution list here so that
+ * some non-default resolution won't wind up with the
+ * default resolution name
+ */
+ stp_string_list_add_string(res_list, res_name, res_name);
+ }
- resolution_ok = 0;
- tmp_xdpi = xdpi;
- while (tmp_xdpi > MAXIMUM_SAFE_PPD_X_RESOLUTION)
- tmp_xdpi /= 2;
- tmp_ydpi = ydpi;
- while (tmp_ydpi > MAXIMUM_SAFE_PPD_Y_RESOLUTION)
- tmp_ydpi /= 2;
- do
+ stp_clear_string_parameter(v, "Quality");
+ for (i = 0; i < num_opts; i ++)
{
- if (tmp_xdpi == tmp_ydpi)
- (void) snprintf(res_name, 63, "%ddpi", tmp_xdpi);
- else
- (void) snprintf(res_name, 63, "%dx%ddpi", tmp_xdpi, tmp_ydpi);
- if ((!has_quality_parameter &&
- strcmp(opt->name, desc.deflt.str) == 0) ||
- !stp_string_list_is_present(res_list, res_name))
- {
- resolution_ok = 1;
- stp_string_list_add_string(res_list, res_name, opt->text);
- }
- else if (tmp_ydpi > tmp_xdpi &&
- tmp_ydpi < MAXIMUM_SAFE_PPD_Y_RESOLUTION)
- /* Note that we're incrementing the *higher* resolution.
- This will generate less aliasing, and apps that convert
- down to a square resolution will do the right thing. */
- tmp_ydpi++;
- else if (tmp_xdpi < MAXIMUM_SAFE_PPD_X_RESOLUTION)
- tmp_xdpi++;
- else
+ /*
+ * Strip resolution name to its essentials...
+ */
+ opt = stp_string_list_param(desc.bounds.str, i);
+ stp_set_string_parameter(v, "Resolution", opt->name);
+ stp_describe_resolution(v, &xdpi, &ydpi);
+
+ /* This should only happen with a "None" resolution */
+ if (xdpi == -1 || ydpi == -1)
+ continue;
+
+ resolution_ok = 0;
+ tmp_xdpi = xdpi;
+ while (tmp_xdpi > MAXIMUM_SAFE_PPD_X_RESOLUTION)
tmp_xdpi /= 2;
- } while (!resolution_ok);
- stp_string_list_add_string(resolutions, res_name, opt->text);
- gzprintf(fp, "*%sResolution %s/%s:\t\"<</HWResolution[%d %d]/cupsCompression %d>>setpagedevice\"\n",
- nocolor && strcmp(opt->name, desc.deflt.str) != 0 ? "?" : "",
- res_name, stp_i18n_lookup(po, opt->text), xdpi, ydpi, i + 1);
- if (strcmp(res_name, opt->name) != 0)
- gzprintf(fp, "*StpResolutionMap: %s %s\n", res_name, opt->name);
- }
+ tmp_ydpi = ydpi;
+ while (tmp_ydpi > MAXIMUM_SAFE_PPD_Y_RESOLUTION)
+ tmp_ydpi /= 2;
+ do
+ {
+ if (tmp_xdpi == tmp_ydpi)
+ (void) snprintf(res_name, 63, "%ddpi", tmp_xdpi);
+ else
+ (void) snprintf(res_name, 63, "%dx%ddpi", tmp_xdpi, tmp_ydpi);
+ if ((!has_quality_parameter &&
+ strcmp(opt->name, desc.deflt.str) == 0) ||
+ !stp_string_list_is_present(res_list, res_name))
+ {
+ resolution_ok = 1;
+ stp_string_list_add_string(res_list, res_name, opt->text);
+ }
+ else if (tmp_ydpi > tmp_xdpi &&
+ tmp_ydpi < MAXIMUM_SAFE_PPD_Y_RESOLUTION)
+ /* Note that we're incrementing the *higher* resolution.
+ This will generate less aliasing, and apps that convert
+ down to a square resolution will do the right thing. */
+ tmp_ydpi++;
+ else if (tmp_xdpi < MAXIMUM_SAFE_PPD_X_RESOLUTION)
+ tmp_xdpi++;
+ else
+ tmp_xdpi /= 2;
+ } while (!resolution_ok);
+ stp_string_list_add_string(resolutions, res_name, opt->text);
+ gpprintf(fp, "*%sResolution %s/%s:\t\"<</HWResolution[%d %d]/cupsCompression %d>>setpagedevice\"\n",
+ nocolor && strcmp(opt->name, desc.deflt.str) != 0 ? "?" : "",
+ res_name, stp_i18n_lookup(po, opt->text), xdpi, ydpi, i + 1);
+ if (strcmp(res_name, opt->name) != 0)
+ gpprintf(fp, "*StpResolutionMap: %s %s\n", res_name, opt->name);
+ }
- stp_string_list_destroy(res_list);
- stp_clear_string_parameter(v, "Resolution");
- gzputs(fp, "*CloseUI: *Resolution\n\n");
+ stp_string_list_destroy(res_list);
+ stp_clear_string_parameter(v, "Resolution");
+ gpputs(fp, "*CloseUI: *Resolution\n\n");
+ }
}
stp_parameter_description_destroy(&desc);
@@ -2172,14 +2307,14 @@ write_ppd(
stp_describe_parameter(v, "OutputOrder", &desc);
if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
{
- gzprintf(fp, "*OpenUI *OutputOrder/%s: PickOne\n", _("Output Order"));
- gzputs(fp, "*OPOptionHints OutputOrder: \"radiobuttons\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *OutputOrder\n");
- gzprintf(fp, "*DefaultOutputOrder: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultOutputOrder: %s\n", desc.deflt.str);
- gzprintf(fp, "*OutputOrder Normal/%s: \"\"\n", _("Normal"));
- gzprintf(fp, "*OutputOrder Reverse/%s: \"\"\n", _("Reverse"));
- gzputs(fp, "*CloseUI: *OutputOrder\n\n");
+ gpprintf(fp, "*OpenUI *OutputOrder/%s: PickOne\n", _("Output Order"));
+ gpputs(fp, "*OPOptionHints OutputOrder: \"radiobuttons\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *OutputOrder\n");
+ gpprintf(fp, "*DefaultOutputOrder: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultOutputOrder: %s\n", desc.deflt.str);
+ gpprintf(fp, "*OutputOrder Normal/%s: \"\"\n", _("Normal"));
+ gpprintf(fp, "*OutputOrder Reverse/%s: \"\"\n", _("Reverse"));
+ gpputs(fp, "*CloseUI: *OutputOrder\n\n");
}
stp_parameter_description_destroy(&desc);
@@ -2198,41 +2333,41 @@ write_ppd(
int is_color_opt =
stp_parameter_has_category_value(v, &desc, "Color", "Yes");
if (is_color_opt)
- gzprintf(fp, "*ColorKeyWords: \"InputSlot\"\n");
- gzprintf(fp, "*OpenUI *Duplex/%s: PickOne\n", _("2-Sided Printing"));
- gzputs(fp, "*OPOptionHints Duplex: \"radiobuttons\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *Duplex\n");
- gzprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
+ gpprintf(fp, "*ColorKeyWords: \"InputSlot\"\n");
+ gpprintf(fp, "*OpenUI *Duplex/%s: PickOne\n", _("2-Sided Printing"));
+ gpputs(fp, "*OPOptionHints Duplex: \"radiobuttons\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *Duplex\n");
+ gpprintf(fp, "*StpStp%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc.name, desc.p_type, desc.is_mandatory,
desc.p_class, desc.p_level, desc.channel, 0.0, 0.0, 0.0);
- gzprintf(fp, "*DefaultDuplex: %s\n", desc.deflt.str);
- gzprintf(fp, "*StpDefaultDuplex: %s\n", desc.deflt.str);
+ gpprintf(fp, "*DefaultDuplex: %s\n", desc.deflt.str);
+ gpprintf(fp, "*StpDefaultDuplex: %s\n", desc.deflt.str);
for (i = 0; i < num_opts; i++)
{
opt = stp_string_list_param(desc.bounds.str, i);
if (strcmp(opt->name, "None") == 0)
- gzprintf(fp, "*Duplex %s/%s: \"<</Duplex false>>setpagedevice\"\n", opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*Duplex %s/%s: \"<</Duplex false>>setpagedevice\"\n", opt->name, stp_i18n_lookup(po, opt->text));
else if (strcmp(opt->name, "DuplexNoTumble") == 0)
- gzprintf(fp, "*Duplex %s/%s: \"<</Duplex true/Tumble false>>setpagedevice\"\n", opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*Duplex %s/%s: \"<</Duplex true/Tumble false>>setpagedevice\"\n", opt->name, stp_i18n_lookup(po, opt->text));
else if (strcmp(opt->name, "DuplexTumble") == 0)
- gzprintf(fp, "*Duplex %s/%s: \"<</Duplex true/Tumble true>>setpagedevice\"\n", opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*Duplex %s/%s: \"<</Duplex true/Tumble true>>setpagedevice\"\n", opt->name, stp_i18n_lookup(po, opt->text));
}
- gzputs(fp, "*CloseUI: *Duplex\n\n");
+ gpputs(fp, "*CloseUI: *Duplex\n\n");
}
}
stp_parameter_description_destroy(&desc);
- gzprintf(fp, "*OpenUI *StpiShrinkOutput/%s: PickOne\n",
+ gpprintf(fp, "*OpenUI *StpiShrinkOutput/%s: PickOne\n",
_("Shrink Page If Necessary to Fit Borders"));
- gzputs(fp, "*OPOptionHints StpiShrinkOutput: \"radiobuttons\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *StpiShrinkOutput\n");
- gzputs(fp, "*DefaultStpiShrinkOutput: Shrink\n");
- gzputs(fp, "*StpDefaultStpiShrinkOutput: Shrink\n");
- gzprintf(fp, "*StpiShrinkOutput %s/%s: \"\"\n", "Shrink", _("Shrink (print the whole page)"));
- gzprintf(fp, "*StpiShrinkOutput %s/%s: \"\"\n", "Crop", _("Crop (preserve dimensions)"));
- gzprintf(fp, "*StpiShrinkOutput %s/%s: \"\"\n", "Expand", _("Expand (use maximum page area)"));
- gzputs(fp, "*CloseUI: *StpiShrinkOutput\n\n");
+ gpputs(fp, "*OPOptionHints StpiShrinkOutput: \"radiobuttons\"\n");
+ gpputs(fp, "*OrderDependency: 10 AnySetup *StpiShrinkOutput\n");
+ gpputs(fp, "*DefaultStpiShrinkOutput: Shrink\n");
+ gpputs(fp, "*StpDefaultStpiShrinkOutput: Shrink\n");
+ gpprintf(fp, "*StpiShrinkOutput %s/%s: \"\"\n", "Shrink", _("Shrink (print the whole page)"));
+ gpprintf(fp, "*StpiShrinkOutput %s/%s: \"\"\n", "Crop", _("Crop (preserve dimensions)"));
+ gpprintf(fp, "*StpiShrinkOutput %s/%s: \"\"\n", "Expand", _("Expand (use maximum page area)"));
+ gpputs(fp, "*CloseUI: *StpiShrinkOutput\n\n");
param_list = stp_get_parameter_list(v);
@@ -2281,10 +2416,10 @@ write_ppd(
{
opt = stp_string_list_param(desc.bounds.str, i);
if (strcmp(opt->name, "None") != 0)
- gzprintf(fp, "*APPrinterPreset %s/%s: \"*StpImageType %s\"\n",
+ gpprintf(fp, "*APPrinterPreset %s/%s: \"*StpImageType %s\"\n",
opt->name, stp_i18n_lookup(po, opt->text), opt->name);
}
- gzputs(fp, "\n");
+ gpputs(fp, "\n");
}
}
stp_parameter_description_destroy(&desc);
@@ -2321,8 +2456,8 @@ write_ppd(
stp_describe_parameter(v, "PageSize", &desc);
num_opts = stp_string_list_count(desc.bounds.str);
- gzprintf(fp, "*%s.Translation PageSize/%s: \"\"\n", lang, _("Media Size"));
- gzprintf(fp, "*%s.Translation PageRegion/%s: \"\"\n", lang, _("Media Size"));
+ gpprintf(fp, "*%s.Translation PageSize/%s: \"\"\n", lang, _("Media Size"));
+ gpprintf(fp, "*%s.Translation PageRegion/%s: \"\"\n", lang, _("Media Size"));
for (i = 0; i < num_opts; i++)
{
@@ -2347,8 +2482,8 @@ write_ppd(
strcmp(opt->name, "Custom") != 0)
continue;
- gzprintf(fp, "*%s.PageSize %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
- gzprintf(fp, "*%s.PageRegion %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.PageSize %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.PageRegion %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
}
stp_parameter_description_destroy(&desc);
@@ -2357,16 +2492,16 @@ write_ppd(
* Do we support color?
*/
- gzprintf(fp, "*%s.Translation ColorModel/%s: \"\"\n", lang, _("Color Model"));
- gzprintf(fp, "*%s.ColorModel Gray/%s: \"\"\n", lang, _("Grayscale"));
- gzprintf(fp, "*%s.ColorModel Black/%s: \"\"\n", lang, _("Inverted Grayscale"));
+ gpprintf(fp, "*%s.Translation ColorModel/%s: \"\"\n", lang, _("Color Model"));
+ gpprintf(fp, "*%s.ColorModel Gray/%s: \"\"\n", lang, _("Grayscale"));
+ gpprintf(fp, "*%s.ColorModel Black/%s: \"\"\n", lang, _("Inverted Grayscale"));
if (printer_is_color)
{
- gzprintf(fp, "*%s.ColorModel RGB/%s: \"\"\n", lang, _("RGB Color"));
- gzprintf(fp, "*%s.ColorModel CMY/%s: \"\"\n", lang, _("CMY Color"));
- gzprintf(fp, "*%s.ColorModel CMYK/%s: \"\"\n", lang, _("CMYK"));
- gzprintf(fp, "*%s.ColorModel KCMY/%s: \"\"\n", lang, _("KCMY"));
+ gpprintf(fp, "*%s.ColorModel RGB/%s: \"\"\n", lang, _("RGB Color"));
+ gpprintf(fp, "*%s.ColorModel CMY/%s: \"\"\n", lang, _("CMY Color"));
+ gpprintf(fp, "*%s.ColorModel CMYK/%s: \"\"\n", lang, _("CMYK"));
+ gpprintf(fp, "*%s.ColorModel KCMY/%s: \"\"\n", lang, _("KCMY"));
}
if (!simplified)
@@ -2374,9 +2509,9 @@ write_ppd(
/*
* 8 or 16 bit color (16 bit is slower)
*/
- gzprintf(fp, "*%s.Translation StpColorPrecision/%s: \"\"\n", lang, _("Color Precision"));
- gzprintf(fp, "*%s.StpColorPrecision Normal/%s: \"\"\n", lang, _("Normal"));
- gzprintf(fp, "*%s.StpColorPrecision Best/%s: \"\"\n", lang, _("Best"));
+ gpprintf(fp, "*%s.Translation StpColorPrecision/%s: \"\"\n", lang, _("Color Precision"));
+ gpprintf(fp, "*%s.StpColorPrecision Normal/%s: \"\"\n", lang, _("Normal"));
+ gpprintf(fp, "*%s.StpColorPrecision Best/%s: \"\"\n", lang, _("Best"));
}
/*
@@ -2384,16 +2519,16 @@ write_ppd(
*/
stp_describe_parameter(v, "MediaType", &desc);
- num_opts = stp_string_list_count(desc.bounds.str);
-
- if (num_opts > 0)
+ if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST && desc.is_active &&
+ stp_string_list_count(desc.bounds.str) > 0)
{
- gzprintf(fp, "*%s.Translation MediaType/%s: \"\"\n", lang, _("Media Type"));
+ num_opts = stp_string_list_count(desc.bounds.str);
+ gpprintf(fp, "*%s.Translation MediaType/%s: \"\"\n", lang, _("Media Type"));
for (i = 0; i < num_opts; i ++)
{
opt = stp_string_list_param(desc.bounds.str, i);
- gzprintf(fp, "*%s.MediaType %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.MediaType %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
}
}
stp_parameter_description_destroy(&desc);
@@ -2403,16 +2538,17 @@ write_ppd(
*/
stp_describe_parameter(v, "InputSlot", &desc);
- num_opts = stp_string_list_count(desc.bounds.str);
- if (num_opts > 0)
+ if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST && desc.is_active &&
+ stp_string_list_count(desc.bounds.str) > 0)
{
- gzprintf(fp, "*%s.Translation InputSlot/%s: \"\"\n", lang, _("Media Source"));
+ num_opts = stp_string_list_count(desc.bounds.str);
+ gpprintf(fp, "*%s.Translation InputSlot/%s: \"\"\n", lang, _("Media Source"));
for (i = 0; i < num_opts; i ++)
{
opt = stp_string_list_param(desc.bounds.str, i);
- gzprintf(fp, "*%s.InputSlot %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.InputSlot %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
}
}
stp_parameter_description_destroy(&desc);
@@ -2424,12 +2560,12 @@ write_ppd(
stp_describe_parameter(v, "Quality", &desc);
if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST && desc.is_active)
{
- gzprintf(fp, "*%s.Translation StpQuality/%s: \"\"\n", lang, stp_i18n_lookup(po, desc.text));
+ gpprintf(fp, "*%s.Translation StpQuality/%s: \"\"\n", lang, stp_i18n_lookup(po, desc.text));
num_opts = stp_string_list_count(desc.bounds.str);
for (i = 0; i < num_opts; i++)
{
opt = stp_string_list_param(desc.bounds.str, i);
- gzprintf(fp, "*%s.StpQuality %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.StpQuality %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
}
}
stp_parameter_description_destroy(&desc);
@@ -2439,19 +2575,19 @@ write_ppd(
*/
stp_describe_parameter(v, "Resolution", &desc);
- num_opts = stp_string_list_count(resolutions);
if (!simplified || desc.p_level == STP_PARAMETER_LEVEL_BASIC)
{
- gzprintf(fp, "*%s.Translation Resolution/%s: \"\"\n", lang, _("Resolution"));
+ gpprintf(fp, "*%s.Translation Resolution/%s: \"\"\n", lang, _("Resolution"));
if (has_quality_parameter)
- gzprintf(fp, "*%s.Resolution %s/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.Resolution %s/%s: \"\"\n", lang,
default_resolution, _("Automatic"));
+ num_opts = stp_string_list_count(resolutions);
for (i = 0; i < num_opts; i ++)
{
opt = stp_string_list_param(resolutions, i);
- gzprintf(fp, "*%s.Resolution %s/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.Resolution %s/%s: \"\"\n", lang,
opt->name, stp_i18n_lookup(po, opt->text));
}
}
@@ -2465,9 +2601,9 @@ write_ppd(
stp_describe_parameter(v, "OutputOrder", &desc);
if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
{
- gzprintf(fp, "*%s.Translation OutputOrder/%s: \"\"\n", lang, _("Output Order"));
- gzprintf(fp, "*%s.OutputOrder Normal/%s: \"\"\n", lang, _("Normal"));
- gzprintf(fp, "*%s.OutputOrder Reverse/%s: \"\"\n", lang, _("Reverse"));
+ gpprintf(fp, "*%s.Translation OutputOrder/%s: \"\"\n", lang, _("Output Order"));
+ gpprintf(fp, "*%s.OutputOrder Normal/%s: \"\"\n", lang, _("Normal"));
+ gpprintf(fp, "*%s.OutputOrder Reverse/%s: \"\"\n", lang, _("Reverse"));
}
stp_parameter_description_destroy(&desc);
@@ -2483,27 +2619,27 @@ write_ppd(
num_opts = stp_string_list_count(desc.bounds.str);
if (num_opts > 0)
{
- gzprintf(fp, "*%s.Translation Duplex/%s: \"\"\n", lang, _("2-Sided Printing"));
+ gpprintf(fp, "*%s.Translation Duplex/%s: \"\"\n", lang, _("2-Sided Printing"));
for (i = 0; i < num_opts; i++)
{
opt = stp_string_list_param(desc.bounds.str, i);
if (strcmp(opt->name, "None") == 0)
- gzprintf(fp, "*%s.Duplex %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.Duplex %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
else if (strcmp(opt->name, "DuplexNoTumble") == 0)
- gzprintf(fp, "*%s.Duplex %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.Duplex %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
else if (strcmp(opt->name, "DuplexTumble") == 0)
- gzprintf(fp, "*%s.Duplex %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
+ gpprintf(fp, "*%s.Duplex %s/%s: \"\"\n", lang, opt->name, stp_i18n_lookup(po, opt->text));
}
}
}
stp_parameter_description_destroy(&desc);
- gzprintf(fp, "*%s.Translation StpiShrinkOutput/%s: \"\"\n", lang,
+ gpprintf(fp, "*%s.Translation StpiShrinkOutput/%s: \"\"\n", lang,
_("Shrink Page If Necessary to Fit Borders"));
- gzprintf(fp, "*%s.StpiShrinkOutput %s/%s: \"\"\n", lang, "Shrink", _("Shrink (print the whole page)"));
- gzprintf(fp, "*%s.StpiShrinkOutput %s/%s: \"\"\n", lang, "Crop", _("Crop (preserve dimensions)"));
- gzprintf(fp, "*%s.StpiShrinkOutput %s/%s: \"\"\n", lang, "Expand", _("Expand (use maximum page area)"));
+ gpprintf(fp, "*%s.StpiShrinkOutput %s/%s: \"\"\n", lang, "Shrink", _("Shrink (print the whole page)"));
+ gpprintf(fp, "*%s.StpiShrinkOutput %s/%s: \"\"\n", lang, "Crop", _("Crop (preserve dimensions)"));
+ gpprintf(fp, "*%s.StpiShrinkOutput %s/%s: \"\"\n", lang, "Expand", _("Expand (use maximum page area)"));
param_list = stp_get_parameter_list(v);
@@ -2543,7 +2679,7 @@ write_ppd(
{
opt = stp_string_list_param(desc.bounds.str, i);
if (strcmp(opt->name, "None") != 0)
- gzprintf(fp, "*%s.APPrinterPreset %s/%s: \"*StpImageType %s\"\n",
+ gpprintf(fp, "*%s.APPrinterPreset %s/%s: \"*StpImageType %s\"\n",
lang, opt->name, opt->text, opt->name);
}
}
@@ -2561,7 +2697,7 @@ write_ppd(
*/
print_standard_fonts(fp);
- gzprintf(fp, "\n*%% End of %s\n", filename);
+ gpprintf(fp, "\n*%% End of %s\n", filename);
stp_vars_destroy(v);
@@ -2570,5 +2706,5 @@ write_ppd(
/*
- * End of "$Id: genppd.c,v 1.192 2012/03/25 17:54:32 rlk Exp $".
+ * End of "$Id: genppd.c,v 1.196 2014/02/13 02:30:27 rlk Exp $".
*/
diff --git a/src/cups/i18n.c b/src/cups/i18n.c
index 81c4488..ee3e749 100644
--- a/src/cups/i18n.c
+++ b/src/cups/i18n.c
@@ -1,5 +1,5 @@
/*
- * "$Id: i18n.c,v 1.8 2009/04/11 19:05:12 rlk Exp $"
+ * "$Id: i18n.c,v 1.9 2013/12/14 19:23:58 rlk Exp $"
*
* Internationalization functions for CUPS drivers.
*
@@ -244,12 +244,12 @@ stp_i18n_load(const char *locale) /* I - Locale name */
*/
stpi_unquote(utf8str);
- stp_string_list_add_string(po, id, utf8str);
+ stp_string_list_add_string_unsafe(po, id, utf8str);
}
else
{
stpi_unquote(str);
- stp_string_list_add_string(po, id, str);
+ stp_string_list_add_string_unsafe(po, id, str);
}
}
else if (!id[0] && str[0] && !ic)
@@ -362,12 +362,12 @@ stp_i18n_load(const char *locale) /* I - Locale name */
*/
stpi_unquote(utf8str);
- stp_string_list_add_string(po, id, utf8str);
+ stp_string_list_add_string_unsafe(po, id, utf8str);
}
else
{
stpi_unquote(str);
- stp_string_list_add_string(po, id, str);
+ stp_string_list_add_string_unsafe(po, id, str);
}
}
@@ -479,5 +479,5 @@ stpi_unquote(char *s) /* IO - Original string */
/*
- * End of "$Id: i18n.c,v 1.8 2009/04/11 19:05:12 rlk Exp $".
+ * End of "$Id: i18n.c,v 1.9 2013/12/14 19:23:58 rlk Exp $".
*/
diff --git a/src/cups/kodak1400_print.c b/src/cups/kodak1400_print.c
new file mode 100644
index 0000000..bc1d0d0
--- /dev/null
+++ b/src/cups/kodak1400_print.c
@@ -0,0 +1,764 @@
+/*
+ * Kodak Professional 1400/805 CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+/* Program states */
+enum {
+ S_IDLE = 0,
+ S_PRINTER_READY_Y,
+ S_PRINTER_SENT_Y,
+ S_PRINTER_READY_M,
+ S_PRINTER_SENT_M,
+ S_PRINTER_READY_C,
+ S_PRINTER_SENT_C,
+ S_PRINTER_READY_L,
+ S_PRINTER_SENT_L,
+ S_PRINTER_DONE,
+ S_FINISHED,
+};
+
+#define CMDBUF_LEN 96
+#define READBACK_LEN 8
+
+/* File header */
+struct kodak1400_hdr {
+ uint8_t hdr[4];
+ uint16_t columns;
+ uint16_t null1;
+ uint16_t rows;
+ uint16_t null2;
+ uint32_t planesize;
+ uint32_t null3;
+ uint8_t matte;
+ uint8_t laminate;
+ uint8_t unk1; /* Always 0x01 */
+ uint8_t lam_strength;
+ uint8_t null4[12];
+} __attribute__((packed));
+
+
+/* Private data stucture */
+struct kodak1400_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+
+ struct kodak1400_hdr hdr;
+ uint8_t *plane_r;
+ uint8_t *plane_g;
+ uint8_t *plane_b;
+};
+
+static int send_plane(struct kodak1400_ctx *ctx,
+ uint8_t planeno, uint8_t *planedata,
+ uint8_t *cmdbuf)
+{
+ uint16_t temp16;
+ int ret;
+
+ if (planeno != 1) {
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x74;
+ cmdbuf[2] = 0x00;
+ cmdbuf[3] = 0x50;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+ }
+
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x5a;
+ cmdbuf[2] = 0x54;
+ cmdbuf[3] = planeno;
+
+ if (planedata) {
+ temp16 = htons(ctx->hdr.columns);
+ memcpy(cmdbuf+7, &temp16, 2);
+ temp16 = htons(ctx->hdr.rows);
+ memcpy(cmdbuf+9, &temp16, 2);
+ }
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ if (planedata) {
+ int i;
+ for (i = 0 ; i < ctx->hdr.rows ; i++) {
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ planedata + i * ctx->hdr.columns,
+ ctx->hdr.columns)))
+ return ret;
+ }
+ }
+
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x74;
+ cmdbuf[2] = 0x01;
+ cmdbuf[3] = 0x50;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ return 0;
+}
+
+#define UPDATE_SIZE 1552
+static int kodak1400_set_tonecurve(struct kodak1400_ctx *ctx, char *fname)
+{
+ libusb_device_handle *dev = ctx->dev;
+ uint8_t endp_down = ctx->endp_down;
+ uint8_t endp_up = ctx->endp_up;
+
+ uint8_t cmdbuf[8];
+ uint8_t respbuf[64];
+ int ret = 0, num = 0;
+
+ INFO("Set Tone Curve from '%s'\n", fname);
+
+ uint16_t *data = malloc(UPDATE_SIZE);
+
+ /* Read in file */
+ int tc_fd = open(fname, O_RDONLY);
+ if (tc_fd < 0) {
+ ret = -1;
+ goto done;
+ }
+ if (read(tc_fd, data, UPDATE_SIZE) != UPDATE_SIZE) {
+ ret = -2;
+ goto done;
+ }
+ close(tc_fd);
+
+ /* Byteswap data to printer's format */
+ for (ret = 0; ret < (UPDATE_SIZE-16)/2 ; ret++) {
+ data[ret] = cpu_to_le16(be16_to_cpu(data[ret]));
+ }
+ /* Null-terminate */
+ memset(data + (UPDATE_SIZE-16)/2, 0, 16);
+
+ /* Clear tables */
+ memset(cmdbuf, 0, sizeof(cmdbuf));
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0xa2;
+ if ((ret = send_data(dev, endp_down,
+ cmdbuf, 2))) {
+ ret = -3;
+ goto done;
+ }
+
+ ret = read_data(dev, endp_up,
+ respbuf, sizeof(respbuf), &num);
+
+ if (ret < 0)
+ goto done;
+ if (num != 8) {
+ ERROR("Short Read! (%d/%d)\n", num, 8);
+ ret = -4;
+ goto done;
+ }
+ if (respbuf[1] != 0x01) {
+ ERROR("Received unexpected response\n");
+ ret = -5;
+ goto done;
+ }
+
+ /* Set up the update command */
+ memset(cmdbuf, 0, sizeof(cmdbuf));
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0xa0;
+ cmdbuf[2] = 0x02;
+ cmdbuf[3] = 0x03;
+ cmdbuf[4] = 0x06;
+ cmdbuf[5] = 0x10; /* 06 10 == UPDATE_SIZE */
+ if ((ret = send_data(dev, endp_down,
+ cmdbuf, 6)))
+ goto done;
+
+ /* Send the payload over */
+ if ((ret = send_data(dev, endp_down,
+ (uint8_t *) data, UPDATE_SIZE)))
+ goto done;
+
+ /* get the response */
+ ret = read_data(dev, endp_up,
+ respbuf, sizeof(respbuf), &num);
+
+ if (ret < 0)
+ goto done;
+ if (num != 8) {
+ ERROR("Short Read! (%d/%d)\n", num, 8);
+ ret = -6;
+ goto done;
+ }
+ if (respbuf[1] != 0x00) {
+ ERROR("Received unexpected response!\n");
+ ret = -7;
+ goto done;
+ }
+
+done:
+ free(data);
+
+ return ret;
+}
+
+static void kodak1400_cmdline(void)
+{
+ DEBUG("\t\t[ -C filename ] # Set tone curve\n");
+}
+
+int kodak1400_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct kodak1400_ctx *ctx = vctx;
+ int i, j = 0;
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, "C:")) >= 0) {
+ switch(i) {
+ case 'C':
+ if (ctx) {
+ j = kodak1400_set_tonecurve(ctx, optarg);
+ break;
+ }
+ return 1;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+static void *kodak1400_init(void)
+{
+ struct kodak1400_ctx *ctx = malloc(sizeof(struct kodak1400_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct kodak1400_ctx));
+
+ return ctx;
+}
+
+static void kodak1400_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct kodak1400_ctx *ctx = vctx;
+
+ UNUSED(jobid);
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+}
+
+
+static void kodak1400_teardown(void *vctx) {
+ struct kodak1400_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->plane_r)
+ free(ctx->plane_r);
+ if (ctx->plane_g)
+ free(ctx->plane_g);
+ if (ctx->plane_b)
+ free(ctx->plane_b);
+ free(ctx);
+}
+
+static int kodak1400_read_parse(void *vctx, int data_fd) {
+ struct kodak1400_ctx *ctx = vctx;
+ int i, ret;
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->plane_r) {
+ free(ctx->plane_r);
+ ctx->plane_r = NULL;
+ }
+ if (ctx->plane_g) {
+ free(ctx->plane_g);
+ ctx->plane_g = NULL;
+ }
+ if (ctx->plane_b) {
+ free(ctx->plane_b);
+ ctx->plane_b = NULL;
+ }
+
+ /* Read in then validate header */
+ ret = read(data_fd, &ctx->hdr, sizeof(ctx->hdr));
+ if (ret < 0 || ret != sizeof(ctx->hdr)) {
+ if (ret == 0)
+ return 1;
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 0, (int)sizeof(ctx->hdr));
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ if (ctx->hdr.hdr[0] != 'P' ||
+ ctx->hdr.hdr[1] != 'G' ||
+ ctx->hdr.hdr[2] != 'H' ||
+ ctx->hdr.hdr[3] != 'D') {
+ ERROR("Unrecognized data format!\n");
+ return 1;
+ }
+ ctx->hdr.planesize = le32_to_cpu(ctx->hdr.planesize);
+ ctx->hdr.rows = le16_to_cpu(ctx->hdr.rows);
+ ctx->hdr.columns = le16_to_cpu(ctx->hdr.columns);
+
+ /* Set up plane data */
+ ctx->plane_r = malloc(ctx->hdr.planesize);
+ ctx->plane_g = malloc(ctx->hdr.planesize);
+ ctx->plane_b = malloc(ctx->hdr.planesize);
+ if (!ctx->plane_r || !ctx->plane_g || !ctx->plane_b) {
+ ERROR("Memory allocation failure!\n");
+ return 1;
+ }
+ for (i = 0 ; i < ctx->hdr.rows ; i++) {
+ int j;
+ uint8_t *ptr;
+ for (j = 0 ; j < 3 ; j++) {
+ int remain;
+ if (j == 0)
+ ptr = ctx->plane_r + i * ctx->hdr.columns;
+ else if (j == 1)
+ ptr = ctx->plane_g + i * ctx->hdr.columns;
+ else if (j == 2)
+ ptr = ctx->plane_b + i * ctx->hdr.columns;
+
+ remain = ctx->hdr.columns;
+ do {
+ ret = read(data_fd, ptr, remain);
+ if (ret < 0) {
+ ERROR("Read failed (%d/%d/%d) (%d/%d @ %d)\n",
+ ret, remain, ctx->hdr.columns,
+ i, ctx->hdr.rows, j);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ ptr += ret;
+ remain -= ret;
+ } while (remain);
+ }
+ }
+
+ return 0;
+}
+
+static uint8_t idle_data[READBACK_LEN] = { 0xe4, 0x72, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00 };
+
+static int kodak1400_main_loop(void *vctx, int copies) {
+ struct kodak1400_ctx *ctx = vctx;
+
+ uint8_t rdbuf[READBACK_LEN], rdbuf2[READBACK_LEN];
+ uint8_t cmdbuf[CMDBUF_LEN];
+ int last_state = -1, state = S_IDLE;
+ int num, ret;
+ uint16_t temp16;
+
+top:
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ /* Send Status Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x72;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+
+ if (ret < 0)
+ return ret;
+ if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
+ memcpy(rdbuf2, rdbuf, READBACK_LEN);
+ } else if (state == last_state) {
+ sleep(1);
+ }
+ last_state = state;
+
+ /* Error handling */
+ if (rdbuf[4] || rdbuf[5]) {
+ ERROR("Error code reported by printer (%02x/%02x), terminating print\n",
+ rdbuf[4], rdbuf[5]);
+ return 1;
+ }
+
+ fflush(stderr);
+
+ switch (state) {
+ case S_IDLE:
+ INFO("Printing started\n");
+
+ /* Send reset/attention */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ /* Send page setup */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x5a;
+ cmdbuf[2] = 0x53;
+ temp16 = be16_to_cpu(ctx->hdr.columns);
+ memcpy(cmdbuf+3, &temp16, 2);
+ temp16 = be16_to_cpu(ctx->hdr.rows);
+ memcpy(cmdbuf+5, &temp16, 2);
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ /* Send lamination toggle? */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x59;
+ cmdbuf[2] = ctx->hdr.matte; // ???
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ /* Send matte toggle */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x60;
+ cmdbuf[2] = ctx->hdr.laminate;
+
+ if (send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN))
+ return ret;
+
+ /* Send lamination strength */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x62;
+ cmdbuf[2] = ctx->hdr.lam_strength;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ /* Send unknown */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x61;
+ cmdbuf[2] = ctx->hdr.unk1; // ???
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ state = S_PRINTER_READY_Y;
+ break;
+ case S_PRINTER_READY_Y:
+ INFO("Sending YELLOW plane\n");
+ if ((ret = send_plane(ctx, 1, ctx->plane_b, cmdbuf)))
+ return ret;
+ state = S_PRINTER_SENT_Y;
+ break;
+ case S_PRINTER_SENT_Y:
+ if (!memcmp(rdbuf, idle_data, READBACK_LEN))
+ state = S_PRINTER_READY_M;
+ break;
+ case S_PRINTER_READY_M:
+ INFO("Sending MAGENTA plane\n");
+ if ((ret = send_plane(ctx, 2, ctx->plane_g, cmdbuf)))
+ return ret;
+ state = S_PRINTER_SENT_M;
+ break;
+ case S_PRINTER_SENT_M:
+ if (!memcmp(rdbuf, idle_data, READBACK_LEN))
+ state = S_PRINTER_READY_C;
+ break;
+ case S_PRINTER_READY_C:
+ INFO("Sending CYAN plane\n");
+ if ((ret = send_plane(ctx, 3, ctx->plane_r, cmdbuf)))
+ return ret;
+ state = S_PRINTER_SENT_C;
+ break;
+ case S_PRINTER_SENT_C:
+ if (!memcmp(rdbuf, idle_data, READBACK_LEN)) {
+ if (ctx->hdr.laminate)
+ state = S_PRINTER_READY_L;
+ else
+ state = S_PRINTER_DONE;
+ }
+ break;
+ case S_PRINTER_READY_L:
+ INFO("Laminating page\n");
+ if ((ret = send_plane(ctx, 4, NULL, cmdbuf)))
+ return ret;
+ state = S_PRINTER_SENT_L;
+ break;
+ case S_PRINTER_SENT_L:
+ if (!memcmp(rdbuf, idle_data, READBACK_LEN))
+ state = S_PRINTER_DONE;
+ break;
+ case S_PRINTER_DONE:
+ INFO("Cleaning up\n");
+ /* Cleanup */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x74;
+ cmdbuf[2] = 0x00;
+ cmdbuf[3] = 0x50;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+ state = S_FINISHED;
+ break;
+ default:
+ break;
+ };
+
+ if (state != S_FINISHED)
+ goto top;
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ state = S_IDLE;
+ goto top;
+ }
+
+ return 0;
+}
+
+/* Exported */
+#define USB_VID_KODAK 0x040A
+#define USB_PID_KODAK_1400 0x4022
+#define USB_PID_KODAK_805 0x4034
+
+struct dyesub_backend kodak1400_backend = {
+ .name = "Kodak 1400/805",
+ .version = "0.31",
+ .uri_prefix = "kodak1400",
+ .cmdline_usage = kodak1400_cmdline,
+ .cmdline_arg = kodak1400_cmdline_arg,
+ .init = kodak1400_init,
+ .attach = kodak1400_attach,
+ .teardown = kodak1400_teardown,
+ .read_parse = kodak1400_read_parse,
+ .main_loop = kodak1400_main_loop,
+ .devices = {
+ { USB_VID_KODAK, USB_PID_KODAK_1400, P_KODAK_1400_805, "Kodak"},
+ { USB_VID_KODAK, USB_PID_KODAK_805, P_KODAK_1400_805, "Kodak"},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* Kodak 1400/805 data format
+
+ Spool file consists of 36-byte header followed by row-interleaved BGR data.
+ Native printer resolution is 2560 pixels per row, and 3010 or 3612 rows.
+
+ Header:
+
+ 50 47 48 44 "PGHD"
+ XX XX Number of columns, Little endian. Fixed at 2560.
+ 00 00 NULL
+ XX XX Number of rows, Little Endian
+ 00 00 NULL
+ XX XX XX XX Number of bytes per plane, Little Endian
+ 00 00 00 00 NULL
+ XX 00 Glossy, 01 Matte (Note: Kodak805 only supports Glossy)
+ XX 01 to laminate, 00 to not.
+ 01 Unkown, always set to 01
+ XX Lamination Strength:
+
+ 3c Glossy
+ 28 Matte +5
+ 2e Matte +4
+ 34 Matte +3
+ 3a Matte +2
+ 40 Matte +1
+ 46 Matte
+ 52 Matte -1
+ 5e Matte -2
+ 6a Matte -3
+ 76 Matte -4
+ 82 Matte -5
+
+ 00 00 00 00 00 00 00 00 00 00 00 00 NULL
+
+ ************************************************************************
+
+ The data format actually sent to the Kodak 1400 is rather different.
+
+ All commands are null-padded to 96 bytes.
+ All readback values are 8 bytes long.
+
+ Multi-byte numbers are sent BIG ENDIAN.
+
+ Image data is sent via planes, one scanline per URB.
+
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 00 00 # Idle response
+
+ <-- 1b 00 # Reset/attention?
+ <-- 1b 5a 53 0a 00 0b c2 # Setup (ie hdr.columns and hdr.rows)
+ <-- 1b 59 01 # ?? hdr.matte ?
+ <-- 1b 60 XX # hdr.lamination
+ <-- 1b 62 XX # hdr.lam_strength
+ <-- 1b 61 01 # ?? hdr.unk1 ?
+
+ <-- 1b 5a 54 01 00 00 00 0a 00 0b c2 # start of plane 1 data
+ <-- row 1
+ <-- row 2
+ <-- row last
+
+ <-- 1b 74 01 50 # ??
+
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 50 59 # Printing plane 1
+ [ repeats until...]
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 40 00 50 59 # Paper loaded?
+ [ repeats until...]
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 50 59 # Printing plane 1
+ [ repeats until...]
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 00 00 # Idle response
+
+ <-- 1b 74 00 50 # ??
+ <-- 1b 5a 54 02 00 00 00 0a 00 0b c2 # start of plane 2 data
+ <-- row 1
+ <-- row 2
+ <-- row last
+ <-- 1b 74 01 50 # ??
+
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 50 4d # Printing plane 2
+ [ repeats until...]
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 00 00 # Idle response
+
+ <-- 1b 74 00 50 # ??
+ <-- 1b 5a 54 03 00 00 00 0a 00 0b c2 # start of plane 3 data
+ <-- row 1
+ <-- row 2
+ <-- row last
+ <-- 1b 74 01 50 # ??
+
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 50 43 # Printing plane 3
+ [ repeats until...]
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 00 00 # Idle response
+
+ ## this block is only present if lamination is used
+
+ <-- 1b 74 00 50 # ??
+ <-- 1b 5a 54 04 # start of lamination
+ <-- 1b 74 01 50 # ??
+
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 50 50 # Laminating
+ [ repeats until...]
+ <-- 1b 72 # Status query
+ --> e4 72 00 00 00 00 00 00 # Idle response
+
+ ## end lamination block
+
+ <-- 1b 74 00 50 # ??
+
+ [[ DONE ]]
+
+ Other readback codes seen:
+
+ e4 72 00 00 10 00 50 59 -- ???
+ e4 72 00 00 10 01 50 59 -- ???
+ e4 72 00 00 00 04 50 59 -- media red blink, error red [media too small for image ?]
+ e4 72 00 00 02 00 50 59 -- media off, error red. [out of paper]
+ e4 72 00 00 02 01 00 00 -- media off, error red. [out of paper]
+ e4 72 00 00 02 00 00 00 -- media off, error red. [out of paper]
+ e4 72 00 00 02 00 50 50 -- media on, error red. [paper jam while laminating]
+
+ *********************************************
+ Calibration data:
+
+ <-- 1b a2 # ?? Reset cal tables?
+ --> 00 01 00 00 00 00 00 00
+
+ <-- 1b a0 02 03 06 10 # 06 10 == 1552 bytes aka the CAL data.
+ <-- cal data
+
+ [[ Data is organized as three blocks of 512 bytes followed by
+ 16 NULL bytes.
+
+ Each block appears to be 256 entries of 16-bit LE data,
+ so each input value is translated into a 16-bit number in the printer.
+
+ Assuming blocks are ordered BGR.
+
+ ]]
+
+ --> 00 00 00 00 00 00 00 00
+
+*/
diff --git a/src/cups/kodak605_print.c b/src/cups/kodak605_print.c
new file mode 100644
index 0000000..08df8f1
--- /dev/null
+++ b/src/cups/kodak605_print.c
@@ -0,0 +1,618 @@
+/*
+ * Kodak 605 Photo Printer CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+#define USB_VID_KODAK 0x040A
+#define USB_PID_KODAK_605 0x402E
+
+/* File header */
+struct kodak605_hdr {
+ uint8_t hdr[4]; /* 01 40 0a 00 */
+ uint8_t unk1; /* 01 or 02 */
+ uint8_t copies; /* 01 or more */
+ uint8_t unk2; /* always 00 */
+ uint16_t columns; /* BE always 0x0734 */
+ uint16_t rows; /* BE */
+ uint8_t media; /* 0x03 for 6x8, 0x01 for 6x4 */
+ uint8_t laminate; /* 0x02 to laminate, 0x01 for not */
+ uint8_t unk3; /* 0x00, 0x01 [may be print mode] */
+} __attribute__((packed));
+
+#define CMDBUF_LEN 4
+
+/* Private data stucture */
+struct kodak605_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+
+ struct kodak605_hdr hdr;
+ uint8_t *databuf;
+ int datalen;
+};
+
+/* Program states */
+enum {
+ S_IDLE = 0,
+ S_READY,
+ S_STARTED,
+ S_SENT_HDR,
+ S_SENT_DATA,
+ S_FINISHED,
+};
+
+#define READBACK_LEN 120
+
+static void *kodak605_init(void)
+{
+ struct kodak605_ctx *ctx = malloc(sizeof(struct kodak605_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct kodak605_ctx));
+
+ return ctx;
+}
+
+static void kodak605_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct kodak605_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
+
+ UNUSED(jobid);
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+}
+
+static void kodak605_teardown(void *vctx) {
+ struct kodak605_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+ free(ctx);
+}
+
+static int kodak605_read_parse(void *vctx, int data_fd) {
+ struct kodak605_ctx *ctx = vctx;
+ int ret;
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ /* Read in then validate header */
+ ret = read(data_fd, &ctx->hdr, sizeof(ctx->hdr));
+ if (ret < 0 || ret != sizeof(ctx->hdr)) {
+ if (ret == 0)
+ return 1;
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 0, (int)sizeof(ctx->hdr));
+ perror("ERROR: Read failed");
+ return ret;
+ }
+
+ if (ctx->hdr.hdr[0] != 0x01 ||
+ ctx->hdr.hdr[1] != 0x40 ||
+ ctx->hdr.hdr[2] != 0x0a ||
+ ctx->hdr.hdr[3] != 0x00) {
+ ERROR("Unrecognized data format!\n");
+ return(1);
+ }
+
+ ctx->datalen = le16_to_cpu(ctx->hdr.rows) * le16_to_cpu(ctx->hdr.columns) * 3;
+ ctx->databuf = malloc(ctx->datalen);
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return 2;
+ }
+
+ {
+ int remain = ctx->datalen;
+ uint8_t *ptr = ctx->databuf;
+ do {
+ ret = read(data_fd, ptr, remain);
+ if (ret < 0) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, remain, ctx->datalen);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ ptr += ret;
+ remain -= ret;
+ } while (remain);
+ }
+
+ return 0;
+}
+
+static int kodak605_main_loop(void *vctx, int copies) {
+ struct kodak605_ctx *ctx = vctx;
+
+ uint8_t rdbuf[READBACK_LEN];
+ uint8_t rdbuf2[READBACK_LEN];
+ uint8_t cmdbuf[CMDBUF_LEN];
+
+ int last_state = -1, state = S_IDLE;
+ int num, ret;
+ int pending = 0;
+
+ if (!ctx)
+ return 1;
+
+ /* Printer handles generating copies.. */
+#if 1
+ ctx->hdr.copies = copies;
+ copies = 1;
+#else
+ ctx->hdr.copies = 1;
+#endif
+
+top:
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ if (pending)
+ goto skip_query;
+
+ /* Send Status Query */
+ cmdbuf[0] = 0x01;
+ cmdbuf[1] = 0x00;
+ cmdbuf[2] = 0x00;
+ cmdbuf[3] = 0x00;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+
+skip_query:
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+ if (ret < 0)
+ return ret;
+
+ if (num < 10) {
+ ERROR("Short read! (%d/%d)\n", num, 10);
+ return 4;
+ }
+
+ if (num != 10 && num != 76 && num != 113) {
+ ERROR("Unexpected readback from printer (%d/%d from 0x%02x))\n",
+ num, READBACK_LEN, ctx->endp_up);
+ return ret;
+ }
+
+ if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
+ memcpy(rdbuf2, rdbuf, READBACK_LEN);
+ } else if (state == last_state) {
+ sleep(1);
+ }
+ last_state = state;
+
+ fflush(stderr);
+
+ pending = 0;
+
+ switch (state) {
+ case S_IDLE:
+ INFO("Waiting for printer idle\n");
+#if 0
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[1] != 0x02 ||
+ rdbuf[2] != 0x01) {
+ break;
+ }
+#endif
+ // XXX detect media type based on readback!
+
+ INFO("Printing started; Sending init sequence\n");
+ state = S_STARTED;
+
+ break;
+ case S_STARTED:
+#if 0
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[2] != 0x00)
+ break;
+
+ /* Aappears to depend on media */
+ if (rdbuf[1] != 0x0b &&
+ rdbuf[1] != 0x03)
+ break;
+#endif
+
+ INFO("Sending image header\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ (uint8_t*)&ctx->hdr, sizeof(ctx->hdr))))
+ return ret;
+ pending = 1;
+ state = S_SENT_HDR;
+ break;
+ case S_SENT_HDR:
+ INFO("Waiting for printer to accept data\n");
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[6] == 0x00 ||
+ num != 10) {
+ break;
+ }
+ INFO("Sending image data\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf, ctx->datalen)))
+ return ret;
+
+ INFO("Image data sent\n");
+ sleep(1); /* An experiment */
+ state = S_SENT_DATA;
+ break;
+ case S_SENT_DATA:
+ INFO("Waiting for printer to acknowledge completion\n");
+#if 0
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[1] != 0x02 ||
+ rdbuf[2] != 0x01) {
+ break;
+ }
+#endif
+ state = S_FINISHED;
+ break;
+ default:
+ break;
+ };
+
+ if (state != S_FINISHED)
+ goto top;
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ state = S_IDLE;
+ goto top;
+ }
+
+ return 0;
+}
+
+static int kodak605_get_status(struct kodak605_ctx *ctx)
+{
+ uint8_t cmdbuf[4];
+ uint8_t rdbuf[76];
+
+ int ret, i, num = 0;
+
+ /* Send Status Query */
+ cmdbuf[0] = 0x01;
+ cmdbuf[1] = 0x00;
+ cmdbuf[2] = 0x00;
+ cmdbuf[3] = 0x00;
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, sizeof(cmdbuf))))
+ return ret;
+
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+ if (ret < 0)
+ return ret;
+
+ if (num < (int)sizeof(rdbuf)) {
+ ERROR("Short Read! (%d/%d)\n", num, (int)sizeof(rdbuf));
+ return 4;
+ }
+
+ DEBUG("status: ");
+ for (i = 0 ; i < num ; i++) {
+ DEBUG2("%02x ", rdbuf[i]);
+ }
+
+ return 0;
+}
+
+static int kodak605_get_media(struct kodak605_ctx *ctx)
+{
+ uint8_t cmdbuf[4];
+ uint8_t rdbuf[113];
+
+ int ret, i, num = 0;
+
+ /* Send Media Query */
+ cmdbuf[0] = 0x02;
+ cmdbuf[1] = 0x00;
+ cmdbuf[2] = 0x00;
+ cmdbuf[3] = 0x00;
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, sizeof(cmdbuf))))
+ return ret;
+
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+ if (ret < 0)
+ return ret;
+
+ if (num < (int)sizeof(rdbuf)) {
+ ERROR("Short Read! (%d/%d)\n", num, (int)sizeof(rdbuf));
+ return 4;
+ }
+
+ DEBUG("media: ");
+ for (i = 0 ; i < num ; i++) {
+ DEBUG2("%02x ", rdbuf[i]);
+ }
+ DEBUG("\n");
+
+ return 0;
+}
+
+#define UPDATE_SIZE 1536
+static int kodak605_set_tonecurve(struct kodak605_ctx *ctx, char *fname)
+{
+ libusb_device_handle *dev = ctx->dev;
+ uint8_t endp_down = ctx->endp_down;
+ uint8_t endp_up = ctx->endp_up;
+
+ uint8_t cmdbuf[16];
+ uint8_t respbuf[16];
+ int ret, num = 0;
+
+ uint16_t *data = malloc(UPDATE_SIZE);
+
+ INFO("Set Tone Curve from '%s'\n", fname);
+
+ /* Read in file */
+ int tc_fd = open(fname, O_RDONLY);
+ if (tc_fd < 0) {
+ ret = -1;
+ goto done;
+ }
+ if (read(tc_fd, data, UPDATE_SIZE) != UPDATE_SIZE) {
+ ret = 4;
+ goto done;
+ }
+ close(tc_fd);
+
+ /* Byteswap data to printer's format */
+ for (ret = 0; ret < (UPDATE_SIZE/2) ; ret++) {
+ data[ret] = cpu_to_le16(be16_to_cpu(data[ret]));
+ }
+
+ /* Initial Request */
+ cmdbuf[0] = 0x04;
+ cmdbuf[1] = 0xc0;
+ cmdbuf[2] = 0x0a;
+ cmdbuf[3] = 0x00;
+ cmdbuf[4] = 0x03;
+ cmdbuf[5] = 0x01;
+ cmdbuf[6] = 0x00;
+ cmdbuf[7] = 0x00;
+ cmdbuf[8] = 0x00;
+ cmdbuf[9] = 0x00;
+ cmdbuf[10] = 0x00; /* 00 06 in LE means 1536 bytes */
+ cmdbuf[11] = 0x06;
+ cmdbuf[12] = 0x00;
+ cmdbuf[13] = 0x00;
+
+ if ((ret = send_data(dev, endp_down,
+ cmdbuf, 14)))
+ goto done;
+
+ /* Get response back */
+ ret = read_data(dev, endp_up,
+ respbuf, sizeof(respbuf), &num);
+ if (ret < 0)
+ goto done;
+
+ if (num != 10) {
+ ERROR("Short Read! (%d/%d)\n", num, 10);
+ ret = 4;
+ goto done;
+ }
+
+ /* Send the data over! */
+ ret = send_data(dev, endp_up,
+ (uint8_t*)data, sizeof(data));
+
+ done:
+ /* We're done */
+ free(data);
+ return ret;
+}
+
+
+static void kodak605_cmdline(void)
+{
+ DEBUG("\t\t[ -C filename ] # Set tone curve\n");
+ DEBUG("\t\t[ -m ] # Query media\n");
+ DEBUG("\t\t[ -s ] # Query status\n");
+}
+
+static int kodak605_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct kodak605_ctx *ctx = vctx;
+ int i, j = 0;
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, "C:ms")) >= 0) {
+ switch(i) {
+ case 'C':
+ if (ctx) {
+ j = kodak605_set_tonecurve(ctx, optarg);
+ break;
+ }
+ return 1;
+ case 'm':
+ if (ctx) {
+ j = kodak605_get_media(ctx);
+ break;
+ }
+ return 1;
+ case 's':
+ if (ctx) {
+ j = kodak605_get_status(ctx);
+ break;
+ }
+ return 1;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+/* Exported */
+struct dyesub_backend kodak605_backend = {
+ .name = "Kodak 605",
+ .version = "0.18",
+ .uri_prefix = "kodak605",
+ .cmdline_usage = kodak605_cmdline,
+ .cmdline_arg = kodak605_cmdline_arg,
+ .init = kodak605_init,
+ .attach = kodak605_attach,
+ .teardown = kodak605_teardown,
+ .read_parse = kodak605_read_parse,
+ .main_loop = kodak605_main_loop,
+ .devices = {
+ { USB_VID_KODAK, USB_PID_KODAK_605, P_KODAK_605, "Kodak"},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* Kodak 605 data format
+
+ Spool file consists of 14-byte header followed by plane-interleaved BGR data.
+ Native printer resolution is 1844 pixels per row, and 1240 or 2434 rows.
+
+ Header:
+
+ 01 40 0a 00 Fixed header
+ XX Unknown, always 01 in file, but 02 seen in sniffs sometimes
+ CC Number of copies (1-255)
+ 00 Always 0x00
+ WW WW Number of columns, little endian. (Fixed at 1844)
+ HH HH Number of rows, little endian. (1240 or 2434)
+ DD 0x01 (4x6) 0x03 (8x6)
+ LL Laminate, 0x01 (off) or 0x02 (on)
+ 00
+
+ ************************************************************************
+
+ Kodak 605 Printer Comms:
+
+ [[file header]] 01 40 0a 00 01 CC 00 WW WW HH HH MT LL 00
+
+-> 01 00 00 00
+<- [76 bytes -- status ]
+-> 01 00 00 00
+<- [76 bytes -- status ]
+ 01 00 00 00 00 00 02 00 42 00 30 00 00 00 30 00
+ 00 00 13 00 00 00 75 00 00 00 30 00 00 00 5d 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 01 00 00 00 00 00
+
+ 01 00 00 00 00 00 02 00 42 00 30 00 00 00 30 00
+ 00 00 13 00 00 00 75 00 00 00 30 00 00 00 5d 00
+ 00 00 00 00 00 00 01 01 00 00 00 01 00 20 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 01 00 00 00 00 00
+
+-> 02 00 00 00
+<- [113 bytes -- supported media/sizes? Always seems to be identical ]
+
+ 01 00 00 00 00 00 02 00 67 00 02 0b 04 01 34 07
+ d8 04 01 00 00 00 00 02 dc 05 34 08 01 00 00 00
+ 00 03 34 07 82 09 01 00 00 00 00 04 34 07 ba 09
+ 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00
+
+-> 01 40 0a 00 01 01 00 34 07 d8 04 01 02 00 [[ unmodified header ]]
+<- 01 00 00 00 00 00 XX 00 00 00 [[ Seen 0x01 and 0x02 ]
+-> image data!
+-> image data!
+
+-> 01 00 00 00
+<- [76 bytes -- status ?? ]
+
+ 01 00 00 00 00 00 01 00 42 00 31 00 00 00 31 00
+ 00 00 14 00 00 00 77 00 00 00 31 00 00 00 5d 00
+ 00 00 00 00 00 00 01 00 00 01 00 01 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 01 00 00 00 00 00
+
+ 01 00 00 00 00 00 01 00 42 00 31 00 00 00 31 00
+ 00 00 14 00 00 00 77 00 00 00 31 00 00 00 5d 00
+ 00 00 00 00 00 00 01 00 00 01 00 01 00 00 02 01
+ 00 00 00 01 00 02 02 01 00 00 00 01 00 02 00 00
+ 00 00 00 00 00 00 01 00 00 00 00 00
+
+
+ Write tone curve data:
+
+-> 04 c0 0a 00 03 01 00 00 00 00 LL LL 00 00 [[ LL LL == 0x0600 in LE ]]
+<- 01 00 00 00 00 00 XX 00 00 00 [[ Seen 0x01 and 0x02 ]
+
+-> [[ 1536 bytes of LE tone curve data ]]
+
+*/
diff --git a/src/cups/kodak6800_print.c b/src/cups/kodak6800_print.c
new file mode 100644
index 0000000..e7bb174
--- /dev/null
+++ b/src/cups/kodak6800_print.c
@@ -0,0 +1,918 @@
+/*
+ * Kodak 6800/6850 Photo Printer CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+#define USB_VID_KODAK 0x040A
+#define USB_PID_KODAK_6800 0x4021
+#define USB_PID_KODAK_6850 0x402B
+
+/* File header */
+struct kodak6800_hdr {
+ uint8_t hdr[9];
+ uint8_t copies;
+ uint16_t columns; /* BE */
+ uint16_t rows; /* BE */
+ uint8_t media; /* 0x06 for 6x8, 0x00 for 6x4, 0x07 for 5x7 */
+ uint8_t laminate; /* 0x01 to laminate, 0x00 for not */
+ uint8_t unk1; /* 0x00, 0x01 [may be print mode] */
+} __attribute__((packed));
+
+#define CMDBUF_LEN 17
+
+/* Private data stucture */
+struct kodak6800_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+
+ int type;
+ struct kodak6800_hdr hdr;
+ uint8_t *databuf;
+ int datalen;
+};
+
+/* Program states */
+enum {
+ S_IDLE = 0,
+ S_6850_READY,
+ S_6850_READY_WAIT,
+ S_READY,
+ S_STARTED,
+ S_SENT_HDR,
+ S_SENT_DATA,
+ S_FINISHED,
+};
+
+#define READBACK_LEN 68
+
+#define UPDATE_SIZE 1536
+static int kodak6800_get_tonecurve(struct kodak6800_ctx *ctx, char *fname)
+{
+ libusb_device_handle *dev = ctx->dev;
+ uint8_t endp_down = ctx->endp_down;
+ uint8_t endp_up = ctx->endp_up;
+
+ uint8_t cmdbuf[16];
+ uint8_t respbuf[64];
+ int ret, num = 0;
+ int i;
+
+ uint16_t *data = malloc(UPDATE_SIZE);
+
+ INFO("Dump Tone Curve to '%s'\n", fname);
+
+ /* Initial Request */
+ cmdbuf[0] = 0x03;
+ cmdbuf[1] = 0x1b;
+ cmdbuf[2] = 0x43;
+ cmdbuf[3] = 0x48;
+ cmdbuf[4] = 0x43;
+ cmdbuf[5] = 0x0c;
+ cmdbuf[6] = 0x54;
+ cmdbuf[7] = 0x4f;
+ cmdbuf[8] = 0x4e;
+ cmdbuf[9] = 0x45;
+ cmdbuf[10] = 0x72;
+ cmdbuf[11] = 0x01;
+ cmdbuf[12] = 0x00;
+ cmdbuf[13] = 0x00;
+ cmdbuf[14] = 0x00;
+ cmdbuf[15] = 0x00;
+
+ if ((ret = send_data(dev, endp_down,
+ cmdbuf, 16)))
+ goto done;
+
+ ret = read_data(dev, endp_up,
+ respbuf, sizeof(respbuf), &num);
+ if (ret < 0)
+ goto done;
+
+ if (num != 51) {
+ ERROR("Short read! (%d/%d)\n", num, 51);
+ ret = 4;
+ goto done;
+ }
+
+ /* Then we can poll the data */
+ cmdbuf[0] = 0x03;
+ cmdbuf[1] = 0x1b;
+ cmdbuf[2] = 0x43;
+ cmdbuf[3] = 0x48;
+ cmdbuf[4] = 0x43;
+ cmdbuf[5] = 0x0c;
+ cmdbuf[6] = 0x54;
+ cmdbuf[7] = 0x4f;
+ cmdbuf[8] = 0x4e;
+ cmdbuf[9] = 0x45;
+ cmdbuf[10] = 0x20;
+ for (i = 0 ; i < 24 ; i++) {
+ if ((ret = send_data(dev, endp_down,
+ cmdbuf, 11)))
+ goto done;
+
+ ret = read_data(dev, endp_up,
+ respbuf, sizeof(respbuf), &num);
+ if (ret < 0)
+ goto done;
+
+ if (num != 64) {
+ ERROR("Short read! (%d/%d)\n", num, 51);
+ ret = 4;
+ goto done;
+ }
+
+ /* Copy into buffer */
+ memcpy(((uint8_t*)data)+i*64, respbuf, 64);
+ }
+
+ /* Open file and write it out */
+ {
+ int tc_fd = open(fname, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);
+ if (tc_fd < 0) {
+ ret = 4;
+ goto done;
+ }
+
+ for (i = 0 ; i < 768; i++) {
+ /* Byteswap appropriately */
+ data[i] = cpu_to_be16(le16_to_cpu(data[i]));
+ write(tc_fd, &data[i], sizeof(uint16_t));
+ }
+ close(tc_fd);
+ }
+
+ done:
+ /* We're done */
+ free(data);
+
+ return 0;
+}
+
+static int kodak6800_set_tonecurve(struct kodak6800_ctx *ctx, char *fname)
+{
+ libusb_device_handle *dev = ctx->dev;
+ uint8_t endp_down = ctx->endp_down;
+ uint8_t endp_up = ctx->endp_up;
+
+ uint8_t cmdbuf[64];
+ uint8_t respbuf[64];
+ int ret, num = 0;
+ int remain;
+
+ uint16_t *data = malloc(UPDATE_SIZE);
+ uint8_t *ptr;
+
+ INFO("Set Tone Curve from '%s'\n", fname);
+
+ /* Read in file */
+ int tc_fd = open(fname, O_RDONLY);
+ if (tc_fd < 0) {
+ ret = -1;
+ goto done;
+ }
+ if (read(tc_fd, data, UPDATE_SIZE) != UPDATE_SIZE) {
+ ret = -2;
+ goto done;
+ }
+ close(tc_fd);
+
+ /* Byteswap data to printer's format */
+ for (ret = 0; ret < (UPDATE_SIZE)/2 ; ret++) {
+ data[ret] = cpu_to_le16(be16_to_cpu(data[ret]));
+ }
+
+ /* Initial Request */
+ cmdbuf[0] = 0x03;
+ cmdbuf[1] = 0x1b;
+ cmdbuf[2] = 0x43;
+ cmdbuf[3] = 0x48;
+ cmdbuf[4] = 0x43;
+ cmdbuf[5] = 0x0c;
+ cmdbuf[6] = 0x54;
+ cmdbuf[7] = 0x4f;
+ cmdbuf[8] = 0x4e;
+ cmdbuf[9] = 0x45;
+ cmdbuf[10] = 0x77;
+ cmdbuf[11] = 0x01;
+ cmdbuf[12] = 0x00;
+ cmdbuf[13] = 0x00;
+ cmdbuf[14] = 0x00;
+ cmdbuf[15] = 0x00;
+
+ if ((ret = send_data(dev, endp_down,
+ cmdbuf, 16)))
+ goto done;
+
+ ret = read_data(dev, endp_up,
+ respbuf, sizeof(respbuf), &num);
+ if (ret < 0)
+ goto done;
+
+ if (num != 51) {
+ ERROR("Short read! (%d/%d)\n", num, 51);
+ ret = 4;
+ goto done;
+ }
+
+ ptr = (uint8_t*) data;
+ remain = UPDATE_SIZE;
+ while (remain > 0) {
+ int count = remain > 63 ? 63 : remain;
+
+ cmdbuf[0] = 0x03;
+ memcpy(cmdbuf+1, ptr, count);
+
+ remain -= count;
+ ptr += count;
+
+ /* Send next block over */
+ if ((ret = send_data(dev, endp_down,
+ cmdbuf, count+1)))
+ goto done;
+
+
+ ret = read_data(dev, endp_up,
+ respbuf, sizeof(respbuf), &num);
+ if (ret < 0)
+ goto done;
+
+ if (num != 51) {
+ ERROR("Short read! (%d/%d)\n", num, 51);
+ ret = 4;
+ goto done;
+ }
+ };
+
+done:
+ /* We're done */
+ free(data);
+ return ret;
+}
+
+static void kodak6800_cmdline(void)
+{
+ DEBUG("\t\t[ -c filename ] # Get tone curve\n");
+ DEBUG("\t\t[ -C filename ] # Set tone curve\n");
+}
+
+static int kodak6800_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct kodak6800_ctx *ctx = vctx;
+ int i, j = 0;
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, "C:c:")) >= 0) {
+ switch(i) {
+ case 'c':
+ if (ctx) {
+ j = kodak6800_get_tonecurve(ctx, optarg);
+ break;
+ }
+ return 1;
+ case 'C':
+ if (ctx) {
+ j = kodak6800_set_tonecurve(ctx, optarg);
+ break;
+ }
+ return 1;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+
+static void *kodak6800_init(void)
+{
+ struct kodak6800_ctx *ctx = malloc(sizeof(struct kodak6800_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct kodak6800_ctx));
+
+ ctx->type = P_ANY;
+
+ return ctx;
+}
+
+static void kodak6800_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct kodak6800_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
+
+ UNUSED(jobid);
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+ /* Map out device type */
+ if (desc.idProduct == USB_PID_KODAK_6850)
+ ctx->type = P_KODAK_6850;
+ else
+ ctx->type = P_KODAK_6800;
+}
+
+
+static void kodak6800_teardown(void *vctx) {
+ struct kodak6800_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+ free(ctx);
+}
+
+static int kodak6800_read_parse(void *vctx, int data_fd) {
+ struct kodak6800_ctx *ctx = vctx;
+ int ret;
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ /* Read in then validate header */
+ ret = read(data_fd, &ctx->hdr, sizeof(ctx->hdr));
+ if (ret < 0 || ret != sizeof(ctx->hdr)) {
+ if (ret == 0)
+ return 1;
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 0, (int)sizeof(ctx->hdr));
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ if (ctx->hdr.hdr[0] != 0x03 ||
+ ctx->hdr.hdr[1] != 0x1b ||
+ ctx->hdr.hdr[2] != 0x43 ||
+ ctx->hdr.hdr[3] != 0x48 ||
+ ctx->hdr.hdr[4] != 0x43) {
+ ERROR("Unrecognized data format!\n");
+ return(1);
+ }
+
+ ctx->datalen = be16_to_cpu(ctx->hdr.rows) * be16_to_cpu(ctx->hdr.columns) * 3;
+ ctx->databuf = malloc(ctx->datalen);
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return 2;
+ }
+
+ {
+ int remain = ctx->datalen;
+ uint8_t *ptr = ctx->databuf;
+ do {
+ ret = read(data_fd, ptr, remain);
+ if (ret < 0) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, remain, ctx->datalen);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ ptr += ret;
+ remain -= ret;
+ } while (remain);
+ }
+
+ return 0;
+}
+
+static int kodak6800_main_loop(void *vctx, int copies) {
+ struct kodak6800_ctx *ctx = vctx;
+
+ uint8_t rdbuf[READBACK_LEN];
+ uint8_t rdbuf2[READBACK_LEN];
+ uint8_t cmdbuf[CMDBUF_LEN];
+
+ int last_state = -1, state = S_IDLE;
+ int num, ret;
+ int pending = 0;
+
+ if (!ctx)
+ return 1;
+
+top:
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ if (pending)
+ goto skip_query;
+
+ /* Send Status Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x03;
+ cmdbuf[1] = 0x1b;
+ cmdbuf[2] = 0x43;
+ cmdbuf[3] = 0x48;
+ cmdbuf[4] = 0x43;
+ cmdbuf[5] = 0x03;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN - 1)))
+ return ret;
+
+skip_query:
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+ if (ret < 0)
+ return ret;
+
+ if (num < 51) {
+ ERROR("Short read! (%d/%d)\n", num, 51);
+ return 4;
+ }
+
+ if (num != 51 && num != 58 && num != 68) {
+ ERROR("Unexpected readback from printer (%d/%d from 0x%02x))\n",
+ num, READBACK_LEN, ctx->endp_up);
+ return ret;
+ }
+
+ // XXX detect media type based on readback?
+
+ if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
+ memcpy(rdbuf2, rdbuf, READBACK_LEN);
+ } else if (state == last_state) {
+ sleep(1);
+ }
+ last_state = state;
+
+ fflush(stderr);
+
+ pending = 0;
+
+ switch (state) {
+ case S_IDLE:
+ INFO("Waiting for printer idle\n");
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[1] != 0x02 ||
+ rdbuf[2] != 0x01) {
+ break;
+ }
+
+ INFO("Printing started; Sending init sequence\n");
+ if (ctx->type == P_KODAK_6850)
+ state = S_6850_READY;
+ else
+ state = S_READY;
+ break;
+ case S_6850_READY:
+ INFO("Sending 6850 init sequence\n");
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x03;
+ cmdbuf[1] = 0x1b;
+ cmdbuf[2] = 0x43;
+ cmdbuf[3] = 0x48;
+ cmdbuf[4] = 0x43;
+ cmdbuf[5] = 0x4c;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN -1)))
+ return ret;
+ pending = 1;
+ state = S_6850_READY_WAIT;
+ break;
+ case S_6850_READY_WAIT:
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[2] != 0x43) {
+ state = S_6850_READY;
+ break;
+ }
+ state = S_READY;
+ break;
+ case S_READY:
+ INFO("Sending attention sequence\n");
+ /* Send reset/attention */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x03;
+ cmdbuf[1] = 0x1b;
+ cmdbuf[2] = 0x43;
+ cmdbuf[3] = 0x48;
+ cmdbuf[4] = 0x43;
+ cmdbuf[5] = 0x1a;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN -1)))
+ return ret;
+ pending = 1;
+ state = S_STARTED;
+ break;
+ case S_STARTED:
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[2] != 0x00)
+ break;
+
+ /* Aappears to depend on media */
+ if (rdbuf[1] != 0x0b &&
+ rdbuf[1] != 0x03)
+ break;
+
+ memcpy(cmdbuf, &ctx->hdr, CMDBUF_LEN);
+
+ /* 6850 uses same spool format but different header gets sent */
+ if (ctx->type == P_KODAK_6850) {
+ if (ctx->hdr.media == 0x00)
+ cmdbuf[7] = 0x04;
+ else if (ctx->hdr.media == 0x06)
+ cmdbuf[7] = 0x05;
+ }
+
+ /* If we're printing a 4x6 on 8x6 media... */
+ if (ctx->hdr.media == 0x00 &&
+ rdbuf[11] == 0x09 &&
+ rdbuf[12] == 0x82) {
+ cmdbuf[14] = 0x06;
+ cmdbuf[16] = 0x01;
+ }
+
+ INFO("Sending image header\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, CMDBUF_LEN)))
+ return ret;
+ pending = 1;
+ state = S_SENT_HDR;
+ break;
+ case S_SENT_HDR:
+ INFO("Waiting for printer to accept data\n");
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[1] != 0x02 ||
+ rdbuf[2] != 0x01) {
+ break;
+ }
+
+ INFO("Sending image data\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf, ctx->datalen)))
+ return ret;
+
+ INFO("Image data sent\n");
+ state = S_SENT_DATA;
+ break;
+ case S_SENT_DATA:
+ INFO("Waiting for printer to acknowledge completion\n");
+ if (rdbuf[0] != 0x01 ||
+ rdbuf[1] != 0x02 ||
+ rdbuf[2] != 0x01) {
+ break;
+ }
+
+ state = S_FINISHED;
+ break;
+ default:
+ break;
+ };
+
+ if (state != S_FINISHED)
+ goto top;
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ state = S_IDLE;
+ goto top;
+ }
+
+ return 0;
+}
+
+/* Exported */
+struct dyesub_backend kodak6800_backend = {
+ .name = "Kodak 6800/6850",
+ .version = "0.32",
+ .uri_prefix = "kodak6800",
+ .cmdline_usage = kodak6800_cmdline,
+ .cmdline_arg = kodak6800_cmdline_arg,
+ .init = kodak6800_init,
+ .attach = kodak6800_attach,
+ .teardown = kodak6800_teardown,
+ .read_parse = kodak6800_read_parse,
+ .main_loop = kodak6800_main_loop,
+ .devices = {
+ { USB_VID_KODAK, USB_PID_KODAK_6800, P_KODAK_6800, "Kodak"},
+ { USB_VID_KODAK, USB_PID_KODAK_6850, P_KODAK_6850, "Kodak"},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* Kodak 6800/6850 data format
+
+ Spool file consists of 17-byte header followed by plane-interleaved BGR data.
+ Native printer resolution is 1844 pixels per row, and 1240 or 2434 rows.
+
+ 6850 Adds support for 5x7, with 1548 pixels per row and 2140 columns.
+
+ Header:
+
+ 03 1b 43 48 43 0a 00 01 00 Fixed header
+ CC Number of copies
+ WW WW Number of columns, big endian. (Fixed at 1844 on 6800)
+ HH HH Number of rows, big endian.
+ DD 0x00 (4x6) 0x06 (8x6) 0x07 (5x7 on 6850)
+ LL Laminate, 0x00 (off) or 0x01 (on)
+ 00
+
+ ************************************************************************
+
+ Kodak 6800 Printer Comms:
+
+ [[file header]] 03 1b 43 48 43 0a 00 01 00 CC WW WW HH HH MT LL 00
+
+-> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
+<- [51 octets]
+
+ 01 02 01 00 00 00 00 00 00 00 a2 7b 00 00 a2 7b
+ 00 00 02 f4 00 00 e6 b1 00 00 00 1a 00 03 00 e8
+ 00 01 00 83 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00
+
+-> 03 1b 43 48 43 1a 00 00 00 00 00 00 00 00 00 00 [get ready]
+<- [58 octets]
+
+ 01 XX 00 00 00 00 00 04 06 WW WW MM MM 01 00 00 [MM MM == max printable size of media, 09 82 == 2434 for 6x8!]
+ 00 00 06 WW WW 09 ba 01 02 00 00 00 06 WW WW HH [09 ba == 2940 == cut area?]
+ HH 01 01 00 00 00 06 WW WW MM MM 01 03 00 00 00 [XX == media type?; 0b/03]
+ 00 00 00 00 00 00 00 00 00 00
+
+-> 03 1b 43 48 43 0a 00 01 00 01 WW WW HH HH 06 01 [ image header, modified (trailing 0x01, '0x06' as media type) ]
+ 01
+
+<- [51 octets]
+
+ 01 02 01 00 00 00 00 00 00 00 a2 7b 00 00 a2 7b
+ 00 00 02 f4 00 00 e6 b1 00 00 00 1a 00 03 00 e8
+ 00 01 00 83 01 00 00 01 00 00 00 01 00 00 00 00 [ note the "01" after "83", and the extra two "01"s ]
+ 00 00 00
+
+-> [4K of plane data]
+-> ...
+-> [4K of plane data]
+-> [remainder of plane data + 17 bytes of 0xff]
+
+-> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
+<- [51 octets]
+
+ 01 02 01 00 00 00 00 00 00 00 a2 7c 00 00 a2 7c [ note a2 7c vs a2 7b ]
+ 00 00 01 7a 00 00 e6 b3 00 00 00 1a 00 03 00 e8 [ note 01 7a vs 02 f4, e6 b3 vs e6 b1 ]
+ 00 01 00 83 01 00 00 00 00 01 00 01 00 00 00 00 [ note the moved '01' in the middle ]
+ 00 00 00
+
+-> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [ status query ]
+<- [51 octets, repeats]
+
+ Other stuff seen:
+
+-> 03 1b 43 48 43 12 00 00 00 00 00 00 00 00 00 00
+<- [32 octets]
+
+ 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 [[ Pascal string? ]]
+ 20 20 20 20 20 20 20 20 36 30 34 33 4d 32 38 31 [[ ..." 6043M281" ]]
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 65 00 00 00 00 00
+<- [51 octets]
+
+ [[ typical status response ]]
+ [[ Followed by reset. ]]
+
+ Read tone curve data:
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 72 01 00 00 00 00
+<- [51 octets]
+
+ [[ typical status response ]]
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 20
+<- [64 octets]
+
+ 81 01 07 07 27 07 72 07 c8 07 f8 07 22 07 48 08
+ 68 08 88 08 b3 08 db 08 f7 08 09 09 2e 09 49 09
+ 65 09 80 09 aa 09 ca 09 e2 09 fa 09 12 0a 32 0a
+ 42 0a 66 0a 81 0a 9a 0a c3 0a d9 0a ee 0a 04 0b
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 20
+<- [64 octets]
+
+ [[ repeats for total of 24 packets. total of 1.5KiB. ]]
+
+ Write tone curve data:
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 77 01 00 00 00 00
+<- [51 octets]
+
+ [[ typical status response ]]
+
+-> 03 00 00 46 06 53 06 c0 06 07 07 37 07 5d 07 87
+ 07 a1 07 c8 07 08 08 08 08 08 08 48 08 68 08 88
+ 08 a9 08 b9 08 d9 08 f9 08 12 09 2e 09 49 09 70
+ 09 89 08 99 09 ba 09 ca 08 da 09 0a 0a 24 0a 38
+<- [51 octets]
+
+ [[ typical status response ]]
+
+-> 03 0a 53 0a 66 0a 81 0a ...
+ ....
+-> 03 cf 38 0a 39 3d 39 79 39 96 39 b6 39 fb 39 01
+ 34 0a 34 08 3a 0c 1a 10 3a
+<- [51 octets]
+
+ [[ typical status response ]]
+
+ [[ total of 24 packets * 64, and then one final packet of 25: 1562 total. ]]
+ [[ It apepars the extra 25 bytes are to compensate for the leading '03' on
+ each of the 25 URBs. ]]
+
+ ***********************************************************************
+
+ Kodak 6850 Printer Comms:
+
+ [[file header]] 03 1b 43 48 43 0a 00 01 00 CC WW WW HH HH MT LL 00
+
+-> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
+<- [51 octets]
+
+ 01 02 01 00 00 00 00 00 00 00 21 75 00 00 08 52
+ 00 00 01 29 00 00 3b 0a 00 00 00 0e 00 03 02 90
+ 00 01 02 1d 03 00 00 00 00 01 00 01 00 00 00 00
+ 00 00 00
+
+-> 03 1b 43 48 43 4c 00 00 00 00 00 00 00 00 00 00 [???]
+<- [51 octets]
+
+ 01 01 43 48 43 4c 00 00 00 00 00 00 00 00 00 00
+ 00 00 01 29 00 00 3b 0a 00 00 00 0e 00 03 02 90
+ 00 01 02 1d 03 00 00 00 00 01 00 01 00 00 00 00
+ 00 00 00
+
+-> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
+<- [51 octets -- same as status query before ]
+
+-> 03 1b 43 48 43 1a 00 00 00 00 00 00 00 00 00 00 [get ready]
+<- [68 octets]
+
+ 01 XX 00 00 00 00 00 06 06 WW WW MM MM 01 00 00 [MM MM == max printable size of media, 09 82 == 2434 for 6x8!]
+ 00 00 06 WW WW 09 ba 01 02 01 00 00 06 WW WW HH [09 ba == 2940 == cut area?]
+ HH 01 01 00 00 00 06 WW WW MM MM 01 03 00 00 00 [XX == media type? 03/0b ]
+ 06 WW WW 09 ba 01 05 01 00 00 06 WW WW HH HH 01
+ 04 00 00 00
+
+-> 03 1b 43 48 43 0a 00 04 00 01 07 34 04 d8 06 01 [ image header, modified ]
+ 01 [ note we use '04' for 4x6, '05' for 6x8. last octet is always 0x01 when 4x6. ]
+
+<- [51 octets]
+
+ 01 02 01 00 00 00 00 00 00 00 21 75 00 00 08 52
+ 00 00 01 29 00 00 3b 0a 00 00 00 0e 00 03 02 90
+ 00 01 02 1d 04 00 00 01 00 00 00 01 00 00 00 00 [ note the "04" after "1d", and the moved '01' ]
+ 00 00 00
+
+-> [4K of plane data]
+-> ...
+-> [4K of plane data]
+-> [remainder of plane data]
+
+-> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
+<- [51 octets]
+
+ 01 02 01 00 00 00 00 00 00 00 21 76 00 00 08 53 [ note 21 76, 08 53, 01 2a incremented by 1 ]
+ 00 00 01 2a 00 00 3b 0c 00 00 00 0e 00 03 02 90 [ note 3b 0c incremeted by 2 ]
+ 00 01 02 1d 04 00 00 01 00 00 00 01 00 00 00 00
+ 00 00 00
+
+ Other stuff seen:
+
+-> 03 1b 43 48 43 12 00 00 00 00 00 00 00 00 00 00
+ 00
+<- [32 octets]
+
+ 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 [[ Pascal string? ]]
+ 20 20 20 20 20 20 20 20 36 30 39 37 4b 53 34 39 [[ ..." 6097KS49" ]]
+
+ Read tone curve data:
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 72 01 00 00 00 00
+<- [51 octets]
+
+ [[ typical status response ]]
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 20
+<- [64 octets]
+
+ 81 01 07 07 27 07 72 07 c8 07 f8 07 22 07 48 08
+ 68 08 88 08 b3 08 db 08 f7 08 09 09 2e 09 49 09
+ 65 09 80 09 aa 09 ca 09 e2 09 fa 09 12 0a 32 0a
+ 42 0a 66 0a 81 0a 9a 0a c3 0a d9 0a ee 0a 04 0b
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 20
+<- [64 octets]
+
+ [[ repeats for total of 24 packets. total of 1.5KiB. ]]
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 65 00 00 00 00 00
+<- [51 octets]
+
+ [[ typical status response ]]
+
+ Maybe this resets the calibration table:
+
+-> 03 1b 43 48 43 05 00 00 00 00 00 00 00 00 00 00 [???]
+<- [34 octets]
+
+ 01 00 04 00 00 00 01 00 01 00 02 00 00 00 01 00
+ 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00
+
+ Write tone curve data:
+
+-> 03 1b 43 48 43 0c 54 4f 4e 45 77 01 00 00 00 00
+<- [51 octets]
+
+ [[ typical status response ]]
+
+-> 03 00 00 46 06 53 06 c0 06 07 07 37 07 5d 07 87
+ 07 a1 07 c8 07 08 08 08 08 08 08 48 08 68 08 88
+ 08 a9 08 b9 08 d9 08 f9 08 12 09 2e 09 49 09 70
+ 09 89 08 99 09 ba 09 ca 08 da 09 0a 0a 24 0a 38
+<- [51 octets]
+
+ [[ typical status response ]]
+
+-> 03 0a 53 0a 66 0a 81 0a ...
+ ....
+-> 03 cf 38 0a 39 3d 39 79 39 96 39 b6 39 fb 39 01
+ 34 0a 34 08 3a 0c 1a 10 3a
+<- [51 octets]
+
+ [[ typical status response ]]
+
+ [[ total of 24 packets * 64, and then one final packet of 25: 1562 total. ]]
+ [[ It apepars the extra 25 bytes are to compensate for the leading '03' on
+ each of the 25 URBs. ]]
+
+ Also seen on the 6850:
+
+DEBUG: readback: 01 02 03 00 00 00 01 00 00 01 5f 6f 00 01 5f 6f 00 00 00 09 00 02 90 44 00 00 00 55 00 03 02 90 00 01 02 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+INIT/???
+DEBUG: readback: 01 02 03 00 00 00 00 00 00 01 5f 6f 00 01 5f 6f 00 00 00 09 00 02 90 44 00 00 00 55 00 03 02 90 00 01 02 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+??? 6x8c
+DEBUG: readback: 01 02 01 00 00 00 00 00 00 01 5f 6f 00 01 5f 6f 00 00 00 09 00 02 90 44 00 00 00 55 00 03 02 90 00 01 02 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
+*/
diff --git a/src/cups/mitsu70x_print.c b/src/cups/mitsu70x_print.c
new file mode 100644
index 0000000..bdfc427
--- /dev/null
+++ b/src/cups/mitsu70x_print.c
@@ -0,0 +1,532 @@
+/*
+ * Mitsubishi CP-D70/D707 Photo Printer CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+#define USB_VID_MITSU 0x06D3
+#define USB_PID_MITSU_D70X 0x3B30
+
+/* Private data stucture */
+struct mitsu70x_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+
+ uint8_t *databuf;
+ int datalen;
+};
+
+/* Program states */
+enum {
+ S_IDLE = 0,
+ S_SENT_ATTN,
+ S_SENT_HDR,
+ S_SENT_DATA,
+ S_FINISHED,
+};
+
+#define READBACK_LEN 256
+
+static void *mitsu70x_init(void)
+{
+ struct mitsu70x_ctx *ctx = malloc(sizeof(struct mitsu70x_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct mitsu70x_ctx));
+
+ return ctx;
+}
+
+static void mitsu70x_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct mitsu70x_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
+
+ UNUSED(jobid);
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+}
+
+
+static void mitsu70x_teardown(void *vctx) {
+ struct mitsu70x_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+ free(ctx);
+}
+
+/* Max job size is 6x9+lamination, equalling ~38MB */
+#define MAX_PRINTJOB_LEN (1024*1024*40)
+
+struct mitsu70x_hdr {
+ uint32_t cmd;
+ uint8_t zero0[12];
+ uint16_t cols;
+ uint16_t rows;
+ uint16_t lamcols;
+ uint16_t lamrows;
+ uint8_t superfine;
+ uint8_t zero1[7];
+ uint8_t deck;
+ uint8_t zero2[7];
+ uint8_t zero3;
+ uint8_t laminate;
+ uint8_t zero4[6];
+ uint8_t zero5[512-48];
+};
+
+static int mitsu70x_read_parse(void *vctx, int data_fd) {
+ struct mitsu70x_ctx *ctx = vctx;
+ uint8_t hdr[1024];
+ int i, remain;
+ struct mitsu70x_hdr *mhdr = (struct mitsu70x_hdr*)(hdr + 512);
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ /* Read in initial header */
+ remain = sizeof(hdr);
+ while (remain > 0) {
+ i = read(data_fd, hdr + sizeof(hdr) - remain, remain);
+ if (i == 0)
+ return 1;
+ if (i < 0)
+ return i;
+ remain -= i;
+ }
+
+ /* Sanity check */
+ if (hdr[0] != 0x1b ||
+ hdr[1] != 0x45 ||
+ hdr[2] != 0x57 ||
+ hdr[3] != 0x55) {
+ ERROR("Unrecognized data format!\n");
+ return(1);
+ }
+
+ /* Work out printjob size */
+ remain = be16_to_cpu(mhdr->rows) * be16_to_cpu(mhdr->cols) * 2;
+ remain = (remain + 511) / 512 * 512; /* Round to nearest 512 bytes. */
+ remain *= 3; /* One for each plane */
+ if (mhdr->laminate) {
+ i = be16_to_cpu(mhdr->lamrows) * be16_to_cpu(mhdr->lamcols) * 2;
+ i = (i + 511) / 512 * 512; /* Round to nearest 512 bytes. */
+ remain += i;
+ }
+
+ ctx->databuf = malloc(remain + sizeof(hdr));
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return 2;
+ }
+
+ memcpy(ctx->databuf, &hdr, sizeof(hdr));
+ ctx->datalen += sizeof(hdr);
+
+ /* Read in the spool data */
+ while(remain) {
+ i = read(data_fd, ctx->databuf + ctx->datalen - remain, remain);
+ if (i < 0)
+ return i;
+ remain -= i;
+ }
+
+ return 0;
+}
+
+#define CMDBUF_LEN 512
+#define READBACK_LEN 256
+
+static int mitsu70x_main_loop(void *vctx, int copies) {
+ struct mitsu70x_ctx *ctx = vctx;
+
+ uint8_t rdbuf[READBACK_LEN];
+ uint8_t rdbuf2[READBACK_LEN];
+ uint8_t cmdbuf[CMDBUF_LEN];
+
+ int last_state = -1, state = S_IDLE;
+ int num, ret;
+ int pending = 0;
+
+ if (!ctx)
+ return 1;
+
+top:
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ if (pending)
+ goto skip_query;
+
+ /* Send Status Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x56;
+ cmdbuf[2] = 0x31;
+ cmdbuf[3] = 0x30;
+ cmdbuf[4] = 0x00;
+ cmdbuf[5] = 0x00;
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, 6)))
+ return ret;
+ /* Send Status Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x56;
+ cmdbuf[2] = 0x31;
+ cmdbuf[3] = 0x30;
+
+skip_query:
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+ if (ret < 0)
+ return ret;
+
+ if (num != 26) {
+ ERROR("Short Read! (%d/%d)\n", num, 26);
+ return 4;
+ }
+
+ if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
+ memcpy(rdbuf2, rdbuf, READBACK_LEN);
+ } else if (state == last_state) {
+ sleep(1);
+ }
+ last_state = state;
+
+ fflush(stderr);
+
+ pending = 0;
+
+ switch (state) {
+ case S_IDLE:
+ INFO("Waiting for printer idle\n");
+ if (rdbuf[7] != 0x00 ||
+ rdbuf[8] != 0x00 ||
+ rdbuf[9] != 0x00) {
+ break;
+ }
+
+ INFO("Sending attention sequence\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf, 512)))
+ return ret;
+
+ state = S_SENT_ATTN;
+ case S_SENT_ATTN:
+ INFO("Sending header sequence\n");
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf + 512, 512)))
+ return ret;
+
+ state = S_SENT_HDR;
+ break;
+ case S_SENT_HDR:
+ INFO("Sending data\n");
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf + 1024, ctx->datalen - 1024)))
+ return ret;
+
+ state = S_SENT_DATA;
+ break;
+ case S_SENT_DATA:
+ INFO("Waiting for printer to acknowledge completion\n");
+
+ state = S_FINISHED;
+ break;
+ default:
+ break;
+ };
+
+ if (state != S_FINISHED)
+ goto top;
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ state = S_IDLE;
+ goto top;
+ }
+
+ return 0;
+}
+
+struct mitsu70x_status_deck {
+ uint8_t unk[64];
+};
+
+struct mitsu70x_status_resp {
+ uint8_t unk[128];
+ struct mitsu70x_status_deck lower;
+ struct mitsu70x_status_deck upper;
+};
+
+static int mitsu70x_get_status(struct mitsu70x_ctx *ctx)
+{
+ uint8_t cmdbuf[CMDBUF_LEN];
+ struct mitsu70x_status_resp resp;
+ int num, ret;
+
+ /* Send Printer Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmdbuf[0] = 0x1b;
+ cmdbuf[1] = 0x56;
+ cmdbuf[2] = 0x32;
+ cmdbuf[3] = 0x30;
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, 4)))
+ return ret;
+ memset(&resp, 0, sizeof(resp));
+ ret = read_data(ctx->dev, ctx->endp_up,
+ (uint8_t*) &resp, sizeof(resp), &num);
+
+ if (ret < 0)
+ return ret;
+ if (num != sizeof(resp)) {
+ ERROR("Short Read! (%d/%d)\n", num, (int)sizeof(resp));
+ return 4;
+ }
+
+ if (dyesub_debug) {
+ unsigned int i;
+
+ DEBUG("Status Dump:\n");
+ for (i = 0 ; i < sizeof(resp.unk) ; i++) {
+ DEBUG2("%02x ", resp.unk[i]);
+ }
+ DEBUG2("\n");
+ DEBUG("Lower Deck:\n");
+ for (i = 0 ; i < sizeof(resp.lower.unk) ; i++) {
+ DEBUG2("%02x ", resp.lower.unk[i]);
+ }
+ DEBUG2("\n");
+ DEBUG("Upper Deck:\n");
+ for (i = 0 ; i < sizeof(resp.upper.unk) ; i++) {
+ DEBUG2("%02x ", resp.upper.unk[i]);
+ }
+ DEBUG2("\n");
+ }
+ INFO("Prints remaining: Lower: %d Upper: %d\n",
+ resp.lower.unk[23], resp.upper.unk[23]);
+
+ return 0;
+}
+
+static void mitsu70x_cmdline(void)
+{
+ DEBUG("\t\t[ -s ] # Query status\n");
+}
+
+static int mitsu70x_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct mitsu70x_ctx *ctx = vctx;
+ int i, j = 0;
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, "s")) >= 0) {
+ switch(i) {
+ case 's':
+ if (ctx) {
+ j = mitsu70x_get_status(ctx);
+ break;
+ }
+ return 1;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+
+/* Exported */
+struct dyesub_backend mitsu70x_backend = {
+ .name = "Mitsubishi CP-D70/D707",
+ .version = "0.12",
+ .uri_prefix = "mitsu70x",
+ .cmdline_usage = mitsu70x_cmdline,
+ .cmdline_arg = mitsu70x_cmdline_arg,
+ .init = mitsu70x_init,
+ .attach = mitsu70x_attach,
+ .teardown = mitsu70x_teardown,
+ .read_parse = mitsu70x_read_parse,
+ .main_loop = mitsu70x_main_loop,
+ .devices = {
+ { USB_VID_MITSU, USB_PID_MITSU_D70X, P_MITSU_D70X, "Mitsubishi"},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* Mitsubish CP-D70x/CP-K60 data format
+
+ Spool file consists of two headers followed by three image planes
+ and an optional lamination data plane. All blocks are rounded up to
+ a 512-byte boundary.
+
+ All multi-byte numbers are big endian, ie MSB first.
+
+ Header 1: (Init)
+
+ 1b 45 57 55 00 00 00 00 00 00 00 00 00 00 00 00
+ (padded by NULLs to a 512-byte boundary)
+
+ [[ D70x ]] Header 2: (Header)
+
+ 1b 5a 54 01 00 00 00 00 00 00 00 00 00 00 00 00
+ XX XX YY YY QQ QQ ZZ ZZ SS 00 00 00 00 00 00 00
+ UU 00 00 00 00 00 00 00 00 TT 00 00 00 00 00 00
+ (padded by NULLs to a 512-byte boundary)
+
+ XX XX == columns
+ YY YY == rows
+ QQ QQ == lamination columns (equal to XX XX)
+ ZZ ZZ == lamination rows (YY YY + 12)
+ SS == SuperFine mode (00 == off, 03 == on
+ Lamination always turns this on!
+ UU == 00 == Auto, 01 == Lower Deck, 02 == Upper Deck
+ TT == 00 with no lamination, 02 with.
+
+ [[ K60 ]] Header 2: (Header)
+
+ 1b 5a 54 00 00 00 00 00 00 00 00 00 00 00 00 00
+ XX XX YY YY QQ QQ ZZ ZZ SS 00 00 00 00 00 00 00
+ UU 00 00 00 00 00 00 00 00 TT 00 00 00 00 00 00
+ RR 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+ (padded by NULLs to a 512-byte boundary)
+
+ XX XX == columns
+ YY YY == rows
+ QQ QQ == lamination columns (equal to XX XX)
+ ZZ ZZ == lamination rows (usually YY YY + 12)
+ SS == UltraFine mode (00 == off, 04 == on.. forces 8x6 print?)
+ UU == 01 (Lower Deck)
+ TT == 00 with no lamination, 02 with.
+ RR == 0x05 for double-cut 2x6, 0x00 for double-cut 4x6, otherwise 0x01
+
+ Data planes:
+ 16-bit data, rounded up to 512-byte block (XX * YY * 2 bytes)
+
+ Lamination plane: (only present if QQ + ZZ are nonzero)
+ 16-byte data, rounded up to 512-byte block (QQ * ZZ * 2 bytes)
+
+ Lamination appears to be these bytes, repeated: 28 6a ab 58 6c 22
+
+ ********************************************************************
+
+ Command format: (D70/D707)
+
+ -> 1b 56 32 30
+ <- [256 byte payload]
+
+ e4 56 32 30 00 00 00 00 00 00 00 00 00 00 00 00 .V20............
+ 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 ................
+ 44 80 00 00 5f 00 00 3d 43 00 50 00 44 00 37 00 D..._..=C.P.D.7.
+ 30 00 44 00 30 00 30 00 31 00 31 00 31 00 37 00 0.D.0.0.1.1.1.7.
+ 33 31 36 54 31 33 21 a3 33 31 35 42 31 32 f5 e5 316T13!.315B12..
+ 33 31 39 42 31 31 a3 fb 33 31 38 45 31 32 50 0d 319B11..318E12P.
+ 33 31 37 41 32 32 a3 82 44 55 4d 4d 59 40 00 00 317A22..DUMMY@..
+ 44 55 4d 4d 59 40 00 00 00 00 00 00 00 00 00 00 DUMMY@..........
+
+ LOWER DECK
+
+ 00 00 00 00 00 00 02 04 3f 00 00 04 96 00 00 00 ........?.......
+ ff 0f 01 00 00 c8 NN NN 00 00 00 00 05 28 75 80 .......R.....(u.
+ 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 ................
+ 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 ................
+
+ UPPER DECK
+
+ 00 00 00 00 00 00 01 ee 3d 00 00 06 39 00 00 00 ........=...9...
+ ff 02 00 00 01 90 NN NN 00 00 00 00 06 67 78 00 .............gx.
+ 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 ................
+ 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 ................
+
+ NN NN == Number of prints remaining on that deck.
+ (None of the other fields are decoded yet)
+
+ -> 1b 56 31 30 00 00
+ <- [26 byte payload]
+
+ e4 56 31 30 00 00 00 XX YY ZZ 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00
+
+ XX/YY/ZZ are unkown. Observed values:
+
+ 40 80 a0
+ 00 00 00
+ 80 80 a0
+
+ ** ** ** ** ** **
+
+ The windows drivers seem to send the id and status queries before
+ and in between each of the chunks sent to the printer. There doesn't
+ appear to be any particular intelligence in the protocol, but it didn't
+ work when the raw dump was submitted as-is.
+
+ */
diff --git a/src/cups/rastertoprinter.c b/src/cups/rastertoprinter.c
index 065aa9b..4a1ae9c 100644
--- a/src/cups/rastertoprinter.c
+++ b/src/cups/rastertoprinter.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rastertoprinter.c,v 1.139 2011/12/18 16:20:31 rlk Exp $"
+ * "$Id: rastertoprinter.c,v 1.143 2014/01/04 00:31:37 rlk Exp $"
*
* Gutenprint based raster filter for the Common UNIX Printing System.
*
@@ -136,6 +136,16 @@ static const char *load_file_name = NULL;
extern void stpi_vars_print_error(const stp_vars_t *v, const char *prefix);
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-qual"
+static inline void *
+cast_safe(const void *ptr)
+{
+ return (void *)ptr;
+}
+#pragma GCC diagnostic pop
+
static void
set_string_parameter(stp_vars_t *v, const char *name, const char *val)
{
@@ -330,7 +340,7 @@ static stp_vars_t *
initialize_page(cups_image_t *cups, const stp_vars_t *default_settings,
const char *page_size_name)
{
- int tmp_left, tmp_right, tmp_top, tmp_bottom, tmp_width, tmp_height;
+ int tmp_left, tmp_right, tmp_top, tmp_bottom;
stp_vars_t *v = stp_vars_create_copy(default_settings);
if (! suppress_messages)
@@ -480,8 +490,6 @@ initialize_page(cups_image_t *cups, const stp_vars_t *default_settings,
tmp_right = cups->width;
if (tmp_bottom > tmp_top + cups->height)
tmp_bottom = cups->height;
- tmp_width = cups->right - cups->left;
- tmp_height = cups->bottom - cups->top;
if (tmp_left < cups->left)
{
if (cups->shrink_to_fit != 1)
@@ -802,7 +810,7 @@ set_all_options(stp_vars_t *v, cups_option_t *options, int num_options,
if (raw)
{
stp_set_raw_parameter(v, desc.name, raw->data, raw->bytes);
- stp_free((void *)raw->data);
+ stp_free(cast_safe(raw->data));
stp_free(raw);
}
break;
@@ -1085,7 +1093,6 @@ main(int argc, /* I - Number of command-line arguments */
const char *version_id;
const char *release_version_id;
struct tms tms;
- clock_t clk;
long clocks_per_sec;
struct timeval t1, t2;
struct timezone tz;
@@ -1398,12 +1405,11 @@ main(int argc, /* I - Number of command-line arguments */
stp_vars_destroy(v);
}
cupsRasterClose(cups.ras);
- clk = times(&tms);
+ (void) times(&tms);
(void) gettimeofday(&t2, &tz);
clocks_per_sec = sysconf(_SC_CLK_TCK);
- fprintf(stderr, "DEBUG: Gutenprint: Printed total %.0f bytes\n",
- total_bytes_printed);
- fprintf(stderr, "DEBUG: Gutenprint: Time %.3f user, %.3f sys, %.3f elapsed\n",
+ fprintf(stderr, "DEBUG: Gutenprint: stats %.0fB, %.3fu, %.3fs, %.3fel\n",
+ total_bytes_printed,
(double) tms.tms_utime / clocks_per_sec,
(double) tms.tms_stime / clocks_per_sec,
(double) (t2.tv_sec - t1.tv_sec) +
@@ -1704,5 +1710,5 @@ Image_width(stp_image_t *image) /* I - Image */
/*
- * End of "$Id: rastertoprinter.c,v 1.139 2011/12/18 16:20:31 rlk Exp $".
+ * End of "$Id: rastertoprinter.c,v 1.143 2014/01/04 00:31:37 rlk Exp $".
*/
diff --git a/src/cups/selphy_print.c b/src/cups/selphy_print.c
new file mode 100644
index 0000000..29284a0
--- /dev/null
+++ b/src/cups/selphy_print.c
@@ -0,0 +1,1288 @@
+/*
+ * Canon SELPHY ES/CP series CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2007-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+#define READBACK_LEN 12
+
+struct printer_data {
+ int type; /* P_??? */
+ char *model; /* eg "SELPHY ES1" */
+ int init_length;
+ int foot_length;
+ int16_t init_readback[READBACK_LEN];
+ int16_t ready_y_readback[READBACK_LEN];
+ int16_t ready_m_readback[READBACK_LEN];
+ int16_t ready_c_readback[READBACK_LEN];
+ int16_t done_c_readback[READBACK_LEN];
+ uint8_t clear_error[READBACK_LEN];
+ int clear_error_len;
+ int16_t paper_codes[256];
+ int16_t pgcode_offset; /* Offset into printjob for paper type */
+ int16_t paper_code_offset; /* Offset in readback for paper type */
+ int (*error_detect)(uint8_t *rdbuf);
+};
+
+static int es1_error_detect(uint8_t *rdbuf)
+{
+ if (rdbuf[1] == 0x01) {
+ if (rdbuf[9] == 0x00) {
+ ERROR("Cover open!\n");
+ } else {
+ ERROR("Unknown error %02x\n", rdbuf[9]);
+ }
+ return 1;
+ } else if (rdbuf[4] == 0x01 && rdbuf[5] == 0xff &&
+ rdbuf[6] == 0xff && rdbuf[7] == 0xff) {
+ ERROR("No media loaded!\n");
+ return 1;
+ } else if (rdbuf[0] == 0x0f) {
+ ERROR("Out of media!\n");
+ return 1;
+ }
+
+ return 0;
+}
+
+static int es2_error_detect(uint8_t *rdbuf)
+{
+ if (rdbuf[0] == 0x16 &&
+ rdbuf[1] == 0x01) {
+ ERROR("Printer cover open!\n");
+ return 1;
+ }
+
+ if (rdbuf[0] == 0x02 &&
+ rdbuf[4] == 0x05 &&
+ rdbuf[5] == 0x05 &&
+ rdbuf[6] == 0x02) {
+ ERROR("No media loaded!\n");
+ return 1;
+ }
+
+ if (rdbuf[0] == 0x14) {
+ ERROR("Out of media!\n");
+ return 1;
+ }
+
+ return 0;
+}
+
+static int es3_error_detect(uint8_t *rdbuf)
+{
+ if (rdbuf[8] == 0x01) {
+ if (rdbuf[10] == 0x0f) {
+ ERROR("Communications Error\n");
+ } else if (rdbuf[10] == 0x01) {
+ ERROR("No media loaded!\n");
+ } else {
+ ERROR("Unknown error - %02x + %02x\n",
+ rdbuf[8], rdbuf[10]);
+ }
+ return 1;
+ } else if (rdbuf[8] == 0x03 &&
+ rdbuf[10] == 0x02) {
+ ERROR("No media loaded!\n");
+ return 1;
+ } else if (rdbuf[8] == 0x08 &&
+ rdbuf[10] == 0x04) {
+ ERROR("Printer cover open!\n");
+ return 1;
+ } else if (rdbuf[8] == 0x05 &&
+ rdbuf[10] == 0x01) {
+ ERROR("Incorrect media loaded!\n");
+ return 1;
+ }
+
+ if (rdbuf[8] || rdbuf[10]) {
+ ERROR("Unknown error - %02x + %02x\n",
+ rdbuf[8], rdbuf[10]);
+ return 1;
+ }
+
+ return 0;
+}
+
+static int es40_error_detect(uint8_t *rdbuf)
+{
+ /* ES40 */
+ if (!rdbuf[3])
+ return 0;
+
+ if (rdbuf[3] == 0x01)
+ ERROR("Generic communication error\n");
+ else if (rdbuf[3] == 0x32)
+ ERROR("Cover open or media empty!\n");
+ else
+ ERROR("Unknown error - %02x\n", rdbuf[3]);
+
+ return 1;
+}
+
+static int cp790_error_detect(uint8_t *rdbuf)
+{
+ /* CP790 */
+ if (rdbuf[5] == 0xff) {
+ ERROR("No ribbon loaded!\n");
+ return 1;
+ } else if (rdbuf[4] == 0xff) {
+ ERROR("No paper tray loaded!\n");
+ return 1;
+ } else if (rdbuf[3]) {
+ if ((rdbuf[3] & 0xf) == 0x02) // 0x12 0x22
+ ERROR("No paper tray loaded!\n");
+ else if ((rdbuf[3] & 0xf) == 0x03) // 0x13 0x23
+ ERROR("Empty paper tray or feed error!\n");
+ else if (rdbuf[3] == 0x11)
+ ERROR("Paper feed error!\n");
+ else if (rdbuf[3] == 0x21)
+ ERROR("Ribbon depleted!\n");
+ else
+ ERROR("Unknown error - %02x\n", rdbuf[3]);
+ return 1;
+ }
+
+ return 0;
+}
+
+
+static int cp10_error_detect(uint8_t *rdbuf)
+{
+ if (!rdbuf[2])
+ return 0;
+
+ if (rdbuf[2] == 0x80)
+ ERROR("No ribbon loaded\n");
+ else if (rdbuf[2] == 0x08)
+ ERROR("Ribbon depleted!\n");
+ else if (rdbuf[2] == 0x01)
+ ERROR("No paper loaded!\n");
+ else
+ ERROR("Unknown error - %02x\n", rdbuf[2]);
+ return 1;
+}
+
+static int cpxxx_error_detect(uint8_t *rdbuf)
+{
+ if (!rdbuf[2])
+ return 0;
+
+ if (rdbuf[2] == 0x01)
+ ERROR("Paper feed problem!\n");
+ else if (rdbuf[2] == 0x04)
+ ERROR("Ribbon problem!\n");
+ else if (rdbuf[2] == 0x08)
+ ERROR("Ribbon depleted!\n");
+ else
+ ERROR("Unknown error - %02x\n", rdbuf[2]);
+ return 1;
+}
+
+static struct printer_data selphy_printers[] = {
+ { .type = P_ES1,
+ .model = "SELPHY ES1",
+ .init_length = 12,
+ .foot_length = 0,
+ .init_readback = { 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
+ .ready_y_readback = { 0x04, 0x00, 0x01, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
+ .ready_m_readback = { 0x04, 0x00, 0x03, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
+ .ready_c_readback = { 0x04, 0x00, 0x07, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
+ .done_c_readback = { 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, -1, 0x01, 0x00, 0x00, 0x00, 0x00 },
+ // .clear_error + clear_error_len
+ // .paper_codes
+ .pgcode_offset = 3,
+ .paper_code_offset = 6,
+ .error_detect = es1_error_detect,
+ },
+ { .type = P_ES2_20,
+ .model = "SELPHY ES2/ES20",
+ .init_length = 16,
+ .foot_length = 0,
+ .init_readback = { 0x02, 0x00, 0x00, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
+ .ready_y_readback = { 0x03, 0x00, 0x01, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
+ .ready_m_readback = { 0x06, 0x00, 0x03, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
+ .ready_c_readback = { 0x09, 0x00, 0x07, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
+ .done_c_readback = { 0x09, 0x00, 0x00, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00 },
+ // .clear_error + clear_error_len
+ // .paper_codes
+ .pgcode_offset = 2,
+ .paper_code_offset = 4,
+ .error_detect = es2_error_detect,
+ },
+ { .type = P_ES3_30,
+ .model = "SELPHY ES3/ES30",
+ .init_length = 16,
+ .foot_length = 12,
+ .init_readback = { 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
+ .ready_y_readback = { 0x01, 0xff, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
+ .ready_m_readback = { 0x03, 0xff, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
+ .ready_c_readback = { 0x05, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
+ .done_c_readback = { 0x00, 0xff, 0x10, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
+ // .clear_error + clear_error_len
+ // .paper_codes
+ .pgcode_offset = 2,
+ .paper_code_offset = -1,
+ .error_detect = es3_error_detect,
+ },
+ /* PLACEHOLDER FOR DETECTION PURPOSES ONLY */
+ { .type = P_ES40_CP790,
+ .model = "SELPHY ES40/CP790",
+ .init_length = 16,
+ .foot_length = 12,
+ .pgcode_offset = 2,
+ },
+ { .type = P_ES40,
+ .model = "SELPHY ES40",
+ .init_length = 16,
+ .foot_length = 12,
+ .init_readback = { 0x00, 0x00, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
+ .ready_y_readback = { 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
+ .ready_m_readback = { 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
+ .ready_c_readback = { 0x00, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
+ .done_c_readback = { 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -1 },
+ // .clear_error + clear_error_len
+ // .paper_codes
+ .pgcode_offset = 2,
+ .paper_code_offset = 11,
+ .error_detect = es40_error_detect,
+ },
+ { .type = P_CP790,
+ .model = "SELPHY CP790",
+ .init_length = 16,
+ .foot_length = 12,
+ .init_readback = { 0x00, 0x00, -1, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 },
+ .ready_y_readback = { 0x00, 0x01, 0x01, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 },
+ .ready_m_readback = { 0x00, 0x03, 0x02, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 },
+ .ready_c_readback = { 0x00, 0x05, 0x03, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 },
+ .done_c_readback = { 0x00, 0x00, 0x10, 0x00, -1, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 },
+ .clear_error = { 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .clear_error_len = 12,
+ // .paper_codes
+ .pgcode_offset = 2,
+ .paper_code_offset = -1, /* Uses a different technique */
+ .error_detect = cp790_error_detect,
+ },
+ { .type = P_CP_XXX,
+ .model = "SELPHY CP Series (!CP-10/CP790)",
+ .init_length = 12,
+ .foot_length = 0, /* CP900 has four-byte NULL footer that can be safely ignored */
+ .init_readback = { 0x01, 0x00, 0x00, 0x00, -1, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
+ .ready_y_readback = { 0x02, 0x00, 0x00, 0x00, 0x70, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
+ .ready_m_readback = { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
+ .ready_c_readback = { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
+ .done_c_readback = { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, -1, 0x00, 0x00, 0x00, 0x00, -1 },
+ .clear_error = { 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .clear_error_len = 12,
+ // .paper_codes
+ .pgcode_offset = 3,
+ .paper_code_offset = 6,
+ .error_detect = cpxxx_error_detect,
+ },
+ { .type = P_CP10,
+ .model = "SELPHY CP-10",
+ .init_length = 12,
+ .foot_length = 0,
+ .init_readback = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .ready_y_readback = { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .ready_m_readback = { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .ready_c_readback = { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .done_c_readback = { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .clear_error = { 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ .clear_error_len = 12,
+ // .paper_codes
+ .pgcode_offset = -1,
+ .paper_code_offset = -1,
+ .error_detect = cp10_error_detect,
+ },
+ { .type = -1 },
+};
+
+#define MAX_HEADER 28
+
+static const uint32_t es40_cp790_plane_lengths[4] = { 2227456, 1601600, 698880, 2976512 };
+
+static void setup_paper_codes(void)
+{
+ int i, j;
+ for (i = 0 ; ; i++) {
+ if (selphy_printers[i].type == -1)
+ break;
+ /* Default all to IGNORE */
+ for (j = 0 ; j < 256 ; j++)
+ selphy_printers[i].paper_codes[j] = -1;
+
+ /* Set up specifics */
+ switch (selphy_printers[i].type) {
+ case P_ES1:
+ selphy_printers[i].paper_codes[0x11] = 0x01;
+ selphy_printers[i].paper_codes[0x12] = 0x02;
+ selphy_printers[i].paper_codes[0x13] = 0x03;
+ break;
+ case P_ES2_20:
+ selphy_printers[i].paper_codes[0x01] = 0x01;
+ selphy_printers[i].paper_codes[0x02] = 0x02;
+ selphy_printers[i].paper_codes[0x03] = 0x03;
+ break;
+ case P_ES40:
+ selphy_printers[i].paper_codes[0x00] = 0x11;
+ selphy_printers[i].paper_codes[0x01] = 0x22;
+ selphy_printers[i].paper_codes[0x02] = 0x33;
+ selphy_printers[i].paper_codes[0x03] = 0x44;
+ break;
+ case P_CP_XXX:
+ selphy_printers[i].paper_codes[0x01] = 0x11;
+ selphy_printers[i].paper_codes[0x02] = 0x22;
+ selphy_printers[i].paper_codes[0x03] = 0x33;
+ selphy_printers[i].paper_codes[0x04] = 0x44;
+ break;
+ case P_ES3_30:
+ /* N/A, printer does not report types */
+ case P_CP790:
+ /* N/A, printer uses different technique */
+ case P_CP10:
+ /* N/A, printer supports one type only */
+ break;
+ }
+ }
+}
+
+#define INCORRECT_PAPER -999
+
+/* Program states */
+enum {
+ S_IDLE = 0,
+ S_PRINTER_READY,
+ S_PRINTER_INIT_SENT,
+ S_PRINTER_READY_Y,
+ S_PRINTER_Y_SENT,
+ S_PRINTER_READY_M,
+ S_PRINTER_M_SENT,
+ S_PRINTER_READY_C,
+ S_PRINTER_C_SENT,
+ S_PRINTER_DONE,
+ S_FINISHED,
+};
+
+static int fancy_memcmp(const uint8_t *buf_a, const int16_t *buf_b, uint len)
+{
+ uint i;
+
+ for (i = 0 ; i < len ; i++) {
+ if (buf_b[i] == -1)
+ continue;
+ else if (buf_a[i] > buf_b[i])
+ return 1;
+ else if (buf_a[i] < buf_b[i])
+ return -1;
+ }
+ return 0;
+}
+
+static int parse_printjob(uint8_t *buffer, uint8_t *bw_mode, uint32_t *plane_len)
+{
+ int printer_type = -1;
+
+ if (buffer[0] != 0x40 &&
+ buffer[1] != 0x00) {
+ goto done;
+ }
+
+ if (buffer[12] == 0x40 &&
+ buffer[13] == 0x01) {
+ *plane_len = *(uint32_t*)(&buffer[16]);
+ *plane_len = le32_to_cpu(*plane_len);
+
+ if (buffer[2] == 0x00) {
+ if (*plane_len == 688480)
+ printer_type = P_CP10;
+ else
+ printer_type = P_CP_XXX;
+ } else {
+ printer_type = P_ES1;
+ *bw_mode = (buffer[2] == 0x20);
+ }
+ goto done;
+ }
+
+ *plane_len = *(uint32_t*)(&buffer[12]);
+ *plane_len = le32_to_cpu(*plane_len);
+
+ if (buffer[16] == 0x40 &&
+ buffer[17] == 0x01) {
+
+ if (buffer[4] == 0x02) {
+ printer_type = P_ES2_20;
+ *bw_mode = (buffer[7] == 0x01);
+ goto done;
+ }
+
+ if (es40_cp790_plane_lengths[buffer[2]] == *plane_len) {
+ printer_type = P_ES40_CP790;
+ *bw_mode = (buffer[3] == 0x01);
+ goto done;
+ } else {
+ printer_type = P_ES3_30;
+ *bw_mode = (buffer[3] == 0x01);
+ goto done;
+ }
+ }
+
+done:
+ return printer_type;
+}
+
+/* Private data stucture */
+struct canonselphy_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+
+ struct printer_data *printer;
+
+ uint8_t bw_mode;
+
+ int16_t paper_code;
+
+ uint32_t plane_len;
+
+ uint8_t *header;
+ uint8_t *plane_y;
+ uint8_t *plane_m;
+ uint8_t *plane_c;
+ uint8_t *footer;
+
+ uint8_t *buffer;
+};
+
+static void *canonselphy_init(void)
+{
+ struct canonselphy_ctx *ctx = malloc(sizeof(struct canonselphy_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct canonselphy_ctx));
+
+ /* Static initialization */
+ setup_paper_codes();
+
+ ctx->buffer = malloc(MAX_HEADER);
+
+ return ctx;
+}
+
+static void canonselphy_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct canonselphy_ctx *ctx = vctx;
+
+ UNUSED(jobid);
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ /* Special cases for some models */
+ if (ctx->printer->type == P_ES40_CP790) {
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
+ int i;
+ int printer_type;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+#define USB_PID_CANON_CP790 0x31E7
+#define USB_PID_CANON_ES40 0x31EE
+
+ if (desc.idProduct == USB_PID_CANON_CP790)
+ printer_type = P_CP790;
+ else if (desc.idProduct == USB_PID_CANON_ES40)
+ printer_type = P_ES40;
+
+ for (i = 0; selphy_printers[i].type != -1; i++) {
+ if (selphy_printers[i].type == printer_type) {
+ ctx->printer = &selphy_printers[i];
+ break;
+ }
+ }
+ }
+}
+
+static void canonselphy_teardown(void *vctx) {
+ struct canonselphy_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->header)
+ free(ctx->header);
+ if (ctx->plane_y)
+ free(ctx->plane_y);
+ if (ctx->plane_m)
+ free(ctx->plane_m);
+ if (ctx->plane_c)
+ free(ctx->plane_c);
+ if (ctx->footer)
+ free(ctx->footer);
+
+ if (ctx->buffer)
+ free(ctx->buffer);
+
+ free(ctx);
+}
+
+static int canonselphy_early_parse(void *vctx, int data_fd)
+{
+ struct canonselphy_ctx *ctx = vctx;
+ int printer_type, i;
+
+ if (!ctx)
+ return -1;
+
+ /* Figure out printer this file is intended for */
+ i = read(data_fd, ctx->buffer, MAX_HEADER);
+ if (i != MAX_HEADER) {
+ if (i == 0)
+ return -1;
+ ERROR("Read failed (%d/%d/%d)\n",
+ i, 0, MAX_HEADER);
+ perror("ERROR: Read failed");
+ return i;
+ }
+
+ printer_type = parse_printjob(ctx->buffer, &ctx->bw_mode, &ctx->plane_len);
+ for (i = 0; selphy_printers[i].type != -1; i++) {
+ if (selphy_printers[i].type == printer_type) {
+ ctx->printer = &selphy_printers[i];
+ break;
+ }
+ }
+ if (!ctx->printer) {
+ ERROR("Unrecognized printjob file format!\n");
+ return -1;
+ }
+
+ ctx->plane_len += 12; /* Add in plane header length! */
+ if (ctx->printer->pgcode_offset != -1)
+ ctx->paper_code = ctx->printer->paper_codes[ctx->buffer[ctx->printer->pgcode_offset]];
+ else
+ ctx->paper_code = -1;
+
+ INFO("%sFile intended for a '%s' printer\n", ctx->bw_mode? "B/W " : "", ctx->printer->model);
+
+ return printer_type;
+}
+
+static int canonselphy_read_parse(void *vctx, int data_fd)
+{
+ struct canonselphy_ctx *ctx = vctx;
+ int i, remain;
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->header) {
+ free(ctx->header);
+ ctx->header = NULL;
+ }
+ if (ctx->plane_y) {
+ free(ctx->plane_y);
+ ctx->plane_y = NULL;
+ }
+ if (ctx->plane_m) {
+ free(ctx->plane_m);
+ ctx->plane_m = NULL;
+ }
+ if (ctx->plane_c) {
+ free(ctx->plane_c);
+ ctx->plane_c = NULL;
+ }
+ if (ctx->footer) {
+ free(ctx->footer);
+ ctx->footer = NULL;
+ }
+
+ /* Set up buffers */
+ ctx->plane_y = malloc(ctx->plane_len);
+ ctx->plane_m = malloc(ctx->plane_len);
+ ctx->plane_c = malloc(ctx->plane_len);
+ ctx->header = malloc(ctx->printer->init_length);
+ ctx->footer = malloc(ctx->printer->foot_length);
+ if (!ctx->plane_y || !ctx->plane_m || !ctx->plane_c || !ctx->header ||
+ (ctx->printer->foot_length && !ctx->footer)) {
+ ERROR("Memory allocation failure!\n");
+ return 1;
+ }
+
+ /* Move over chunks already read in */
+ memcpy(ctx->header, ctx->buffer, ctx->printer->init_length);
+ memcpy(ctx->plane_y, ctx->buffer+ctx->printer->init_length,
+ MAX_HEADER-ctx->printer->init_length);
+
+ /* Read in YELLOW plane */
+ remain = ctx->plane_len - (MAX_HEADER-ctx->printer->init_length);
+ while (remain > 0) {
+ i = read(data_fd, ctx->plane_y + (ctx->plane_len - remain), remain);
+ if (i < 0)
+ return i;
+ remain -= i;
+ }
+
+ /* Read in MAGENTA plane */
+ remain = ctx->plane_len;
+ while (remain > 0) {
+ i = read(data_fd, ctx->plane_m + (ctx->plane_len - remain), remain);
+ if (i < 0)
+ return i;
+ remain -= i;
+ }
+
+ /* Read in CYAN plane */
+ remain = ctx->plane_len;
+ while (remain > 0) {
+ i = read(data_fd, ctx->plane_c + (ctx->plane_len - remain), remain);
+ if (i < 0)
+ return i;
+ remain -= i;
+ }
+
+ /* Read in footer */
+ if (ctx->printer->foot_length) {
+ remain = ctx->printer->foot_length;
+ while (remain > 0) {
+ i = read(data_fd, ctx->footer + (ctx->printer->foot_length - remain), remain);
+ if (i < 0)
+ return i;
+ remain -= i;
+ }
+ }
+
+ return 0;
+}
+
+static int canonselphy_main_loop(void *vctx, int copies) {
+ struct canonselphy_ctx *ctx = vctx;
+
+ uint8_t rdbuf[READBACK_LEN], rdbuf2[READBACK_LEN];
+ int last_state = -1, state = S_IDLE;
+ int ret, num;
+
+ /* Read in the printer status to clear last state */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+
+ if (ret < 0)
+ return ret;
+
+top:
+
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ rdbuf, READBACK_LEN, &num);
+ if (ret < 0)
+ return ret;
+
+ if (num != READBACK_LEN) {
+ ERROR("Short read! (%d/%d)\n", num, READBACK_LEN);
+ return 4;
+ }
+
+ /* Error detection */
+ if (ctx->printer->error_detect(rdbuf)) {
+ if (ctx->printer->clear_error_len)
+ /* Try to clear error state */
+ if ((ret = send_data(ctx->dev, ctx->endp_down, ctx->printer->clear_error, ctx->printer->clear_error_len)))
+ return ret;
+ return 4;
+ }
+
+ if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
+ memcpy(rdbuf2, rdbuf, READBACK_LEN);
+ } else if (state == last_state) {
+ sleep(1);
+ }
+ last_state = state;
+
+ fflush(stderr);
+
+ switch(state) {
+ case S_IDLE:
+ INFO("Waiting for printer idle\n");
+ if (fancy_memcmp(rdbuf, ctx->printer->init_readback, READBACK_LEN))
+ break;
+
+ /* Make sure paper/ribbon is correct */
+ if (ctx->paper_code != -1) {
+ if (ctx->printer->type == P_CP_XXX) {
+ uint8_t pc = rdbuf[ctx->printer->paper_code_offset];
+ if (((pc >> 4) & 0xf) != (ctx->paper_code & 0x0f)) {
+
+ if (pc & 0xf0) {
+ ERROR("Incorrect paper tray loaded, aborting job!\n");
+ return 3;
+ } else {
+ ERROR("No paper tray loaded, aborting!\n");
+ return 4;
+ }
+ }
+ if ((pc & 0xf) != (ctx->paper_code & 0xf)) {
+ if (pc & 0x0f) {
+ ERROR("Incorrect ribbon loaded, aborting job!\n");
+ return 3;
+ } else {
+
+ ERROR("No ribbon loaded, aborting job!\n");
+ return 4;
+ }
+ }
+ } else {
+ if (rdbuf[ctx->printer->paper_code_offset] !=
+ ctx->paper_code) {
+ ERROR("Incorrect media/ribbon loaded (%02x vs %02x), aborting job!\n",
+ ctx->paper_code,
+ rdbuf[ctx->printer->paper_code_offset]);
+ return 3; /* Hold this job, don't stop queue */
+ }
+ }
+ } else if (ctx->printer->type == P_CP790) {
+ uint8_t ribbon = rdbuf[4] >> 4;
+ uint8_t paper = rdbuf[5];
+
+ if (ribbon == 0xf) {
+ ERROR("No ribbon loaded, aborting!\n");
+ return 4;
+ } else if (ribbon != ctx->paper_code) {
+ ERROR("Incorrect ribbon loaded, aborting job!\n");
+ return 3;
+ }
+ if (paper == 0xf) {
+ ERROR("No paper tray loaded, aborting!\n");
+ return 4;
+ } else if (paper != ctx->paper_code) {
+ ERROR("Incorrect paper loaded, aborting job!\n");
+ return 3;
+ }
+ }
+
+ state = S_PRINTER_READY;
+ break;
+ case S_PRINTER_READY:
+ INFO("Printing started; Sending init sequence\n");
+ /* Send printer init */
+ if ((ret = send_data(ctx->dev, ctx->endp_down, ctx->header, ctx->printer->init_length)))
+ return ret;
+
+ state = S_PRINTER_INIT_SENT;
+ break;
+ case S_PRINTER_INIT_SENT:
+ if (!fancy_memcmp(rdbuf, ctx->printer->ready_y_readback, READBACK_LEN)) {
+ state = S_PRINTER_READY_Y;
+ }
+ break;
+ case S_PRINTER_READY_Y:
+ if (ctx->bw_mode)
+ INFO("Sending BLACK plane\n");
+ else
+ INFO("Sending YELLOW plane\n");
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down, ctx->plane_y, ctx->plane_len)))
+ return ret;
+
+ state = S_PRINTER_Y_SENT;
+ break;
+ case S_PRINTER_Y_SENT:
+ if (!fancy_memcmp(rdbuf, ctx->printer->ready_m_readback, READBACK_LEN)) {
+ if (ctx->bw_mode)
+ state = S_PRINTER_DONE;
+ else
+ state = S_PRINTER_READY_M;
+ }
+ break;
+ case S_PRINTER_READY_M:
+ INFO("Sending MAGENTA plane\n");
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down, ctx->plane_m, ctx->plane_len)))
+ return ret;
+
+ state = S_PRINTER_M_SENT;
+ break;
+ case S_PRINTER_M_SENT:
+ if (!fancy_memcmp(rdbuf, ctx->printer->ready_c_readback, READBACK_LEN)) {
+ state = S_PRINTER_READY_C;
+ }
+ break;
+ case S_PRINTER_READY_C:
+ INFO("Sending CYAN plane\n");
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down, ctx->plane_c, ctx->plane_len)))
+ return ret;
+
+ state = S_PRINTER_C_SENT;
+ break;
+ case S_PRINTER_C_SENT:
+ if (!fancy_memcmp(rdbuf, ctx->printer->done_c_readback, READBACK_LEN)) {
+ state = S_PRINTER_DONE;
+ }
+ break;
+ case S_PRINTER_DONE:
+ if (ctx->printer->foot_length) {
+ INFO("Cleaning up\n");
+
+ if ((ret = send_data(ctx->dev, ctx->endp_down, ctx->footer, ctx->printer->foot_length)))
+ return ret;
+ }
+ state = S_FINISHED;
+ /* Intentional Fallthrough */
+ case S_FINISHED:
+ INFO("All data sent to printer!\n");
+ break;
+ }
+ if (state != S_FINISHED)
+ goto top;
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ state = S_IDLE;
+ goto top;
+ }
+
+ return 0;
+}
+
+/* Exported */
+#define USB_VID_CANON 0x04a9
+#define USB_PID_CANON_CP10 0x304A
+#define USB_PID_CANON_CP100 0x3063
+#define USB_PID_CANON_CP200 0x307C
+#define USB_PID_CANON_CP220 0x30BD
+#define USB_PID_CANON_CP300 0x307D
+#define USB_PID_CANON_CP330 0x30BE
+#define USB_PID_CANON_CP400 0x30F6
+#define USB_PID_CANON_CP500 0x30F5
+#define USB_PID_CANON_CP510 0x3128
+#define USB_PID_CANON_CP520 520 // XXX 316f? 3172? (related to cp740/cp750)
+#define USB_PID_CANON_CP530 0x31b1
+#define USB_PID_CANON_CP600 0x310B
+#define USB_PID_CANON_CP710 0x3127
+#define USB_PID_CANON_CP720 0x3143
+#define USB_PID_CANON_CP730 0x3142
+#define USB_PID_CANON_CP740 0x3171
+#define USB_PID_CANON_CP750 0x3170
+#define USB_PID_CANON_CP760 0x31AB
+#define USB_PID_CANON_CP770 0x31AA
+#define USB_PID_CANON_CP780 0x31DD
+#define USB_PID_CANON_CP790 0x31E7
+#define USB_PID_CANON_CP800 0x3214
+#define USB_PID_CANON_CP810 0x3256
+#define USB_PID_CANON_CP820 820 // XXX
+#define USB_PID_CANON_CP900 0x3255
+#define USB_PID_CANON_CP910 910 // XXX
+#define USB_PID_CANON_ES1 0x3141
+#define USB_PID_CANON_ES2 0x3185
+#define USB_PID_CANON_ES20 0x3186
+#define USB_PID_CANON_ES3 0x31AF
+#define USB_PID_CANON_ES30 0x31B0
+#define USB_PID_CANON_ES40 0x31EE
+
+struct dyesub_backend canonselphy_backend = {
+ .name = "Canon SELPHY CP/ES",
+ .version = "0.80",
+ .uri_prefix = "canonselphy",
+ .init = canonselphy_init,
+ .attach = canonselphy_attach,
+ .teardown = canonselphy_teardown,
+ .early_parse = canonselphy_early_parse,
+ .read_parse = canonselphy_read_parse,
+ .main_loop = canonselphy_main_loop,
+ .devices = {
+ { USB_VID_CANON, USB_PID_CANON_CP10, P_CP10, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP100, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP200, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP220, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP300, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP330, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP400, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP500, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP510, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP520, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP530, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP600, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP710, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP720, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP730, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP740, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP750, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP760, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP770, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP780, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP790, P_ES40_CP790, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP800, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP810, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP820, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP900, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_CP910, P_CP_XXX, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_ES1, P_ES1, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_ES2, P_ES2_20, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_ES20, P_ES2_20, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_ES3, P_ES3_30, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_ES30, P_ES3_30, "Canon"},
+ { USB_VID_CANON, USB_PID_CANON_ES40, P_ES40_CP790, "Canon"},
+ { 0, 0, 0, ""}
+ }
+};
+/*
+
+ ***************************************************************************
+
+ Stream formats and readback codes for supported printers
+
+ ***************************************************************************
+ Selphy ES1:
+
+ Init func: 40 00 [typeA] [pgcode] 00 00 00 00 00 00 00 00
+ Plane func: 40 01 [typeB] [plane] [length, 32-bit LE] 00 00 00 00
+
+ TypeA codes are 0x10 for Color papers, 0x20 for B&W papers.
+ TypeB codes are 0x01 for Color papers, 0x02 for B&W papers.
+
+ Plane codes are 0x01, 0x03, 0x07 for Y, M, and C, respectively.
+ B&W Jobs have a single plane code of 0x01.
+
+ 'P' papers pgcode of 0x11 and a plane length of 2227456 bytes
+ 'L' pgcode of 0x12 and a plane length of 1601600 bytes.
+ 'C' pgcode of 0x13 and a plane length of 698880 bytes.
+
+ Readback values seen:
+
+ 02 00 00 00 02 01 [pg] 01 00 00 00 00 [idle, waiting for init seq]
+ 04 00 00 00 02 01 [pg] 01 00 00 00 00 [init received, not ready..]
+ 04 00 01 00 02 01 [pg] 01 00 00 00 00 [waiting for Y data]
+ 04 00 03 00 02 01 [pg] 01 00 00 00 00 [waiting for M data]
+ 04 00 07 00 02 01 [pg] 01 00 00 00 00 [waiting for C data]
+ 04 00 00 00 02 01 [pg] 01 00 00 00 00 [all data sent; not ready..]
+ 05 00 00 00 02 01 [pg] 01 00 00 00 00 [?? transitions to this]
+ 06 00 00 00 02 01 [pg] 01 00 00 00 00 [?? transitions to this]
+ 02 00 00 00 02 01 [pg] 01 00 00 00 00 [..transitions back to idle]
+
+ 02 01 00 00 01 ff ff ff 00 80 00 00 [error, no media]
+ 02 00 00 00 01 ff ff ff 00 00 00 00 [error, cover open]
+ 0f 00 00 00 02 01 01 01 00 00 00 00 [error, out of media]
+
+ Known paper types for all ES printers: P, Pbw, L, C, Cl
+ Additional types for ES3/30/40: Pg, Ps
+
+ [pg] is: 0x01 for P-papers
+ 0x02 for L-papers
+ 0x03 for C-papers
+
+ ***************************************************************************
+ Selphy ES2/20:
+
+ Init func: 40 00 [pgcode] 00 02 00 00 [type] 00 00 00 [pg2] [length, 32-bit LE]
+ Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
+
+ Type codes are 0x00 for Color papers, 0x01 for B&W papers.
+
+ Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
+ B&W Jobs have a single plane code of 0x01.
+
+ 'P' papers pgcode of 0x01 and a plane length of 2227456 bytes
+ 'L' pgcode of 0x02 and a plane length of 1601600 bytes.
+ 'C' pgcode of 0x03 and a plane length of 698880 bytes.
+
+ pg2 is 0x00 for all media types except for 'C', which is 0x01.
+
+ Readback values seen on an ES2:
+
+ 02 00 00 00 [pg] 00 [pg2] [xx] 00 00 00 00 [idle, waiting for init seq]
+ 03 00 01 00 [pg] 00 [pg2] [xx] 00 00 00 00 [init complete, ready for Y]
+ 04 00 01 00 [pg] 00 [pg2] [xx] 00 00 00 00 [? paper loaded]
+ 05 00 01 00 [pg] 00 [pg2] [xx] 00 00 00 00 [? transitions to this]
+ 06 00 03 00 [pg] 00 [pg2] [xx] 00 00 00 00 [ready for M]
+ 08 00 03 00 [pg] 00 [pg2] [xx] 00 00 00 00 [? transitions to this]
+ 09 00 07 00 [pg] 00 [pg2] [xx] 00 00 00 00 [ready for C]
+ 09 00 00 00 [pg] 00 [pg2] 00 00 00 00 00 [? transitions to this]
+ 0b 00 00 00 [pg] 00 [pg2] 00 00 00 00 00 [? transisions to this]
+ 0c 00 00 00 [pg] 00 [pg2] 00 00 00 00 00 [? transitions to this]
+ 0f 00 00 00 [pg] 00 [pg2] 00 00 00 00 00 [? transitions to this]
+ 13 00 00 00 [pg] 00 [pg2] 00 00 00 00 00 [? transitions to this]
+
+ 14 00 00 00 [pg] 00 [pg2] 00 00 00 00 00 [out of paper/ink]
+ 14 00 01 00 [pg] 00 [pg2] 00 01 00 00 00 [out of paper/ink]
+
+ 16 01 00 00 [pg] 00 [pg2] 00 00 00 00 00 [error, cover open]
+ 02 00 00 00 05 05 02 00 00 00 00 00 [error, no media]
+
+ [xx] can be 0x00 or 0xff, depending on if a previous print job has
+ completed or not.
+
+ [pg] is: 0x01 for P-papers
+ 0x02 for L-papers
+ 0x03 for C-papers
+
+ [pg2] is: 0x00 for P & L papers
+ 0x01 for Cl-paper
+
+ *** note: may refer to Label (0x01) vs non-Label (0x00) media.
+
+ ***************************************************************************
+ Selphy ES3/30:
+
+ Init func: 40 00 [pgcode] [type] 00 00 00 00 00 00 00 00 [length, 32-bit LE]
+ Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
+
+ End func: 40 20 00 00 00 00 00 00 00 00 00 00
+
+ Type codes are 0x00 for Color papers, 0x01 for B&W papers.
+
+ Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
+ B&W Jobs have a single plane code of 0x01.
+
+ 'P' papers pgcode of 0x01 and a plane length of 2227456 bytes.
+ 'L' pgcode of 0x02 and a plane length of 1601600 bytes.
+ 'C' pgcode of 0x03 and a plane length of 698880 bytes.
+
+ Readback values seen on an ES3 & ES30:
+
+ 00 ff 00 00 ff ff ff ff 00 00 00 00 [idle, waiting for init seq]
+ 01 ff 01 00 ff ff ff ff 00 00 00 00 [init complete, ready for Y]
+ 03 ff 01 00 ff ff ff ff 00 00 00 00 [?]
+ 03 ff 02 00 ff ff ff ff 00 00 00 00 [ready for M]
+ 05 ff 02 00 ff ff ff ff 00 00 00 00 [?]
+ 05 ff 03 00 ff ff ff ff 00 00 00 00 [ready for C]
+ 07 ff 03 00 ff ff ff ff 00 00 00 00 [?]
+ 0b ff 03 00 ff ff ff ff 00 00 00 00 [?]
+ 13 ff 03 00 ff ff ff ff 00 00 00 00 [?]
+ 00 ff 10 00 ff ff ff ff 00 00 00 00 [ready for footer]
+
+ 01 ff 10 00 ff ff ff ff 01 00 0f 00 [communication error]
+ 00 ff 01 00 ff ff ff ff 01 00 01 00 [error, no media/ink]
+ 00 ff 01 00 ff ff ff ff 05 00 01 00 [error, incorrect media]
+ 00 ff 01 00 ff ff ff ff 03 00 02 00 [attempt to print with no media]
+ 00 ff 01 00 ff ff ff ff 08 00 04 00 [attempt to print with cover open]
+
+ There appears to be no paper code in the readback; codes were identical for
+ the standard 'P-Color' and 'Cl' cartridges:
+
+ ***************************************************************************
+ Selphy ES40:
+
+ Init func: 40 00 [pgcode] [type] 00 00 00 00 00 00 00 00 [length, 32-bit LE]
+ Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
+
+ End func: 40 20 00 00 00 00 00 00 00 00 00 00
+
+ Type codes are 0x00 for Color papers, 0x01 for B&W papers.
+
+ Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
+ B&W Jobs have a single plane code of 0x01.
+
+ 'P' papers pgcode of 0x00 and a plane length of 2227456 bytes.
+ 'L' pgcode of 0x01 and a plane length of 1601600 bytes.
+ 'C' pgcode of 0x02 and a plane length of 698880 bytes.
+
+ Readback values seen on an ES40:
+
+ 00 00 ff 00 00 00 00 00 00 00 00 [pg]
+ 00 00 00 00 00 00 00 00 00 00 00 [pg] [idle, ready for header]
+ 00 01 01 00 00 00 00 00 00 00 00 [pg] [ready for Y data]
+ 00 03 01 00 00 00 00 00 00 00 00 [pg] [transitions to this]
+ 00 03 02 00 00 00 00 00 00 00 00 [pg] [ready for M data]
+ 00 05 02 00 00 00 00 00 00 00 00 [pg] [transitions to this]
+ 00 05 03 00 00 00 00 00 00 00 00 [pg] [ready for C data]
+ 00 07 03 00 00 00 00 00 00 00 00 [pg] [transitions to this]
+ 00 0b ff 00 00 00 00 00 00 00 00 [pg] [transitions to this]
+ 00 0e ff 00 00 00 00 00 00 00 00 [pg] [transitions to this]
+ 00 00 10 00 00 00 00 00 00 00 00 [pg] [ready for footer]
+
+ 00 ** ** [xx] 00 00 00 00 00 00 00 [pg] [error]
+
+ [xx]:
+ 01: Generic communication error
+ 32: Cover open / media empty
+
+ [pg] is as follows:
+
+ 'P' paper 0x11
+ 'L' paper 0x22
+ 'C' paper 0x33
+ 'W' paper 0x44
+
+ ***************************************************************************
+ Selphy CP790:
+
+ Init func: 40 00 [pgcode] 00 00 00 00 00 00 00 00 00 [length, 32-bit LE]
+ Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
+
+ End func: 40 20 00 00 00 00 00 00 00 00 00 00
+
+ Reset func: 40 10 00 00 00 00 00 00 00 00 00 00
+
+ Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
+
+ 'P' papers pgcode of 0x00 and a plane length of 2227456 bytes.
+ 'L' pgcode of 0x01 and a plane length of 1601600 bytes.
+ 'C' pgcode of 0x02 and a plane length of 698880 bytes.
+ 'W' pgcode of 0x03 and a plane length of 2976512 bytes.
+
+ Readback values seen on an CP790:
+
+ 00 00 ff 00 [pg1] [pg2] 00 00 00 00 00 02
+ 00 00 00 00 [pg1] [pg2] 00 00 00 00 00 02 [idle, ready for header]
+ 00 00 01 00 [pg1] [pg2] 00 00 00 00 00 02
+ 00 01 01 00 [pg1] [pg2] 00 00 00 00 00 02 [ready for Y data]
+ 00 03 01 00 [pg1] [pg2] 00 00 00 00 00 02 [transitions to this]
+ 00 03 02 00 [pg1] [pg2] 00 00 00 00 00 02 [ready for M data]
+ 00 05 02 00 [pg1] [pg2] 00 00 00 00 00 02 [transitions to this]
+ 00 05 03 00 [pg1] [pg2] 00 00 00 00 00 02 [ready for C data]
+ 00 0b ff 00 [pg1] [pg2] 00 00 00 00 00 02 [transitions to this]
+ 00 0e ff 00 [pg1] [pg2] 00 00 00 00 00 02 [transitions to this]
+ 00 00 10 00 [pg1] [pg2] 00 00 00 00 00 02 [ready for footer]
+
+ [pg1] is: [pg2] is:
+
+ 0x00 'P' ribbon 0x00 'P' paper
+ 0x10 'L' ribbon 0x01 'L' paper
+ 0x20 'C' ribbon 0x02 'C' paper
+ 0x30 'W' ribbon 0x03 'W' paper
+ 0xff NO RIBBON 0xff NO PAPER TRAY
+
+ Other readbacks seen:
+
+ 00 00 01 11 [pg1] [pg2] 00 00 00 00 00 02 [emptytray, ink match job ]
+ 00 00 01 12 [pg1] [pg2] 00 00 00 00 00 02 [ notray, ink match job ]
+ 00 00 01 13 [pg1] [pg2] 00 00 00 00 00 02 [ empty tray + mismatch ink ]
+ 00 00 01 21 [pg1] [pg2] 00 00 00 00 00 02 [ depleted ribbon, match ink ]
+ 00 00 01 22 [pg1] [pg2] 00 00 00 00 00 02 [ no paper tray ]
+ 00 00 01 23 [pg1] [pg2] 00 00 00 00 00 02 [ empty tray, ink mismatch ]
+
+ Note : These error conditions are confusing.
+
+ ***************************************************************************
+ Selphy CP-10:
+
+ Init func: 40 00 00 00 00 00 00 00 00 00 00 00
+ Plane func: 40 01 00 [plane] [length, 32-bit LE] 00 00 00 00
+
+ plane codes are 0x00, 0x01, 0x02 for Y, M, and C, respectively.
+
+ length is always '00 60 81 0a' which is 688480 bytes.
+
+ Error clear: 40 10 00 00 00 00 00 00 00 00 00 00
+
+ Known readback values:
+
+ 01 00 00 00 00 00 00 00 00 00 00 00 [idle, waiting for init]
+ 02 00 00 00 00 00 00 00 00 00 00 00 [init sent, paper feeding]
+ 02 00 00 00 00 00 00 00 00 00 00 00 [init sent, paper feeding]
+ 02 00 00 00 00 00 00 00 00 00 00 00 [waiting for Y data]
+ 04 00 00 00 00 00 00 00 00 00 00 00 [waiting for M data]
+ 08 00 00 00 00 00 00 00 00 00 00 00 [waiting for C data]
+ 10 00 00 00 00 00 00 00 00 00 00 00 [C done, waiting]
+ 20 00 00 00 00 00 00 00 00 00 00 00 [All done]
+
+ 02 00 80 00 00 00 00 00 00 00 00 00 [No ribbon]
+ 02 00 80 00 00 00 00 00 00 00 00 00 [Ribbon depleted]
+ 02 00 01 00 00 00 00 00 00 00 00 00 [No paper]
+
+ There are no media type codes; the printer only supports one type.
+
+ ***************************************************************************
+ Selphy CP-series (except for CP790 & CP-10):
+
+ This is known to apply to:
+ CP-100, CP-200, CP-300, CP-330, CP400, CP500, CP510, CP710,
+ CP720, CP730, CP740, CP750, CP760, CP770, CP780, CP800, CP900
+
+ Init func: 40 00 00 [pgcode] 00 00 00 00 00 00 00 00
+ Plane func: 40 01 00 [plane] [length, 32-bit LE] 00 00 00 00
+ End func: 00 00 00 00 # NOTE: CP900 only, and not necessary!
+
+ Error clear: 40 10 00 00 00 00 00 00 00 00 00 00
+
+ plane codes are 0x00, 0x01, 0x02 for Y, M, and C, respectively.
+
+ 'P' papers pgcode 0x01 plane length 2227456 bytes.
+ 'L' pgcode 0x02 plane length 1601600 bytes.
+ 'C' pgcode 0x03 plane length 698880 bytes.
+ 'W' pgcode 0x04 plane length 2976512 bytes.
+
+ Known readback values:
+
+ 01 00 00 00 [ss] 00 [pg] 00 00 00 00 [xx] [idle, waiting for init]
+ 02 00 [rr] 00 00 00 [pg] 00 00 00 00 [xx] [init sent, paper feeding]
+ 02 00 [rr] 00 10 00 [pg] 00 00 00 00 [xx] [init sent, paper feeding]
+ 02 00 [rr] 00 70 00 [pg] 00 00 00 00 [xx] [waiting for Y data]
+ 04 00 00 00 00 00 [pg] 00 00 00 00 [xx] [waiting for M data]
+ 08 00 00 00 00 00 [pg] 00 00 00 00 [xx] [waiting for C data]
+ 10 00 00 00 00 00 [pg] 00 00 00 00 [xx] [C done, waiting]
+ 20 00 00 00 00 00 [pg] 00 00 00 00 [xx] [All done]
+
+ [xx] is 0x01 on the CP780/CP800/CP900, 0x00 on all others.
+
+ [rr] is error code:
+ 0x00 no error
+ 0x01 paper out
+ 0x04 ribbon problem
+ 0x08 ribbon depleted
+
+ [ss] is either 0x00 or 0x70. Unsure as to its significance; perhaps it
+ means paper or ribbon is already set to go?
+
+ [pg] is as follows:
+
+ 'P' paper 0x11
+ 'L' paper 0x22
+ 'C' paper 0x33
+ 'W' paper 0x44
+
+ First four bits are paper, second four bits are the ribbon. They aren't
+ necessarily identical. So it's possible to have a code of, say,
+ 0x41 if the 'Wide' paper tray is loaded with a 'P' ribbon. A '0' is used
+ to signify nothing being loaded.
+
+
+*/
diff --git a/src/cups/shinko_s2145_print.c b/src/cups/shinko_s2145_print.c
new file mode 100644
index 0000000..68c3e31
--- /dev/null
+++ b/src/cups/shinko_s2145_print.c
@@ -0,0 +1,1782 @@
+/*
+ * Shinko/Sinfonia CHC-S2145 CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * Development of this backend was sponsored by:
+ *
+ * LiveLink Technology [ www.livelinktechnology.net ]
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+
+enum {
+ S_IDLE = 0,
+ S_PRINTER_READY_CMD,
+ S_PRINTER_SENT_DATA,
+ S_FINISHED,
+};
+
+/* Structure of printjob header. All fields are LITTLE ENDIAN */
+struct s2145_printjob_hdr {
+ uint32_t len1; /* Fixed at 0x10 */
+ uint32_t model; /* Fixed at '2145' (decimal) */
+ uint32_t unk2;
+ uint32_t unk3;
+
+ uint32_t len2; /* Fixed at 0x64 */
+ uint32_t unk5;
+ uint32_t media;
+ uint32_t unk6;
+
+ uint32_t method;
+ uint32_t mode;
+ uint32_t unk7;
+ uint32_t unk8;
+
+ uint32_t unk9;
+ uint32_t columns;
+ uint32_t rows;
+ uint32_t copies;
+
+ uint32_t unk10;
+ uint32_t unk11;
+ uint32_t unk12;
+ uint32_t unk13;
+
+ uint32_t unk14;
+ uint32_t unk15;
+ uint32_t dpi; /* Fixed at '300' (decimal) */
+ uint32_t unk16;
+
+ uint32_t unk17;
+ uint32_t unk18;
+ uint32_t unk19;
+ uint32_t unk20;
+
+ uint32_t unk21;
+} __attribute__((packed));
+
+/* Private data stucture */
+struct shinkos2145_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+ uint8_t jobid;
+ uint8_t fast_return;
+
+ struct s2145_printjob_hdr hdr;
+
+ uint8_t *databuf;
+ int datalen;
+};
+
+/* Structs for printer */
+struct s2145_cmd_hdr {
+ uint16_t cmd;
+ uint16_t len; /* Not including this header */
+} __attribute__((packed));
+
+#define S2145_CMD_STATUS 0x0001
+#define S2145_CMD_MEDIAINFO 0x0002
+#define S2145_CMD_MODELNAME 0x0003
+#define S2145_CMD_ERRORLOG 0x0004
+#define S2145_CMD_PRINTJOB 0x4001
+#define S2145_CMD_CANCELJOB 0x4002
+#define S2145_CMD_FLASHLED 0x4003
+#define S2145_CMD_RESET 0x4004
+#define S2145_CMD_READTONE 0x4005
+#define S2145_CMD_BUTTON 0x4006
+#define S2145_CMD_GETUNIQUE 0x8003
+#define S2145_CMD_FWINFO 0xC003
+#define S2145_CMD_UPDATE 0xC004
+#define S2145_CMD_SETUNIQUE 0xC007
+
+static char *cmd_names(uint16_t v) {
+ switch (le16_to_cpu(v)) {
+ case S2145_CMD_STATUS:
+ return "Get Status";
+ case S2145_CMD_MEDIAINFO:
+ return "Get Media Info";
+ case S2145_CMD_MODELNAME:
+ return "Get Model Name";
+ case S2145_CMD_ERRORLOG:
+ return "Get Error Log";
+ case S2145_CMD_PRINTJOB:
+ return "Print";
+ case S2145_CMD_CANCELJOB:
+ return "Cancel Print";
+ case S2145_CMD_FLASHLED:
+ return "Flash LEDs";
+ case S2145_CMD_RESET:
+ return "Reset";
+ case S2145_CMD_READTONE:
+ return "Read Tone Curve";
+ case S2145_CMD_BUTTON:
+ return "Button Enable";
+ case S2145_CMD_GETUNIQUE:
+ return "Get Unique String";
+ case S2145_CMD_FWINFO:
+ return "Get Firmware Info";
+ case S2145_CMD_UPDATE:
+ return "Update";
+ case S2145_CMD_SETUNIQUE:
+ return "Set Unique String";
+ default:
+ return "Unknown Command";
+ }
+};
+
+struct s2145_print_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t id;
+ uint16_t count;
+ uint16_t columns;
+ uint16_t rows;
+ uint8_t media;
+ uint8_t mode;
+ uint8_t method;
+} __attribute__((packed));
+
+#define PRINT_MEDIA_4x6 0x00
+#define PRINT_MEDIA_5x3_5 0x01
+#define PRINT_MEDIA_5x7 0x03
+#define PRINT_MEDIA_6x9 0x05
+#define PRINT_MEDIA_6x8 0x06
+#define PRINT_MEDIA_2x6 0x07
+
+static char *print_medias (uint8_t v) {
+ switch (v) {
+ case PRINT_MEDIA_4x6:
+ return "4x6";
+ case PRINT_MEDIA_5x3_5:
+ return "5x3.5";
+ case PRINT_MEDIA_5x7:
+ return "5x7";
+ case PRINT_MEDIA_6x9:
+ return "6x9";
+ case PRINT_MEDIA_6x8:
+ return "6x8";
+ case PRINT_MEDIA_2x6:
+ return "2x6";
+ default:
+ return "Unknown";
+ }
+}
+
+#define PRINT_MODE_DEFAULT 0x01
+#define PRINT_MODE_STD_GLOSSY 0x02
+#define PRINT_MODE_FINE_GLOSSY 0x03
+#define PRINT_MODE_STD_MATTE 0x04
+#define PRINT_MODE_FINE_MATTE 0x05
+#define PRINT_MODE_STD_EGLOSSY 0x06
+#define PRINT_MODE_FINE_EGLOSSY 0x07
+
+#if 0
+static char *print_modes(uint8_t v) {
+ switch (v) {
+ case PRINT_MODE_DEFAULT:
+ return "Default";
+ case PRINT_MODE_STD_GLOSSY:
+ return "Std Glossy";
+ case PRINT_MODE_FINE_GLOSSY:
+ return "Fine Glossy";
+ case PRINT_MODE_STD_MATTE:
+ return "Std Matte";
+ case PRINT_MODE_FINE_MATTE:
+ return "Fine Matte";
+ case PRINT_MODE_STD_EGLOSSY:
+ return "Std ExGlossy";
+ case PRINT_MODE_FINE_EGLOSSY:
+ return "Fine ExGlossy";
+ default:
+ return "Unknown";
+ }
+}
+#endif
+
+#define PRINT_METHOD_STD 0x00
+#define PRINT_METHOD_4x6_2UP 0x02
+#define PRINT_METHOD_2x6_2UP 0x04
+
+static char *print_methods (uint8_t v) {
+ switch (v) {
+ case PRINT_METHOD_STD:
+ return "Standard";
+ case PRINT_METHOD_4x6_2UP:
+ return "4x6 2up";
+ case PRINT_METHOD_2x6_2UP:
+ return "2x6 2up";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s2145_cancel_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t id;
+} __attribute__((packed));
+
+struct s2145_reset_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t target;
+} __attribute__((packed));
+
+#define RESET_PRINTER 0x03
+#define RESET_USER_CURVE 0x04
+
+struct s2145_readtone_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t curveid;
+} __attribute__((packed));
+
+struct s2145_button_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t enabled;
+} __attribute__((packed));
+
+#define BUTTON_ENABLED 0x01
+#define BUTTON_DISABLED 0x00
+
+struct s2145_fwinfo_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t target;
+} __attribute__((packed));
+
+#define FWINFO_TARGET_MAIN_BOOT 0x01
+#define FWINFO_TARGET_MAIN_APP 0x02
+#define FWINFO_TARGET_DSP_BOOT 0x03
+#define FWINFO_TARGET_DSP_APP 0x04
+#define FWINFO_TARGET_USB_BOOT 0x05
+#define FWINFO_TARGET_USB_APP 0x06
+#define FWINFO_TARGET_TABLES 0x07
+
+static char *fwinfo_targets (uint8_t v) {
+ switch (v) {
+ case FWINFO_TARGET_MAIN_BOOT:
+ return "Main Boot";
+ case FWINFO_TARGET_MAIN_APP:
+ return "Main App ";
+ case FWINFO_TARGET_DSP_BOOT:
+ return "DSP Boot ";
+ case FWINFO_TARGET_DSP_APP:
+ return "DSP App ";
+ case FWINFO_TARGET_USB_BOOT:
+ return "USB Boot ";
+ case FWINFO_TARGET_USB_APP:
+ return "USB App ";
+ case FWINFO_TARGET_TABLES:
+ return "Tables ";
+ default:
+ return "Unknown ";
+ }
+}
+
+struct s2145_update_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t target;
+ uint32_t reserved;
+ uint32_t size;
+} __attribute__((packed));
+
+#define UPDATE_TARGET_USER 0x03
+#define UPDATE_TARGET_CURRENT 0x04
+
+static char *update_targets (uint8_t v) {
+ switch (v) {
+ case UPDATE_TARGET_USER:
+ return "User";
+ case UPDATE_TARGET_CURRENT:
+ return "Current";
+ default:
+ return "Unknown";
+ }
+}
+
+#define UPDATE_SIZE 0x600
+/* Update is three channels, Y, M, C;
+ each is 256 entries of 11-bit data padded to 16-bits.
+ Printer expects LE data. We use BE data on disk.
+*/
+
+struct s2145_setunique_cmd {
+ struct s2145_cmd_hdr hdr;
+ uint8_t len;
+ uint8_t data[23]; /* Not necessarily all used. */
+} __attribute__((packed));
+
+struct s2145_status_hdr {
+ uint8_t result;
+ uint8_t error;
+ uint8_t printer_major;
+ uint8_t printer_minor;
+ uint8_t reserved[3];
+ uint8_t status;
+ uint16_t payload_len;
+} __attribute__((packed));
+
+#define RESULT_SUCCESS 0x01
+#define RESULT_FAIL 0x02
+
+#define ERROR_NONE 0x00
+#define ERROR_INVALID_PARAM 0x01
+#define ERROR_MAIN_APP_INACTIVE 0x02
+#define ERROR_COMMS_TIMEOUT 0x03
+#define ERROR_MAINT_NEEDED 0x04
+#define ERROR_BAD_COMMAND 0x05
+#define ERROR_PRINTER 0x11
+#define ERROR_BUFFER_FULL 0x21
+
+
+/*
+
+ I have a list of 72 different errors that are displayed on the printer,
+ but it appears the list is incomplete, and there's no mapping between
+ category and major code numbers. Also, not all of the individual errors
+ have minor codes listed (particularly the "consumables")
+
+ These are the observed error codes to date (via stored error log dumps):
+
+ 01/16 [ controller/parameter? ]
+ 05/15 [ jam/reloading? ]
+ 05/4e [ jam/unknown ]
+ 05/4f [ jam/unknown? ]
+ 05/61 [ jam/cantload? ]
+ 05/62 [ jam/cantload? ]
+ 05/64 [ jam/unknown? ]
+ 06/01 [ "cover open" ]
+ 06/0a [ consumables ? ]
+ 06/0b [ consumables ? ]
+
+ Errors logged on printer A:
+
+ 0x01/0x16 @ 77845
+ 0x06/0x0b @ 77822, 70053
+ 0x05/0x64 @ 76034
+ 0x05/0x61 @ 76034, 75420
+ 0x05/0x62 @ 76034
+ 0x05/0x4e @ 69824, 69820, 69781
+
+ Errors logged on printer B:
+
+ 0x06/0x0b @ 33270
+ 0x05/0x4e @ 32952, 27672
+ 0x05/0x4f @ 32935, 31834
+ 0x05/0x61 @ 30856, 27982
+ 0x01/0x16 @ 29132
+ 0x05/0x64 @ 27982
+ 0x05/0x62 @ 27982
+
+ Errors logged on printer C:
+
+ 0x06/0x0a @ 78014, 77948, 77943, 77938 x2, 77937, 77936, 77933, 77919
+ 0x05/0x15 @ 77938
+
+
+ */
+static char *error_codes(uint8_t major, uint8_t minor)
+{
+ switch(major) {
+ case 0x06:
+ switch (minor) {
+ case 0x01:
+ return "Front Cover Open";
+ default:
+ return "Unknown";
+ }
+#if 0
+ case 9: /* "Controller Error" */
+ switch(minor) {
+ case 0x01:
+ return "Controller: 01 EEPROM";
+ case 0x02:
+ return "Controller: 02 EEPROM";
+ case 0x04:
+ return "Controller: 04 DSP";
+ case 0x05:
+ return "Controller: 05 DSP";
+ case 0x06:
+ return "Controller: 06 Main FW";
+ case 0x07:
+ return "Controller: 07 Main FW";
+ case 0x08:
+ return "Controller: 08 DSP FW";
+ case 0x09:
+ return "Controller: 09 DSP FW";
+ case 0x0A:
+ return "Controller: 0A ASIC";
+ case 0x0B:
+ return "Controller: 0B FPGA";
+ case 0x0D:
+ return "Controller: 0D Tone Curve";
+ case 0x16:
+ return "Controller: 16 Parameter Table";
+ case 0x17:
+ return "Controller: 17 Parameter Table";
+ case 0x18:
+ return "Controller: 18 Parameter Table";
+ case 0x29:
+ return "Controller: 29 DSP Comms";
+ case 0x2A:
+ return "Controller: 2A DSP Comms";
+ default:
+ return "Controller: Unknown";
+ }
+ case 8: /* XXXX "Mechanical Error" */
+ switch (minor) {
+ case 0x01:
+ return "Mechanical: 01 Thermal Head";
+ case 0x02:
+ return "Mechanical: 02 Thermal Head";
+ case 0x03:
+ return "Mechanical: 03 Thermal Head";
+ case 0x04:
+ return "Mechanical: 04 Pinch Roller";
+ case 0x05:
+ return "Mechanical: 05 Pinch Roller";
+ case 0x06:
+ return "Mechanical: 06 Pinch Roller";
+ case 0x07:
+ return "Mechanical: 07 Pinch Roller";
+ case 0x08:
+ return "Mechanical: 08 Pinch Roller";
+ case 0x09:
+ return "Mechanical: 09 Cutter";
+ case 0x0A:
+ return "Mechanical: 0A Cutter";
+ default:
+ return "Mechanical: Unknown";
+ }
+ case 2: /* XXXX "Sensor Error" */
+ switch (minor) {
+ case 0x01:
+ return "Sensor: 01 Thermal Head";
+ case 0x02:
+ return "Sensor: 02 Pinch Roller";
+ case 0x03:
+ return "Sensor: 03 Cutter L";
+ case 0x04:
+ return "Sensor: 04 Cutter R";
+ case 0x05:
+ return "Sensor: 05 Cutter M";
+ default:
+ return "Sensor: Unknown";
+ }
+ case 3: /* XXXX "Temperature Sensor Error" */
+ switch (minor) {
+ case 0x01:
+ return "Temp Sensor: 01 Thermal Head High";
+ case 0x02:
+ return "Temp Sensor: 02 Thermal Head Low";
+ case 0x03:
+ return "Temp Sensor: 03 Environment High";
+ case 0x04:
+ return "Temp Sensor: 04 Environment Low";
+ case 0x05:
+ return "Temp Sensor: 05 Warmup Timed Out";
+ default:
+ return "Temp Sensor: Unknown";
+ }
+
+ case 4: /* XXXX "Front Cover Open" */
+ switch (minor) {
+// case 0x01:
+// return "Front Cover: 01 Cover Open";
+ case 0x02:
+ return "Front Cover: 02 Cover Open Error";
+ default:
+ return "Front Cover: Unknown";
+ }
+ case 5: /* XXX "Paper Jam" */
+ switch (minor) {
+ case 0x01:
+ return "Paper Jam: 01 Loading";
+ case 0x02:
+ return "Paper Jam: 02 Loading";
+ case 0x03:
+ return "Paper Jam: 03 Loading";
+ case 0x04:
+ return "Paper Jam: 04 Loading";
+ case 0x05:
+ return "Paper Jam: 05 Loading";
+ case 0x11:
+ return "Paper Jam: 11 Reloading";
+ case 0x12:
+ return "Paper Jam: 12 Reloading";
+ case 0x13:
+ return "Paper Jam: 13 Reloading";
+ case 0x14:
+ return "Paper Jam: 14 Reloading";
+ case 0x15:
+ return "Paper Jam: 15 Reloading";
+ case 0x16:
+ return "Paper Jam: 16 Reloading";
+ case 0x21:
+ return "Paper Jam: 21 Takeup";
+ case 0x22:
+ return "Paper Jam: 22 Takeup";
+ case 0x41:
+ return "Paper Jam: 41 Printing";
+ case 0x42:
+ return "Paper Jam: 42 Printing";
+ case 0x43:
+ return "Paper Jam: 43 Printing";
+ case 0x44:
+ return "Paper Jam: 44 Printing";
+ case 0x45:
+ return "Paper Jam: 45 Printing";
+ case 0x46:
+ return "Paper Jam: 46 Printing";
+ case 0x47:
+ return "Paper Jam: 47 Printing";
+ case 0x49:
+ return "Paper Jam: 49 Printing";
+ case 0x4A:
+ return "Paper Jam: 4A Ribbon Cut";
+ case 0x61:
+ return "Paper Jam: 61 Can't Load";
+ case 0x62:
+ return "Paper Jam: 62 Can't Load";
+ default:
+ return "Paper Jam: Unknown";
+ }
+ case 6: /* XXXX "Consumables" */
+ switch (minor) {
+ case 0x01: // XXX
+ return "Consumables: XX No Ribbon+Paper";
+ case 0x02: // XXX
+ return "Consumables: XX No Ribbon";
+ case 0x03: // XXX
+ return "Consumables: XX Ribbon Empty";
+ case 0x04: // XXX
+ return "Consumables: XX Ribbon Mismatch";
+ case 0x05: // XXX
+ return "Consumables: XX 01 Ribbon Incorrect";
+ case 0x06: // XXX
+ return "Consumables: XX 02 Ribbon Incorrect";
+ case 0x07: // XXX
+ return "Consumables: XX 03 Ribbon Incorrect";
+ case 0x08: // XXX
+ return "Consumables: XX No Paper";
+ case 0x09: // XXX
+ return "Consumables: XX Paper Empty";
+ case 0x0A: // XXX
+ return "Consumables: XX Paper Mismatch";
+ default:
+ return "Consumables: Unknown";
+ }
+#endif
+ default:
+ return "Unknown";
+ }
+}
+
+static char *error_str(uint8_t v) {
+ switch (v) {
+ case ERROR_NONE:
+ return "None";
+ case ERROR_INVALID_PARAM:
+ return "Invalid Command Parameter";
+ case ERROR_MAIN_APP_INACTIVE:
+ return "Main App Inactive";
+ case ERROR_COMMS_TIMEOUT:
+ return "Main Communication Timeout";
+ case ERROR_MAINT_NEEDED:
+ return "Maintainence Needed";
+ case ERROR_BAD_COMMAND:
+ return "Inappropriate Command";
+ case ERROR_PRINTER:
+ return "Printer Error";
+ case ERROR_BUFFER_FULL:
+ return "Buffer Full";
+ default:
+ return "Unknown";
+ }
+}
+
+#define STATUS_READY 0x00
+#define STATUS_INIT_CPU 0x31
+#define STATUS_INIT_RIBBON 0x32
+#define STATUS_INIT_PAPER 0x33
+#define STATUS_THERMAL_PROTECT 0x34
+#define STATUS_USING_PANEL 0x35
+#define STATUS_SELF_DIAG 0x36
+#define STATUS_DOWNLOADING 0x37
+
+#define STATUS_FEEDING_PAPER 0x61
+#define STATUS_PRE_HEAT 0x62
+#define STATUS_PRINT_Y 0x63
+#define STATUS_BACK_FEED_Y 0x64
+#define STATUS_PRINT_M 0x65
+#define STATUS_BACK_FEED_M 0x66
+#define STATUS_PRINT_C 0x67
+#define STATUS_BACK_FEED_C 0x68
+#define STATUS_PRINT_OP 0x69
+#define STATUS_PAPER_CUT 0x6A
+#define STATUS_PAPER_EJECT 0x6B
+#define STATUS_BACK_FEED_E 0x6C
+#define STATUS_FINISHED 0x6D
+
+static char *status_str(uint8_t v) {
+ switch (v) {
+ case STATUS_READY:
+ return "Ready";
+ case STATUS_INIT_CPU:
+ return "Initializing CPU";
+ case STATUS_INIT_RIBBON:
+ return "Initializing Ribbon";
+ case STATUS_INIT_PAPER:
+ return "Loading Paper";
+ case STATUS_THERMAL_PROTECT:
+ return "Thermal Protection";
+ case STATUS_USING_PANEL:
+ return "Using Operation Panel";
+ case STATUS_SELF_DIAG:
+ return "Processing Self Diagnosis";
+ case STATUS_DOWNLOADING:
+ return "Processing Download";
+ case STATUS_FEEDING_PAPER:
+ return "Feeding Paper";
+ case STATUS_PRE_HEAT:
+ return "Pre-Heating";
+ case STATUS_PRINT_Y:
+ return "Printing Yellow";
+ case STATUS_BACK_FEED_Y:
+ return "Back-Feeding - Yellow Complete";
+ case STATUS_PRINT_M:
+ return "Printing Magenta";
+ case STATUS_BACK_FEED_M:
+ return "Back-Feeding - Magenta Complete";
+ case STATUS_PRINT_C:
+ return "Printing Cyan";
+ case STATUS_BACK_FEED_C:
+ return "Back-Feeding - Cyan Complete";
+ case STATUS_PRINT_OP:
+ return "Laminating";
+ case STATUS_PAPER_CUT:
+ return "Cutting Paper";
+ case STATUS_PAPER_EJECT:
+ return "Ejecting Paper";
+ case STATUS_BACK_FEED_E:
+ return "Back-Feeding - Ejected";
+ case STATUS_FINISHED:
+ return "Print Finished";
+ case ERROR_PRINTER:
+ return "Printer Error";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s2145_status_resp {
+ struct s2145_status_hdr hdr;
+ uint32_t count_lifetime;
+ uint32_t count_maint;
+ uint32_t count_paper;
+ uint32_t count_cutter;
+ uint32_t count_head;
+ uint32_t count_ribbon_left;
+ uint8_t bank1_printid;
+ uint8_t bank2_printid;
+ uint16_t bank1_remaining;
+ uint16_t bank1_finished;
+ uint16_t bank1_specified;
+ uint8_t bank1_status;
+ uint16_t bank2_remaining;
+ uint16_t bank2_finished;
+ uint16_t bank2_specified;
+ uint8_t bank2_status;
+ uint8_t tonecurve_status;
+} __attribute__((packed));
+
+#define BANK_STATUS_FREE 0x00
+#define BANK_STATUS_XFER 0x01
+#define BANK_STATUS_FULL 0x02
+
+static char *bank_statuses(uint8_t v)
+{
+ switch (v) {
+ case 0:
+ return "Free";
+ case 1:
+ return "Xfer";
+ case 2:
+ return "Full";
+ default:
+ return "Unknown";
+ }
+}
+
+#define TONECURVE_INIT 0x00
+#define TONECURVE_USER 0x01
+#define TONECURVE_CURRENT 0x02
+
+static char *tonecurve_statuses (uint8_t v)
+{
+ switch(v) {
+ case 0:
+ return "Initial";
+ case 1:
+ return "UserSet";
+ case 2:
+ return "Current";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s2145_readtone_resp {
+ struct s2145_status_hdr hdr;
+ uint16_t total_size;
+} __attribute__((packed));
+
+struct s2145_mediainfo_item {
+ uint8_t code;
+ uint16_t columns;
+ uint16_t rows;
+ uint8_t media_type;
+ uint8_t print_type;
+ uint8_t reserved[3];
+} __attribute__((packed));
+
+#define MEDIA_TYPE_UNKNOWN 0x00
+#define MEDIA_TYPE_PAPER 0x01
+
+static char *media_types(uint8_t v) {
+ switch (v) {
+ case MEDIA_TYPE_UNKNOWN:
+ return "Unknown";
+ case MEDIA_TYPE_PAPER:
+ return "Paper";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s2145_mediainfo_resp {
+ struct s2145_status_hdr hdr;
+ uint8_t count;
+ struct s2145_mediainfo_item items[10]; /* Not all necessarily used */
+} __attribute__((packed));
+
+struct s2145_modelname_resp {
+ struct s2145_status_hdr hdr;
+ uint8_t vendor[4];
+ uint8_t product[4];
+ uint8_t modelname[40];
+} __attribute__((packed));
+
+struct s2145_error_item {
+ uint8_t major;
+ uint8_t minor;
+ uint32_t print_counter;
+} __attribute__((packed));
+
+struct s2145_errorlog_resp {
+ struct s2145_status_hdr hdr;
+ uint8_t count;
+ struct s2145_error_item items[10]; /* Not all necessarily used */
+} __attribute__((packed));
+
+struct s2145_fwinfo_resp {
+ struct s2145_status_hdr hdr;
+ uint8_t name[8];
+ uint8_t type[16];
+ uint8_t date[10];
+ uint8_t major;
+ uint8_t minor;
+ uint16_t checksum;
+} __attribute__((packed));
+
+struct s2145_getunique_resp {
+ struct s2145_status_hdr hdr;
+ uint8_t data[24]; /* Not necessarily all used. */
+} __attribute__((packed));
+
+#define READBACK_LEN 128 /* Needs to be larger than largest response hdr */
+#define CMDBUF_LEN sizeof(struct s2145_print_cmd)
+
+uint8_t rdbuf[READBACK_LEN];
+
+static int s2145_do_cmd(struct shinkos2145_ctx *ctx,
+ uint8_t *cmd, int cmdlen,
+ int minlen, int *num)
+{
+ int ret;
+ struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
+
+ libusb_device_handle *dev = ctx->dev;
+ uint8_t endp_up = ctx->endp_up;
+ uint8_t endp_down = ctx->endp_down;
+
+ if ((ret = send_data(dev, endp_down,
+ cmd, cmdlen)))
+ return (ret < 0) ? ret : -99;
+
+ ret = read_data(dev, endp_up,
+ rdbuf, READBACK_LEN, num);
+
+ if (ret < 0)
+ return ret;
+ if (*num < minlen) {
+ ERROR("Short read! (%d/%d))\n", *num, minlen);
+ return -99;
+ }
+
+ if (resp->result != RESULT_SUCCESS) {
+ INFO("Printer Status: %02x (%s)\n", resp->status,
+ status_str(resp->status));
+ INFO(" Result: 0x%02x Error: 0x%02x (0x%02x/0x%02x = %s)\n",
+ resp->result, resp->error, resp->printer_major,
+ resp->printer_minor, error_codes(resp->printer_major, resp->printer_minor));
+ return -99;
+ }
+
+ return ret;
+}
+
+static int get_status(struct shinkos2145_ctx *ctx)
+{
+ struct s2145_cmd_hdr cmd;
+ struct s2145_status_resp *resp = (struct s2145_status_resp *) rdbuf;
+ int ret, num = 0;
+
+ cmd.cmd = cpu_to_le16(S2145_CMD_STATUS);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ INFO("Printer Status: 0x%02x (%s)\n", resp->hdr.status,
+ status_str(resp->hdr.status));
+ if (resp->hdr.status == ERROR_PRINTER) {
+ if(resp->hdr.error == ERROR_NONE)
+ resp->hdr.error = resp->hdr.status;
+ INFO(" Error 0x%02x (%s) 0x%02x/0x%02x (%s)\n",
+ resp->hdr.error,
+ error_str(resp->hdr.error),
+ resp->hdr.printer_major,
+ resp->hdr.printer_minor, error_codes(resp->hdr.printer_major, resp->hdr.printer_minor));
+ }
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s2145_status_resp) - sizeof(struct s2145_status_hdr)))
+ return 0;
+
+ INFO(" Print Counts:\n");
+ INFO("\tSince Paper Changed:\t%08u\n", le32_to_cpu(resp->count_paper));
+ INFO("\tLifetime:\t\t%08u\n", le32_to_cpu(resp->count_lifetime));
+ INFO("\tMaintainence:\t\t%08u\n", le32_to_cpu(resp->count_maint));
+ INFO("\tPrint Head:\t\t%08u\n", le32_to_cpu(resp->count_head));
+ INFO(" Cutter Actuations:\t%08u\n", le32_to_cpu(resp->count_cutter));
+ INFO(" Ribbon Remaining:\t%08u\n", le32_to_cpu(resp->count_ribbon_left));
+ INFO("Bank 1: 0x%02x (%s) Job %03u @ %03u/%03u (%03u remaining)\n",
+ resp->bank1_status, bank_statuses(resp->bank1_status),
+ resp->bank1_printid,
+ le16_to_cpu(resp->bank1_finished),
+ le16_to_cpu(resp->bank1_specified),
+ le16_to_cpu(resp->bank1_remaining));
+
+ INFO("Bank 2: 0x%02x (%s) Job %03d @ %03d/%03d (%03d remaining)\n",
+ resp->bank2_status, bank_statuses(resp->bank1_status),
+ resp->bank2_printid,
+ le16_to_cpu(resp->bank2_finished),
+ le16_to_cpu(resp->bank2_specified),
+ le16_to_cpu(resp->bank2_remaining));
+
+ INFO("Tonecurve Status: 0x%02x (%s)\n", resp->tonecurve_status, tonecurve_statuses(resp->tonecurve_status));
+
+ return 0;
+}
+
+static int get_fwinfo(struct shinkos2145_ctx *ctx)
+{
+ struct s2145_fwinfo_cmd cmd;
+ struct s2145_fwinfo_resp *resp = (struct s2145_fwinfo_resp *)rdbuf;
+ int num = 0;
+ int i;
+
+ cmd.hdr.cmd = cpu_to_le16(S2145_CMD_FWINFO);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ INFO("FW Information:\n");
+
+ for (i = FWINFO_TARGET_MAIN_BOOT ; i <= FWINFO_TARGET_TABLES ; i++) {
+ int ret;
+ cmd.target = i;
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ continue;
+ }
+
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s2145_fwinfo_resp) - sizeof(struct s2145_status_hdr)))
+ continue;
+
+ INFO(" %s\t ver %02x.%02x\n", fwinfo_targets(i),
+ resp->major, resp->minor);
+#if 0
+ INFO(" name: '%s'\n", resp->name);
+ INFO(" type: '%s'\n", resp->type);
+ INFO(" date: '%s'\n", resp->date);
+ INFO(" version: %02x.%02x (CRC %04x)\n", resp->major, resp->minor,
+ le16_to_cpu(resp->checksum));
+#endif
+ }
+ return 0;
+}
+
+static int get_errorlog(struct shinkos2145_ctx *ctx)
+{
+ struct s2145_cmd_hdr cmd;
+ struct s2145_errorlog_resp *resp = (struct s2145_errorlog_resp *) rdbuf;
+ int ret, num = 0;
+ int i;
+
+ cmd.cmd = cpu_to_le16(S2145_CMD_ERRORLOG);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s2145_errorlog_resp) - sizeof(struct s2145_status_hdr)))
+ return -2;
+
+ INFO("Stored Error Events: %d entries:\n", resp->count);
+ for (i = 0 ; i < resp->count ; i++) {
+ INFO(" %02d: @ %08u prints : 0x%02x/0x%02x (%s)\n", i,
+ le32_to_cpu(resp->items[i].print_counter),
+ resp->items[i].major, resp->items[i].minor,
+ error_codes(resp->items[i].major, resp->items[i].minor));
+ }
+ return 0;
+}
+
+static int get_mediainfo(struct shinkos2145_ctx *ctx)
+{
+ struct s2145_cmd_hdr cmd;
+ struct s2145_mediainfo_resp *resp = (struct s2145_mediainfo_resp *) rdbuf;
+ int ret, num = 0;
+ int i;
+
+ cmd.cmd = cpu_to_le16(S2145_CMD_MEDIAINFO);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s2145_mediainfo_resp) - sizeof(struct s2145_status_hdr)))
+ return -2;
+
+ INFO("Supported Media Information: %d entries:\n", resp->count);
+ for (i = 0 ; i < resp->count ; i++) {
+ INFO(" %02d: C 0x%02x (%s), %04dx%04d, M 0x%02x (%s), P 0x%02x (%s)\n", i,
+ resp->items[i].code, print_medias(resp->items[i].code),
+ le16_to_cpu(resp->items[i].columns),
+ le16_to_cpu(resp->items[i].rows),
+ resp->items[i].media_type, media_types(resp->items[i].media_type),
+ resp->items[i].print_type, print_methods(resp->items[i].print_type));
+ }
+ return 0;
+}
+
+static int get_user_string(struct shinkos2145_ctx *ctx)
+{
+ struct s2145_cmd_hdr cmd;
+ struct s2145_getunique_resp *resp = (struct s2145_getunique_resp*) rdbuf;
+ int ret, num = 0;
+
+ cmd.cmd = cpu_to_le16(S2145_CMD_GETUNIQUE);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp) - 1,
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ /* Null-terminate */
+ resp->hdr.payload_len = le16_to_cpu(resp->hdr.payload_len);
+ if (resp->hdr.payload_len > 23)
+ resp->hdr.payload_len = 23;
+ resp->data[resp->hdr.payload_len] = 0;
+ INFO("Unique String: '%s'\n", resp->data);
+ return 0;
+}
+
+static int set_user_string(struct shinkos2145_ctx *ctx, char *str)
+{
+ struct s2145_setunique_cmd cmd;
+ struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ if (str) {
+ cmd.len = strlen(str);
+ if (cmd.len > 23)
+ cmd.len = 23;
+ memset(cmd.data, 0, sizeof(cmd.data));
+ strncpy((char*)cmd.data, str, cmd.len);
+ } else {
+ cmd.len = 0;
+ }
+
+ cmd.hdr.cmd = cpu_to_le16(S2145_CMD_SETUNIQUE);
+ cmd.hdr.len = cpu_to_le16(cmd.len + 1);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, cmd.len + 1 + sizeof(cmd.hdr),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+static int cancel_job(struct shinkos2145_ctx *ctx, char *str)
+{
+ struct s2145_cancel_cmd cmd;
+ struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ if (!str)
+ return -1;
+
+ cmd.id = atoi(str);
+
+ cmd.hdr.cmd = cpu_to_le16(S2145_CMD_CANCELJOB);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+static int flash_led(struct shinkos2145_ctx *ctx)
+{
+ struct s2145_cmd_hdr cmd;
+ struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ cmd.cmd = cpu_to_le16(S2145_CMD_FLASHLED);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+static int reset_curve(struct shinkos2145_ctx *ctx, int target)
+{
+ struct s2145_reset_cmd cmd;
+ struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ cmd.target = target;
+
+ cmd.hdr.cmd = cpu_to_le16(S2145_CMD_RESET);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+static int button_set(struct shinkos2145_ctx *ctx, int enable)
+{
+ struct s2145_button_cmd cmd;
+ struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ cmd.hdr.cmd = cpu_to_le16(S2145_CMD_BUTTON);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ cmd.enabled = enable;
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+static int get_tonecurve(struct shinkos2145_ctx *ctx, int type, char *fname)
+{
+ struct s2145_readtone_cmd cmd;
+ struct s2145_readtone_resp *resp = (struct s2145_readtone_resp *) rdbuf;
+ int ret, num = 0;
+
+ uint8_t *data;
+ uint16_t curves[768];
+
+ int i,j;
+
+ cmd.curveid = type;
+
+ cmd.hdr.cmd = cpu_to_le16(S2145_CMD_READTONE);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ INFO("Dump %s Tone Curve to '%s'\n", tonecurve_statuses(type), fname);
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ resp->total_size = le16_to_cpu(resp->total_size);
+
+ data = malloc(resp->total_size * 2);
+
+ i = 0;
+ while (i < resp->total_size) {
+ ret = read_data(ctx->dev, ctx->endp_up,
+ data + i,
+ resp->total_size * 2 - i,
+ &num);
+ if (ret < 0)
+ goto done;
+ i += num;
+ }
+
+ i = j = 0;
+ while (i < resp->total_size) {
+ memcpy(curves + j, data + i+2, data[i+1]);
+ j += data[i+1] / 2;
+ i += data[i+1] + 2;
+ }
+
+ /* Open file and write it out */
+ {
+ int tc_fd = open(fname, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);
+ if (tc_fd < 0) {
+ ret = -1;
+ goto done;
+ }
+
+ for (i = 0 ; i < 768; i++) {
+ /* Byteswap appropriately */
+ curves[i] = cpu_to_be16(le16_to_cpu(curves[i]));
+ write(tc_fd, &curves[i], sizeof(uint16_t));
+ }
+ close(tc_fd);
+ }
+
+done:
+ free(data);
+ return ret;
+}
+
+static int set_tonecurve(struct shinkos2145_ctx *ctx, int target, char *fname)
+{
+ struct s2145_update_cmd cmd;
+ struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ INFO("Set %s Tone Curve from '%s'\n", update_targets(target), fname);
+
+ uint16_t *data = malloc(UPDATE_SIZE);
+
+ /* Read in file */
+ int tc_fd = open(fname, O_RDONLY);
+ if (tc_fd < 0) {
+ ret = -1;
+ goto done;
+ }
+ if (read(tc_fd, data, UPDATE_SIZE) != UPDATE_SIZE) {
+ ret = -2;
+ goto done;
+ }
+ close(tc_fd);
+ /* Byteswap data to local CPU.. */
+ for (ret = 0; ret < UPDATE_SIZE ; ret+=2) {
+ data[ret] = be16_to_cpu(data[ret]);
+ }
+
+ /* Set up command */
+ cmd.target = target;
+ cmd.reserved = 0;
+ cmd.size = cpu_to_le32(UPDATE_SIZE);
+
+ cmd.hdr.cmd = cpu_to_le16(S2145_CMD_UPDATE);
+ cmd.hdr.len = cpu_to_le16(sizeof(struct s2145_update_cmd)-sizeof(cmd.hdr));
+
+ /* Byteswap data to format printer is expecting.. */
+ for (ret = 0; ret < UPDATE_SIZE ; ret+=2) {
+ data[ret] = cpu_to_le16(data[ret]);
+ }
+
+ if ((ret = s2145_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ goto done;
+ }
+
+ /* Sent transfer */
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ (uint8_t *) data, UPDATE_SIZE))) {
+ goto done;
+ }
+
+done:
+ free(data);
+
+ return ret;
+}
+
+static void shinkos2145_cmdline(void)
+{
+ DEBUG("\t\t[ -b 0|1 ] # Disable/Enable control panel\n");
+ DEBUG("\t\t[ -c filename ] # Get user/NV tone curve\n");
+ DEBUG("\t\t[ -C filename ] # Set user/NV tone curve\n");
+ DEBUG("\t\t[ -e ] # Query error log\n");
+ DEBUG("\t\t[ -f ] # Use fast return mode\n");
+ DEBUG("\t\t[ -F ] # Flash Printer LED\n");
+ DEBUG("\t\t[ -l filename ] # Get current tone curve\n");
+ DEBUG("\t\t[ -L filename ] # Set current tone curve\n");
+ DEBUG("\t\t[ -m ] # Query media\n");
+ DEBUG("\t\t[ -i ] # Query printer info\n");
+ DEBUG("\t\t[ -r ] # Reset user/NV tone curve\n");
+ DEBUG("\t\t[ -R ] # Reset printer to factory defaults\n");
+ DEBUG("\t\t[ -s ] # Query status\n");
+ DEBUG("\t\t[ -u ] # Query user string\n");
+ DEBUG("\t\t[ -U sometext ] # Set user string\n");
+ DEBUG("\t\t[ -X jobid ] # Abort a printjob\n");
+}
+
+int shinkos2145_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct shinkos2145_ctx *ctx = vctx;
+ int i, j = 0;
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, "b:c:C:efFil:L:mr:R:suU:X:")) >= 0) {
+ switch(i) {
+ case 'b':
+ if (ctx) {
+ if (optarg[0] == '1')
+ j = button_set(ctx, BUTTON_ENABLED);
+ else if (optarg[0] == '0')
+ j = button_set(ctx, BUTTON_DISABLED);
+ else
+ return -1;
+ break;
+ }
+ return 1;
+ case 'c':
+ if (ctx) {
+ j = get_tonecurve(ctx, TONECURVE_USER, optarg);
+ break;
+ }
+ return 1;
+ case 'C':
+ if (ctx) {
+ j = set_tonecurve(ctx, TONECURVE_USER, optarg);
+ break;
+ }
+ return 1;
+ case 'e':
+ if (ctx) {
+ j = get_errorlog(ctx);
+ break;
+ }
+ return 1;
+ case 'f':
+ if (ctx) {
+ ctx->fast_return = 1;
+ break;
+ }
+ return 1;
+ case 'F':
+ if (ctx) {
+ j = flash_led(ctx);
+ break;
+ }
+ return 1;
+ case 'i':
+ if (ctx) {
+ j = get_fwinfo(ctx);
+ break;
+ }
+ return 1;
+ case 'l':
+ if (ctx) {
+ j = get_tonecurve(ctx, TONECURVE_CURRENT, optarg);
+ break;
+ }
+ return 1;
+ case 'L':
+ if (ctx) {
+ j = set_tonecurve(ctx, TONECURVE_CURRENT, optarg);
+ break;
+ }
+ return 1;
+ case 'm':
+ if (ctx) {
+ j = get_mediainfo(ctx);
+ break;
+ }
+ return 1;
+ case 'r':
+ if (ctx) {
+ j = reset_curve(ctx, RESET_USER_CURVE);
+ break;
+ }
+ return 1;
+ case 'R':
+ if (ctx) {
+ j = reset_curve(ctx, RESET_PRINTER);
+ break;
+ }
+ return 1;
+ case 's':
+ if (ctx) {
+ j = get_status(ctx);
+ break;
+ }
+ return 1;
+ case 'u':
+ if (ctx) {
+ j = get_user_string(ctx);
+ break;
+ }
+ return 1;
+ case 'U':
+ if (ctx) {
+ j = set_user_string(ctx, optarg);
+ break;
+ }
+ return 1;
+ case 'X':
+ if (ctx) {
+ j = cancel_job(ctx, optarg);
+ break;
+ }
+ return 1;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+static void *shinkos2145_init(void)
+{
+ struct shinkos2145_ctx *ctx = malloc(sizeof(struct shinkos2145_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct shinkos2145_ctx));
+
+ /* Use Fast return by default in CUPS mode */
+ if (getenv("DEVICE_URI") || getenv("FAST_RETURN"))
+ ctx->fast_return = 1;
+
+ return ctx;
+}
+
+static void shinkos2145_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct shinkos2145_ctx *ctx = vctx;
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ /* Ensure jobid is sane */
+ ctx->jobid = (jobid & 0x7f) + 1;
+}
+
+
+static void shinkos2145_teardown(void *vctx) {
+ struct shinkos2145_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+
+ free(ctx);
+}
+
+static int shinkos2145_read_parse(void *vctx, int data_fd) {
+ struct shinkos2145_ctx *ctx = vctx;
+ int ret;
+ uint8_t tmpbuf[4];
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ /* Read in then validate header */
+ ret = read(data_fd, &ctx->hdr, sizeof(ctx->hdr));
+ if (ret < 0 || ret != sizeof(ctx->hdr)) {
+ if (ret == 0)
+ return 1;
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 0, (int)sizeof(ctx->hdr));
+ perror("ERROR: Read failed");
+ return ret;
+ }
+
+ if (le32_to_cpu(ctx->hdr.len1) != 0x10 ||
+ le32_to_cpu(ctx->hdr.model) != 2145 ||
+ le32_to_cpu(ctx->hdr.len2) != 0x64 ||
+ le32_to_cpu(ctx->hdr.dpi) != 300) {
+ ERROR("Unrecognized header data format!\n");
+ return 1;
+ }
+
+ ctx->datalen = le32_to_cpu(ctx->hdr.rows) * le32_to_cpu(ctx->hdr.columns) * 3;
+ ctx->databuf = malloc(ctx->datalen);
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return 1;
+ }
+
+ {
+ int remain = ctx->datalen;
+ uint8_t *ptr = ctx->databuf;
+ do {
+ ret = read(data_fd, ptr, remain);
+ if (ret < 0) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, remain, ctx->datalen);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ ptr += ret;
+ remain -= ret;
+ } while (remain);
+ }
+
+ /* Make sure footer is sane too */
+ ret = read(data_fd, tmpbuf, 4);
+ if (ret != 4) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 4, 4);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ if (tmpbuf[0] != 0x04 ||
+ tmpbuf[1] != 0x03 ||
+ tmpbuf[2] != 0x02 ||
+ tmpbuf[3] != 0x01) {
+ ERROR("Unrecognized footer data format!\n");
+ return 1;
+ }
+
+ return 0;
+}
+
+static int shinkos2145_main_loop(void *vctx, int copies) {
+ struct shinkos2145_ctx *ctx = vctx;
+
+ int ret, num;
+ uint8_t cmdbuf[CMDBUF_LEN];
+ uint8_t rdbuf2[READBACK_LEN];
+
+ int last_state = -1, state = S_IDLE;
+
+ struct s2145_cmd_hdr *cmd = (struct s2145_cmd_hdr *) cmdbuf;;
+ struct s2145_print_cmd *print = (struct s2145_print_cmd *) cmdbuf;
+ struct s2145_status_resp *sts = (struct s2145_status_resp *) rdbuf;
+
+ top:
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ /* Send Status Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmd->cmd = cpu_to_le16(S2145_CMD_STATUS);
+ cmd->len = cpu_to_le16(0);
+
+ if ((ret = s2145_do_cmd(ctx,
+ cmdbuf, sizeof(*cmd),
+ sizeof(struct s2145_status_hdr),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd->cmd));
+ return ret;
+ }
+
+ if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
+ memcpy(rdbuf2, rdbuf, READBACK_LEN);
+
+ INFO("Printer Status: 0x%02x (%s)\n",
+ sts->hdr.status, status_str(sts->hdr.status));
+ if (sts->hdr.error == ERROR_PRINTER) {
+ ERROR("Printer Reported Error: 0x%02x.0x%02x (%s)\n",
+ sts->hdr.printer_major, sts->hdr.printer_minor,
+ error_codes(sts->hdr.printer_major, sts->hdr.printer_minor));
+ }
+ } else if (state == last_state) {
+ sleep(1);
+ }
+ last_state = state;
+
+ fflush(stderr);
+
+ switch (state) {
+ case S_IDLE:
+ INFO("Waiting for printer idle\n");
+ /* Basic error handling */
+ if (sts->hdr.result != RESULT_SUCCESS)
+ goto printer_error;
+ if (sts->hdr.error != ERROR_NONE)
+ goto printer_error;
+
+ /* If either bank is free, continue */
+ if (sts->bank1_status == BANK_STATUS_FREE ||
+ sts->bank2_status == BANK_STATUS_FREE)
+ state = S_PRINTER_READY_CMD;
+
+ break;
+ case S_PRINTER_READY_CMD:
+ INFO("Initiating print job (internal id %d)\n", ctx->jobid);
+
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ print->hdr.cmd = cpu_to_le16(S2145_CMD_PRINTJOB);
+ print->hdr.len = cpu_to_le16(sizeof (*print) - sizeof(*cmd));
+ print->id = ctx->jobid;
+ print->count = cpu_to_le16(copies);
+ print->columns = cpu_to_le16(le32_to_cpu(ctx->hdr.columns));
+ print->rows = cpu_to_le16(le32_to_cpu(ctx->hdr.rows));
+ print->media = le32_to_cpu(ctx->hdr.media);
+ print->mode = le32_to_cpu(ctx->hdr.mode);
+ print->method = le32_to_cpu(ctx->hdr.method);
+
+ if ((ret = s2145_do_cmd(ctx,
+ cmdbuf, sizeof(*print),
+ sizeof(struct s2145_status_hdr),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(print->hdr.cmd));
+ return ret;
+ }
+
+ if (sts->hdr.result != RESULT_SUCCESS) {
+ if (sts->hdr.error == ERROR_BUFFER_FULL) {
+ INFO("Printer Buffers full, retrying\n");
+ break;
+ } else if (sts->hdr.status != ERROR_NONE)
+ goto printer_error;
+ }
+
+ INFO("Sending image data to printer\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf, ctx->datalen)))
+ return ret;
+
+ INFO("Waiting for printer to acknowledge completion\n");
+ sleep(1);
+ state = S_PRINTER_SENT_DATA;
+ break;
+ case S_PRINTER_SENT_DATA:
+ if (sts->hdr.result != RESULT_SUCCESS)
+ goto printer_error;
+ if (ctx->fast_return) {
+ INFO("Fast return mode enabled.\n");
+ state = S_FINISHED;
+ }
+ else if (sts->hdr.status == STATUS_READY ||
+ sts->hdr.status == STATUS_FINISHED)
+ state = S_FINISHED;
+ break;
+ default:
+ break;
+ };
+
+ if (state != S_FINISHED)
+ goto top;
+
+ /* This printer handles copies internally */
+ copies = 1;
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ state = S_IDLE;
+ goto top;
+ }
+
+ return 0;
+
+printer_error:
+ ERROR("Printer reported error: %#x (%s) status: %#x (%s) -> %#x.%#x (%s)\n",
+ sts->hdr.error,
+ error_str(sts->hdr.error),
+ sts->hdr.status,
+ status_str(sts->hdr.status),
+ sts->hdr.printer_major, sts->hdr.printer_minor,
+ error_codes(sts->hdr.printer_major, sts->hdr.printer_minor));
+ return 1; /* CUPS_BACKEND_FAILED */
+}
+
+static int shinkos2145_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len)
+{
+ struct s2145_cmd_hdr cmd;
+ struct s2145_getunique_resp *resp = (struct s2145_getunique_resp*) rdbuf;
+ int ret, num = 0;
+
+ struct shinkos2145_ctx ctx = {
+ .dev = dev,
+ .endp_up = endp_up,
+ .endp_down = endp_down,
+ };
+
+ cmd.cmd = cpu_to_le16(S2145_CMD_GETUNIQUE);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s2145_do_cmd(&ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp) - 1,
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ /* Null-terminate */
+ resp->hdr.payload_len = le16_to_cpu(resp->hdr.payload_len);
+ if (resp->hdr.payload_len > 23)
+ resp->hdr.payload_len = 23;
+ resp->data[resp->hdr.payload_len] = 0;
+ strncpy(buf, (char*)resp->data, buf_len);
+ buf[buf_len-1] = 0; /* ensure it's null terminated */
+
+ return 0;
+}
+
+/* Exported */
+#define USB_VID_SHINKO 0x10CE
+#define USB_PID_SHINKO_S2145 0x000E
+
+struct dyesub_backend shinkos2145_backend = {
+ .name = "Shinko/Sinfonia CHC-S2145 (S2)",
+ .version = "0.31",
+ .uri_prefix = "shinkos2145",
+ .cmdline_usage = shinkos2145_cmdline,
+ .cmdline_arg = shinkos2145_cmdline_arg,
+ .init = shinkos2145_init,
+ .attach = shinkos2145_attach,
+ .teardown = shinkos2145_teardown,
+ .read_parse = shinkos2145_read_parse,
+ .main_loop = shinkos2145_main_loop,
+ .query_serno = shinkos2145_query_serno,
+ .devices = {
+ { USB_VID_SHINKO, USB_PID_SHINKO_S2145, P_SHINKO_S2145, ""},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* CHC-S2145 data format
+
+ Spool file consists of an 116-byte header, followed by RGB-packed data,
+ followed by a 4-byte footer. Header appears to consist of a series of
+ 4-byte Little Endian words.
+
+ 10 00 00 00 MM MM 00 00 00 00 00 00 01 00 00 00 MM == Model (ie 2145d)
+ 64 00 00 00 00 00 00 00 TT 00 00 00 00 00 00 00 TT == Media Type
+ MM 00 00 00 PP 00 00 00 00 00 00 00 00 00 00 00 PP = Print Mode, MM = Print Method
+ 00 00 00 00 WW WW 00 00 HH HH 00 00 XX 00 00 00 XX == Copies
+ 00 00 00 00 00 00 00 00 00 00 00 00 ce ff ff ff
+ 00 00 00 00 ce ff ff ff QQ QQ 00 00 ce ff ff ff QQ == DPI, ie 300.
+ 00 00 00 00 ce ff ff ff 00 00 00 00 00 00 00 00
+ 00 00 00 00
+
+ [[Packed RGB payload of WW*HH*3 bytes]]
+
+ 04 03 02 01 [[ footer ]]
+
+*/
diff --git a/src/cups/sony_updr150_print.c b/src/cups/sony_updr150_print.c
new file mode 100644
index 0000000..15347b0
--- /dev/null
+++ b/src/cups/sony_updr150_print.c
@@ -0,0 +1,316 @@
+/*
+ * Sony UP-DR150 Photo Printer CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2014 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#include "backend_common.h"
+
+/* Private data stucture */
+struct updr150_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+
+ uint8_t *databuf;
+ int datalen;
+};
+
+static void* updr150_init(void)
+{
+ struct updr150_ctx *ctx = malloc(sizeof(struct updr150_ctx));
+ if (!ctx)
+ return NULL;
+ memset(ctx, 0, sizeof(struct updr150_ctx));
+ return ctx;
+}
+
+static void updr150_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct updr150_ctx *ctx = vctx;
+
+ UNUSED(jobid);
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+}
+
+static void updr150_teardown(void *vctx) {
+ struct updr150_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+ free(ctx);
+}
+
+#define MAX_PRINTJOB_LEN 16736455
+static int updr150_read_parse(void *vctx, int data_fd) {
+ struct updr150_ctx *ctx = vctx;
+ int len, run = 1;
+
+ if (!ctx)
+ return 1;
+
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ ctx->datalen = 0;
+ ctx->databuf = malloc(MAX_PRINTJOB_LEN);
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return 2;
+ }
+
+ while(run) {
+ int i;
+ int keep = 0;
+ i = read(data_fd, ctx->databuf + ctx->datalen, 4);
+ if (i < 0)
+ return i;
+ if (i == 0)
+ break;
+
+ memcpy(&len, ctx->databuf + ctx->datalen, sizeof(len));
+ len = le32_to_cpu(len);
+
+ /* Filter out chunks we don't send to the printer */
+ switch (len) {
+ case 0xffffff6a:
+ case 0xfffffffc:
+ case 0xfffffffb:
+ case 0xfffffff4:
+ case 0xffffffed:
+ case 0xfffffff9:
+ case 0xfffffff8:
+ case 0xffffffec:
+ case 0xffffffeb:
+ case 0xfffffffa:
+ if(dyesub_debug)
+ DEBUG("Block ID '%08x' (len %d)\n", len, 0);
+ len = 0;
+ break;
+ case 0xfffffff3:
+ if(dyesub_debug)
+ DEBUG("Block ID '%08x' (len %d)\n", len, 0);
+ len = 0;
+ run = 0;
+ break;
+ case 0xffffffef:
+ case 0xfffffff5:
+ if(dyesub_debug)
+ DEBUG("Block ID '%08x' (len %d)\n", len, 4);
+ len = 4;
+ break;
+ default:
+ if (len & 0xff000000) {
+ ERROR("Unknown block ID '%08x', aborting!\n", len);
+ return 1;
+ } else {
+ /* Only keep these chunks */
+ if(dyesub_debug)
+ DEBUG("Data block (len %d)\n", len);
+ keep = 1;
+ }
+ break;
+ }
+ if (keep)
+ ctx->datalen += sizeof(uint32_t);
+
+ /* Read in the data chunk */
+ while(len > 0) {
+ i = read(data_fd, ctx->databuf + ctx->datalen, len);
+ if (i < 0)
+ return i;
+ if (i == 0)
+ break;
+ if (keep)
+ ctx->datalen += i;
+ len -= i;
+ }
+ }
+ if (!ctx->datalen)
+ return 1;
+
+ return 0;
+}
+
+static int updr150_main_loop(void *vctx, int copies) {
+ struct updr150_ctx *ctx = vctx;
+ int i = 0, ret;
+
+ if (!ctx)
+ return 1;
+
+top:
+ while (i < ctx->datalen) {
+ uint32_t len;
+ memcpy(&len, ctx->databuf + i, sizeof(len));
+ len = le32_to_cpu(len);
+
+ i += sizeof(uint32_t);
+
+ if (dyesub_debug)
+ DEBUG("Sending %u bytes to printer @ %i\n", len, i);
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf + i, len)))
+ return ret;
+
+ i += len;
+ }
+
+ /* Clean up */
+ if (terminate)
+ copies = 1;
+
+ INFO("Print complete (%d copies remaining)\n", copies - 1);
+
+ if (copies && --copies) {
+ goto top;
+ }
+
+ return 0;
+}
+
+/* Exported */
+#define USB_VID_SONY 0x054C
+#define USB_PID_SONY_UPDR150 0x01E8
+#define USB_PID_SONY_UPDR200 0x035F
+
+struct dyesub_backend updr150_backend = {
+ .name = "Sony UP-DR150/UP-DR200",
+ .version = "0.13",
+ .uri_prefix = "sonyupdr150",
+ .init = updr150_init,
+ .attach = updr150_attach,
+ .teardown = updr150_teardown,
+ .read_parse = updr150_read_parse,
+ .main_loop = updr150_main_loop,
+ .devices = {
+ { USB_VID_SONY, USB_PID_SONY_UPDR150, P_SONY_UPDR150, ""},
+ { USB_VID_SONY, USB_PID_SONY_UPDR200, P_SONY_UPDR150, ""},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* Sony UP-DR150/UP-DR200 Spool file format
+
+ The spool file is a series of 4-byte commands, followed by optional
+ arguments. The purpose of the commands is unknown, but they presumably
+ instruct the driver to perform certain things.
+
+ If you treat these 4 bytes as a 32-bit little-endian number, if the most significant
+ four bits are bits are non-zero, the value is is to be interpreted as a driver
+ command. If the most significant bits are zero, the value signifies that the following
+ N bytes of data should be sent to the printer as-is.
+
+ Known driver "commands":
+
+ 6a ff ff ff
+ fc ff ff ff
+ fb ff ff ff
+ f4 ff ff ff
+ ed ff ff ff
+ f9 ff ff ff
+ f8 ff ff ff
+ ec ff ff ff
+ eb ff ff ff
+ fa ff ff ff
+ f3 ff ff ff
+ ef ff ff ff XX 00 00 00 # XX == print size (0x01/0x02/0x03/0x04)
+ f5 ff ff ff YY 00 00 00 # YY == ??? (seen 0x01)
+
+ All printer commands start with 0x1b, and are at least 7 bytes long.
+
+ ************************************************************************
+
+ The data stream sent to the printer consists of all the commands in the
+ spool file, plus a couple other ones that generate responses. It is
+ unknown if those additional commands are necessary. This is a typical
+ sequence:
+
+[[ Sniff start of a UP-DR150 ]]
+
+<- 1b e0 00 00 00 0f 00
+-> 0e 00 00 00 00 00 00 00 00 04 a8 08 0a a4 00
+
+<- 1b 16 00 00 00 00 00
+-> "reset" ??
+
+[[ begin job ]]
+
+<- 1b ef 00 00 00 06 00
+-> 05 00 00 00 00 22
+
+<- 1b e5 00 00 00 08 00 ** In spool file
+<- 00 00 00 00 00 00 01 00
+
+<- 1b c1 00 02 06 00 00
+-> 02 02 00 03 00 00
+
+<- 1b ee 00 00 00 02 00 ** In spool file
+<- 00 01
+
+<- 1b 15 00 00 00 0d 00 ** In spool file
+<- 00 00 00 00 07 00 00 00 00 08 00 0a a4
+
+<- 1b 03 00 00 00 13 00
+-> 70 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00
+ 00 00 00
+
+<- 1b e1 00 00 00 0b 00 ** In spool file
+<- 00 80 00 00 00 00 00 08 00 0a a4
+
+<- 1b 03 00 00 00 13 00
+-> 70 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00
+ 00 00 00
+
+<- 1b ea 00 00 00 00 00 ff 60 00 00 ** In spool file
+<- [[ 0x0060ff00 bytes of data ]]
+
+<- 1b e0 00 00 00 0f 00
+-> 0e 00 00 00 00 00 00 00 04 a8 08 00 0a a4 00
+
+<- 1b 0a 00 00 00 00 00 ** In spool file
+<- 1b 17 00 00 00 00 00 ** In spool file
+
+[[fin]]
+
+*/
diff --git a/src/cups/test-ppds b/src/cups/test-ppds
index 4044b02..fb0c0fd 100755
--- a/src/cups/test-ppds
+++ b/src/cups/test-ppds
@@ -1,6 +1,8 @@
#!/bin/sh
-make EXTRA_GENPPD_OPTS=-b ppd-clean ppd-global ppd-nls ppd-nonls
+# Keeping this up to date with changing CUPS versions is a real headache
+
+make EXTRA_GENPPD_OPTS='-b -Z' ppd-clean ppd-global ppd-nls ppd-nonls
# Most non-Macintosh systems won't have the Macintosh-specific profiles
# installed in Macintosh-specific locations.
@@ -25,7 +27,7 @@ fi
# Use this with PPD files with translated numbers (genppd -N)
# With normal globalized PPD files this will yield hundreds of megabytes
# of errors.
-echo $failures | xargs cupstestppd $cupstestppdopts 2>&1 |egrep -v 'Missing cupsICCProfile file'
+echo $failures | xargs cupstestppd -r $cupstestppdopts 2>&1 |egrep -v 'Missing cupsICCProfile file'
fail_count=`echo "$failures" | wc -l`
echo "$fail_count/$ppd_count fail"
diff --git a/src/cups/test-rastertogutenprint.in b/src/cups/test-rastertogutenprint.in
index 9e4f07d..533063d 100755
--- a/src/cups/test-rastertogutenprint.in
+++ b/src/cups/test-rastertogutenprint.in
@@ -66,7 +66,7 @@ fi
version="@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@";
cupsdir="@cups_conf_serverbin@/filter"
-if [ -x "$cupsdir/pstoraster" -o -x "$cupsdir/cgpdftoraster" ] ; then
+if [ -x "$cupsdir/pstoraster" -o -x "$cupsdir/gstoraster" -o -x "$cupsdir/cgpdftoraster" ] ; then
pages="page-ranges=24-`expr 24 + $npages - 1` "
else
pages=''
@@ -221,15 +221,19 @@ if [ -d ppd/C ] ; then
is_duplicate $f
fi
if [ -z "$skip" ] ; then
- echo "$f "
+ echo -n "`basename $f |sed -e 's/stp-//' -e 's/@GUTENPRINT_RELEASE_VERSION@.ppd.*$//'`... "
PPD=$f
export PPD
if [ -x "$cupsdir/cgpdftoraster" ] ; then
output="`($cupsdir/cgpdftoraster 1 1 1 1 $pages < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ elif [ -f "$tfile" -a -x "$cupsdir/gstoraster" ] ; then
+ output="`($cupsdir/gstoraster 1 1 1 1 \"$cupsargs\" < $tfile 2>/dev/null | run_rastertogp | do_output) 2>&1`"
elif [ -f "$tfile" ] ; then
output="`($cupsdir/pstops 1 1 1 1 \"$cupsargs\" < $tfile 2>/dev/null | $cupsdir/pstoraster 2>/dev/null | run_rastertogp | do_output) 2>&1`"
elif [ -x "$cupsdir/pstoraster" ] ; then
output="`($cupsdir/pdftops 1 1 1 1 \"$pages$cupsargs\" < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | $cupsdir/pstops 1 1 1 1 \"$pages$cupsargs\" 2>/dev/null | $cupsdir/pstoraster 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ elif [ -x "$cupsdir/gstoraster" ] ; then
+ output="`($cupsdir/pdftops 1 1 1 1 \"$pages$cupsargs\" < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | $cupsdir/gstoraster 1 1 1 1 \"$pages$cupsargs\" 2>/dev/null | run_rastertogp | do_output) 2>&1`"
else
output="`($cupsdir/imagetoraster 1 1 1 1 \"$pages$cupsargs\" < calibrate.ppm 2>/dev/null | run_rastertogp | do_output) 2>&1`"
fi
diff --git a/src/escputil/Makefile.in b/src/escputil/Makefile.in
index d738e30..1466da2 100644
--- a/src/escputil/Makefile.in
+++ b/src/escputil/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,9 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(top_srcdir)/scripts/depcomp
@BUILD_ESCPUTIL_TRUE@bin_PROGRAMS = escputil$(EXEEXT)
subdir = src/escputil
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -67,27 +112,75 @@ am_escputil_OBJECTS = d4lib.$(OBJEXT) escputil.$(OBJEXT)
escputil_OBJECTS = $(am_escputil_OBJECTS)
am__DEPENDENCIES_1 =
escputil_DEPENDENCIES = $(GUTENPRINT_LIBS) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
SOURCES = $(escputil_SOURCES)
DIST_SOURCES = $(escputil_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -145,6 +238,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -156,6 +250,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -180,6 +275,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -327,6 +424,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -338,14 +436,19 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -366,7 +469,8 @@ uninstall-binPROGRAMS:
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -379,9 +483,10 @@ clean-binPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-escputil$(EXEEXT): $(escputil_OBJECTS) $(escputil_DEPENDENCIES)
+
+escputil$(EXEEXT): $(escputil_OBJECTS) $(escputil_DEPENDENCIES) $(EXTRA_escputil_DEPENDENCIES)
@rm -f escputil$(EXEEXT)
- $(LINK) $(escputil_OBJECTS) $(escputil_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(escputil_OBJECTS) $(escputil_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -393,25 +498,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/escputil.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -419,26 +524,15 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -450,15 +544,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -467,6 +557,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -518,10 +623,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -606,19 +716,19 @@ uninstall-am: uninstall-binPROGRAMS
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic clean-libtool ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-binPROGRAMS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-binPROGRAMS
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
@SET_MAKE@
diff --git a/src/escputil/d4lib.c b/src/escputil/d4lib.c
index 0ba46b6..54f2a18 100644
--- a/src/escputil/d4lib.c
+++ b/src/escputil/d4lib.c
@@ -145,28 +145,28 @@ typedef struct errorMessage_s
static errorMessage_t errorMessage[] =
{
- { 0x01, "Unable to begin conversation, try later." ,0 },
- { 0x02, "Protocol revision not supported." ,1 },
- { 0x03, "Transaction channel can´t be closed." ,0 },
- { 0x04, "No sufficient resources available now." ,0 },
- { 0x05, "Connection denied." ,1 },
- { 0x06, "Channel allready open." ,0 },
- { 0x07, "Credit overflow, previous credit remain valid." ,0 },
- { 0x08, "Channel is not open." ,1 },
- { 0x09, "Service not available on specified socket." ,1 },
- { 0x0a, "Service name to socket ID failed." ,1 },
- { 0x0b, "Init transaction failed." ,1 },
- { 0x0c, "Invalid packet size." ,1 },
- { 0x0d, "Requested packed size is 0, no data can be transfered.",0 },
- { 0x80, "Malformed packet, ignored." ,1 },
- { 0x81, "No credit for received packet, ignored" ,0 },
- { 0x82, "Reply don´t match with outstanding command, ignored." ,1 },
- { 0x83, "Packet size greater as negotiated size." ,1 },
- { 0x84, "Data received for a non opened channel." ,1 },
- { 0x85, "Reply with unknown result value received." ,1 },
- { 0x86, "Piggybacked credit in data packet cause overflow." ,1 },
- { 0x87, "Unknown 1284.4 Reply." ,0 },
- { 0x00, NULL ,0 }
+ { 0x01, "Unable to begin conversation, try later." ,0 },
+ { 0x02, "Protocol revision not supported." ,1 },
+ { 0x03, "Transaction channel can't be closed." ,0 },
+ { 0x04, "No sufficient resources available now." ,0 },
+ { 0x05, "Connection denied." ,1 },
+ { 0x06, "Channel allready open." ,0 },
+ { 0x07, "Credit overflow, previous credit remain valid." ,0 },
+ { 0x08, "Channel is not open." ,1 },
+ { 0x09, "Service not available on specified socket." ,1 },
+ { 0x0a, "Service name to socket ID failed." ,1 },
+ { 0x0b, "Init transaction failed." ,1 },
+ { 0x0c, "Invalid packet size." ,1 },
+ { 0x0d, "Requested packed size is 0, no data can be transfered." ,0 },
+ { 0x80, "Malformed packet, ignored." ,1 },
+ { 0x81, "No credit for received packet, ignored" ,0 },
+ { 0x82, "Reply doesn't match with outstanding command, ignored." ,1 },
+ { 0x83, "Packet size greater as negotiated size." ,1 },
+ { 0x84, "Data received for a non opened channel." ,1 },
+ { 0x85, "Reply with unknown result value received." ,1 },
+ { 0x86, "Piggybacked credit in data packet cause overflow." ,1 },
+ { 0x87, "Unknown 1284.4 Reply." ,0 },
+ { 0x00, NULL ,0 }
};
#define RESET_TIMER(ti,oti) { signal(SIGALRM, sig); \
@@ -1383,7 +1383,9 @@ void flushData(int fd, unsigned char socketID)
/* */
/*******************************************************************/
-static void clearSndBuf(int fd)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-function"
+static inline void clearSndBuf(int fd)
{
char buf[256];
struct itimerval ti, oti;
@@ -1393,6 +1395,7 @@ static void clearSndBuf(int fd)
SET_TIMER(ti,oti, d4RdTimeout);
RESET_TIMER(ti,oti);
}
+#pragma GCC diagnostic pop
void setDebug(int debug)
{
diff --git a/src/escputil/escputil.c b/src/escputil/escputil.c
index 2abec6e..ad50c0a 100644
--- a/src/escputil/escputil.c
+++ b/src/escputil/escputil.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escputil.c,v 1.108 2012/01/19 13:26:57 m0m Exp $"
+ * "$Id: escputil.c,v 1.109 2014/01/04 00:25:38 rlk Exp $"
*
* Printer maintenance utility for EPSON Stylus (R) printers
*
@@ -61,11 +61,14 @@ void do_head_clean(void);
void do_help(int code);
void do_identify(void);
void do_ink_level(void);
-void do_extended_ink_info(int);
+void do_extended_ink_info(void);
void do_nozzle_check(void);
void do_status(void);
+void do_reset_ink_levels(void);
int do_print_cmd(void);
+#pragma GCC diagnostic ignored "-Woverlength-strings"
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
const char *banner = N_("\
Escputil version " VERSION ", Copyright (C) 2000-2006 Robert Krawitz\n\
@@ -103,6 +106,7 @@ struct option optlist[] =
{ "nozzle-check", 0, NULL, (int) 'n' },
{ "align-head", 0, NULL, (int) 'a' },
{ "status", 0, NULL, (int) 's' },
+ { "reset-ink-levels", 0, NULL, (int) 'X' },
{ "new", 0, NULL, (int) 'u' },
{ "help", 0, NULL, (int) 'h' },
{ "identify", 0, NULL, (int) 'd' },
@@ -117,7 +121,7 @@ struct option optlist[] =
};
const char *help_msg = N_("\
-Usage: escputil [-c | -n | -a | -i | -e | -s | -d | -l | -M]\n\
+Usage: escputil [-c | -n | -a | -i | -e | -s | -d | -l | -M | -X]\n\
[-P printer | -r device] [-u] [-q] [-m model] [ -S ]\n\
[-C choices] [-p patterns]\n\
Perform maintenance on EPSON Stylus (R) printers.\n\
@@ -142,6 +146,9 @@ Examples: escputil --ink-level --raw-device /dev/usb/lp0\n\
-d|--identify Query the printer for make and model information.\n\
This requires read/write access to the raw printer\n\
device.\n\
+ -X|--reset-ink Reset ink levels.\n\
+ This requires read/write access to the raw printer\n\
+ device.\n\
-l|--license Display the license/warranty terms of this program.\n\
-M|--list-models List the available printer models.\n\
-h|--help Print this help message.\n\
@@ -161,7 +168,7 @@ Examples: escputil --ink-level --raw-device /dev/usb/lp0\n\
#else
const char *help_msg = N_("\
Usage: escputil [OPTIONS] [COMMAND]\n\
-Usage: escputil [-c | -n | -a | -i | -e | -s | -d | -l | -M]\n\
+Usage: escputil [-c | -n | -a | -i | -e | -s | -d | -l | -M | -X]\n\
[-P printer | -r device] [-u] [-q] [-m model] [ -S ]\n\
[-C choices] [-p patterns]\n\
Perform maintenance on EPSON Stylus (R) printers.\n\
@@ -185,6 +192,8 @@ Examples: escputil -i -r /dev/usb/lp0\n\
read/write access to the raw printer device.\n\
-d Query the printer for make and model information. This\n\
requires read/write access to the raw printer device.\n\
+ -X Reset ink levels. This requires read/write access to the raw\n\
+ printer device.\n\
-l Display the license/warranty terms of this program.\n\
-M List the available printer models.\n\
-h Print this help message.\n\
@@ -296,7 +305,7 @@ main(int argc, char **argv)
/* Set up gettext */
#ifdef HAVE_LOCALE_H
- char *locale = stp_strdup(setlocale (LC_ALL, ""));
+ (void) setlocale (LC_ALL, "");
#endif
#ifdef ENABLE_NLS
bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
@@ -312,9 +321,9 @@ main(int argc, char **argv)
{
#if defined(HAVE_GETOPT_H) && defined(HAVE_GETOPT_LONG)
int option_index = 0;
- c = getopt_long(argc, argv, "P:r:iecnasduqm:hlMSC:p:", optlist, &option_index);
+ c = getopt_long(argc, argv, "P:r:iecnasXduqm:hlMSC:p:", optlist, &option_index);
#else
- c = getopt(argc, argv, "P:r:iecnasduqm:hlMSC:p:");
+ c = getopt(argc, argv, "P:r:iecnasXduqm:hlMSC:p:");
#endif
if (c == -1)
break;
@@ -331,6 +340,7 @@ main(int argc, char **argv)
case 'd':
case 's':
case 'o':
+ case 'X':
if (operation)
do_help(1);
operation = c;
@@ -421,7 +431,7 @@ main(int argc, char **argv)
do_ink_level();
break;
case 'e':
- do_extended_ink_info(1);
+ do_extended_ink_info();
break;
case 'a':
do_align();
@@ -432,6 +442,9 @@ main(int argc, char **argv)
case 's':
do_status();
break;
+ case 'X':
+ do_reset_ink_levels();
+ break;
default:
do_help(1);
}
@@ -601,7 +614,7 @@ start_remote_sequence(void)
static void
end_remote_sequence(void)
-{
+{
static char remote_trailer[] = "\033\000\000\000\033\000";
memcpy(printer_cmd + bufpos, remote_trailer, sizeof(remote_trailer) - 1);
bufpos += sizeof(remote_trailer) - 1;
@@ -687,7 +700,6 @@ send_nulls(int fd)
static int
init_packet(int fd, int force)
{
- int status;
int tries = 0;
STP_DEBUG(printf("***Init packet mode %d\n", force));
@@ -745,7 +757,6 @@ init_packet(int fd, int force)
break;
}
- status = 1;
STP_DEBUG(printf("***Flushing data...\n"));
flushData(fd, socket_id);
return 0;
@@ -845,6 +856,12 @@ test_for_ii(const unsigned char *buf)
strncmp("@BDC PS", (const char *)buf, 7));
}
+static int
+test_for_ri(const unsigned char *buf)
+{
+ return !(strncmp("ri:00:OK;", (const char *)buf, 9));
+}
+
static const stp_printer_t *
initialize_printer(int quiet, int fail_if_not_found)
{
@@ -1333,8 +1350,8 @@ do_old_status(status_cmd_t cmd, const char *buf, const stp_printer_t *printer)
stp_string_list_add_string(color_list, "Yellow", _("Yellow"));
stp_string_list_add_string(color_list, "LightCyan", _("Light Cyan"));
stp_string_list_add_string(color_list, "LightMagenta", _("Light Magenta"));
- }
-
+ }
+
if (cmd == CMD_STATUS)
printf(_("Ink Levels:\n"));
printf("%20s %20s\n", _("Ink color"), _("Percent remaining"));
@@ -1345,7 +1362,7 @@ do_old_status(status_cmd_t cmd, const char *buf, const stp_printer_t *printer)
}
STP_DEBUG(printf("***looking at %s\n", buf));
} while ((buf = find_group(buf)) != NULL);
-}
+}
static void
do_new_status(status_cmd_t cmd, char *buf, int bytes,
@@ -1425,7 +1442,7 @@ do_new_status(status_cmd_t cmd, char *buf, int bytes,
break;
case 0x3: /* Self-printing */
print_self_printing_state(param);
- break;
+ break;
case 0x4: /* Warning */
for (j = 0; j < total_param_count; j++)
{
@@ -1543,10 +1560,94 @@ do_ink_level(void)
do_status_command_internal(CMD_INK_LEVEL);
}
-void
-do_extended_ink_info(int extended_output)
+static stp_string_list_t *
+get_ink_channel_list(const stp_printer_t *printer, int fd)
+{
+ stp_parameter_t desc;
+ char buf[1024];
+ int i;
+ char *ind;
+ stp_string_list_t *color_list = stp_string_list_create();
+
+ if (printer)
+ {
+ const stp_vars_t *printvars = stp_printer_get_defaults(printer);
+ stp_describe_parameter(printvars, "ChannelNames", &desc);
+ }
+
+ if (printer && desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
+ {
+ STP_DEBUG(printf("***Using color list from driver (%ld %ld)\n",
+ (long)stp_string_list_count(desc.bounds.str),
+ (long)stp_string_list_count(color_list)));
+ color_list = stp_string_list_create_copy(desc.bounds.str);
+ stp_parameter_description_destroy(&desc);
+ }
+ else
+ {
+ /*
+ * If we're using the "new" ink status format and we don't know
+ * about the printer, take the colors from the ink status
+ * message rather than from the ink list. This gives us a
+ * last chance to determine the inks
+ */
+ /* request status command */
+ int status =
+ writeAndReadData(fd, socket_id, (const unsigned char*)"st\1\0\1",
+ 5, 1, (unsigned char *) buf, 1023,
+ &send_size, &receive_size, &test_for_st);
+ if (status <= 0)
+ {
+ stp_parameter_description_destroy(&desc);
+ fprintf(stderr, _("\nCannot write to %s: %s\n"),
+ raw_device, strerror(errno));
+ exit(1);
+ }
+ buf[status] = '\0';
+ if ( buf[7] == '2' )
+ {
+ STP_DEBUG(printf("***New format ink!\n"));
+ /* new binary format ! */
+ i = 10;
+ while (buf[i] != 0x0f && i < status)
+ i += buf[i + 1] + 2;
+ ind = buf + i;
+ i = 3;
+ while (i < ind[1])
+ {
+ if (ind[i] < color_count)
+ {
+ STP_DEBUG(printf("*** Case 0: Ink %d %d (%s)\n",
+ i, ind[i], colors_new[(int) ind[i]]));
+ stp_string_list_add_string(color_list,
+ colors_new[(int) ind[i]],
+ colors_new[(int) ind[i]]);
+ }
+ else if (ind[i] == 0x40 && ind[i + 1] < aux_color_count)
+ {
+ STP_DEBUG(printf("*** Case 1: Ink %d %d (%s)\n",
+ i, ind[i+1], aux_colors[(int) ind[i+1]]));
+ stp_string_list_add_string(color_list,
+ aux_colors[(int) ind[i + 1]],
+ aux_colors[(int) ind[i + 1]]);
+ }
+ else
+ {
+ STP_DEBUG(printf("*** Case 2: Unknown\n"));
+ stp_string_list_add_string(color_list, "Unknown",
+ "Unknown");
+ }
+ i+=3;
+ }
+ }
+ STP_DEBUG(printf("***Using color list from status message\n"));
+ }
+ return color_list;
+}
+
+static void
+do_extended_ink_info_1(const stp_printer_t *printer)
{
- int fd;
int status;
char buf[1024];
unsigned val, id, id2, year, year2, month, month2;
@@ -1554,9 +1655,132 @@ do_extended_ink_info(int extended_output)
char *ind;
int i;
+ int fd = open_raw_device();
+
+ stp_string_list_t *color_list = get_ink_channel_list(printer, fd);
+
+ for (i = 0; i < stp_string_list_count(color_list); i++)
+ {
+ char req[] = "ii\2\0\1\1";
+ req[5] = i + 1;
+ status =
+ writeAndReadData(fd, socket_id, (const unsigned char*)req,
+ 6, 1, (unsigned char *) buf, 1023,
+ &send_size, &receive_size, &test_for_ii);
+ if (status <= 0)
+ {
+ stp_string_list_destroy(color_list);
+ CloseChannel(fd, socket_id);
+ exit(1);
+ }
+ ind = strchr(buf, 'I');
+ if (!ind)
+ {
+ STP_DEBUG(printf("***Case 0: failure %i (%s)\n", i, buf));
+ printf("Cannot identify cartridge in slot %d\n", i);
+ }
+ else if (sscanf(ind,
+ "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;IQT:%x,%x,%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
+ &iv[0], &year, &month, &id,
+ &iv[1], &iv[2], &iv[3], &iv[4], &iv[5],
+ &year2, &month2, &id2) == 12 ||
+ sscanf(ind,
+ "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;IQT:%x,%x,%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
+ &iv[0], &year, &month, &id,
+ &iv[1], &iv[2], &iv[3], &iv[4], &iv[5],
+ &year2, &month2, &id2) == 12)
+ {
+ int j;
+ STP_DEBUG(printf("***Case 1: i %i iv %ud %ud %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
+ i, iv[0], iv[1], iv[2], iv[3], iv[4], iv[5],
+ year, year2, month, month2, id, id2));
+ printf("%20s %20s %12s %7s\n",
+ _("Ink cartridge"), _("Percent remaining"), _("Part number"),
+ _("Date"));
+ printf("%20s %20d T0%03d %2d%02d-%02d\n",
+ gettext(stp_string_list_param(color_list, 0)->text),
+ iv[0], id, (year > 80 ? 19 : 20), year, month);
+ for (j = 1; j < 6; j++)
+ printf("%20s %20d T0%03d %2d%02d-%02d\n",
+ gettext(stp_string_list_param(color_list, j)->text),
+ iv[j], id2, (year2 > 80 ? 19 : 20), year2, month2);
+ break;
+ }
+ else if (sscanf(ind,
+ "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;IQT:%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
+ &iv[0], &year, &month, &id,
+ &iv[1], &iv[2], &iv[3],
+ &year2, &month2, &id2) == 10 ||
+ sscanf(ind,
+ "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;IQT:%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
+ &iv[0], &year, &month, &id,
+ &iv[1], &iv[2], &iv[3],
+ &year2, &month2, &id2) == 10)
+ {
+ int j;
+ STP_DEBUG(printf("***Case 2: i %i iv %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
+ i, iv[0], iv[1], iv[2], iv[3],
+ year, year2, month, month2, id, id2));
+ printf("%20s %20s %12s %7s\n",
+ _("Ink cartridge"), _("Percent remaining"), _("Part number"),
+ _("Date"));
+ printf("%20s %20d T0%03d %2d%02d-%02d\n",
+ gettext(stp_string_list_param(color_list, 0)->text),
+ iv[0], id, (year > 80 ? 19 : 20), year, month);
+ for (j = 1; j < 4; j++)
+ printf("%20s %20d T0%03d %2d%02d-%02d\n",
+ gettext(stp_string_list_param(color_list, j)->text),
+ iv[j], id2, (year2 > 80 ? 19 : 20), year2, month2);
+ break;
+ }
+ else if (sscanf(ind,
+ "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
+ &val, &year, &month, &id ) == 4 ||
+ sscanf(ind,
+ "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
+ &val, &year, &month, &id ) == 4)
+ {
+ STP_DEBUG(printf("***Case 3: i %i val %ud year %ud mo %ud id %ud\n",
+ i, val, year, month, id));
+ if (i == 0)
+ printf("%20s %20s %12s %7s\n",
+ _("Ink cartridge"), _("Percent remaining"), _("Part number"),
+ _("Date"));
+ printf("%20s %20d T0%03d %2d%02d-%02d\n",
+ gettext(stp_string_list_param(color_list, i)->text),
+ val, id, (year > 80 ? 19 : 20), year, month);
+ }
+ else if (sscanf(ind,
+ "IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
+ &val, &year, &month, &id ) == 4 ||
+ sscanf(ind,
+ "IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
+ &val, &year, &month, &id ) == 4)
+ {
+ STP_DEBUG(printf("***Case 4: i %i val %ud year %ud mo %ud id %ud\n",
+ i, val, year, month, id));
+ if (i == 0)
+ printf("%20s %20s %12s %7s\n",
+ _("Ink cartridge"), _("Percent remaining"), _("Part number"),
+ _("Date"));
+ printf("%20s %20d T0%03d %2d%02d-%02d\n",
+ gettext(stp_string_list_param(color_list, i)->text),
+ val, id, (year > 80 ? 19 : 20), year, month);
+ }
+ else
+ {
+ STP_DEBUG(printf("***Case 5: failure %i (%s)\n", i, ind));
+ printf("Cannot identify cartridge in slot %d\n", i);
+ }
+ }
+ stp_string_list_destroy(color_list);
+ CloseChannel(fd, socket_id);
+}
+
+void
+do_extended_ink_info(void)
+{
const stp_printer_t *printer;
- const stp_vars_t *printvars;
- stp_parameter_t desc;
if (!raw_device)
{
@@ -1565,212 +1789,67 @@ do_extended_ink_info(int extended_output)
}
printer = get_printer(1, 0);
- if (printer)
- {
- printvars = stp_printer_get_defaults(printer);
- stp_describe_parameter(printvars, "ChannelNames", &desc);
- }
- else
+ if (!printer)
fprintf(stderr,
"Warning! Printer %s is not known; information may be incomplete or incorrect\n",
printer_model ? printer_model : "(unknown printer)");
- fd = open_raw_device();
-
if (isnew)
+ do_extended_ink_info_1(printer);
+ else
+ do_ink_level();
+}
+
+void
+do_reset_ink_levels(void)
+{
+ const stp_printer_t *printer;
+ int fd;
+ int i;
+
+ stp_string_list_t *color_list;
+
+ if (!raw_device)
{
- stp_string_list_t *color_list = stp_string_list_create();
+ fprintf(stderr,_("Resetting ink levels requires using a raw device.\n"));
+ exit(1);
+ }
- if (printer && desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
- {
- STP_DEBUG(printf("***Using color list from driver (%ld %ld)\n",
- (long)stp_string_list_count(desc.bounds.str),
- (long)stp_string_list_count(color_list)));
- color_list = stp_string_list_create_copy(desc.bounds.str);
- stp_parameter_description_destroy(&desc);
- }
- else
- {
- /*
- * If we're using the "new" ink status format and we don't know
- * about the printer, take the colors from the ink status
- * message rather than from the ink list. This gives us a
- * last chance to determine the inks
- */
- /* request status command */
- status =
- writeAndReadData(fd, socket_id, (const unsigned char*)"st\1\0\1",
- 5, 1, (unsigned char *) buf, 1023,
- &send_size, &receive_size, &test_for_st);
- if (status <= 0)
- {
- stp_parameter_description_destroy(&desc);
- fprintf(stderr, _("\nCannot write to %s: %s\n"),
- raw_device, strerror(errno));
- exit(1);
- }
- buf[status] = '\0';
- if ( buf[7] == '2' )
- {
- STP_DEBUG(printf("***New format ink!\n"));
- /* new binary format ! */
- i = 10;
- while (buf[i] != 0x0f && i < status)
- i += buf[i + 1] + 2;
- ind = buf + i;
- i = 3;
- while (i < ind[1])
- {
- if (ind[i] < color_count)
- {
- STP_DEBUG(printf("*** Case 0: Ink %d %d (%s)\n",
- i, ind[i], colors_new[(int) ind[i]]));
- stp_string_list_add_string(color_list,
- colors_new[(int) ind[i]],
- colors_new[(int) ind[i]]);
- }
- else if (ind[i] == 0x40 && ind[i + 1] < aux_color_count)
- {
- STP_DEBUG(printf("*** Case 1: Ink %d %d (%s)\n",
- i, ind[i+1], aux_colors[(int) ind[i+1]]));
- stp_string_list_add_string(color_list,
- aux_colors[(int) ind[i + 1]],
- aux_colors[(int) ind[i + 1]]);
- }
- else
- {
- STP_DEBUG(printf("*** Case 2: Unknown\n"));
- stp_string_list_add_string(color_list, "Unknown",
- "Unknown");
- }
- i+=3;
- }
- }
- STP_DEBUG(printf("***Using color list from status message\n"));
- }
+ printer = get_printer(1, 0);
+ if (!printer)
+ {
+ fprintf(stderr,
+ "Error! Printer %s is not known; cannot reset ink\n",
+ printer_model ? printer_model : "(unknown printer)");
+ exit(1);
+ }
- for (i = 0; i < stp_string_list_count(color_list); i++)
- {
- char req[] = "ii\2\0\1\1";
- req[5] = i + 1;
- status =
- writeAndReadData(fd, socket_id, (const unsigned char*)req,
- 6, 1, (unsigned char *) buf, 1023,
- &send_size, &receive_size, &test_for_ii);
- if (status <= 0)
- {
- CloseChannel(fd, socket_id);
- exit(1);
- }
- ind = strchr(buf, 'I');
- if (!ind)
- {
- STP_DEBUG(printf("***Case 0: failure %i (%s)\n", i, buf));
- printf("Cannot identify cartridge in slot %d\n", i);
- }
- else if (sscanf(ind,
- "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;IQT:%x,%x,%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
- &iv[0], &year, &month, &id,
- &iv[1], &iv[2], &iv[3], &iv[4], &iv[5],
- &year2, &month2, &id2) == 12 ||
- sscanf(ind,
- "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;IQT:%x,%x,%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
- &iv[0], &year, &month, &id,
- &iv[1], &iv[2], &iv[3], &iv[4], &iv[5],
- &year2, &month2, &id2) == 12)
- {
- int j;
- STP_DEBUG(printf("***Case 1: i %i iv %ud %ud %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
- i, iv[0], iv[1], iv[2], iv[3], iv[4], iv[5],
- year, year2, month, month2, id, id2));
- printf("%20s %20s %12s %7s\n",
- _("Ink cartridge"), _("Percent remaining"), _("Part number"),
- _("Date"));
- printf("%20s %20d T0%03d %2d%02d-%02d\n",
- gettext(stp_string_list_param(color_list, 0)->text),
- iv[0], id, (year > 80 ? 19 : 20), year, month);
- for (j = 1; j < 6; j++)
- printf("%20s %20d T0%03d %2d%02d-%02d\n",
- gettext(stp_string_list_param(color_list, j)->text),
- iv[j], id2, (year2 > 80 ? 19 : 20), year2, month2);
- break;
- }
- else if (sscanf(ind,
- "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;IQT:%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
- &iv[0], &year, &month, &id,
- &iv[1], &iv[2], &iv[3],
- &year2, &month2, &id2) == 10 ||
- sscanf(ind,
- "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;IQT:%x,%x,%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*xIK1:%*x;IK2;%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
- &iv[0], &year, &month, &id,
- &iv[1], &iv[2], &iv[3],
- &year2, &month2, &id2) == 10)
- {
- int j;
- STP_DEBUG(printf("***Case 2: i %i iv %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
- i, iv[0], iv[1], iv[2], iv[3],
- year, year2, month, month2, id, id2));
- printf("%20s %20s %12s %7s\n",
- _("Ink cartridge"), _("Percent remaining"), _("Part number"),
- _("Date"));
- printf("%20s %20d T0%03d %2d%02d-%02d\n",
- gettext(stp_string_list_param(color_list, 0)->text),
- iv[0], id, (year > 80 ? 19 : 20), year, month);
- for (j = 1; j < 4; j++)
- printf("%20s %20d T0%03d %2d%02d-%02d\n",
- gettext(stp_string_list_param(color_list, j)->text),
- iv[j], id2, (year2 > 80 ? 19 : 20), year2, month2);
- break;
- }
- else if (sscanf(ind,
- "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
- &val, &year, &month, &id ) == 4 ||
- sscanf(ind,
- "II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
- &val, &year, &month, &id ) == 4)
- {
- STP_DEBUG(printf("***Case 3: i %i val %ud year %ud mo %ud id %ud\n",
- i, val, year, month, id));
- if (i == 0)
- printf("%20s %20s %12s %7s\n",
- _("Ink cartridge"), _("Percent remaining"), _("Part number"),
- _("Date"));
- printf("%20s %20d T0%03d %2d%02d-%02d\n",
- gettext(stp_string_list_param(color_list, i)->text),
- val, id, (year > 80 ? 19 : 20), year, month);
- }
- else if (sscanf(ind,
- "IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:EPSON;",
- &val, &year, &month, &id ) == 4 ||
- sscanf(ind,
- "IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
- &val, &year, &month, &id ) == 4)
- {
- STP_DEBUG(printf("***Case 4: i %i val %ud year %ud mo %ud id %ud\n",
- i, val, year, month, id));
- if (i == 0)
- printf("%20s %20s %12s %7s\n",
- _("Ink cartridge"), _("Percent remaining"), _("Part number"),
- _("Date"));
- printf("%20s %20d T0%03d %2d%02d-%02d\n",
- gettext(stp_string_list_param(color_list, i)->text),
- val, id, (year > 80 ? 19 : 20), year, month);
- }
- else
- {
- STP_DEBUG(printf("***Case 5: failure %i (%s)\n", i, ind));
- printf("Cannot identify cartridge in slot %d\n", i);
- }
- }
- stp_string_list_destroy(color_list);
- CloseChannel(fd, socket_id);
+ if (!isnew)
+ {
+ fprintf(stderr, "Cannot reset ink for printer %s\n", printer_model);
}
- else
+ fd = open_raw_device();
+ color_list = get_ink_channel_list(printer, fd);
+ for (i = 0; i < stp_string_list_count(color_list); i++)
{
- (void) close(fd);
- do_ink_level();
+ int status;
+ char buf[1024];
+ char req[] = "ri\2\0\0\0";
+ req[5] = i;
+ STP_DEBUG(printf("***Attempt to reset ink for channel %d\n", i));
+ status =
+ writeAndReadData(fd, socket_id, (const unsigned char*)req,
+ 6, 1, (unsigned char *) buf, 1023,
+ &send_size, &receive_size, &test_for_ri);
+ if (status <= 0)
+ {
+ stp_string_list_destroy(color_list);
+ CloseChannel(fd, socket_id);
+ exit(1);
+ }
}
- exit(0);
+ stp_string_list_destroy(color_list);
+ CloseChannel(fd, socket_id);
}
void
diff --git a/src/foomatic/Makefile.am b/src/foomatic/Makefile.am
index bc5666d..37271d8 100644
--- a/src/foomatic/Makefile.am
+++ b/src/foomatic/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.56 2011/12/24 02:10:46 rlk Exp $
+## $Id: Makefile.am,v 1.57 2014/01/12 17:12:57 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -78,8 +78,8 @@ all-local: $(INSTALL_DATA_LOCAL_DEPS)
install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ; \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs-simplified.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ; \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs.@GUTENPRINT_RELEASE_VERSION@ ; \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs-simplified.@GUTENPRINT_RELEASE_VERSION@ ; \
fi
install-kit:
diff --git a/src/foomatic/Makefile.in b/src/foomatic/Makefile.in
index d8b1a44..6f7b903 100644
--- a/src/foomatic/Makefile.in
+++ b/src/foomatic/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,9 +83,10 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
$(srcdir)/foomatic-generator.in $(srcdir)/mk_printerlist.in \
- $(top_srcdir)/scripts/global.mk
+ $(top_srcdir)/scripts/depcomp
@BUILD_FOOMATIC_TRUE@noinst_PROGRAMS = printer_options$(EXEEXT) \
@BUILD_FOOMATIC_TRUE@ printer_margins$(EXEEXT) \
@BUILD_FOOMATIC_TRUE@ paper_sizes$(EXEEXT) \
@@ -70,6 +115,10 @@ PROGRAMS = $(noinst_PROGRAMS)
am_gutenprint_version_OBJECTS = gutenprint-version.$(OBJEXT)
gutenprint_version_OBJECTS = $(am_gutenprint_version_OBJECTS)
gutenprint_version_DEPENDENCIES = $(GUTENPRINT_LIBS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
am_paper_sizes_OBJECTS = paper_sizes.$(OBJEXT)
paper_sizes_OBJECTS = $(am_paper_sizes_OBJECTS)
paper_sizes_DEPENDENCIES = $(GUTENPRINT_LIBS)
@@ -82,31 +131,75 @@ printer_options_DEPENDENCIES = $(GUTENPRINT_LIBS)
am_printers_OBJECTS = printers.$(OBJEXT)
printers_OBJECTS = $(am_printers_OBJECTS)
printers_DEPENDENCIES = $(GUTENPRINT_LIBS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
SOURCES = $(gutenprint_version_SOURCES) $(paper_sizes_SOURCES) \
$(printer_margins_SOURCES) $(printer_options_SOURCES) \
$(printers_SOURCES)
DIST_SOURCES = $(gutenprint_version_SOURCES) $(paper_sizes_SOURCES) \
$(printer_margins_SOURCES) $(printer_options_SOURCES) \
$(printers_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -164,6 +257,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -175,6 +269,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -199,6 +294,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -365,6 +462,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -387,21 +485,26 @@ clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-gutenprint-version$(EXEEXT): $(gutenprint_version_OBJECTS) $(gutenprint_version_DEPENDENCIES)
+
+gutenprint-version$(EXEEXT): $(gutenprint_version_OBJECTS) $(gutenprint_version_DEPENDENCIES) $(EXTRA_gutenprint_version_DEPENDENCIES)
@rm -f gutenprint-version$(EXEEXT)
- $(LINK) $(gutenprint_version_OBJECTS) $(gutenprint_version_LDADD) $(LIBS)
-paper_sizes$(EXEEXT): $(paper_sizes_OBJECTS) $(paper_sizes_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(gutenprint_version_OBJECTS) $(gutenprint_version_LDADD) $(LIBS)
+
+paper_sizes$(EXEEXT): $(paper_sizes_OBJECTS) $(paper_sizes_DEPENDENCIES) $(EXTRA_paper_sizes_DEPENDENCIES)
@rm -f paper_sizes$(EXEEXT)
- $(LINK) $(paper_sizes_OBJECTS) $(paper_sizes_LDADD) $(LIBS)
-printer_margins$(EXEEXT): $(printer_margins_OBJECTS) $(printer_margins_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(paper_sizes_OBJECTS) $(paper_sizes_LDADD) $(LIBS)
+
+printer_margins$(EXEEXT): $(printer_margins_OBJECTS) $(printer_margins_DEPENDENCIES) $(EXTRA_printer_margins_DEPENDENCIES)
@rm -f printer_margins$(EXEEXT)
- $(LINK) $(printer_margins_OBJECTS) $(printer_margins_LDADD) $(LIBS)
-printer_options$(EXEEXT): $(printer_options_OBJECTS) $(printer_options_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(printer_margins_OBJECTS) $(printer_margins_LDADD) $(LIBS)
+
+printer_options$(EXEEXT): $(printer_options_OBJECTS) $(printer_options_DEPENDENCIES) $(EXTRA_printer_options_DEPENDENCIES)
@rm -f printer_options$(EXEEXT)
- $(LINK) $(printer_options_OBJECTS) $(printer_options_LDADD) $(LIBS)
-printers$(EXEEXT): $(printers_OBJECTS) $(printers_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(printer_options_OBJECTS) $(printer_options_LDADD) $(LIBS)
+
+printers$(EXEEXT): $(printers_OBJECTS) $(printers_DEPENDENCIES) $(EXTRA_printers_DEPENDENCIES)
@rm -f printers$(EXEEXT)
- $(LINK) $(printers_OBJECTS) $(printers_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(printers_OBJECTS) $(printers_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -416,25 +519,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printers.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -442,26 +545,15 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -473,15 +565,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -490,6 +578,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -541,10 +644,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -631,19 +739,20 @@ uninstall-am:
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
- ctags dist-hook distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-data-local install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
+ cscopelist-am ctags ctags-am dist-hook distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am
+ tags tags-am uninstall uninstall-am
@SET_MAKE@
@@ -666,8 +775,8 @@ all-local: $(INSTALL_DATA_LOCAL_DEPS)
install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ; \
- $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs-simplified.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ; \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs.@GUTENPRINT_RELEASE_VERSION@ ; \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gutenprint-ijs-simplified.@GUTENPRINT_RELEASE_VERSION@ ; \
fi
install-kit:
diff --git a/src/foomatic/foomatic-generator.in b/src/foomatic/foomatic-generator.in
index 626bc9c..51630bd 100644
--- a/src/foomatic/foomatic-generator.in
+++ b/src/foomatic/foomatic-generator.in
@@ -1333,7 +1333,10 @@ sub qualityorder {
"dpi_photomonodraft",
"dpi_photomonodraft2",
"dpi_ohphigh",
- "dpi_ohp"
+ "dpi_ohp",
+ # Dyesub
+ "x600",
+ "x300"
);
my ($a, $b) = @_;
# Bring the suffixes to lower case
diff --git a/src/ghost/Makefile.in b/src/ghost/Makefile.in
index 1c9259f..4d85f27 100644
--- a/src/ghost/Makefile.in
+++ b/src/ghost/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,9 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(top_srcdir)/scripts/depcomp
@BUILD_GHOSTSCRIPT_TRUE@bin_PROGRAMS = ijsgutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT)
subdir = src/ghost
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -72,32 +117,62 @@ am__DEPENDENCIES_1 =
@BUILD_GHOSTSCRIPT_TRUE@ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES = \
@BUILD_GHOSTSCRIPT_TRUE@ $(GUTENPRINT_LIBS) \
@BUILD_GHOSTSCRIPT_TRUE@ $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK = \
- $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS) \
$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
SOURCES = $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES)
DIST_SOURCES = $(am__ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES_DIST)
-ETAGS = etags
-CTAGS = ctags
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -155,6 +230,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -166,6 +242,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -190,6 +267,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -339,6 +418,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -350,14 +430,19 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -378,7 +463,8 @@ uninstall-binPROGRAMS:
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -391,9 +477,10 @@ clean-binPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-ijsgutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT): $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES)
+
+ijsgutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT): $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES) $(EXTRA_ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_DEPENDENCIES)
@rm -f ijsgutenprint.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@$(EXEEXT)
- $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK) $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LINK) $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_OBJECTS) $(ijsgutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -404,83 +491,37 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ijsgutenprint.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -529,10 +570,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -552,8 +598,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
dvi: dvi-am
@@ -617,10 +662,10 @@ uninstall-am: uninstall-binPROGRAMS
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic clean-libtool ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
+.PHONY: all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool cscopelist-am ctags-am distclean \
+ distclean-compile distclean-generic distclean-libtool distdir \
+ dvi dvi-am html html-am info info-am install install-am \
install-binPROGRAMS install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
@@ -628,7 +673,7 @@ uninstall-am: uninstall-binPROGRAMS
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags-am uninstall uninstall-am \
uninstall-binPROGRAMS
diff --git a/src/gimp2/Makefile.in b/src/gimp2/Makefile.in
index 5977aae..4edb36f 100644
--- a/src/gimp2/Makefile.in
+++ b/src/gimp2/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,9 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(top_srcdir)/scripts/depcomp
@BUILD_GIMP2_AS_GUTENPRINT_FALSE@@BUILD_GIMP2_TRUE@gimp2_plug_in_PROGRAMS = print$(EXEEXT)
@BUILD_GIMP2_AS_GUTENPRINT_TRUE@@BUILD_GIMP2_TRUE@gimp2_plug_in_PROGRAMS = gutenprint$(EXEEXT)
subdir = src/gimp2
@@ -70,29 +115,77 @@ gutenprint_OBJECTS = $(am_gutenprint_OBJECTS)
am__DEPENDENCIES_1 =
am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(GUTENPRINT_LIBS) \
$(GUTENPRINTUI2_LIBS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
am_print_OBJECTS = $(am__objects_1) print-print.$(OBJEXT)
print_OBJECTS = $(am_print_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
SOURCES = $(gutenprint_SOURCES) $(print_SOURCES)
DIST_SOURCES = $(gutenprint_SOURCES) $(print_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -150,6 +243,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -161,6 +255,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -185,6 +280,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -344,6 +441,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -355,14 +453,19 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
install-gimp2_plug_inPROGRAMS: $(gimp2_plug_in_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(gimp2_plug_indir)" || $(MKDIR_P) "$(DESTDIR)$(gimp2_plug_indir)"
@list='$(gimp2_plug_in_PROGRAMS)'; test -n "$(gimp2_plug_indir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(gimp2_plug_indir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(gimp2_plug_indir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -383,7 +486,8 @@ uninstall-gimp2_plug_inPROGRAMS:
@list='$(gimp2_plug_in_PROGRAMS)'; test -n "$(gimp2_plug_indir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(gimp2_plug_indir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(gimp2_plug_indir)" && rm -f $$files
@@ -396,12 +500,14 @@ clean-gimp2_plug_inPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-gutenprint$(EXEEXT): $(gutenprint_OBJECTS) $(gutenprint_DEPENDENCIES)
+
+gutenprint$(EXEEXT): $(gutenprint_OBJECTS) $(gutenprint_DEPENDENCIES) $(EXTRA_gutenprint_DEPENDENCIES)
@rm -f gutenprint$(EXEEXT)
- $(LINK) $(gutenprint_OBJECTS) $(gutenprint_LDADD) $(LIBS)
-print$(EXEEXT): $(print_OBJECTS) $(print_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(gutenprint_OBJECTS) $(gutenprint_LDADD) $(LIBS)
+
+print$(EXEEXT): $(print_OBJECTS) $(print_DEPENDENCIES) $(EXTRA_print_DEPENDENCIES)
@rm -f print$(EXEEXT)
- $(LINK) $(print_OBJECTS) $(print_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(print_OBJECTS) $(print_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -415,25 +521,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -441,26 +547,15 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -472,15 +567,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -489,6 +580,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -540,10 +646,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -630,19 +741,20 @@ uninstall-am: uninstall-gimp2_plug_inPROGRAMS
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-gimp2_plug_inPROGRAMS clean-libtool ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am \
- install-gimp2_plug_inPROGRAMS install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-gimp2_plug_inPROGRAMS
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-gimp2_plug_inPROGRAMS clean-libtool cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-gimp2_plug_inPROGRAMS install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-gimp2_plug_inPROGRAMS
@SET_MAKE@
diff --git a/src/gimp2/print-gutenprint.c b/src/gimp2/print-gutenprint.c
index 56bf111..276a7df 100644
--- a/src/gimp2/print-gutenprint.c
+++ b/src/gimp2/print-gutenprint.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-gutenprint.c,v 1.2 2008/07/04 14:29:28 rlk Exp $"
+ * "$Id: print-gutenprint.c,v 1.3 2014/01/04 00:31:37 rlk Exp $"
*
* Print plug-in for the GIMP.
*
@@ -36,28 +36,28 @@ do_gimp_install_procedure(const char *blurb, const char *help,
const char *types, int n_args,
GimpParamDef *args)
{
- gimp_install_procedure ((BAD_CONST_CHAR) "file_print_gutenprint",
- (BAD_CONST_CHAR) blurb,
- (BAD_CONST_CHAR) help,
- (BAD_CONST_CHAR) auth,
- (BAD_CONST_CHAR) copy,
- (BAD_CONST_CHAR) VERSION " - " RELEASE_DATE,
+ gimp_install_procedure (cast_safe("file_print_gutenprint"),
+ cast_safe(blurb),
+ cast_safe(help),
+ cast_safe(auth),
+ cast_safe(copy),
+ cast_safe(VERSION " - " RELEASE_DATE),
/* Do not translate the prefix "<Image>" */
#if (GIMP_MAJOR_VERSION > 2 || GIMP_MINOR_VERSION >= 2)
- (BAD_CONST_CHAR) N_("_Print with Gutenprint..."),
+ cast_safe(N_("_Print with Gutenprint...")),
#else
- (BAD_CONST_CHAR) N_("<Image>/File/Print with Gutenprint..."),
+ cast_safe(N_("<Image>/File/Print with Gutenprint...")),
#endif
- (BAD_CONST_CHAR) types,
+ cast_safe(types),
GIMP_PLUGIN,
n_args, 0,
args, NULL);
#if (GIMP_MAJOR_VERSION > 2 || GIMP_MINOR_VERSION >= 2)
- gimp_plugin_menu_register ((BAD_CONST_CHAR) "file_print_gutenprint",
- (BAD_CONST_CHAR) "<Image>/File/Send");
- gimp_plugin_icon_register ((BAD_CONST_CHAR) "file_print_gutenprint",
+ gimp_plugin_menu_register (cast_safe("file_print_gutenprint"),
+ cast_safe("<Image>/File/Send"));
+ gimp_plugin_icon_register (cast_safe("file_print_gutenprint"),
GIMP_ICON_TYPE_STOCK_ID,
- (BAD_CONST_CHAR) GTK_STOCK_PRINT);
+ cast_safe(GTK_STOCK_PRINT));
#endif
}
diff --git a/src/gimp2/print.c b/src/gimp2/print.c
index 65e8015..e8131f7 100644
--- a/src/gimp2/print.c
+++ b/src/gimp2/print.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print.c,v 1.9 2012/01/19 13:25:51 m0m Exp $"
+ * "$Id: print.c,v 1.10 2014/01/04 00:31:37 rlk Exp $"
*
* Print plug-in for the GIMP.
*
@@ -76,6 +76,8 @@ MAIN()
* 'query()' - Respond to a plug-in query...
*/
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-qual"
static void
query (void)
{
@@ -117,11 +119,12 @@ query (void)
static const gchar *copy = "Copyright 1997-2006 by Michael Sweet and Robert Krawitz";
static const gchar *types = "RGB*,GRAY*,INDEXED*";
- gimp_plugin_domain_register ((BAD_CONST_CHAR) PACKAGE, (BAD_CONST_CHAR) PACKAGE_LOCALE_DIR);
+ gimp_plugin_domain_register (cast_safe(PACKAGE), cast_safe(PACKAGE_LOCALE_DIR));
do_gimp_install_procedure(blurb, help, auth, copy, types, G_N_ELEMENTS(args),
args);
}
+#pragma GCC diagnostic pop
static guchar *gimp_thumbnail_data = NULL;
@@ -132,7 +135,7 @@ stpui_get_thumbnail_data_function(void *image_ID, gint *width, gint *height,
if (gimp_thumbnail_data)
g_free(gimp_thumbnail_data);
gimp_thumbnail_data =
- gimp_image_get_thumbnail_data((gint) image_ID, width, height, bpp);
+ gimp_image_get_thumbnail_data(p2gint(image_ID), width, height, bpp);
return gimp_thumbnail_data;
}
@@ -413,20 +416,16 @@ run (const char *name, /* I - Name of print program. */
* 'do_print_dialog()' - Pop up the print dialog...
*/
-static void
-gimp_writefunc(void *file, const char *buf, size_t bytes)
-{
- FILE *prn = (FILE *)file;
- fwrite(buf, 1, bytes, prn);
-}
-
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
static void
gimp_errfunc(void *file, const char *buf, size_t bytes)
{
char formatbuf[32];
- snprintf(formatbuf, 31, "%%%ds", bytes);
+ snprintf(formatbuf, 31, "%%%lus", (unsigned long) bytes);
g_message(formatbuf, buf);
}
+#pragma GCC diagnostic pop
static gint
do_print_dialog (const gchar *proc_name,
@@ -435,12 +434,12 @@ do_print_dialog (const gchar *proc_name,
/*
* Generate the filename for the current user...
*/
- char *filename = gimp_personal_rc_file ((BAD_CONST_CHAR) "printrc");
+ char *filename = gimp_personal_rc_file (cast_safe("printrc"));
stpui_set_printrc_file(filename);
g_free(filename);
if (! getenv("STP_PRINT_MESSAGES_TO_STDERR"))
stpui_set_errfunc(gimp_errfunc);
stpui_set_thumbnail_func(stpui_get_thumbnail_data_function);
- stpui_set_thumbnail_data((void *) image_ID);
+ stpui_set_thumbnail_data(gint2p(image_ID));
return stpui_do_print_dialog();
}
diff --git a/src/gimp2/print_gimp.h b/src/gimp2/print_gimp.h
index 53d0a16..7fc0b51 100644
--- a/src/gimp2/print_gimp.h
+++ b/src/gimp2/print_gimp.h
@@ -1,5 +1,5 @@
/*
- * "$Id: print_gimp.h,v 1.5 2006/07/04 02:57:59 rlk Exp $"
+ * "$Id: print_gimp.h,v 1.6 2014/01/04 00:31:37 rlk Exp $"
*
* Print plug-in for the GIMP.
*
@@ -33,13 +33,15 @@
#define inline __inline__
#endif
-#include <gtk/gtk.h>
-#include <libgimp/gimp.h>
-#include <libgimp/gimpui.h>
-
#include <gutenprint/gutenprint.h>
#include <gutenprintui2/gutenprintui.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-pedantic"
+#include <libgimp/gimp.h>
+#include <libgimp/gimpui.h>
+#pragma GCC diagnostic pop
+
/* How to create an Image wrapping a Gimp drawable */
extern stpui_image_t *Image_GimpDrawable_new(GimpDrawable *drawable, gint32);
@@ -56,4 +58,32 @@ extern void do_gimp_install_procedure(const char *blurb, const char *help,
#define BAD_CONST_CHAR char *
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
+static inline gint
+p2gint(void *p)
+{
+ return (gint) p;
+}
+#pragma GCC diagnostic pop
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wint-to-pointer-cast"
+static inline void *
+gint2p(int i)
+{
+ return (gpointer) i;
+}
+#pragma GCC diagnostic pop
+
+#pragma GCC diagnostic ignored "-Woverlength-strings"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-qual"
+static inline void *
+cast_safe(const void *ptr)
+{
+ return (void *)ptr;
+}
+#pragma GCC diagnostic pop
+
#endif /* __PRINT_GIMP_H__ */
diff --git a/src/gutenprintui2/Makefile.in b/src/gutenprintui2/Makefile.in
index d3f662f..ed1debc 100644
--- a/src/gutenprintui2/Makefile.in
+++ b/src/gutenprintui2/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -22,6 +21,51 @@
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -40,9 +84,10 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/gutenprintui2.pc.in $(top_srcdir)/scripts/global.mk \
- printrcl.c printrcy.c printrcy.h
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(srcdir)/gutenprintui2.pc.in printrcy.h printrcy.c printrcl.c \
+ $(top_srcdir)/scripts/depcomp $(top_srcdir)/scripts/ylwrap
subdir = src/gutenprintui2
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -83,6 +128,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(libdir)" \
"$(DESTDIR)$(pkgconfigdatadir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
@@ -95,43 +146,101 @@ am_libgutenprintui2_la_OBJECTS = libgutenprintui2_la-printrcy.lo \
libgutenprintui2_la-curve.lo libgutenprintui2_la-gammacurve.lo \
libgutenprintui2_la-typebuiltins.lo
libgutenprintui2_la_OBJECTS = $(am_libgutenprintui2_la_OBJECTS)
-libgutenprintui2_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libgutenprintui2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libgutenprintui2_la_CFLAGS) $(CFLAGS) \
$(libgutenprintui2_la_LDFLAGS) $(LDFLAGS) -o $@
@BUILD_LIBGUTENPRINTUI2_TRUE@am_libgutenprintui2_la_rpath = -rpath \
@BUILD_LIBGUTENPRINTUI2_TRUE@ $(libdir)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
@MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ ||
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
+LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
+LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS)
+AM_V_LEX = $(am__v_LEX_@AM_V@)
+am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@)
+am__v_LEX_0 = @echo " LEX " $@;
+am__v_LEX_1 =
YLWRAP = $(top_srcdir)/scripts/ylwrap
@MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ ||
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
+am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \
+ -e s/c++$$/h++/ -e s/c$$/h/
+YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
+LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS)
+AM_V_YACC = $(am__v_YACC_@AM_V@)
+am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@)
+am__v_YACC_0 = @echo " YACC " $@;
+am__v_YACC_1 =
SOURCES = $(libgutenprintui2_la_SOURCES)
DIST_SOURCES = $(libgutenprintui2_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(pkgconfigdata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -189,6 +298,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -200,6 +310,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -224,6 +335,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -407,6 +520,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -418,9 +532,9 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
gutenprintui2.pc: $(top_builddir)/config.status $(srcdir)/gutenprintui2.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
@@ -428,6 +542,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
else :; fi; \
done; \
test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -443,19 +559,20 @@ uninstall-libLTLIBRARIES:
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
printrcy.h: printrcy.c
- @if test ! -f $@; then \
- rm -f printrcy.c; \
- $(MAKE) $(AM_MAKEFLAGS) printrcy.c; \
- else :; fi
-libgutenprintui2.la: $(libgutenprintui2_la_OBJECTS) $(libgutenprintui2_la_DEPENDENCIES)
- $(libgutenprintui2_la_LINK) $(am_libgutenprintui2_la_rpath) $(libgutenprintui2_la_OBJECTS) $(libgutenprintui2_la_LIBADD) $(LIBS)
+ @if test ! -f $@; then rm -f printrcy.c; else :; fi
+ @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) printrcy.c; else :; fi
+
+libgutenprintui2.la: $(libgutenprintui2_la_OBJECTS) $(libgutenprintui2_la_DEPENDENCIES) $(EXTRA_libgutenprintui2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libgutenprintui2_la_LINK) $(am_libgutenprintui2_la_rpath) $(libgutenprintui2_la_OBJECTS) $(libgutenprintui2_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -474,94 +591,94 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgutenprintui2_la-ui-utils.Plo@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
libgutenprintui2_la-printrcy.lo: printrcy.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-printrcy.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-printrcy.Tpo -c -o libgutenprintui2_la-printrcy.lo `test -f 'printrcy.c' || echo '$(srcdir)/'`printrcy.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-printrcy.Tpo $(DEPDIR)/libgutenprintui2_la-printrcy.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='printrcy.c' object='libgutenprintui2_la-printrcy.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-printrcy.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-printrcy.Tpo -c -o libgutenprintui2_la-printrcy.lo `test -f 'printrcy.c' || echo '$(srcdir)/'`printrcy.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-printrcy.Tpo $(DEPDIR)/libgutenprintui2_la-printrcy.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printrcy.c' object='libgutenprintui2_la-printrcy.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-printrcy.lo `test -f 'printrcy.c' || echo '$(srcdir)/'`printrcy.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-printrcy.lo `test -f 'printrcy.c' || echo '$(srcdir)/'`printrcy.c
libgutenprintui2_la-printrcl.lo: printrcl.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-printrcl.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-printrcl.Tpo -c -o libgutenprintui2_la-printrcl.lo `test -f 'printrcl.c' || echo '$(srcdir)/'`printrcl.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-printrcl.Tpo $(DEPDIR)/libgutenprintui2_la-printrcl.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='printrcl.c' object='libgutenprintui2_la-printrcl.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-printrcl.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-printrcl.Tpo -c -o libgutenprintui2_la-printrcl.lo `test -f 'printrcl.c' || echo '$(srcdir)/'`printrcl.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-printrcl.Tpo $(DEPDIR)/libgutenprintui2_la-printrcl.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printrcl.c' object='libgutenprintui2_la-printrcl.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-printrcl.lo `test -f 'printrcl.c' || echo '$(srcdir)/'`printrcl.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-printrcl.lo `test -f 'printrcl.c' || echo '$(srcdir)/'`printrcl.c
libgutenprintui2_la-panel.lo: panel.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-panel.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-panel.Tpo -c -o libgutenprintui2_la-panel.lo `test -f 'panel.c' || echo '$(srcdir)/'`panel.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-panel.Tpo $(DEPDIR)/libgutenprintui2_la-panel.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='panel.c' object='libgutenprintui2_la-panel.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-panel.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-panel.Tpo -c -o libgutenprintui2_la-panel.lo `test -f 'panel.c' || echo '$(srcdir)/'`panel.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-panel.Tpo $(DEPDIR)/libgutenprintui2_la-panel.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='panel.c' object='libgutenprintui2_la-panel.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-panel.lo `test -f 'panel.c' || echo '$(srcdir)/'`panel.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-panel.lo `test -f 'panel.c' || echo '$(srcdir)/'`panel.c
libgutenprintui2_la-plist.lo: plist.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-plist.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-plist.Tpo -c -o libgutenprintui2_la-plist.lo `test -f 'plist.c' || echo '$(srcdir)/'`plist.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-plist.Tpo $(DEPDIR)/libgutenprintui2_la-plist.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plist.c' object='libgutenprintui2_la-plist.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-plist.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-plist.Tpo -c -o libgutenprintui2_la-plist.lo `test -f 'plist.c' || echo '$(srcdir)/'`plist.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-plist.Tpo $(DEPDIR)/libgutenprintui2_la-plist.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plist.c' object='libgutenprintui2_la-plist.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-plist.lo `test -f 'plist.c' || echo '$(srcdir)/'`plist.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-plist.lo `test -f 'plist.c' || echo '$(srcdir)/'`plist.c
libgutenprintui2_la-ui-utils.lo: ui-utils.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-ui-utils.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-ui-utils.Tpo -c -o libgutenprintui2_la-ui-utils.lo `test -f 'ui-utils.c' || echo '$(srcdir)/'`ui-utils.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-ui-utils.Tpo $(DEPDIR)/libgutenprintui2_la-ui-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ui-utils.c' object='libgutenprintui2_la-ui-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-ui-utils.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-ui-utils.Tpo -c -o libgutenprintui2_la-ui-utils.lo `test -f 'ui-utils.c' || echo '$(srcdir)/'`ui-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-ui-utils.Tpo $(DEPDIR)/libgutenprintui2_la-ui-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ui-utils.c' object='libgutenprintui2_la-ui-utils.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-ui-utils.lo `test -f 'ui-utils.c' || echo '$(srcdir)/'`ui-utils.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-ui-utils.lo `test -f 'ui-utils.c' || echo '$(srcdir)/'`ui-utils.c
libgutenprintui2_la-print-image-thumbnail.lo: print-image-thumbnail.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-print-image-thumbnail.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-print-image-thumbnail.Tpo -c -o libgutenprintui2_la-print-image-thumbnail.lo `test -f 'print-image-thumbnail.c' || echo '$(srcdir)/'`print-image-thumbnail.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-print-image-thumbnail.Tpo $(DEPDIR)/libgutenprintui2_la-print-image-thumbnail.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='print-image-thumbnail.c' object='libgutenprintui2_la-print-image-thumbnail.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-print-image-thumbnail.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-print-image-thumbnail.Tpo -c -o libgutenprintui2_la-print-image-thumbnail.lo `test -f 'print-image-thumbnail.c' || echo '$(srcdir)/'`print-image-thumbnail.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-print-image-thumbnail.Tpo $(DEPDIR)/libgutenprintui2_la-print-image-thumbnail.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print-image-thumbnail.c' object='libgutenprintui2_la-print-image-thumbnail.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-print-image-thumbnail.lo `test -f 'print-image-thumbnail.c' || echo '$(srcdir)/'`print-image-thumbnail.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-print-image-thumbnail.lo `test -f 'print-image-thumbnail.c' || echo '$(srcdir)/'`print-image-thumbnail.c
libgutenprintui2_la-curve.lo: curve.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-curve.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-curve.Tpo -c -o libgutenprintui2_la-curve.lo `test -f 'curve.c' || echo '$(srcdir)/'`curve.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-curve.Tpo $(DEPDIR)/libgutenprintui2_la-curve.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='curve.c' object='libgutenprintui2_la-curve.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-curve.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-curve.Tpo -c -o libgutenprintui2_la-curve.lo `test -f 'curve.c' || echo '$(srcdir)/'`curve.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-curve.Tpo $(DEPDIR)/libgutenprintui2_la-curve.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='curve.c' object='libgutenprintui2_la-curve.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-curve.lo `test -f 'curve.c' || echo '$(srcdir)/'`curve.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-curve.lo `test -f 'curve.c' || echo '$(srcdir)/'`curve.c
libgutenprintui2_la-gammacurve.lo: gammacurve.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-gammacurve.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-gammacurve.Tpo -c -o libgutenprintui2_la-gammacurve.lo `test -f 'gammacurve.c' || echo '$(srcdir)/'`gammacurve.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-gammacurve.Tpo $(DEPDIR)/libgutenprintui2_la-gammacurve.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gammacurve.c' object='libgutenprintui2_la-gammacurve.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-gammacurve.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-gammacurve.Tpo -c -o libgutenprintui2_la-gammacurve.lo `test -f 'gammacurve.c' || echo '$(srcdir)/'`gammacurve.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-gammacurve.Tpo $(DEPDIR)/libgutenprintui2_la-gammacurve.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gammacurve.c' object='libgutenprintui2_la-gammacurve.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-gammacurve.lo `test -f 'gammacurve.c' || echo '$(srcdir)/'`gammacurve.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-gammacurve.lo `test -f 'gammacurve.c' || echo '$(srcdir)/'`gammacurve.c
libgutenprintui2_la-typebuiltins.lo: typebuiltins.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-typebuiltins.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-typebuiltins.Tpo -c -o libgutenprintui2_la-typebuiltins.lo `test -f 'typebuiltins.c' || echo '$(srcdir)/'`typebuiltins.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libgutenprintui2_la-typebuiltins.Tpo $(DEPDIR)/libgutenprintui2_la-typebuiltins.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='typebuiltins.c' object='libgutenprintui2_la-typebuiltins.lo' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -MT libgutenprintui2_la-typebuiltins.lo -MD -MP -MF $(DEPDIR)/libgutenprintui2_la-typebuiltins.Tpo -c -o libgutenprintui2_la-typebuiltins.lo `test -f 'typebuiltins.c' || echo '$(srcdir)/'`typebuiltins.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgutenprintui2_la-typebuiltins.Tpo $(DEPDIR)/libgutenprintui2_la-typebuiltins.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='typebuiltins.c' object='libgutenprintui2_la-typebuiltins.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-typebuiltins.lo `test -f 'typebuiltins.c' || echo '$(srcdir)/'`typebuiltins.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgutenprintui2_la_CFLAGS) $(CFLAGS) -c -o libgutenprintui2_la-typebuiltins.lo `test -f 'typebuiltins.c' || echo '$(srcdir)/'`typebuiltins.c
.l.c:
- $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
+ $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
.y.c:
- $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
+ $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE)
mostlyclean-libtool:
-rm -f *.lo
@@ -570,8 +687,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgconfigdataDATA: $(pkgconfigdata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgconfigdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdatadir)"
@list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -585,30 +705,17 @@ uninstall-pkgconfigdataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgconfigdatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgconfigdatadir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ dir='$(DESTDIR)$(pkgconfigdatadir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -620,15 +727,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -637,6 +740,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -688,10 +806,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -780,20 +903,21 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigdataDATA
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-man install-pdf install-pdf-am \
- install-pkgconfigdataDATA install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-libLTLIBRARIES uninstall-pkgconfigdataDATA
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-libLTLIBRARIES install-man install-pdf \
+ install-pdf-am install-pkgconfigdataDATA install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am uninstall-libLTLIBRARIES \
+ uninstall-pkgconfigdataDATA
@SET_MAKE@
diff --git a/src/gutenprintui2/curve.c b/src/gutenprintui2/curve.c
index 6f89a53..dc9f3f9 100644
--- a/src/gutenprintui2/curve.c
+++ b/src/gutenprintui2/curve.c
@@ -35,10 +35,8 @@
#include <string.h>
#include <math.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkradiobutton.h>
-#include <gtk/gtktable.h>
-
+#include <gutenprintui2/gutenprintui.h>
+#include "gutenprintui-internal.h"
#include <gutenprint/gutenprint-intl-internal.h>
#include <gutenprintui2/curve.h>
@@ -440,7 +438,6 @@ stpui_curve_graph_events (GtkWidget *widget,
{
GdkCursorType new_type = c->cursor_type;
gint i, src, dst, leftbound, rightbound;
- GdkEventButton *bevent;
GdkEventMotion *mevent;
GtkWidget *w;
gint tx, ty;
@@ -494,7 +491,6 @@ stpui_curve_graph_events (GtkWidget *widget,
case GDK_BUTTON_PRESS:
gtk_grab_add (widget);
- bevent = (GdkEventButton *) event;
new_type = GDK_TCROSS;
switch (c->curve_type)
@@ -809,7 +805,7 @@ stpui_curve_reset (StpuiCurve *c)
void
stpui_curve_set_gamma (StpuiCurve *c, gfloat gamma)
{
- gfloat x, one_over_gamma, height, one_over_width;
+ gfloat x, one_over_gamma, height;
StpuiCurveType old_type;
gint i;
@@ -823,7 +819,6 @@ stpui_curve_set_gamma (StpuiCurve *c, gfloat gamma)
one_over_gamma = 1.0;
else
one_over_gamma = 1.0 / gamma;
- one_over_width = 1.0 / (c->num_points - 1);
height = c->height;
for (i = 0; i < c->num_points; ++i)
{
diff --git a/src/gutenprintui2/gammacurve.c b/src/gutenprintui2/gammacurve.c
index c195b7d..0572abd 100644
--- a/src/gutenprintui2/gammacurve.c
+++ b/src/gutenprintui2/gammacurve.c
@@ -35,23 +35,9 @@
#include <stdlib.h>
#include <stdio.h>
-#include <gtk/gtkdialog.h>
-#include <gtk/gtkdrawingarea.h>
-#include <gtk/gtkentry.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtkimage.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkradiobutton.h>
-#include <gtk/gtkstock.h>
-#include <gtk/gtktable.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtkwindow.h>
-
#include <gutenprint/gutenprint-intl-internal.h>
-
-#include <gutenprintui2/curve.h>
-#include <gutenprintui2/gammacurve.h>
+#include <gutenprintui2/gutenprintui.h>
+#include "gutenprintui-internal.h"
static GtkVBoxClass *parent_class = NULL;
@@ -320,7 +306,8 @@ button_realize_callback (GtkWidget *w)
i = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (w), "_StpuiGammaCurveIndex"));
pm = gdk_pixmap_create_from_xpm_d (w->window, &mask,
- &w->style->bg[GTK_STATE_NORMAL], (gchar **)xpm[i]);
+ &w->style->bg[GTK_STATE_NORMAL],
+ (gchar **) cast_safe(xpm[i]));
pixmap = gtk_image_new_from_pixmap (pm, mask);
gtk_container_add (GTK_CONTAINER (w), pixmap);
diff --git a/src/gutenprintui2/gutenprintui-internal.h b/src/gutenprintui2/gutenprintui-internal.h
index fef3b63..9a4530e 100644
--- a/src/gutenprintui2/gutenprintui-internal.h
+++ b/src/gutenprintui2/gutenprintui-internal.h
@@ -1,5 +1,5 @@
/*
- * "$Id: gutenprintui-internal.h,v 1.5 2008/01/22 02:36:42 rlk Exp $"
+ * "$Id: gutenprintui-internal.h,v 1.6 2014/01/04 00:31:37 rlk Exp $"
*
* Print plug-in for the GIMP.
*
@@ -34,8 +34,8 @@
#endif
#include <sys/types.h>
-#include <gtk/gtk.h>
+#include <gutenprintui2/gutenprintui.h>
#include <gutenprint/gutenprint.h>
typedef struct
@@ -250,4 +250,32 @@ extern void stpui_create_scale_entry(option_t *option,
stp_image_t *stpui_image_thumbnail_new(const guchar *data, gint w, gint h,
gint bpp);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
+static inline gint
+p2gint(void *p)
+{
+ return (gint) p;
+}
+#pragma GCC diagnostic pop
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wint-to-pointer-cast"
+static inline void *
+gint2p(int i)
+{
+ return (gpointer) i;
+}
+#pragma GCC diagnostic pop
+
+#pragma GCC diagnostic ignored "-Woverlength-strings"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-qual"
+static inline void *
+cast_safe(const void *ptr)
+{
+ return (void *)ptr;
+}
+#pragma GCC diagnostic pop
+
#endif /* GUTENPRINTUI_INTERNAL_H */
diff --git a/src/gutenprintui2/panel.c b/src/gutenprintui2/panel.c
index a81f073..ddfc2c3 100644
--- a/src/gutenprintui2/panel.c
+++ b/src/gutenprintui2/panel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: panel.c,v 1.19 2010/07/10 18:32:35 rlk Exp $"
+ * "$Id: panel.c,v 1.21 2014/01/12 02:06:13 rlk Exp $"
*
* Main window code for Print plug-in for the GIMP.
*
@@ -768,8 +768,8 @@ build_printer_combo(void)
stp_string_list_destroy(printer_list);
printer_list = stp_string_list_create();
for (i = 0; i < stpui_plist_count; i++)
- stp_string_list_add_string(printer_list,
- stpui_plist[i].name, stpui_plist[i].name);
+ stp_string_list_add_string_unsafe(printer_list,
+ stpui_plist[i].name, stpui_plist[i].name);
plist_build_combo(printer_combo,
NULL,
printer_list,
@@ -1441,6 +1441,7 @@ drawing_area_resize_callback(GtkWidget *widget, GdkEventConfigure *event)
return 1;
}
+#pragma GCC diagnostic ignored "-Woverlength-strings"
static void
create_preview (void)
{
@@ -1505,8 +1506,8 @@ create_positioning_button(GtkWidget *box, int invalid,
gtk_widget_show(button);
stpui_set_help_data(button, help);
g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(position_button_callback),
- (gpointer) invalid);
+ G_CALLBACK(position_button_callback),
+ gint2p(invalid));
return button;
}
@@ -1821,7 +1822,7 @@ create_printer_dialog (void)
{
const gchar *make = stp_printer_get_manufacturer(the_printer);
if (! stp_string_list_is_present(manufacturer_list, make))
- stp_string_list_add_string(manufacturer_list, make, make);
+ stp_string_list_add_string_unsafe(manufacturer_list, make, make);
}
}
@@ -2564,7 +2565,7 @@ create_units_frame (void)
0.5, unit->checkbox, 1, TRUE);
stpui_set_help_data(unit->checkbox, gettext(unit->help));
g_signal_connect(G_OBJECT(unit->checkbox), "toggled",
- G_CALLBACK(unit_callback), (gpointer) i);
+ G_CALLBACK(unit_callback), gint2p(i));
}
}
@@ -2603,7 +2604,7 @@ create_main_window (void)
do_update_thumbnail = 1;
build_printer_combo ();
- plist_callback (NULL, (gpointer) stpui_plist_current);
+ plist_callback (NULL, gint2p(stpui_plist_current));
update_adjusted_thumbnail (TRUE);
/* The initial size request does not account for the
@@ -2614,6 +2615,8 @@ create_main_window (void)
gtk_widget_show (print_dialog);
}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
static void
set_entry_value(GtkWidget *entry, double value, int block)
{
@@ -2641,6 +2644,7 @@ set_entry_value(GtkWidget *entry, double value, int block)
NULL,
NULL);
}
+#pragma GCC diagnostic pop
static void
reset_preview(void)
@@ -2955,7 +2959,7 @@ static void
position_button_callback(GtkWidget *widget, gpointer data)
{
reset_preview();
- pv->invalid_mask |= (gint) data;
+ pv->invalid_mask |= p2gint(data);
preview_update ();
}
@@ -3318,7 +3322,7 @@ do_all_updates(void)
static void
copy_count_callback(GtkAdjustment *adjustment, gpointer data)
{
- gint copy_count = (gint) adjustment->value;
+ gint copy_count = adjustment->value;
stpui_plist_set_copy_count(pv, copy_count);
update_standard_print_command();
}
@@ -3434,7 +3438,7 @@ plist_callback (GtkWidget *widget,
}
else
{
- stpui_plist_current = (gint) data;
+ stpui_plist_current = p2gint(data);
}
set_current_printer();
@@ -3668,20 +3672,23 @@ combo_callback(GtkWidget *widget, gpointer data)
/*
* orientation_callback() - Update the current media size.
*/
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wint-to-pointer-cast"
static void
orientation_callback (GtkWidget *widget,
gpointer data)
{
reset_preview ();
- if (pv->orientation != (gint) data)
+ if (pv->orientation != p2gint(data))
{
invalidate_preview_thumbnail ();
- set_orientation((gint) data);
+ set_orientation(p2gint(data));
update_adjusted_thumbnail(TRUE);
preview_update ();
}
}
+#pragma GCC diagnostic pop
/*
* output_type_callback() - Update the current output type.
@@ -3782,7 +3789,7 @@ unit_callback (GtkWidget *widget,
if (GTK_TOGGLE_BUTTON (widget)->active)
{
- pv->unit = (gint) data;
+ pv->unit = p2gint(data);
gtk_label_set_text(GTK_LABEL(units_label), units[pv->unit].name);
set_all_entry_values();
update_options();
@@ -3898,7 +3905,7 @@ setup_update (void)
idx = stp_get_printer_index_by_driver (stp_get_driver (pv->v));
idx = gtk_clist_find_row_from_data(GTK_CLIST(printer_driver),
- (gpointer) idx);
+ gint2p(idx));
/*
if (idx >= 0)
idx = 0;
@@ -4035,7 +4042,7 @@ set_printer(void)
gtk_label_set_text (GTK_LABEL (printer_model_label),
gettext (stp_printer_get_long_name (tmp_printer)));
- plist_callback (NULL, (gpointer) stpui_plist_current);
+ plist_callback (NULL, gint2p(stpui_plist_current));
}
/*
@@ -4139,7 +4146,7 @@ build_printer_driver_clist(void)
gtk_clist_insert (GTK_CLIST (printer_driver), current_idx, &tmp);
gtk_clist_set_row_data (GTK_CLIST (printer_driver), current_idx,
- (gpointer) i);
+ gint2p(i));
g_free(tmp);
current_idx++;
}
@@ -4168,6 +4175,8 @@ manufacturer_callback(GtkWidget *widget, /* I - Driver list */
/*
* print_driver_callback() - Update the current printer driver.
*/
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wint-to-pointer-cast"
static void
print_driver_callback (GtkWidget *widget, /* I - Driver list */
gint row,
@@ -4184,7 +4193,7 @@ print_driver_callback (GtkWidget *widget, /* I - Driver list */
invalidate_preview_thumbnail ();
reset_preview ();
data = gtk_clist_get_row_data (GTK_CLIST (widget), row);
- tmp_printer = stp_get_printer_by_index ((gint) data);
+ tmp_printer = stp_get_printer_by_index (p2gint(data));
tmp = stpui_build_standard_print_command(pv, tmp_printer);
gtk_entry_set_text(GTK_ENTRY(standard_cmd_entry), tmp);
g_free(tmp);
@@ -4192,6 +4201,7 @@ print_driver_callback (GtkWidget *widget, /* I - Driver list */
pop_ppd_box();
calling_print_driver_callback--;
}
+#pragma GCC diagnostic pop
/*
* ppd_browse_callback() -
@@ -4393,14 +4403,12 @@ static void
redraw_color_swatch (void)
{
static GdkGC *gc = NULL;
- static GdkColormap *cmap;
if (adjusted_thumbnail_data && swatch && swatch->widget.window)
{
if (gc == NULL)
{
gc = gdk_gc_new (swatch->widget.window);
- cmap = gtk_widget_get_colormap (GTK_WIDGET(swatch));
}
if (!print_mode_is_color(pv->v))
diff --git a/src/gutenprintui2/plist.c b/src/gutenprintui2/plist.c
index 77e8cab..7d70f4a 100644
--- a/src/gutenprintui2/plist.c
+++ b/src/gutenprintui2/plist.c
@@ -1,5 +1,5 @@
/*
- * "$Id: plist.c,v 1.18 2008/07/04 14:29:28 rlk Exp $"
+ * "$Id: plist.c,v 1.20 2014/01/04 00:31:37 rlk Exp $"
*
* Print plug-in for the GIMP.
*
@@ -350,12 +350,6 @@ writefunc(void *file, const char *buf, size_t bytes)
fwrite(buf, 1, bytes, prn);
}
-static void
-stpui_errfunc(void *file, const char *buf, size_t bytes)
-{
- g_message("%s",buf);
-}
-
void
stpui_printer_initialize(stpui_plist_t *printer)
{
@@ -966,7 +960,6 @@ extern int yyparse(void);
static void
stpui_printrc_load_v2(FILE *fp)
{
- int retval;
char *locale;
yyin = fp;
@@ -975,7 +968,7 @@ stpui_printrc_load_v2(FILE *fp)
locale = g_strdup(setlocale(LC_NUMERIC, NULL));
setlocale(LC_NUMERIC, "C");
#endif
- retval = yyparse();
+ (void) yyparse();
#ifdef HAVE_LOCALE_H
setlocale(LC_NUMERIC, locale);
SAFE_FREE(locale);
@@ -1249,8 +1242,8 @@ stpui_get_system_printers(void)
char line[1025]; /* Line from status command */
stpui_system_print_queues = stp_string_list_create();
- stp_string_list_add_string(stpui_system_print_queues, "",
- _("(Default Printer)"));
+ stp_string_list_add_string_unsafe(stpui_system_print_queues, "",
+ _("(Default Printer)"));
/*
* Run the command, if any, to get the available printers...
@@ -1281,8 +1274,8 @@ stpui_get_system_printers(void)
if (strlen(line) > 0)
{
if (!stp_string_list_is_present(stpui_system_print_queues, line))
- stp_string_list_add_string(stpui_system_print_queues,
- line, line);
+ stp_string_list_add_string_unsafe(stpui_system_print_queues,
+ line, line);
}
}
pclose(pfile);
@@ -1637,7 +1630,6 @@ stpui_print(const stpui_plist_t *printer, stpui_image_t *image)
else /* Child 2 (printer command) */
{
char *command;
- char *locale;
if (stpui_plist_get_command_type(printer) ==
COMMAND_TYPE_DEFAULT)
{
@@ -1648,7 +1640,7 @@ stpui_print(const stpui_plist_t *printer, stpui_image_t *image)
}
else
command =
- (char *) stpui_plist_get_custom_command(printer);
+ cast_safe(stpui_plist_get_custom_command(printer));
(void) close(2);
(void) close(1);
dup2 (errfd[1], 2);
@@ -1658,7 +1650,7 @@ stpui_print(const stpui_plist_t *printer, stpui_image_t *image)
close (pipefd[1]);
close(syncfd[1]);
#ifdef HAVE_LOCALE_H
- locale = g_strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, NULL);
setlocale(LC_NUMERIC, "C");
#endif
execl("/bin/sh", "/bin/sh", "-c", command, NULL);
@@ -1828,11 +1820,12 @@ stpui_print(const stpui_plist_t *printer, stpui_image_t *image)
}
stpui_plist_destroy(np);
g_free(np);
- return 1;
+ return print_status;
}
+
return 0;
}
/*
- * End of "$Id: plist.c,v 1.18 2008/07/04 14:29:28 rlk Exp $".
+ * End of "$Id: plist.c,v 1.20 2014/01/04 00:31:37 rlk Exp $".
*/
diff --git a/src/gutenprintui2/printrcl.c b/src/gutenprintui2/printrcl.c
index 088e296..ab63fe1 100644
--- a/src/gutenprintui2/printrcl.c
+++ b/src/gutenprintui2/printrcl.c
@@ -8,7 +8,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
+#define YY_FLEX_SUBMINOR_VERSION 37
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -53,7 +53,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,6 +83,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
+#endif /* ! C99 */
+
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -152,7 +153,12 @@ typedef unsigned int flex_uint32_t;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
-extern int yyleng;
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
extern FILE *yyin, *yyout;
@@ -178,11 +184,6 @@ extern FILE *yyin, *yyout;
#define unput(c) yyunput( c, (yytext_ptr) )
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
@@ -200,7 +201,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
- int yy_n_chars;
+ yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@@ -270,8 +271,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-int yyleng;
+static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
@@ -299,7 +300,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
void *yyalloc (yy_size_t );
void *yyrealloc (void *,yy_size_t );
@@ -329,7 +330,7 @@ void yyfree (void * );
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-#define yywrap(n) 1
+#define yywrap() 1
#define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR;
@@ -717,7 +718,7 @@ int yy_flex_debug = 0;
char *yytext;
#line 1 "printrcl.l"
/* -*-Mode: C-*-
- * "$Id: printrcl.l,v 1.2 2012/05/11 13:16:12 rlk Exp $"
+ * "$Id: printrcl.l,v 1.3 2014/01/04 00:31:37 rlk Exp $"
*
* printrc parser
*
@@ -754,6 +755,10 @@ char *yytext;
#define YY_NO_UNPUT
+/* Bison does some stuff that triggers unimportant warnings. */
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#pragma GCC diagnostic ignored "-Wunused-function"
+
int mylineno = 1;
extern YYSTYPE yylval;
@@ -776,7 +781,7 @@ q_strdup(const char *s)
return g_strndup(s + 1, strlen(s) - 2);
}
-#line 780 "printrcl.c"
+#line 785 "printrcl.c"
#define INITIAL 0
@@ -815,7 +820,7 @@ FILE *yyget_out (void );
void yyset_out (FILE * out_str );
-int yyget_leng (void );
+yy_size_t yyget_leng (void );
char *yyget_text (void );
@@ -865,7 +870,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -876,7 +881,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- int n; \
+ size_t n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -958,10 +963,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 75 "printrcl.l"
+#line 79 "printrcl.l"
-#line 965 "printrcl.c"
+#line 970 "printrcl.c"
if ( !(yy_init) )
{
@@ -1046,208 +1051,208 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 77 "printrcl.l"
+#line 81 "printrcl.l"
DBG(CURRENT_PRINTER); return CURRENT_PRINTER;
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 78 "printrcl.l"
+#line 82 "printrcl.l"
DBG(SHOW_ALL_PAPER_SIZES); return SHOW_ALL_PAPER_SIZES;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 79 "printrcl.l"
+#line 83 "printrcl.l"
DBG(PRINTER); return PRINTER;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 80 "printrcl.l"
+#line 84 "printrcl.l"
DBG(DESTINATION); return DESTINATION;
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 81 "printrcl.l"
+#line 85 "printrcl.l"
DBG(SCALING); return SCALING;
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 82 "printrcl.l"
+#line 86 "printrcl.l"
DBG(ORIENTATION); return ORIENTATION;
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 83 "printrcl.l"
+#line 87 "printrcl.l"
DBG(AUTOSIZE_ROLL_PAPER); return AUTOSIZE_ROLL_PAPER;
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 84 "printrcl.l"
+#line 88 "printrcl.l"
DBG(UNIT); return UNIT;
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 85 "printrcl.l"
+#line 89 "printrcl.l"
DBG(DRIVER); return DRIVER;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 86 "printrcl.l"
+#line 90 "printrcl.l"
DBG(LEFT); return LEFT;
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 87 "printrcl.l"
+#line 91 "printrcl.l"
DBG(TOP); return TOP;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 88 "printrcl.l"
+#line 92 "printrcl.l"
DBG(CUSTOM_PAGE_WIDTH); return CUSTOM_PAGE_WIDTH;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 89 "printrcl.l"
+#line 93 "printrcl.l"
DBG(CUSTOM_PAGE_HEIGHT); return CUSTOM_PAGE_HEIGHT;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 90 "printrcl.l"
+#line 94 "printrcl.l"
DBG(OUTPUT_TYPE); return OUTPUT_TYPE;
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 91 "printrcl.l"
+#line 95 "printrcl.l"
DBG(PARAMETER); return PARAMETER;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 92 "printrcl.l"
+#line 96 "printrcl.l"
DBG(QUEUE_NAME); return QUEUE_NAME;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 93 "printrcl.l"
+#line 97 "printrcl.l"
DBG(OUTPUT_FILENAME); return OUTPUT_FILENAME;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 94 "printrcl.l"
+#line 98 "printrcl.l"
DBG(EXTRA_PRINTER_OPTIONS); return EXTRA_PRINTER_OPTIONS;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 95 "printrcl.l"
+#line 99 "printrcl.l"
DBG(CUSTOM_COMMAND); return CUSTOM_COMMAND;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 96 "printrcl.l"
+#line 100 "printrcl.l"
DBG(COMMAND_TYPE); return COMMAND_TYPE;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 97 "printrcl.l"
+#line 101 "printrcl.l"
DBG(GLOBAL_SETTINGS); return GLOBAL_SETTINGS;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 98 "printrcl.l"
+#line 102 "printrcl.l"
DBG(END_GLOBAL_SETTINGS); return END_GLOBAL_SETTINGS;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 99 "printrcl.l"
+#line 103 "printrcl.l"
DBG(GLOBAL); return GLOBAL;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 101 "printrcl.l"
+#line 105 "printrcl.l"
DBG(pINT); return pINT;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 102 "printrcl.l"
+#line 106 "printrcl.l"
DBG(pSTRING_LIST); return pSTRING_LIST;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 103 "printrcl.l"
+#line 107 "printrcl.l"
DBG(pFILE); return pFILE;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 104 "printrcl.l"
+#line 108 "printrcl.l"
DBG(pDOUBLE); return pDOUBLE;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 105 "printrcl.l"
+#line 109 "printrcl.l"
DBG(pDIMENSION); return pDIMENSION;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 106 "printrcl.l"
+#line 110 "printrcl.l"
DBG(pBOOLEAN); return pBOOLEAN;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 107 "printrcl.l"
+#line 111 "printrcl.l"
DBG(pCURVE); return pCURVE;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 109 "printrcl.l"
+#line 113 "printrcl.l"
yylval.ival = atoi(yytext); DBG(tINT); return tINT;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 110 "printrcl.l"
+#line 114 "printrcl.l"
yylval.dval = strtod(yytext, NULL); DBG(tDOUBLE); return tDOUBLE;
YY_BREAK
case 33:
/* rule 33 can match eol */
YY_RULE_SETUP
-#line 111 "printrcl.l"
+#line 115 "printrcl.l"
yylval.sval = q_strdup(yytext); DBG(tSTRING); return tSTRING;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 112 "printrcl.l"
+#line 116 "printrcl.l"
yylval.sval = g_strdup(yytext); DBG(tBOOLEAN); return tBOOLEAN;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 113 "printrcl.l"
+#line 117 "printrcl.l"
yylval.sval = g_strdup(yytext); DBG(tWORD); return tWORD;
YY_BREAK
case 36:
/* rule 36 can match eol */
YY_RULE_SETUP
-#line 114 "printrcl.l"
+#line 118 "printrcl.l"
DBG(PRINTRC_HDR); return PRINTRC_HDR;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 115 "printrcl.l"
+#line 119 "printrcl.l"
DBG(whitespace1); /* Skip blanks/tabs */
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 116 "printrcl.l"
+#line 120 "printrcl.l"
DBG(comment1); /* Skip comments */
YY_BREAK
case 39:
/* rule 39 can match eol */
YY_RULE_SETUP
-#line 117 "printrcl.l"
+#line 121 "printrcl.l"
DBG(newline); mylineno++;
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 118 "printrcl.l"
+#line 122 "printrcl.l"
ECHO;
YY_BREAK
-#line 1251 "printrcl.c"
+#line 1256 "printrcl.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1433,21 +1438,21 @@ static int yy_get_next_buffer (void)
else
{
- int num_to_read =
+ yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
- int new_size = b->yy_buf_size * 2;
+ yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
@@ -1478,7 +1483,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), (size_t) num_to_read );
+ (yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@@ -1573,7 +1578,7 @@ static int yy_get_next_buffer (void)
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 335);
- return yy_is_jam ? 0 : yy_current_state;
+ return yy_is_jam ? 0 : yy_current_state;
}
static void yyunput (int c, register char * yy_bp )
@@ -1588,7 +1593,7 @@ static int yy_get_next_buffer (void)
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
- register int number_to_move = (yy_n_chars) + 2;
+ register yy_size_t number_to_move = (yy_n_chars) + 2;
register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
register char *source =
@@ -1637,7 +1642,7 @@ static int yy_get_next_buffer (void)
else
{ /* need more input */
- int offset = (yy_c_buf_p) - (yytext_ptr);
+ yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
@@ -1797,10 +1802,6 @@ static void yy_load_buffer_state (void)
yyfree((void *) b );
}
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a yyrestart() or at EOF.
@@ -1913,7 +1914,7 @@ void yypop_buffer_state (void)
*/
static void yyensure_buffer_stack (void)
{
- int num_to_alloc;
+ yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
@@ -2005,12 +2006,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
-YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
@@ -2097,7 +2098,7 @@ FILE *yyget_out (void)
/** Get the length of the current token.
*
*/
-int yyget_leng (void)
+yy_size_t yyget_leng (void)
{
return yyleng;
}
@@ -2245,4 +2246,4 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 118 "printrcl.l"
+#line 122 "printrcl.l"
diff --git a/src/gutenprintui2/printrcl.l b/src/gutenprintui2/printrcl.l
index e9ac6d1..a013e1f 100644
--- a/src/gutenprintui2/printrcl.l
+++ b/src/gutenprintui2/printrcl.l
@@ -1,5 +1,5 @@
/* -*-Mode: C-*-
- * "$Id: printrcl.l,v 1.2 2012/05/11 13:16:12 rlk Exp $"
+ * "$Id: printrcl.l,v 1.3 2014/01/04 00:31:37 rlk Exp $"
*
* printrc parser
*
@@ -37,6 +37,10 @@
#define YY_NO_UNPUT
+/* Bison does some stuff that triggers unimportant warnings. */
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#pragma GCC diagnostic ignored "-Wunused-function"
+
int mylineno = 1;
extern YYSTYPE yylval;
diff --git a/src/gutenprintui2/ui-utils.c b/src/gutenprintui2/ui-utils.c
index d45d22a..724f884 100644
--- a/src/gutenprintui2/ui-utils.c
+++ b/src/gutenprintui2/ui-utils.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ui-utils.c,v 1.4 2012/01/19 13:26:57 m0m Exp $"
+ * "$Id: ui-utils.c,v 1.5 2014/01/04 00:31:37 rlk Exp $"
*
* Main window code for Print plug-in for the GIMP.
*
@@ -50,6 +50,8 @@ typedef void (*StpuiBasicCallback) (GObject *object,
gpointer user_data);
/* local callbacks of dialog_new () */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-pedantic"
static gint
dialog_delete_callback (GtkWidget *widget,
GdkEvent *event,
@@ -71,6 +73,7 @@ dialog_delete_callback (GtkWidget *widget,
return TRUE;
}
+#pragma GCC diagnostic pop
/**
* dialog_create_action_areav:
@@ -79,6 +82,8 @@ dialog_delete_callback (GtkWidget *widget,
* buttons.
*
*/
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-pedantic"
static void
dialog_create_action_areav (GtkDialog *dialog,
va_list args)
@@ -173,6 +178,7 @@ dialog_create_action_areav (GtkDialog *dialog,
label = va_arg (args, gchar *);
}
}
+#pragma GCC diagnostic pop
/**
* dialog_new:
@@ -771,7 +777,7 @@ stpui_create_radio_button(radio_group_t *radio, GSList *group,
radio->button, 1, FALSE);
stpui_set_help_data(radio->button, gettext(radio->help));
g_signal_connect(G_OBJECT(radio->button), "toggled",
- G_CALLBACK(callback), (gpointer) radio->value);
+ G_CALLBACK(callback), cast_safe(radio->value));
return group;
}
diff --git a/src/main/Makefile.in b/src/main/Makefile.in
index 6dfeb32..7006fc9 100644
--- a/src/main/Makefile.in
+++ b/src/main/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -22,6 +21,51 @@
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -40,8 +84,9 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/gutenprint.pc.in $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(srcdir)/gutenprint.pc.in $(top_srcdir)/scripts/depcomp
subdir = src/main
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -82,15 +127,26 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgmoduledir)" \
"$(DESTDIR)$(pkgconfigdatadir)"
LTLIBRARIES = $(lib_LTLIBRARIES) $(pkgmodule_LTLIBRARIES)
color_traditional_la_LIBADD =
am_color_traditional_la_OBJECTS = print-color.lo color-conversions.lo
color_traditional_la_OBJECTS = $(am_color_traditional_la_OBJECTS)
-color_traditional_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(color_traditional_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+color_traditional_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(color_traditional_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
@BUILD_MODULES_TRUE@am_color_traditional_la_rpath = -rpath \
@BUILD_MODULES_TRUE@ $(pkgmoduledir)
am__DEPENDENCIES_1 =
@@ -137,73 +193,99 @@ am_libgutenprint_la_OBJECTS = array.lo bit-ops.lo channel.lo color.lo \
printers.lo sequence.lo string-list.lo xml.lo $(am__objects_1) \
$(am__objects_2) $(am__objects_12)
libgutenprint_la_OBJECTS = $(am_libgutenprint_la_OBJECTS)
-libgutenprint_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libgutenprint_la_LDFLAGS) $(LDFLAGS) -o $@
+libgutenprint_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libgutenprint_la_LDFLAGS) $(LDFLAGS) \
+ -o $@
print_canon_la_LIBADD =
am_print_canon_la_OBJECTS = print-canon.lo
print_canon_la_OBJECTS = $(am_print_canon_la_OBJECTS)
-print_canon_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(print_canon_la_LDFLAGS) $(LDFLAGS) -o $@
+print_canon_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(print_canon_la_LDFLAGS) $(LDFLAGS) -o \
+ $@
@BUILD_MODULES_TRUE@am_print_canon_la_rpath = -rpath $(pkgmoduledir)
print_dyesub_la_LIBADD =
am_print_dyesub_la_OBJECTS = print-olympus.lo
print_dyesub_la_OBJECTS = $(am_print_dyesub_la_OBJECTS)
-print_dyesub_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(print_dyesub_la_LDFLAGS) $(LDFLAGS) -o $@
+print_dyesub_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(print_dyesub_la_LDFLAGS) $(LDFLAGS) \
+ -o $@
@BUILD_MODULES_TRUE@am_print_dyesub_la_rpath = -rpath $(pkgmoduledir)
print_escp2_la_LIBADD =
am_print_escp2_la_OBJECTS = print-escp2.lo escp2-driver.lo \
print-escp2-data.lo escp2-channels.lo escp2-papers.lo \
escp2-resolutions.lo
print_escp2_la_OBJECTS = $(am_print_escp2_la_OBJECTS)
-print_escp2_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(print_escp2_la_LDFLAGS) $(LDFLAGS) -o $@
+print_escp2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(print_escp2_la_LDFLAGS) $(LDFLAGS) -o \
+ $@
@BUILD_MODULES_TRUE@am_print_escp2_la_rpath = -rpath $(pkgmoduledir)
print_lexmark_la_LIBADD =
am_print_lexmark_la_OBJECTS = print-lexmark.lo
print_lexmark_la_OBJECTS = $(am_print_lexmark_la_OBJECTS)
-print_lexmark_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(print_lexmark_la_LDFLAGS) $(LDFLAGS) -o $@
+print_lexmark_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(print_lexmark_la_LDFLAGS) $(LDFLAGS) \
+ -o $@
@BUILD_MODULES_TRUE@am_print_lexmark_la_rpath = -rpath $(pkgmoduledir)
print_pcl_la_LIBADD =
am_print_pcl_la_OBJECTS = print-pcl.lo
print_pcl_la_OBJECTS = $(am_print_pcl_la_OBJECTS)
-print_pcl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+print_pcl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(print_pcl_la_LDFLAGS) $(LDFLAGS) -o $@
@BUILD_MODULES_TRUE@am_print_pcl_la_rpath = -rpath $(pkgmoduledir)
print_ps_la_LIBADD =
am_print_ps_la_OBJECTS = print-ps.lo xmlppd.lo
print_ps_la_OBJECTS = $(am_print_ps_la_OBJECTS)
-print_ps_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+print_ps_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(print_ps_la_LDFLAGS) $(LDFLAGS) -o $@
@BUILD_MODULES_TRUE@am_print_ps_la_rpath = -rpath $(pkgmoduledir)
print_raw_la_LIBADD =
am_print_raw_la_OBJECTS = print-raw.lo
print_raw_la_OBJECTS = $(am_print_raw_la_OBJECTS)
-print_raw_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+print_raw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(print_raw_la_LDFLAGS) $(LDFLAGS) -o $@
@BUILD_MODULES_TRUE@am_print_raw_la_rpath = -rpath $(pkgmoduledir)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
SOURCES = $(color_traditional_la_SOURCES) $(libgutenprint_la_SOURCES) \
$(print_canon_la_SOURCES) $(print_dyesub_la_SOURCES) \
$(print_escp2_la_SOURCES) $(print_lexmark_la_SOURCES) \
@@ -214,13 +296,36 @@ DIST_SOURCES = $(color_traditional_la_SOURCES) \
$(print_dyesub_la_SOURCES) $(print_escp2_la_SOURCES) \
$(print_lexmark_la_SOURCES) $(print_pcl_la_SOURCES) \
$(print_ps_la_SOURCES) $(print_raw_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(pkgconfigdata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -278,6 +383,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -289,6 +395,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -313,6 +420,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -577,6 +686,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -588,9 +698,9 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
gutenprint.pc: $(top_builddir)/config.status $(srcdir)/gutenprint.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
@@ -598,6 +708,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
else :; fi; \
done; \
test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -613,15 +725,17 @@ uninstall-libLTLIBRARIES:
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
install-pkgmoduleLTLIBRARIES: $(pkgmodule_LTLIBRARIES)
@$(NORMAL_INSTALL)
- test -z "$(pkgmoduledir)" || $(MKDIR_P) "$(DESTDIR)$(pkgmoduledir)"
@list='$(pkgmodule_LTLIBRARIES)'; test -n "$(pkgmoduledir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
@@ -629,6 +743,8 @@ install-pkgmoduleLTLIBRARIES: $(pkgmodule_LTLIBRARIES)
else :; fi; \
done; \
test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgmoduledir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgmoduledir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgmoduledir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgmoduledir)"; \
}
@@ -644,30 +760,41 @@ uninstall-pkgmoduleLTLIBRARIES:
clean-pkgmoduleLTLIBRARIES:
-test -z "$(pkgmodule_LTLIBRARIES)" || rm -f $(pkgmodule_LTLIBRARIES)
- @list='$(pkgmodule_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-color-traditional.la: $(color_traditional_la_OBJECTS) $(color_traditional_la_DEPENDENCIES)
- $(color_traditional_la_LINK) $(am_color_traditional_la_rpath) $(color_traditional_la_OBJECTS) $(color_traditional_la_LIBADD) $(LIBS)
-libgutenprint.la: $(libgutenprint_la_OBJECTS) $(libgutenprint_la_DEPENDENCIES)
- $(libgutenprint_la_LINK) -rpath $(libdir) $(libgutenprint_la_OBJECTS) $(libgutenprint_la_LIBADD) $(LIBS)
-print-canon.la: $(print_canon_la_OBJECTS) $(print_canon_la_DEPENDENCIES)
- $(print_canon_la_LINK) $(am_print_canon_la_rpath) $(print_canon_la_OBJECTS) $(print_canon_la_LIBADD) $(LIBS)
-print-dyesub.la: $(print_dyesub_la_OBJECTS) $(print_dyesub_la_DEPENDENCIES)
- $(print_dyesub_la_LINK) $(am_print_dyesub_la_rpath) $(print_dyesub_la_OBJECTS) $(print_dyesub_la_LIBADD) $(LIBS)
-print-escp2.la: $(print_escp2_la_OBJECTS) $(print_escp2_la_DEPENDENCIES)
- $(print_escp2_la_LINK) $(am_print_escp2_la_rpath) $(print_escp2_la_OBJECTS) $(print_escp2_la_LIBADD) $(LIBS)
-print-lexmark.la: $(print_lexmark_la_OBJECTS) $(print_lexmark_la_DEPENDENCIES)
- $(print_lexmark_la_LINK) $(am_print_lexmark_la_rpath) $(print_lexmark_la_OBJECTS) $(print_lexmark_la_LIBADD) $(LIBS)
-print-pcl.la: $(print_pcl_la_OBJECTS) $(print_pcl_la_DEPENDENCIES)
- $(print_pcl_la_LINK) $(am_print_pcl_la_rpath) $(print_pcl_la_OBJECTS) $(print_pcl_la_LIBADD) $(LIBS)
-print-ps.la: $(print_ps_la_OBJECTS) $(print_ps_la_DEPENDENCIES)
- $(print_ps_la_LINK) $(am_print_ps_la_rpath) $(print_ps_la_OBJECTS) $(print_ps_la_LIBADD) $(LIBS)
-print-raw.la: $(print_raw_la_OBJECTS) $(print_raw_la_DEPENDENCIES)
- $(print_raw_la_LINK) $(am_print_raw_la_rpath) $(print_raw_la_OBJECTS) $(print_raw_la_LIBADD) $(LIBS)
+ @list='$(pkgmodule_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+color-traditional.la: $(color_traditional_la_OBJECTS) $(color_traditional_la_DEPENDENCIES) $(EXTRA_color_traditional_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(color_traditional_la_LINK) $(am_color_traditional_la_rpath) $(color_traditional_la_OBJECTS) $(color_traditional_la_LIBADD) $(LIBS)
+
+libgutenprint.la: $(libgutenprint_la_OBJECTS) $(libgutenprint_la_DEPENDENCIES) $(EXTRA_libgutenprint_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libgutenprint_la_LINK) -rpath $(libdir) $(libgutenprint_la_OBJECTS) $(libgutenprint_la_LIBADD) $(LIBS)
+
+print-canon.la: $(print_canon_la_OBJECTS) $(print_canon_la_DEPENDENCIES) $(EXTRA_print_canon_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(print_canon_la_LINK) $(am_print_canon_la_rpath) $(print_canon_la_OBJECTS) $(print_canon_la_LIBADD) $(LIBS)
+
+print-dyesub.la: $(print_dyesub_la_OBJECTS) $(print_dyesub_la_DEPENDENCIES) $(EXTRA_print_dyesub_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(print_dyesub_la_LINK) $(am_print_dyesub_la_rpath) $(print_dyesub_la_OBJECTS) $(print_dyesub_la_LIBADD) $(LIBS)
+
+print-escp2.la: $(print_escp2_la_OBJECTS) $(print_escp2_la_DEPENDENCIES) $(EXTRA_print_escp2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(print_escp2_la_LINK) $(am_print_escp2_la_rpath) $(print_escp2_la_OBJECTS) $(print_escp2_la_LIBADD) $(LIBS)
+
+print-lexmark.la: $(print_lexmark_la_OBJECTS) $(print_lexmark_la_DEPENDENCIES) $(EXTRA_print_lexmark_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(print_lexmark_la_LINK) $(am_print_lexmark_la_rpath) $(print_lexmark_la_OBJECTS) $(print_lexmark_la_LIBADD) $(LIBS)
+
+print-pcl.la: $(print_pcl_la_OBJECTS) $(print_pcl_la_DEPENDENCIES) $(EXTRA_print_pcl_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(print_pcl_la_LINK) $(am_print_pcl_la_rpath) $(print_pcl_la_OBJECTS) $(print_pcl_la_LIBADD) $(LIBS)
+
+print-ps.la: $(print_ps_la_OBJECTS) $(print_ps_la_DEPENDENCIES) $(EXTRA_print_ps_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(print_ps_la_LINK) $(am_print_ps_la_rpath) $(print_ps_la_OBJECTS) $(print_ps_la_LIBADD) $(LIBS)
+
+print-raw.la: $(print_raw_la_OBJECTS) $(print_raw_la_DEPENDENCIES) $(EXTRA_print_raw_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(print_raw_la_LINK) $(am_print_raw_la_rpath) $(print_raw_la_OBJECTS) $(print_raw_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -725,25 +852,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlppd.Plo@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -752,8 +879,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgconfigdataDATA: $(pkgconfigdata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgconfigdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdatadir)"
@list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -767,30 +897,17 @@ uninstall-pkgconfigdataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgconfigdatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgconfigdatadir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ dir='$(DESTDIR)$(pkgconfigdatadir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -802,15 +919,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -819,6 +932,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -870,10 +998,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -961,22 +1094,22 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigdataDATA \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool clean-pkgmoduleLTLIBRARIES \
- ctags distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-libLTLIBRARIES install-man install-pdf \
- install-pdf-am install-pkgconfigdataDATA \
- install-pkgmoduleLTLIBRARIES install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-libLTLIBRARIES uninstall-pkgconfigdataDATA \
- uninstall-pkgmoduleLTLIBRARIES
+ cscopelist-am ctags ctags-am distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-man install-pdf install-pdf-am \
+ install-pkgconfigdataDATA install-pkgmoduleLTLIBRARIES \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \
+ uninstall-pkgconfigdataDATA uninstall-pkgmoduleLTLIBRARIES
@SET_MAKE@
diff --git a/src/main/canon-inks.h b/src/main/canon-inks.h
index ff478a9..5c0f2e5 100644
--- a/src/main/canon-inks.h
+++ b/src/main/canon-inks.h
@@ -54,6 +54,8 @@ typedef struct {
const int bits; /* bitdepth */
const int flags; /* flags: */
#define INK_FLAG_5pixel_in_1byte 0x1 /* use special compression where 5 3level pixels get stored in 1 byte */
+#define INK_FLAG_3pixel5level_in_1byte 0x2 /* use special compression where 3 5level pixels get stored in 1 byte */
+#define INK_FLAG_3pixel6level_in_1byte 0x4 /* use special compression where 3 6level pixels get stored in 1 byte */
int numsizes; /* number of possible {bit,density} tuples */
const stp_dotsize_t *dot_sizes; /* pointer to an array of {bit,density} tuples */
} canon_ink_t;
@@ -110,7 +112,6 @@ DECLARE_INK(2,4);
/*under development*/
DECLARE_INK(4,4);
-DECLARE_INK_EXTENDED(4,4,INK_FLAG_5pixel_in_1byte);
static const stp_dotsize_t dotsizes_5l[] = {
{ 0x1, 0.45 },
@@ -121,7 +122,7 @@ static const stp_dotsize_t dotsizes_5l[] = {
/*under development*/
DECLARE_INK(4,5);
-DECLARE_INK_EXTENDED(4,5,INK_FLAG_5pixel_in_1byte);
+DECLARE_INK_EXTENDED(4,5,INK_FLAG_3pixel5level_in_1byte);
static const stp_dotsize_t dotsizes_6l[] = {
{ 0x1, 0.2 },
@@ -133,7 +134,7 @@ static const stp_dotsize_t dotsizes_6l[] = {
/*under development*/
DECLARE_INK(4,6);
-DECLARE_INK_EXTENDED(4,6,INK_FLAG_5pixel_in_1byte);
+DECLARE_INK_EXTENDED(4,6,INK_FLAG_3pixel6level_in_1byte);
static const stp_dotsize_t dotsizes_7l[] = {
{ 0x1, 0.45 },
@@ -1436,6 +1437,54 @@ static const canon_inkset_t canon_13_C3M3Y2K2k3photo_c_inkset[] = {
{0,0.0,NULL},
};
+static const canon_inkset_t canon_13_C3M3Y2K3k3_c_inkset[] = {
+ {'C',1.0,&canon_2b_3l_c_ink},
+ {'M',1.0,&canon_2b_3l_c_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_3l_c_ink},/* swapped y and k */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+static const canon_inkset_t canon_13_C3M3Y2K3k3on_c_inkset[] = {
+ {'C',1.0,&canon_2b_3l_c_ink},
+ {'M',1.0,&canon_2b_3l_c_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink},/* swapped y and k */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+static const canon_inkset_t canon_13_C3M3Y2K3k3photo_c_inkset[] = {
+ {'C',1.0,&canon_2b_3l_c_ink},
+ {'M',1.0,&canon_2b_3l_c_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',0.0,&canon_2b_3l_c_ink},/* switched off */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink},/* swapped y and k */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
static const canon_inkset_t canon_13_C3M3Y3k3c3m3_inkset[] = {
{'C',1.0,&canon_2b_3l_ink},
{'M',1.0,&canon_2b_3l_ink},
@@ -1484,11 +1533,11 @@ static const canon_inkset_t canon_13_C4M4Y4_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_13_C4M4Y4K2_inkset[] = {
+static const canon_inkset_t canon_13_C4M4Y3K3_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
- {'Y',1.0,&canon_2b_4l_ink},
- {'K',1.0,&canon_1b_2l_ink},
+ {'Y',1.0,&canon_2b_3l_ink},
+ {'K',1.0,&canon_2b_3l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1500,11 +1549,11 @@ static const canon_inkset_t canon_13_C4M4Y4K2_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_13_C4M4Y3K3_inkset[] = {
+static const canon_inkset_t canon_13_C4M4Y3K4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
{'Y',1.0,&canon_2b_3l_ink},
- {'K',1.0,&canon_2b_3l_ink},
+ {'K',1.0,&canon_2b_4l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1516,17 +1565,49 @@ static const canon_inkset_t canon_13_C4M4Y3K3_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_13_C4M4Y3K4_inkset[] = {
+static const canon_inkset_t canon_13_C4M4Y4K2_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
- {'Y',1.0,&canon_2b_3l_ink},
- {'K',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
+};
+
+static const canon_inkset_t canon_13_C4M4Y4K3k4off_c_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_4l_ink}, /* swapped y and k */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+static const canon_inkset_t canon_13_C4M4Y4K3k4_c_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink}, /* swapped y and k */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1644,22 +1725,6 @@ static const canon_inkset_t canon_13_C4M4Y4c4m4y4_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_13_C5M5Y4y4_inkset[] = {
- {'C',1.0,&canon_4b_5l_ink},
- {'M',1.0,&canon_4b_5l_ink},
- {'Y',1.0,&canon_2b_4l_ink},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
-};
-
static const canon_inkset_t canon_13_C5M5Y4k4_inkset[] = {
{'C',1.0,&canon_4b_5l_ink},
{'M',1.0,&canon_4b_5l_ink},
@@ -1708,22 +1773,6 @@ static const canon_inkset_t canon_13_C6M6Y2K2k4_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_13_C6M6Y4y4_inkset[] = {
- {'C',1.0,&canon_4b_6l_ink},
- {'M',1.0,&canon_4b_6l_ink},
- {'Y',1.0,&canon_2b_4l_ink},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink}, /* set y to k for photo modes */
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
-};
-
static const canon_inkset_t canon_13_C6M6Y4k4_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1804,22 +1853,6 @@ static const canon_inkset_t canon_13_C6M6Y4k4yask_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_13_C8M8Y4y4_inkset[] = {
- {'C',1.0,&canon_4b_8l_ink},
- {'M',1.0,&canon_4b_8l_ink},
- {'Y',1.0,&canon_2b_4l_ink},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink}, /* set y to k for photo modes */
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
-};
-
static const canon_inkset_t canon_13_C8M8Y4k4_inkset[] = {
{'C',1.0,&canon_4b_8l_ink},
{'M',1.0,&canon_4b_8l_ink},
@@ -2869,7 +2902,6 @@ static const canon_inkset_t canon_22_C4M4Y4K2c4m4k4on_inkset[] = {
/* fast */
/* MP990, MG6100, MG800 */
/* reorder: KCcMmYyk*H* not sure what the 2 missing ones are but they are only needed for ud1 anyway */
-/*static const canon_inkset_t canon_30_C2M2K2m2_inkset[] = {*/
static const canon_inkset_t canon_30_K2C2M2Y2_inkset[] = {
{'K',1.0,&canon_1b_2l_ink},
{'C',1.0,&canon_1b_2l_ink},
@@ -3010,6 +3042,146 @@ static const canon_inkset_t canon_30_K2C6M6Y4k4_inkset[] = {
{0,0.0,NULL},
};
+/* standard */
+/* MG6500, MG7100 */
+static const canon_inkset_t canon_30_K3C3M3Y2k3off_c_inkset[] = {
+ {'K',1.0,&canon_2b_3l_c_ink},
+ {'C',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_3l_c_ink}, /* will not use it, but need to specify it */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+/* standard for Duplex */
+/* MG6500, MG7100 */
+static const canon_inkset_t canon_30_K3C3M3Y2k3_c_inkset[] = {
+ {'K',1.0,&canon_2b_3l_c_ink},
+ {'C',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+/* standard for Borderless */
+/* MG6500, MG7100 */
+static const canon_inkset_t canon_30_K3C3M3Y2k3photo_c_inkset[] = {
+ {'K',0.0,&canon_2b_3l_c_ink}, /* switched off */
+ {'C',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+/* high */
+/* MG6500, MG7100 */
+static const canon_inkset_t canon_30_K3C6M6Y4k4off_c_inkset[] = {
+ {'K',1.0,&canon_2b_3l_c_ink},
+ {'C',1.0,&canon_4b_6l_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_4b_6l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_4l_ink}, /* will not use it, but need to specify it */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
/* CD photo */
/* reorder: KCcMmYyk*H* not sure what the 2 missing ones are but they are only needed for ud1 anyway */
/*static const canon_inkset_t canon_30_M5K5m4k4_inkset[] = {*/
@@ -3079,6 +3251,41 @@ static const canon_inkset_t canon_30_M6K6m4k4_inkset[] = {
{0,0.0,NULL},
};
+/* photo standard */
+/* MG6500, MG7100 */
+static const canon_inkset_t canon_30_M6K6m4k4H6off_inkset[] = {
+ {0,0.0,NULL},
+ {'C',1.0,&canon_4b_6l_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_4b_6l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'H',0.0,&canon_4b_6l_ink},/* H is not supported, so only for modes where it is switched off */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
static const canon_inkset_t canon_30_M8K8m4k4_inkset[] = {
{0,0.0,NULL},
{'C',1.0,&canon_4b_8l_ink},
@@ -3112,5 +3319,40 @@ static const canon_inkset_t canon_30_M8K8m4k4_inkset[] = {
{0,0.0,NULL},
};
+/* photo high */
+/* MG6500, MG7100 */
+static const canon_inkset_t canon_30_M8K8m4k4H8off_inkset[] = {
+ {0,0.0,NULL},
+ {'C',1.0,&canon_4b_8l_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_4b_8l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'H',0.0,&canon_4b_8l_ink},/* H is not supported, so only for modes where it is switched off */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
#endif
diff --git a/src/main/canon-media-mode.h b/src/main/canon-media-mode.h
index 7025510..95d6768 100644
--- a/src/main/canon-media-mode.h
+++ b/src/main/canon-media-mode.h
@@ -1,10662 +1,11755 @@
-/*
- * Print plug-in CANON BJL driver for the GIMP.
- *
- * Copyright 1997-2000 Michael Sweet (mike@easysw.com),
- * Robert Krawitz (rlk@alum.mit.edu) and
- * Andy Thaller (thaller@ph.tum.de)
- * Copyright (c) 2006 - 2007 Sascha Sommer (saschasommer@freenet.de)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/* This file contains the usage matrix matching media with modes
-*/
-
-#ifndef GUTENPRINT_INTERNAL_CANON_MEDIA_MODE_H
-#define GUTENPRINT_INTERNAL_CANON_MEDIA_MODE_H
-
-/* create matrix of which media are used with which mode */
-
-typedef struct {
- const char *name; /* unstranslated media name */
- const char** mode_name_list; /* untranslated mode names */
- const unsigned int use_flags;
- /* flags to indicate support in the media */
-#define INKSET_BLACK_SUPPORT 0x1
-#define INKSET_COLOR_SUPPORT 0x2
- /*#define INKSET_BOTH_SUPPORT 0x4*/
-#define INKSET_PHOTO_SUPPORT 0x8
- /* duplex support for media --- this is currently not implemented: so duplex can be specified for all media types */
-#define DUPLEX_SUPPORT 0x10
- /* flags to indicate existence of special replacement modes to search for */
-#define INKSET_BLACK_MODEREPL 0x100
-#define INKSET_COLOR_MODEREPL 0x200
- /*#define INKSET_BOTH_MODEREPL 0x400*/
-#define INKSET_PHOTO_MODEREPL 0x800
-#define DUPLEX_MODEREPL 0x1000
-
-} canon_modeuse_t;
-
-typedef struct {
- const char *name;
- const short count;
- const canon_modeuse_t *modeuses;
-} canon_modeuselist_t;
-
-#define DECLARE_MODEUSES(name) \
- static const canon_modeuselist_t name##_modeuselist = { \
- #name, \
- sizeof(name##_modeuses) / sizeof(canon_modeuse_t), \
- name##_modeuses \
-}
-
-/* Ordering of data:
- BJC
- DS
- mini
- S
- i --- *i is Japanese model, with Hagaki/inkjetHagaki support.
- i* is US model without such support. Not sure about European models.
- iP
- iX
- MP
- MX
- MG
- Pro
-*/
-
-/* ----------------------------------- Canon BJC 30 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_30_modeuses_plain[] = {
- "720x360dpi",
- "360x360dpi",
- "180x180dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_30_modeuses[] = {
- { "Plain", canon_BJC_30_modeuses_plain, 0 },
- { "Transparency", canon_BJC_30_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_30_modeuses_plain, 0 },
- { "Fabric", canon_BJC_30_modeuses_plain, 0 },
- { "Envelope", canon_BJC_30_modeuses_plain, 0 },
- { "Coated", canon_BJC_30_modeuses_plain, 0 },
- { "TShirt", canon_BJC_30_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_30_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_30_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_30_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_30_modeuses_plain, 0 },
- { "Other", canon_BJC_30_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_30);
-
-/* ----------------------------------- Canon BJC 85 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_85_modeuses_plain[] = {
- "720x360dpi",
- "360x360dmt",
- "360x360dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_85_modeuses[] = {
- { "Plain", canon_BJC_85_modeuses_plain, 0 },
- { "Transparency", canon_BJC_85_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_85_modeuses_plain, 0 },
- { "Fabric", canon_BJC_85_modeuses_plain, 0 },
- { "Envelope", canon_BJC_85_modeuses_plain, 0 },
- { "Coated", canon_BJC_85_modeuses_plain, 0 },
- { "TShirt", canon_BJC_85_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_85_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_85_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_85_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_85_modeuses_plain, 0 },
- { "Other", canon_BJC_85_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_85);
-
-/* ----------------------------------- Canon BJC 210 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_210_modeuses_plain[] = {
- "720x360dpi",
- "360x360dpi",
- "180x180dpi",
- "90x90dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_210_modeuses[] = {
- { "Plain", canon_BJC_210_modeuses_plain, 0 },
- { "Transparency", canon_BJC_210_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_210_modeuses_plain, 0 },
- { "Fabric", canon_BJC_210_modeuses_plain, 0 },
- { "Envelope", canon_BJC_210_modeuses_plain, 0 },
- { "Coated", canon_BJC_210_modeuses_plain, 0 },
- { "TShirt", canon_BJC_210_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_210_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_210_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_210_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_210_modeuses_plain, 0 },
- { "Other", canon_BJC_210_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_210);
-
-/* ----------------------------------- Canon BJC 240 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_240_modeuses_plain[] = {
- "720x360dpi",
- "360x360dmt",
- "360x360dpi",
- "180x180dpi",
- "90x90dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_240_modeuses[] = {
- { "Plain", canon_BJC_240_modeuses_plain, 0 },
- { "Transparency", canon_BJC_240_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_240_modeuses_plain, 0 },
- { "Fabric", canon_BJC_240_modeuses_plain, 0 },
- { "Envelope", canon_BJC_240_modeuses_plain, 0 },
- { "Coated", canon_BJC_240_modeuses_plain, 0 },
- { "TShirt", canon_BJC_240_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_240_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_240_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_240_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_240_modeuses_plain, 0 },
- { "Other", canon_BJC_240_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_240);
-
-/* ----------------------------------- Canon BJC 2000 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_2000_modeuses_plain[] = {
- "360x360dpi",
- "180x180dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_2000_modeuses[] = {
- { "Plain", canon_BJC_2000_modeuses_plain, 0 },
- { "Transparency", canon_BJC_2000_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_2000_modeuses_plain, 0 },
- { "Fabric", canon_BJC_2000_modeuses_plain, 0 },
- { "Envelope", canon_BJC_2000_modeuses_plain, 0 },
- { "Coated", canon_BJC_2000_modeuses_plain, 0 },
- { "TShirt", canon_BJC_2000_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_2000_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_2000_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_2000_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_2000_modeuses_plain, 0 },
- { "Other", canon_BJC_2000_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_2000);
-
-/* ----------------------------------- Canon BJC 3000 ----------------------------------- */
-
-static const char* canon_BJC_3000_modeuses_plain[] = {
- "1440x720dpi",/*untested*/
- "720x720dpi",
- "360x360dpi",
- "360x360dmt",
- "360x360dpi_draft",
- "180x180dpi",
- /* Photo */
- "360x360dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_3000_modeuses_PPgloss[] = {
- "1440x720dpi",
- "720x720dpi",
- "360x360dpi",
- "360x360dmt",
- /* Photo */
- "360x360dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_3000_modeuses_coated[] = {
- "1440x720dpi",
- "720x720dpi",
- "360x360dpi",
- "360x360dmt",
- "360x360dpi_draft",
- /* Photo */
- "360x360dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_3000_modeuses_glossFilm[] = {
- "720x720dpi",
- "360x360dpi",
- "360x360dmt",
- NULL
-};
-
-static const char* canon_BJC_3000_modeuses_Tshirt[] = {
- "360x360dpi",
- "360x360dmt",
- NULL
-};
-
-static const char* canon_BJC_3000_modeuses_Transparency[] = {
- "360x360dpi",
- "360x360dmt",
- "360x360dpi_draft",
- NULL
-};
-
-static const char* canon_BJC_3000_modeuses_Envelope[] = {
- "720x720dpi",
- "360x360dpi",
- "360x360dmt",
- "360x360dpi_draft",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_3000_modeuses[] = {
- { "Plain", canon_BJC_3000_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "Transparency", canon_BJC_3000_modeuses_Transparency, INKSET_BLACK_SUPPORT },
- { "BackPrint", canon_BJC_3000_modeuses_Tshirt, 0 },
- { "Fabric", canon_BJC_3000_modeuses_Tshirt, 0 },/*untested*/
- { "Envelope", canon_BJC_3000_modeuses_Envelope, INKSET_BLACK_SUPPORT },
- { "Coated", canon_BJC_3000_modeuses_coated, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "TShirt", canon_BJC_3000_modeuses_Tshirt, 0 },
- { "GlossyFilm", canon_BJC_3000_modeuses_glossFilm, 0 },
- { "GlossyPaper", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "GlossyCard", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "GlossyPro", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
- { "Other", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_3000);
-
-/* ----------------------------------- Canon BJC 4300 ----------------------------------- */
-
-static const char* canon_BJC_4300_modeuses_plain[] = {
- "360x360dpi_high",
- "360x360dpi",
- "360x360dmt",
- "720x360dpi",
- "360x360dpi_draft",
- "180x180dpi",
- /* Photo */
- "360x360dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_4300_modeuses_PPgloss[] = {
- "360x360dpi_high",
- "360x360dpi",
- "360x360dmt",
- "720x360dpi",/*mono*/
- /* Photo */
- "360x360dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_4300_modeuses_coated[] = {
- "360x360dpi_high",
- "360x360dpi",
- "360x360dmt",
- "720x360dpi",
- "360x360dpi_draft",
- /* Photo */
- "360x360dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_4300_modeuses_glossFilm[] = {
- "360x360dpi_high",
- "360x360dpi",
- "360x360dmt",
- "720x360dpi",/*mono*/
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_4300_modeuses[] = {
- { "Plain", canon_BJC_4300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "Transparency", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "BackPrint", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "Fabric", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "Envelope", canon_BJC_4300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "Coated", canon_BJC_4300_modeuses_coated, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "TShirt", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "GlossyFilm", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "GlossyPaper", canon_BJC_4300_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "GlossyCard", canon_BJC_4300_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "GlossyPro", canon_BJC_4300_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
- { "Other", canon_BJC_4300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
-};
-
-DECLARE_MODEUSES(canon_BJC_4300);
-
-/* ----------------------------------- Canon BJC 4400 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_4400_modeuses_plain[] = {
- "720x360dpi",
- "360x360dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_4400_modeuses[] = {
- { "Plain", canon_BJC_4400_modeuses_plain, 0 },
- { "Transparency", canon_BJC_4400_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_4400_modeuses_plain, 0 },
- { "Fabric", canon_BJC_4400_modeuses_plain, 0 },
- { "Envelope", canon_BJC_4400_modeuses_plain, 0 },
- { "Coated", canon_BJC_4400_modeuses_plain, 0 },
- { "TShirt", canon_BJC_4400_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_4400_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_4400_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_4400_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_4400_modeuses_plain, 0 },
- { "Other", canon_BJC_4400_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_4400);
-
-/* ----------------------------------- Canon BJC 4550 ----------------------------------- */
-
-static const char* canon_BJC_4550_modeuses_plain[] = {
- "720x360dpi_high",
- "360x360dpi_high",
- "720x360dpi",
- "360x360dpi",
- "180x180dpi",
- /* Photo */
- "360x360dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_4550_modeuses_glossFilm[] = {
- "720x360dpi_high",
- "360x360dpi_high",
- "360x360dpi",/*untested*/
- "180x180dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_4550_modeuses[] = {
- { "Plain", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "Transparency", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "BackPrint", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "Fabric", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT },
- { "Envelope", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "Coated", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "TShirt", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "GlossyFilm", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
- { "GlossyPaper", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
- { "GlossyCard", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
- { "GlossyPro", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
- { "Other", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
-};
-
-DECLARE_MODEUSES(canon_BJC_4550);
-
-/* ----------------------------------- Canon BJC 5500 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_5500_modeuses_plain[] = {
- "360x360dpi",
- "180x180dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_5500_modeuses[] = {
- { "Plain", canon_BJC_5500_modeuses_plain, 0 },
- { "Transparency", canon_BJC_5500_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_5500_modeuses_plain, 0 },
- { "Fabric", canon_BJC_5500_modeuses_plain, 0 },
- { "Envelope", canon_BJC_5500_modeuses_plain, 0 },
- { "Coated", canon_BJC_5500_modeuses_plain, 0 },
- { "TShirt", canon_BJC_5500_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_5500_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_5500_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_5500_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_5500_modeuses_plain, 0 },
- { "Other", canon_BJC_5500_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_5500);
-
-/* ----------------------------------- Canon BJC 6000 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_6000_modeuses_plain[] = {
- "1440x720dpi",
- "720x720dpi",
- "360x360dmt",
- "360x360dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_6000_modeuses[] = {
- { "Plain", canon_BJC_6000_modeuses_plain, 0 },
- { "Transparency", canon_BJC_6000_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_6000_modeuses_plain, 0 },
- { "Fabric", canon_BJC_6000_modeuses_plain, 0 },
- { "Envelope", canon_BJC_6000_modeuses_plain, 0 },
- { "Coated", canon_BJC_6000_modeuses_plain, 0 },
- { "TShirt", canon_BJC_6000_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_6000_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_6000_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_6000_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_6000_modeuses_plain, 0 },
- { "Other", canon_BJC_6000_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_6000);
-
-/* ----------------------------------- Canon BJC 7000 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_7000_modeuses_plain[] = {
- "1200x1200dpi",
- "600x600dpi",
- "300x300dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_7000_modeuses[] = {
- { "Plain", canon_BJC_7000_modeuses_plain, 0 },
- { "Transparency", canon_BJC_7000_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_7000_modeuses_plain, 0 },
- { "Fabric", canon_BJC_7000_modeuses_plain, 0 },
- { "Envelope", canon_BJC_7000_modeuses_plain, 0 },
- { "Coated", canon_BJC_7000_modeuses_plain, 0 },
- { "TShirt", canon_BJC_7000_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_7000_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_7000_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_7000_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_7000_modeuses_plain, 0 },
- { "Other", canon_BJC_7000_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_7000);
-
-/* ----------------------------------- Canon BJC 7100 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_7100_modeuses_plain[] = {
- "1200x1200dpi",
- "600x600dpi",
- "300x300dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_7100_modeuses[] = {
- { "Plain", canon_BJC_7100_modeuses_plain, 0 },
- { "Transparency", canon_BJC_7100_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_7100_modeuses_plain, 0 },
- { "Fabric", canon_BJC_7100_modeuses_plain, 0 },
- { "Envelope", canon_BJC_7100_modeuses_plain, 0 },
- { "Coated", canon_BJC_7100_modeuses_plain, 0 },
- { "TShirt", canon_BJC_7100_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_7100_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_7100_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_7100_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_7100_modeuses_plain, 0 },
- { "Other", canon_BJC_7100_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_7100);
-
-/* ----------------------------------- Canon BJC 8200 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_8200_modeuses_plain[] = {
- "1200x1200dpi",
- "600x600dpi",
- "300x300dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_8200_modeuses[] = {
- { "Plain", canon_BJC_8200_modeuses_plain, 0 },
- { "Transparency", canon_BJC_8200_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_8200_modeuses_plain, 0 },
- { "Fabric", canon_BJC_8200_modeuses_plain, 0 },
- { "Envelope", canon_BJC_8200_modeuses_plain, 0 },
- { "Coated", canon_BJC_8200_modeuses_plain, 0 },
- { "TShirt", canon_BJC_8200_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_8200_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_8200_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_8200_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_8200_modeuses_plain, 0 },
- { "Other", canon_BJC_8200_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_8200);
-
-/* ----------------------------------- Canon BJC 8500 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_8500_modeuses_plain[] = {
- "600x600dpi",
- "300x300dpi",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_8500_modeuses[] = {
- { "Plain", canon_BJC_8500_modeuses_plain, 0 },
- { "Transparency", canon_BJC_8500_modeuses_plain, 0 },
- { "BackPrint", canon_BJC_8500_modeuses_plain, 0 },
- { "Fabric", canon_BJC_8500_modeuses_plain, 0 },
- { "Envelope", canon_BJC_8500_modeuses_plain, 0 },
- { "Coated", canon_BJC_8500_modeuses_plain, 0 },
- { "TShirt", canon_BJC_8500_modeuses_plain, 0 },
- { "GlossyFilm", canon_BJC_8500_modeuses_plain, 0 },
- { "GlossyPaper", canon_BJC_8500_modeuses_plain, 0 },
- { "GlossyCard", canon_BJC_8500_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_8500_modeuses_plain, 0 },
- { "Other", canon_BJC_8500_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_8500);
-
-/* ----------------------------------- Canon DS700 ----------------------------------- */
-static const char* canon_SELPHY_DS700_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS700_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_SELPHY_DS700_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS700_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS700_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS700_modeuses_Hagaki[] = {
- "600x600dpi_photo3",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const canon_modeuse_t canon_SELPHY_DS700_modeuses[] = {
- { "GlossyPro", canon_SELPHY_DS700_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_SELPHY_DS700_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_SELPHY_DS700_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_SELPHY_DS700_modeuses_PPgloss, 0 },
- { "InkJetHagaki", canon_SELPHY_DS700_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_SELPHY_DS700_modeuses_Hagaki, 0 },
-};
-
-DECLARE_MODEUSES(canon_SELPHY_DS700);
-
-/* ----------------------------------- Canon DS810 ----------------------------------- */
-static const char* canon_SELPHY_DS810_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS810_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_SELPHY_DS810_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS810_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS810_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_SELPHY_DS810_modeuses_Hagaki[] = {
- "600x600dpi_photo3",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const canon_modeuse_t canon_SELPHY_DS810_modeuses[] = {
- { "GlossyPro", canon_SELPHY_DS810_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_SELPHY_DS810_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_SELPHY_DS810_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_SELPHY_DS810_modeuses_PPgloss, 0 },
- { "InkJetHagaki", canon_SELPHY_DS810_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_SELPHY_DS810_modeuses_Hagaki, 0 },
-};
-
-DECLARE_MODEUSES(canon_SELPHY_DS810);
-
-/* ----------------------------------- Canon mini220 ----------------------------------- */
-static const char* canon_PIXMA_mini220_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh",
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_mini220_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_mini220_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_mini220_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_mini220_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_mini220_modeuses_Hagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo2",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_mini220_modeuses[] = {
- { "GlossyPro", canon_PIXMA_mini220_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_mini220_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_PIXMA_mini220_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_mini220_modeuses_PPgloss, 0 },
- { "InkJetHagaki", canon_PIXMA_mini220_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_mini220_modeuses_Hagaki, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_mini220);
-
-/* ----------------------------------- Canon mini320 ----------------------------------- */
-/*most nodes not supported*/
-static const char* canon_PIXMA_mini320_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh",
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-/*most nodes not supported*/
-static const char* canon_PIXMA_mini320_modeuses_PPplus[] = {
- "600x600dpi_photo",
- NULL
-};
-
-/*unsupported*/
-static const char* canon_PIXMA_mini320_modeuses_PPmatte[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-/*most nodes not supported*/
-static const char* canon_PIXMA_mini320_modeuses_PPgloss[] = {
- "600x600dpi_photo",
- NULL
-};
-
-/*unsupported*/
-static const char* canon_PIXMA_mini320_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-/*unsupported*/
-static const char* canon_PIXMA_mini320_modeuses_Hagaki[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_mini320_modeuses[] = {
- { "GlossyPro", canon_PIXMA_mini320_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_mini320_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_mini320_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_PIXMA_mini320_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_mini320_modeuses_PPgloss, 0 },
- { "PhotoPlusGloss2", canon_PIXMA_mini320_modeuses_PPplus, 0 },
- { "InkJetHagaki", canon_PIXMA_mini320_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_mini320_modeuses_Hagaki, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_mini320);
-
-/* ----------------------------------- Canon S200 ----------------------------------- */
-/* TODO: mode-media correlation */
-static const char* canon_BJC_S200_modeuses_plain[] = {
- "1440x1440dpi",
- "1440x720dpi",
- "720x720dpi",
- "360x360dpi",
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_S200_modeuses[] = {
- { "Plain", canon_BJC_S200_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S200_modeuses_plain, 0 },
- { "PhotopaperPlus", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
- { "PhotopaperPlusDouble",canon_BJC_S200_modeuses_plain, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
- { "GlossyPaper", canon_BJC_S200_modeuses_plain, 0 },
- { "Coated", canon_BJC_S200_modeuses_plain, 0 },
- { "InkJetHagaki", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
- { "Hagaki", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S200_modeuses_plain, 0 },
- { "TShirt", canon_BJC_S200_modeuses_plain, 0 },
- { "Transparency", canon_BJC_S200_modeuses_plain, 0 },
- { "Envelope", canon_BJC_S200_modeuses_plain, 0 },
- { "PhotopaperOther", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S200);
-
-/* ----------------------------------- Canon BJC S300 ----------------------------------- */
-static const char* canon_BJC_S300_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_std2",
- "600x600dpi",/*untested*/
- "300x300dpi",
- NULL
- };
-
-static const char* canon_BJC_S300_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S300_modeuses_PPgloss[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S300_modeuses_coated[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S300_modeuses_Envelope[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_BJC_S300_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S300_modeuses_Transparency[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S300_modeuses[] = {
- { "Plain", canon_BJC_S300_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S300_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
- { "PhotopaperPlusDouble", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
- { "GlossyPaper", canon_BJC_S300_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S300_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
- { "Hagaki", canon_BJC_S300_modeuses_Envelope, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S300_modeuses_coated, 0 },
- { "GlossyCard", canon_BJC_S300_modeuses_PPgloss, 0 },
- { "Transparency", canon_BJC_S300_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S300_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S300_modeuses_Envelope, 0 },
- { "PhotopaperOther", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S300);
-
-/* ----------------------------------- Canon BJC S330 ----------------------------------- */
-static const char* canon_BJC_S330_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_std2",
- "600x600dpi",/*untested*/
- "300x300dpi",
- NULL
- };
-
-static const char* canon_BJC_S330_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S330_modeuses_PPmatte[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S330_modeuses_PPgloss[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S330_modeuses_Envelope[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_BJC_S330_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S330_modeuses_Transparency[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S330_modeuses[] = {
- { "Plain", canon_BJC_S330_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S330_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S330_modeuses_PPpro, 0 },
- { "PhotopaperPlusDouble", canon_BJC_S330_modeuses_PPpro, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S330_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_S330_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S330_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_BJC_S330_modeuses_PPpro, 0 },/*untested*/
- { "Hagaki", canon_BJC_S330_modeuses_Envelope, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S330_modeuses_PPmatte, 0 },
- { "Transparency", canon_BJC_S330_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S330_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S330_modeuses_Envelope, 0 },
- { "PhotopaperOther", canon_BJC_S330_modeuses_PPpro, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S330);
-
-/* ----------------------------------- Canon BJC S500 ----------------------------------- */
-static const char* canon_BJC_S500_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",/*untested*/
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_S500_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S500_modeuses_coated[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_S500_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S500_modeuses_Envelope[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_BJC_S500_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S500_modeuses_Transparency[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S500_modeuses[] = {
- { "Plain", canon_BJC_S500_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S500_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
- { "PhotopaperPlusDouble", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S500_modeuses_coated, 0 },/*untested*/
- { "GlossyPaper", canon_BJC_S500_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S500_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
- { "Hagaki", canon_BJC_S500_modeuses_Envelope, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S500_modeuses_PPpro, 0 },
- { "GlossyCard", canon_BJC_S500_modeuses_PPgloss, 0 },
- { "Transparency", canon_BJC_S500_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S500_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S500_modeuses_Envelope, 0 },
- { "PhotopaperOther", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S500);
-
-/* ----------------------------------- Canon BJC S520 ----------------------------------- */
-static const char* canon_BJC_S520_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_highmono",/* mono */
- "600x600dpi",/*untested*/
- "600x600dpi_draft",
- "300x300dpi",/*untested*/
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_S520_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S520_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S520_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S520_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_S520_modeuses_Envelope[] = {
- "600x600dpi_high3",
- "600x600dpi_highmono3",/* mono */
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_BJC_S520_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S520_modeuses_Transparency[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S520_modeuses[] = {
- { "Plain", canon_BJC_S520_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S520_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S520_modeuses_PPpro, 0 },
- { "PhotopaperPlusDouble", canon_BJC_S520_modeuses_PPpro, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S520_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_S520_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S520_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_S520_modeuses_PPpro, 0 },/*untested*/
- { "Hagaki", canon_BJC_S520_modeuses_Envelope, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S520_modeuses_PPpro, 0 },
- { "Transparency", canon_BJC_S520_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S520_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S520_modeuses_Envelope, 0 },
- { "PhotopaperOther", canon_BJC_S520_modeuses_PPpro, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S520);
-
-/* ----------------------------------- Canon BJC S600 ----------------------------------- */
-static const char* canon_BJC_S600_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_S600_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S600_modeuses_coated[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_S600_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S600_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_S600_modeuses_Envelope[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_BJC_S600_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S600_modeuses_Transparency[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S600_modeuses[] = {
- { "Plain", canon_BJC_S600_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S600_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S600_modeuses_PPpro, 0 },/*untested*/
- { "PhotopaperPlusDouble", canon_BJC_S600_modeuses_PPpro, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S600_modeuses_PPgloss, 0 },/*untested*/
- { "GlossyPaper", canon_BJC_S600_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S600_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_S600_modeuses_inkjetHagaki, 0 },/*untested*/
- { "Hagaki", canon_BJC_S600_modeuses_Envelope, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S600_modeuses_PPpro, 0 },
- { "GlossyCard", canon_BJC_S600_modeuses_PPgloss, 0 },
- { "Transparency", canon_BJC_S600_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S600_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S600_modeuses_Envelope, 0 },
- { "PhotopaperOther", canon_BJC_S600_modeuses_PPpro, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S600);
-
-/* ----------------------------------- Canon BJC S750 ----------------------------------- */
-static const char* canon_BJC_S750_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",/*untested*/
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_S750_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S750_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S750_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_S750_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_S750_modeuses_Envelope[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_BJC_S750_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S750_modeuses_Transparency[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S750_modeuses[] = {
- { "Plain", canon_BJC_S750_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S750_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S750_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_BJC_S750_modeuses_PPplus, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S750_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_BJC_S750_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S750_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_S750_modeuses_PPplus, 0 },/*untested*/
- { "Hagaki", canon_BJC_S750_modeuses_Envelope, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S750_modeuses_PPpro, 0 },
- { "Transparency", canon_BJC_S750_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S750_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S750_modeuses_Envelope, 0 },
- { "PhotopaperOther", canon_BJC_S750_modeuses_PPpro, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S750);
-
-/* ----------------------------------- Canon BJC S800 ----------------------------------- */
-static const char* canon_BJC_S800_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- NULL
- };
-
-static const char* canon_BJC_S800_modeuses_PPpro[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photohigh",
- NULL
-};
-
-static const char* canon_BJC_S800_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_S800_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S800_modeuses_glossFilm[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_S800_modeuses_PPother[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- /* Mono */
- "600x600dpi_photomonohigh2",
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- "600x600dpi_photomonodraft",
- NULL
-};
-
-static const char* canon_BJC_S800_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S800_modeuses_Transparency[] = {
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S800_modeuses[] = {
- { "Plain", canon_BJC_S800_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S800_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S800_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_BJC_S800_modeuses_PPplus, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S800_modeuses_PPgloss, 0 },
- { "GlossyPaper", canon_BJC_S800_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S800_modeuses_PPgloss, 0 },
- { "InkJetHagaki", canon_BJC_S800_modeuses_PPgloss, 0 },/*untested*/
- { "Hagaki", canon_BJC_S800_modeuses_plain, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S800_modeuses_glossFilm, 0 },
- { "GlossyCard", canon_BJC_S800_modeuses_PPgloss, 0 },
- { "Transparency", canon_BJC_S800_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S800_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S800_modeuses_plain, 0 },
- { "PhotopaperOther", canon_BJC_S800_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_S800);
-
-/* ----------------------------------- Canon BJC S820 ----------------------------------- */
-static const char* canon_BJC_S820_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/*untested*/
- "600x600dpi",
- "600x600dpi_draft",
- /* Mono */
- "600x600dpi_highmono2",/*untested*/
- "600x600dpi_highmono",/*untested*/
- "600x600dpi_mono",/*untested*/
- "600x600dpi_draftmono",
- NULL
- };
-
-static const char* canon_BJC_S820_modeuses_PPpro[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photohigh",
- NULL
-};
-
-static const char* canon_BJC_S820_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_S820_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S820_modeuses_glossFilm[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_S820_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S820_modeuses_Transparency[] = {
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S820_modeuses[] = {
- { "Plain", canon_BJC_S820_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S820_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S820_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_BJC_S820_modeuses_PPplus, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S820_modeuses_PPgloss, 0 },
- { "GlossyPaper", canon_BJC_S820_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S820_modeuses_PPgloss, 0 },
- { "InkJetHagaki", canon_BJC_S820_modeuses_PPgloss, 0 },/*untested*/
- { "Hagaki", canon_BJC_S820_modeuses_plain, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S820_modeuses_glossFilm, 0 },
- { "GlossyCard", canon_BJC_S820_modeuses_PPgloss, 0 },
- { "Transparency", canon_BJC_S820_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S820_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S820_modeuses_plain, 0 },
- { "PhotopaperOther", canon_BJC_S820_modeuses_plain, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_S820);
-
-/* ----------------------------------- Canon BJC S900 ----------------------------------- */
-static const char* canon_BJC_S900_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- /* Mono */
- "600x600dpi_highmono2",/*untested*/
- "600x600dpi_highmono",/*untested*/
- "600x600dpi_mono",/*untested*/
- "600x600dpi_draftmono",
- NULL
- };
-
-static const char* canon_BJC_S900_modeuses_PPpro[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photohigh",
- NULL
-};
-
-static const char* canon_BJC_S900_modeuses_PPplus[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo2",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_S900_modeuses_PPgloss[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S900_modeuses_coated[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_S900_modeuses_glossFilm[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_S900_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_S900_modeuses_Transparency[] = {
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_S900_modeuses[] = {
- { "Plain", canon_BJC_S900_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_S900_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_S900_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_BJC_S900_modeuses_PPplus, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_S900_modeuses_PPgloss, 0 },
- { "GlossyPaper", canon_BJC_S900_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_S900_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_S900_modeuses_PPgloss, 0 },/*untested*/
- { "Hagaki", canon_BJC_S900_modeuses_plain, 0 },/*untested*/
- { "GlossyFilm", canon_BJC_S900_modeuses_glossFilm, 0 },
- { "GlossyCard", canon_BJC_S900_modeuses_PPgloss, 0 },
- { "Transparency", canon_BJC_S900_modeuses_Transparency, 0 },
- { "TShirt", canon_BJC_S900_modeuses_TShirt, 0 },
- { "Envelope", canon_BJC_S900_modeuses_plain, 0 },
- { "PhotopaperOther", canon_BJC_S900_modeuses_plain, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_S900);
-
-/* ----------------------------------- Canon i50 ----------------------------------- */
-static const char* canon_BJC_i50_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_i50_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i50_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i50_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i50_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photomed",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i50_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",/*color*/
- "600x600dpi_std4",/*mono*/
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_BJC_i50_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i50_modeuses_Transparency[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_BJC_i50_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i50_modeuses[] = {
- { "Plain", canon_BJC_i50_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i50_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i50_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i50_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_BJC_i50_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i50_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i50_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_BJC_i50_modeuses_PPplus, 0 },
- { "Hagaki", canon_BJC_i50_modeuses_Hagaki, 0 },
- { "TShirt", canon_BJC_i50_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i50_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i50_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i50_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_i50);
-
-/* ----------------------------------- Canon i80 ----------------------------------- */
-static const char* canon_BJC_i80_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/*mono*/
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_high4",/*mono*/
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- "600x600dpi_ohpdraft",
- NULL
-};
-
-static const char* canon_BJC_i80_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_i80_modeuses[] = {
- { "Plain", canon_BJC_i80_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i80_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i80_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i80_modeuses_PPmatte, 0 },
- { "PhotopaperMatte", canon_BJC_i80_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i80_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i80_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_BJC_i80_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i80_modeuses_Hagaki, 0 },
- { "TShirt", canon_BJC_i80_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i80_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i80_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i80_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_i80);
-
-/* ----------------------------------- Canon i450 ----------------------------------- */
-static const char* canon_BJC_i450_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_highmono",/* mono mode */
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_i450_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_highmono2",/* mono */
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const char* canon_BJC_i450_modeuses_PPother[] = {
- "600x600dpi_photohigh2",/*untested*/
- "600x600dpi_photo2",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i450_modeuses[] = {
- { "Plain", canon_BJC_i450_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i450_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i450_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i450_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_BJC_i450_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_BJC_i450_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i450_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_BJC_i450_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i450_modeuses_Hagaki, 0 },
- { "TShirt", canon_BJC_i450_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i450_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i450_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i450_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i450);
-
-/* ----------------------------------- Canon i455 ----------------------------------- */
-static const char* canon_BJC_i455_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_highmono",/* mono mode */
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_i455_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_highmono2",/* mono */
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const char* canon_BJC_i455_modeuses_PPother[] = {
- "600x600dpi_photohigh2",/*untested*/
- "600x600dpi_photo2",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i455_modeuses[] = {
- { "Plain", canon_BJC_i455_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i455_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i455_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i455_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_BJC_i455_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_BJC_i455_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i455_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_BJC_i455_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i455_modeuses_Hagaki, 0 },
- { "TShirt", canon_BJC_i455_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i455_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i455_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i455_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i455);
-
-/* ----------------------------------- Canon i550 ----------------------------------- */
-static const char* canon_BJC_i550_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_highmono",/* mono mode */
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_i550_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i550_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i550_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photomed",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i550_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i550_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo3",
- "600x600dpi_photo",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i550_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_highmono3",/* mono */
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_BJC_i550_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i550_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-/*untested*/
-static const char* canon_BJC_i550_modeuses_PPother[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i550_modeuses[] = {
- { "Plain", canon_BJC_i550_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i550_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i550_modeuses_PPpro, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i550_modeuses_PPpro, 0 },
- { "PhotopaperMatte", canon_BJC_i550_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i550_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i550_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i550_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i550_modeuses_Hagaki, 0 },
- { "GlossyFilm", canon_BJC_i550_modeuses_PPpro, 0 },
- { "TShirt", canon_BJC_i550_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i550_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i550_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i550_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i550);
-
-/* ----------------------------------- Canon i560 ----------------------------------- */
-static const char* canon_BJC_i560_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not supported yet */
-static const char* canon_BJC_i560_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft2",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const char* canon_BJC_i560_modeuses_PPother[] = {
- "600x600dpi_photo",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i560_modeuses[] = {
- { "Plain", canon_BJC_i560_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i560_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i560_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i560_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_BJC_i560_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_BJC_i560_modeuses_PPplusDS, 0 },
- { "Coated", canon_BJC_i560_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i560_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i560_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_BJC_i560_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i560_modeuses_disc, 0 },
- { "TShirt", canon_BJC_i560_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i560_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i560_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i560_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i560);
-
-/* ----------------------------------- Canon i850 ----------------------------------- */
-static const char* canon_BJC_i850_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highset mode not supported yet */
-static const char* canon_BJC_i850_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i850_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highset mode not supported yet */
-static const char* canon_BJC_i850_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i850_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i850_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i850_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_BJC_i850_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i850_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i850_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-/*untested*/
-static const char* canon_BJC_i850_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i850_modeuses[] = {
- { "Plain", canon_BJC_i850_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i850_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i850_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i850_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_BJC_i850_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_BJC_i850_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i850_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i850_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i850_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_BJC_i850_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i850_modeuses_disc, 0 },
- { "GlossyFilm", canon_BJC_i850_modeuses_PPplus, 0 },
- { "TShirt", canon_BJC_i850_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i850_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i850_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i850_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i850);
-
-/* ----------------------------------- Canon i860 ----------------------------------- */
-static const char* canon_BJC_i860_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-/* highest mode not supported yet */
-static const char* canon_BJC_i860_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const char* canon_BJC_i860_modeuses_PPother[] = {
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_i860_modeuses[] = {
- { "Plain", canon_BJC_i860_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_BJC_i860_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i860_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i860_modeuses_PPmatte, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_i860_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i860_modeuses_PPmatte, 0 },
- { "Coated", canon_BJC_i860_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_BJC_i860_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i860_modeuses_Hagaki, DUPLEX_SUPPORT }, /* not sure */
- { "DiscCompat", canon_BJC_i860_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i860_modeuses_disc, 0 },
- { "TShirt", canon_BJC_i860_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i860_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i860_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i860_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i860);
-
-/* ----------------------------------- Canon i900 ----------------------------------- */
-static const char* canon_BJC_i900_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_disc[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photo5",
- "600x600dpi_photodraft5",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const char* canon_BJC_i900_modeuses_PPother[] = {
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_BJC_i900_modeuses[] = {
- { "Plain", canon_BJC_i900_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i900_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i900_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i900_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_BJC_i900_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i900_modeuses_PPplus, 0 },
- { "Coated", canon_BJC_i900_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_BJC_i900_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i900_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_BJC_i900_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i900_modeuses_disc, 0 },
- { "TShirt", canon_BJC_i900_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i900_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i900_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i900_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i900);
-
-/* ----------------------------------- Canon i950 ----------------------------------- */
-static const char* canon_BJC_i950_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high"/*untested*/,
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "600x600dpi_draft2",
- "600x600dpi_draftmono",/* mono --- untested*/
- "600x600dpi_draftmono2",/* mono */
- NULL
- };
-
-static const char* canon_BJC_i950_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_PPgloss[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo3",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_GlossyFilm[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_disc[] = {
- "600x600dpi_photo5",
- "600x600dpi_photodraft5",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_high5",/*untested*/
- "600x600dpi_std4",/*untested*/
- "600x600dpi_std5",
- "600x600dpi_draftmono4",/* mono---untested*/
- "600x600dpi_draftmono5",/* mono */
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_Transparency[] = {
- "600x600dpi_std3",
- "600x600dpi_draft3",
- "600x600dpi_draft4",
- NULL
-};
-
-static const char* canon_BJC_i950_modeuses_PPother[] = {
- "600x600dpi_photo2",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i950_modeuses[] = {
- { "Plain", canon_BJC_i950_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i950_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i950_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i950_modeuses_PPgloss, 0 },
- { "PhotopaperMatte", canon_BJC_i950_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i950_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i950_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i950_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i950_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_BJC_i950_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i950_modeuses_disc, 0 },
- { "GlossyFilm", canon_BJC_i950_modeuses_GlossyFilm, 0 },
- { "TShirt", canon_BJC_i950_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i950_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i950_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i950_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i950);
-
-/* ----------------------------------- Canon i960 ----------------------------------- */
-static const char* canon_BJC_i960_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high3",/* duplex */
- "600x600dpi_high",
- "600x600dpi",/*untested*/
- "600x600dpi_draft",
- "600x600dpi_draft2",
- "600x600dpi_draftmono",/* mono */
- "600x600dpi_draftmono2",/* mono */
- NULL
- };
-
-static const char* canon_BJC_i960_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo5",/*untested*/
- NULL
-};
-
-
-static const char* canon_BJC_i960_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_coated[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- "600x600dpi_photo5",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_disc[] = {
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_high5",
- "600x600dpi_std4",/*untested*/
- "600x600dpi_std5",
- "600x600dpi_draft5",
- "600x600dpi_draftmono4",
- "600x600dpi_draftmono5",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_Transparency[] = {
- "600x600dpi_std3",
- "600x600dpi_draft3",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_i960_modeuses_PPother[] = {
- "600x600dpi_photo2",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i960_modeuses[] = {
- { "Plain", canon_BJC_i960_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_BJC_i960_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i960_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i960_modeuses_PPgloss, 0 },
- { "PhotopaperMatte", canon_BJC_i960_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i960_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i960_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i960_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i960_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_BJC_i960_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i960_modeuses_disc, 0 },
- { "TShirt", canon_BJC_i960_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i960_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i960_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i960_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i960);
-
-/* ----------------------------------- Canon i990 ----------------------------------- */
-static const char* canon_BJC_i990_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high3", /*duplex*/
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- "600x600dpi_draftmono",/*mono*/
- "600x600dpi_draftmono2",/*mono*/
- NULL
- };
-
-/* most photo modes use R ink and therefore unsupported */
-/* unsupported */
-static const char* canon_BJC_i990_modeuses_PPpro[] = {
- "600x600dpi_photohigh",/*stand-in*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_BJC_i990_modeuses_PPplus[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photodraft",
- NULL
-};
-
-/* unsupported */
-static const char* canon_BJC_i990_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",/*stand-in*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_BJC_i990_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_BJC_i990_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photomed",
- "600x600dpi_photo",
- NULL
-};
-
-/* high mode not yet supported */
-static const char* canon_BJC_i990_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i990_modeuses_disc[] = {
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i990_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft5",
- "600x600dpi_draft4",
- "600x600dpi_draftmono4",/*mono*/
- "600x600dpi_draftmono5",/*mono*/
- NULL
-};
-
-static const char* canon_BJC_i990_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i990_modeuses_Transparency[] = {
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-/* untested */
-static const char* canon_BJC_i990_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i990_modeuses[] = {
- { "Plain", canon_BJC_i990_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_BJC_i990_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i990_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i990_modeuses_PPplus, 0 },/*untested*/
- { "PhotopaperMatte", canon_BJC_i990_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i990_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i990_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i990_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i990_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_BJC_i990_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i990_modeuses_disc, 0 },
- { "TShirt", canon_BJC_i990_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i990_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i990_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i990_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i990);
-
-/* ----------------------------------- Canon i6100 ----------------------------------- */
-static const char* canon_BJC_i6100_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",/*untested*/
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_BJC_i6100_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_Transparency[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_BJC_i6100_modeuses_PPother[] = {
- "600x600dpi_photo2",/*untested*/
- "600x600dpi_photo",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i6100_modeuses[] = {
- { "Plain", canon_BJC_i6100_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i6100_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i6100_modeuses_PPpro, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i6100_modeuses_PPpro, 0 },
- { "PhotopaperMatte", canon_BJC_i6100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i6100_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i6100_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i6100_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i6100_modeuses_Hagaki, 0 },
- { "TShirt", canon_BJC_i6100_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i6100_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i6100_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i6100_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i6100);
-
-/* ----------------------------------- Canon i9100 ----------------------------------- */
-static const char* canon_BJC_i9100_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "600x600dpi_mono",/*untested*/
- "600x600dpi_draftmono",
- NULL
- };
-
-static const char* canon_BJC_i9100_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",/*untested*/
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- "600x600dpi_draftmono2",
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_Transparency[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",/*untested*/
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i9100_modeuses_PPother[] = {
- "600x600dpi_photo2",/*untested*/
- "600x600dpi_photo",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i9100_modeuses[] = {
- { "Plain", canon_BJC_i9100_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i9100_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i9100_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i9100_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_BJC_i9100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i9100_modeuses_PPmatte, 0 },
- { "Coated", canon_BJC_i9100_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i9100_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i9100_modeuses_Hagaki, 0 },
- { "TShirt", canon_BJC_i9100_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i9100_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i9100_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i9100_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_BJC_i9100);
-
-/* ----------------------------------- Canon i9900 ----------------------------------- */
-static const char* canon_BJC_i9900_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- "600x600dpi_draftmono",/*mono*/
- "600x600dpi_draftmono2",/*mono*/
- NULL
- };
-
-/* most photo modes use R,G inks and therefore unsupported */
-/* unsupported */
-static const char* canon_BJC_i9900_modeuses_PPpro[] = {
- "600x600dpi_photohigh",/*stand-in*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_BJC_i9900_modeuses_PPplus[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photodraft",
- NULL
-};
-
-/* unsupported */
-static const char* canon_BJC_i9900_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",/*stand-in*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_BJC_i9900_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_BJC_i9900_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photomed",
- "600x600dpi_photo",
- NULL
-};
-
-/* high mode not yet supported */
-static const char* canon_BJC_i9900_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_BJC_i9900_modeuses_disc[] = {
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_BJC_i9900_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft5",
- "600x600dpi_draft4",
- "600x600dpi_draftmono4",/*mono*/
- "600x600dpi_draftmono5",/*mono*/
- NULL
-};
-
-static const char* canon_BJC_i9900_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_BJC_i9900_modeuses_Transparency[] = {
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_BJC_i9900_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_BJC_i9900_modeuses[] = {
- { "Plain", canon_BJC_i9900_modeuses_plain, 0 },
- { "GlossyPro", canon_BJC_i9900_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_BJC_i9900_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_BJC_i9900_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_BJC_i9900_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_BJC_i9900_modeuses_PPgloss, 0 },
- { "Coated", canon_BJC_i9900_modeuses_coated, 0 },
- { "InkJetHagaki", canon_BJC_i9900_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_BJC_i9900_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_BJC_i9900_modeuses_disc, 0 },
- { "DiscOthers", canon_BJC_i9900_modeuses_disc, 0 },
- { "TShirt", canon_BJC_i9900_modeuses_TShirt, 0 },
- { "Transparency", canon_BJC_i9900_modeuses_Transparency, 0 },
- { "Envelope", canon_BJC_i9900_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_BJC_i9900_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_BJC_i9900);
-
-/* ----------------------------------- Canon iP90 ----------------------------------- */
-static const char* canon_PIXMA_iP90_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high", /* mono */
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_PIXMA_iP90_modeuses_PPpro[] = {
- "600x600dpi_photohigh2", /* no ESC (S */
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP90_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP90_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP90_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_high3", /* mono */
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP90_modeuses_TShirt[] = {
- "600x600dpi_tshirt", /* no ESC (S */
- NULL
-};
-
-static const char* canon_PIXMA_iP90_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP90_modeuses[] = {
- { "Plain", canon_PIXMA_iP90_modeuses_plain, 0 },/*INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL*/
- { "GlossyPro", canon_PIXMA_iP90_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlus", canon_PIXMA_iP90_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlusDouble", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "Coated", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_PIXMA_iP90_modeuses_Hagaki, 0 },/*INKSET_COLOR_SUPPORT*/
- { "TShirt", canon_PIXMA_iP90_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_PIXMA_iP90_modeuses_Hagaki, 0 },/* INKSET_COLOR_SUPPORT*/
- { "PhotopaperOther", canon_PIXMA_iP90_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP90);
-
-/* ----------------------------------- Canon iP100 ----------------------------------- */
-static const char* canon_PIXMA_iP100_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high", /* mono */
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_PIXMA_iP100_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP100_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP100_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_high3", /* mono */
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP100_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP100_modeuses[] = {
- { "Plain", canon_PIXMA_iP100_modeuses_plain, 0 },/*INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL*/
- { "GlossyPro", canon_PIXMA_iP100_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlus", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoPlusGloss2", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlusDouble", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_PIXMA_iP100_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Coated", canon_PIXMA_iP100_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_PIXMA_iP100_modeuses_Hagaki, 0 },/*INKSET_COLOR_SUPPORT*/
- { "TShirt", canon_PIXMA_iP100_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_PIXMA_iP100_modeuses_Hagaki, 0 },/*INKSET_COLOR_SUPPORT*/
- { "PhotopaperOther", canon_PIXMA_iP100_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP100);
-
-/* ----------------------------------- Canon iP2000 ----------------------------------- */
-static const char* canon_PIXMA_iP2000_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/* mono */
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_PIXMA_iP2000_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP2000_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP2000_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP2000_modeuses_PPgloss[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP2000_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_high3",/* mono */
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP2000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP2000_modeuses_Transparency[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_iP2000_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP2000_modeuses[] = {
- { "Plain", canon_PIXMA_iP2000_modeuses_plain, 0 },
- { "GlossyPro", canon_PIXMA_iP2000_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP2000_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble",canon_PIXMA_iP2000_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP2000_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_PIXMA_iP2000_modeuses_PPgloss, 0 },
- { "Coated", canon_PIXMA_iP2000_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iP2000_modeuses_PPplusDS, 0 },/*untested*/
- { "Hagaki", canon_PIXMA_iP2000_modeuses_Hagaki, 0 },/*untested*/
- { "TShirt", canon_PIXMA_iP2000_modeuses_TShirt, 0 },
- { "Transparency", canon_PIXMA_iP2000_modeuses_Transparency, 0 },
- { "Envelope", canon_PIXMA_iP2000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP2000_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP2000);
-
-/* ----------------------------------- Canon iP2700 ----------------------------------- */
-static const char* canon_PIXMA_iP2700_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "300x300dpi_mono",
- /* Color */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "300x300dpi_std3",
- NULL
- };
-
-static const char* canon_PIXMA_iP2700_modeuses_PPpro[] = {
- "1200x1200dpi_high",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP2700_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP2700_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_mono2",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- NULL
-};
-
-static const char* canon_PIXMA_iP2700_modeuses_TShirt[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const char* canon_PIXMA_iP2700_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP2700_modeuses[] = {
- { "Plain", canon_PIXMA_iP2700_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_PIXMA_iP2700_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_PIXMA_iP2700_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_PIXMA_iP2700_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_PIXMA_iP2700_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_PIXMA_iP2700_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_PIXMA_iP2700_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP2700);
-
-/* ----------------------------------- Canon iP3000 ----------------------------------- */
-static const char* canon_PIXMA_iP3000_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iP3000_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP3000_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP3000_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* Note: iP3000 US driver does not have inkjetHagaki or Hagaki media */
-/* untested */
-static const char* canon_PIXMA_iP3000_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3000_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3000_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP3000_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const char* canon_PIXMA_iP3000_modeuses_transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP3000_modeuses[] = {
- { "Plain", canon_PIXMA_iP3000_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP3000_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP3000_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iP3000_modeuses_inkjetHagaki, 0 },/*untested*/
- { "Hagaki", canon_PIXMA_iP3000_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
- { "DiscCompat", canon_PIXMA_iP3000_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP3000_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP3000_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP3000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP3000_modeuses_PPother, 0 },
- { "Transparency", canon_PIXMA_iP3000_modeuses_transparency, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP3000);
-
-/* ----------------------------------- Canon iP3100 ----------------------------------- */
-static const char* canon_PIXMA_iP3100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iP3100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP3100_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP3100_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP3100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP3100_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3100_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* Note: iP3100 US driver does not have this media */
-/*untested*/
-static const char* canon_PIXMA_iP3100_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const char* canon_PIXMA_iP3100_modeuses_transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP3100_modeuses[] = {
- { "Plain", canon_PIXMA_iP3100_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP3100_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP3100_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iP3100_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP3100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_iP3100_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP3100_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP3100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP3100_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP3100_modeuses_PPother, 0 },/*untested*/
- { "Transparency", canon_PIXMA_iP3100_modeuses_transparency, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP3100);
-
-/* ----------------------------------- Canon iP3300 ----------------------------------- */
-static const char* canon_PIXMA_iP3300_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP3300_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP3300_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3300_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP3300_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP3300_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_PIXMA_iP3300_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP3300_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP3300_modeuses[] = {
- { "Plain", canon_PIXMA_iP3300_modeuses_plain, 0 },
- { "GlossyPro", canon_PIXMA_iP3300_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP3300_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },/*check*/
- { "PhotopaperMatte", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iP3300_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP3300_modeuses_Hagaki, 0 },
- { "TShirt", canon_PIXMA_iP3300_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP3300_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP3300_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP3300);
-
-/* ----------------------------------- Canon iP3600 ----------------------------------- */
-static const char* canon_PIXMA_iP3600_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP3600_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP3600_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP3600_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3600_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iP3600_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP3600_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP3600_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP3600_modeuses[] = {
- { "Plain", canon_PIXMA_iP3600_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_PIXMA_iP3600_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP3600_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_iP3600_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP3600_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP3600_modeuses_Hagaki, 0 },
- { "TShirt", canon_PIXMA_iP3600_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP3600_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP3600_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP3600);
-
-/* ----------------------------------- Canon iP4000 ----------------------------------- */
-static const char* canon_PIXMA_iP4000_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- "600x600dpi_high2",/*legacy*/
- "600x600dpi_std2",/*legacy*/
- "600x600dpi_draft2",/*legacy*/
- NULL
- };
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iP4000_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP4000_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP4000_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* Note: iP4000 US driver does not have inkjetHagaki or Hagaki media */
-/* untested */
-static const char* canon_PIXMA_iP4000_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4000_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_PIXMA_iP4000_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP4000_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const char* canon_PIXMA_iP4000_modeuses_transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP4000_modeuses[] = {
- { "Plain", canon_PIXMA_iP4000_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP4000_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP4000_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iP4000_modeuses_inkjetHagaki, 0 },/*untested*/
- { "Hagaki", canon_PIXMA_iP4000_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
- { "CD", canon_PIXMA_iP4000_modeuses_plain, 0 },/*NOTE:temporary replacement*/
- { "DiscCompat", canon_PIXMA_iP4000_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP4000_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP4000_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4000_modeuses_PPother, 0 },
- { "Transparency", canon_PIXMA_iP4000_modeuses_transparency, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP4000);
-
-/* ----------------------------------- Canon iP4100 ----------------------------------- */
-static const char* canon_PIXMA_iP4100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iP4100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP4100_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP4100_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP4100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_PIXMA_iP4100_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP4100_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const char* canon_PIXMA_iP4100_modeuses_transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP4100_modeuses[] = {
- { "Plain", canon_PIXMA_iP4100_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP4100_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP4100_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iP4100_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP4100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_iP4100_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP4100_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP4100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4100_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4100_modeuses_PPother, 0 },/*untested*/
- { "Transparency", canon_PIXMA_iP4100_modeuses_transparency, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP4100);
-
-/* ----------------------------------- Canon iP4200 ----------------------------------- */
-static const char* canon_PIXMA_iP4200_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* most photo modes not supported yet --- used photodraft as stand-in everywhere */
-static const char* canon_PIXMA_iP4200_modeuses_PPplus[] = {
- "600x600dpi_photodraft",
- NULL
-};
-
-/* high mode not yet supported */
-static const char* canon_PIXMA_iP4200_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4200_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4200_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iP4200_modeuses_transparency[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP4200_modeuses[] = {
- { "Plain", canon_PIXMA_iP4200_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "PhotopaperPlus", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* mostly not yet supported */
- { "PhotopaperPlusDouble", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "PhotopaperMatte", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "GlossyPaper", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "Coated", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "InkJetHagaki", canon_PIXMA_iP4200_modeuses_inkjetHagaki, 0 },/* partially not yet supported */
- { "Hagaki", canon_PIXMA_iP4200_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_PIXMA_iP4200_modeuses_plain, 0 },/*NOTE:temporary replacement*/
- { "DiscCompat", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "DiscOthers", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "TShirt", canon_PIXMA_iP4200_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4200_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
- { "Transparency", canon_PIXMA_iP4200_modeuses_transparency, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP4200);
-
-/* ----------------------------------- Canon iP4300 ----------------------------------- */
-static const char* canon_PIXMA_iP4300_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* most photo modes not supported yet --- used photodraft as stand-in everywhere */
-static const char* canon_PIXMA_iP4300_modeuses_PPplus[] = {
- "600x600dpi_photodraft",
- NULL
-};
-
-/* high mode not yet supported */
-static const char* canon_PIXMA_iP4300_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4300_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4300_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iP4300_modeuses_transparency[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP4300_modeuses[] = {
- { "Plain", canon_PIXMA_iP4300_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "PhotopaperPlus", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* mostly not yet supported */
- { "PhotopaperPlusDouble", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "PhotopaperMatte", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "GlossyPaper", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "Coated", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "InkJetHagaki", canon_PIXMA_iP4300_modeuses_inkjetHagaki, 0 },/* partially not yet supported */
- { "Hagaki", canon_PIXMA_iP4300_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_PIXMA_iP4300_modeuses_plain, 0 },/*NOTE:temporary replacement*/
- { "DiscCompat", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "DiscOthers", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "TShirt", canon_PIXMA_iP4300_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4300_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
- { "Transparency", canon_PIXMA_iP4300_modeuses_transparency, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP4300);
-
-/* ----------------------------------- Canon iP4500 ----------------------------------- */
-static const char* canon_PIXMA_iP4500_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_PIXMA_iP4500_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP4500_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP4500_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP4500_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4500_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP4500_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4500_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_PIXMA_iP4500_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP4500_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP4500_modeuses[] = {
- { "Plain", canon_PIXMA_iP4500_modeuses_plain, DUPLEX_SUPPORT },
- { "PhotoPlusGloss2", canon_PIXMA_iP4500_modeuses_PPplus, 0 },
- { "GlossyPro", canon_PIXMA_iP4500_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP4500_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP4500_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP4500_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP4500_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_iP4500_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP4500_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP4500_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_iP4500_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP4500_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP4500_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4500_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4500_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP4500);
-
-/* ----------------------------------- Canon iP4600 ----------------------------------- */
-static const char* canon_PIXMA_iP4600_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_PIXMA_iP4600_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",/*untested*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP4600_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",/*untested*/
- NULL
-};
-
-static const char* canon_PIXMA_iP4600_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_PIXMA_iP4600_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",/*untested*/
- NULL
-};
-
-static const char* canon_PIXMA_iP4600_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- NULL
-};
-
-static const char* canon_PIXMA_iP4600_modeuses_disc[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_PIXMA_iP4600_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP4600_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP4600_modeuses[] = {
- { "Plain", canon_PIXMA_iP4600_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_PIXMA_iP4600_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP4600_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_iP4600_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP4600_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP4600_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_iP4600_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP4600_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP4600_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4600_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4600_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP4600);
-
-/* ----------------------------------- Canon iP4700 ----------------------------------- */
-static const char* canon_PIXMA_iP4700_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",
- "600x600dpi",
- "300x300dpi",
- NULL
- };
-
-static const char* canon_PIXMA_iP4700_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP4700_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP4700_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4700_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iP4700_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_PIXMA_iP4700_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_iP4700_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP4700_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP4700_modeuses[] = {
- { "Plain", canon_PIXMA_iP4700_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_PIXMA_iP4700_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP4700_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_iP4700_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_iP4700_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_iP4700_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_iP4700_modeuses_PPpro, 0 },
- { "OtherPhotoHagakiO",canon_PIXMA_iP4700_modeuses_PPpro, 0 },
- { "Hagaki", canon_PIXMA_iP4700_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_iP4700_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP4700_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP4700_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4700_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4700_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP4700);
-
-/* ----------------------------------- Canon iP4900 ----------------------------------- */
-static const char* canon_PIXMA_iP4900_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_std2",
- "300x300dpi",
- NULL
- };
-
-static const char* canon_PIXMA_iP4900_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP4900_modeuses_PPproPlat[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP4900_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4900_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_iP4900_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP4900_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iP4900_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP4900_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP4900_modeuses[] = {
- { "Plain", canon_PIXMA_iP4900_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_PIXMA_iP4900_modeuses_PPproPlat, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP4900_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_iP4900_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_iP4900_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_iP4900_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_PIXMA_iP4900_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_iP4900_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP4900_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP4900_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP4900_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP4900_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP4900);
-
-/* ----------------------------------- Canon iP5000 ----------------------------------- */
-/* high mode not supported yet */
-static const char* canon_PIXMA_iP5000_modeuses_plain[] = {
- "600x600dpi",
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* high modes not supported yet */
-static const char* canon_PIXMA_iP5000_modeuses_PPpro[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
-};
-
-/* high modes not supported yet */
-static const char* canon_PIXMA_iP5000_modeuses_PPplus[] = {
- "600x600dpi_photodraft",
- NULL
-};
-
-/* high modes not supported yet */
-static const char* canon_PIXMA_iP5000_modeuses_PPplusDS[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
-};
-
-/* US driver does not supply this media: untested */
-static const char* canon_PIXMA_iP5000_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-/* high modes not supported yet */
-static const char* canon_PIXMA_iP5000_modeuses_disc[] = {
- /* plain mode temporarily added here */
- "600x600dpi",
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* photo modes temporarily added */
- "600x600dpi_photodraft",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_iP5000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* high modes not supported yet */
-static const char* canon_PIXMA_iP5000_modeuses_PPother[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
- };
-
-static const char* canon_PIXMA_iP5000_modeuses_transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP5000_modeuses[] = {
- { "Plain", canon_PIXMA_iP5000_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP5000_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP5000_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },/*untested*/
- { "Hagaki", canon_PIXMA_iP5000_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
- { "DiscCompat", canon_PIXMA_iP5000_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP5000_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP5000_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP5000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP5000_modeuses_PPother, 0 },
- { "Transparency", canon_PIXMA_iP5000_modeuses_transparency, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP5000);
-
-/* ----------------------------------- Canon iP5300 ----------------------------------- */
-static const char* canon_PIXMA_iP5300_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP5300_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP5300_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP5300_modeuses[] = {
- { "Plain", canon_PIXMA_iP5300_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP5300_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP5300_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP5300_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iP5300_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP5300_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_iP5300_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP5300_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP5300_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_PIXMA_iP5300_modeuses_plain, 0 },/*optional using plain*/
- { "DiscCompat", canon_PIXMA_iP5300_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP5300_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP5300_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP5300_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP5300_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP5300);
-
-/* ----------------------------------- Canon iP6000 ----------------------------------- */
-static const char* canon_PIXMA_iP6000_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_PIXMA_iP6000_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6000_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6000_modeuses_PPmatte[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo",
- NULL
-};
-
-/*Note: US printer driver does not support inkjetHagaki */
-static const char* canon_PIXMA_iP6000_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/*Note: US printer driver does not support Hagaki */
-static const char* canon_PIXMA_iP6000_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP6000_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP6000_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const char* canon_PIXMA_iP6000_modeuses_transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP6000_modeuses[] = {
- { "Plain", canon_PIXMA_iP6000_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP6000_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP6000_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP6000_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP6000_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP6000_modeuses_PPplus, 0 },
- { "Coated", canon_PIXMA_iP6000_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP6000_modeuses_inkjetHagaki, 0 },/*untested*/
- { "Hagaki", canon_PIXMA_iP6000_modeuses_Hagaki, DUPLEX_SUPPORT },/* untested */
- { "CD", canon_PIXMA_iP6000_modeuses_disc, 0 },/*NOTE:temporary*/
- { "DiscCompat", canon_PIXMA_iP6000_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP6000_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP6000_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP6000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP6000_modeuses_PPother, 0 },
- { "Transparency", canon_PIXMA_iP6000_modeuses_transparency, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP6000);
-
-/* ----------------------------------- Canon iP6100 ----------------------------------- */
-static const char* canon_PIXMA_iP6100_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_PIXMA_iP6100_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6100_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",/*untested*/
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP6100_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP6100_modeuses_PPother[] = {
- "600x600dpi_photohigh",/*untested*/
- NULL
- };
-
-static const char* canon_PIXMA_iP6100_modeuses_transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP6100_modeuses[] = {
- { "Plain", canon_PIXMA_iP6100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP6100_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP6100_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP6100_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP6100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP6100_modeuses_PPplus, 0 },
- { "Coated", canon_PIXMA_iP6100_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP6100_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP6100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_PIXMA_iP6100_modeuses_disc, 0 },/*NOTE:identical, so combined*/
- { "TShirt", canon_PIXMA_iP6100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP6100_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP6100_modeuses_PPother, 0 },
- { "Transparency", canon_PIXMA_iP6100_modeuses_transparency, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP6100);
-
-/* ----------------------------------- Canon iP6210 ----------------------------------- */
-static const char* canon_PIXMA_iP6210_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "300x300dpi_std2",
- "300x300dpi_draft2",
- NULL
- };
-
-static const char* canon_PIXMA_iP6210_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* Color */
- "1200x1200dpi_photohigh4",
- "600x600dpi_photohigh3",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP6210_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* Color */
- "600x600dpi_photohigh5",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP6210_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* Color */
- "600x600dpi_photohigh5",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP6210_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",
- NULL
-};
-
-static const char* canon_PIXMA_iP6210_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- /* Color */
- "600x600dpi_std5",
- NULL
-};
-
-static const char* canon_PIXMA_iP6210_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- /* Color */
- "600x600dpi_photohigh3",
- "600x600dpi_photo2",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP6210_modeuses[] = {
- { "Plain", canon_PIXMA_iP6210_modeuses_plain, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP6210_modeuses_PPpro, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "PhotopaperPlus", canon_PIXMA_iP6210_modeuses_PPplus, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "PhotopaperPlusDouble", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "PhotopaperMatte", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "GlossyPaper", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "Coated", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "Hagaki", canon_PIXMA_iP6210_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_PIXMA_iP6210_modeuses_TShirt, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "Envelope", canon_PIXMA_iP6210_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_PIXMA_iP6210_modeuses_PPother, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP6210);
-
-/* ----------------------------------- Canon iP6600 ----------------------------------- */
-static const char* canon_PIXMA_iP6600_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP6600_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6600_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6600_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP6600_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iP6600_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP6600_modeuses_disc[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photo5",
- "600x600dpi_photodraft5",
- NULL
-};
-
-static const char* canon_PIXMA_iP6600_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP6600_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP6600_modeuses[] = {
- { "Plain", canon_PIXMA_iP6600_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP6600_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP6600_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP6600_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP6600_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP6600_modeuses_PPplus, 0 },
- { "Coated", canon_PIXMA_iP6600_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP6600_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP6600_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_iP6600_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP6600_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP6600_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP6600_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP6600_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP6600);
-
-/* ----------------------------------- Canon iP6700 ----------------------------------- */
-static const char* canon_PIXMA_iP6700_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_PIXMA_iP6700_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_FA[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_disc[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photo5",
- "600x600dpi_photodraft5",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP6700_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP6700_modeuses[] = {
- { "Plain", canon_PIXMA_iP6700_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP6700_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP6700_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP6700_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP6700_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP6700_modeuses_PPplus, 0 },
- { "Coated", canon_PIXMA_iP6700_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP6700_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP6700_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "FineArtPhotoRag", canon_PIXMA_iP6700_modeuses_FA, 0 },
- { "FineArtOther", canon_PIXMA_iP6700_modeuses_FA, 0 },
- { "DiscCompat", canon_PIXMA_iP6700_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP6700_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP6700_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP6700_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iP6700_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP6700);
-
-/* ----------------------------------- Canon iP7100 ----------------------------------- */
-static const char* canon_PIXMA_iP7100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- /* Mono */
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- NULL
- };
-
-static const char* canon_PIXMA_iP7100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-
-static const char* canon_PIXMA_iP7100_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP7100_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP7100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP7100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- /* Mono */
- "600x600dpi_mono",
- NULL
-};
-
-static const char* canon_PIXMA_iP7100_modeuses_FA[] = {
- "600x600dpi_photohigh3",
- NULL
-};
-
-static const char* canon_PIXMA_iP7100_modeuses_disc[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP7100_modeuses_TShirt[] = {
- "600x600dpi",
- NULL
-};
-
-static const char* canon_PIXMA_iP7100_modeuses_Transparency[] = {
- "600x600dpi_std4",
- "600x600dpi_draft4",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iP7100_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP7100_modeuses[] = {
- { "Plain", canon_PIXMA_iP7100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP7100_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP7100_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP7100_modeuses_PPplus, 0 },
- { "Hagaki", canon_PIXMA_iP7100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "FineArtPhotoRag", canon_PIXMA_iP7100_modeuses_FA, 0 },
- { "FineArtOther", canon_PIXMA_iP7100_modeuses_FA, 0 },
- { "DiscCompat", canon_PIXMA_iP7100_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP7100_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP7100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP7100_modeuses_Hagaki, 0 },
- { "Transparency", canon_PIXMA_iP7100_modeuses_Transparency, 0 },
- { "PhotopaperOther", canon_PIXMA_iP7100_modeuses_PPother, 0 },/*untested*/
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP7100);
-
-/* ----------------------------------- Canon iP7500 ----------------------------------- */
-static const char* canon_PIXMA_iP7500_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest modes not yet supported */
-static const char* canon_PIXMA_iP7500_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-
-static const char* canon_PIXMA_iP7500_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP7500_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP7500_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP7500_modeuses_FA[] = {
- "600x600dpi_photohigh3",
- NULL
-};
-
-static const char* canon_PIXMA_iP7500_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_PIXMA_iP7500_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iP7500_modeuses_Transparency[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP7500_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP7500_modeuses[] = {
- { "Plain", canon_PIXMA_iP7500_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_PIXMA_iP7500_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP7500_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
- { "Coated", canon_PIXMA_iP7500_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
- { "Hagaki", canon_PIXMA_iP7500_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "FineArtPhotoRag", canon_PIXMA_iP7500_modeuses_FA, 0 },
- { "FineArtOther", canon_PIXMA_iP7500_modeuses_FA, 0 },
- { "DiscCompat", canon_PIXMA_iP7500_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP7500_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP7500_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP7500_modeuses_Hagaki, 0 },
- { "Transparency", canon_PIXMA_iP7500_modeuses_Transparency, 0 },/*untested*/
- { "PhotopaperOther", canon_PIXMA_iP7500_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP7500);
-
-/* ----------------------------------- Canon iP8100 ----------------------------------- */
-static const char* canon_PIXMA_iP8100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- /* Mono */
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- NULL
- };
-
-/* no support for modes using R yet */
-static const char* canon_PIXMA_iP8100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",/*untested*/
- "600x600dpi_photo",
- NULL
-};
-
-
-static const char* canon_PIXMA_iP8100_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- /* Mono */
- "600x600dpi_mono",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_FA[] = {
- "600x600dpi_photohigh3",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_disc[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_TShirt[] = {
- "600x600dpi",
- NULL
-};
-
-static const char* canon_PIXMA_iP8100_modeuses_Transparency[] = {
- "600x600dpi_std4",
- "600x600dpi_draft4",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iP8100_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft2",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP8100_modeuses[] = {
- { "Plain", canon_PIXMA_iP8100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP8100_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP8100_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP8100_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP8100_modeuses_PPgloss, 0 },
- { "Coated", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP8100_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP8100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "FineArtPhotoRag", canon_PIXMA_iP8100_modeuses_FA, 0 },
- { "FineArtOther", canon_PIXMA_iP8100_modeuses_FA, 0 },
- { "DiscCompat", canon_PIXMA_iP8100_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP8100_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP8100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP8100_modeuses_Hagaki, 0 },
- { "Transparency", canon_PIXMA_iP8100_modeuses_Transparency, 0 },
- { "PhotopaperOther", canon_PIXMA_iP8100_modeuses_PPother, 0 },/*untested*/
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP8100);
-
-/* ----------------------------------- Canon iP8500 ----------------------------------- */
-static const char* canon_PIXMA_iP8500_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* modes not yet supported */
-static const char* canon_PIXMA_iP8500_modeuses_PPpro[] = {
- "600x600dpi_photodraft",/*temporary stand-in: untested*/
- NULL
-};
-
-/* most modes unsupported */
-static const char* canon_PIXMA_iP8500_modeuses_PPplus[] = {
- "600x600dpi_photodraft",
- NULL
-};
-
-/* most modes unsupported */
-static const char* canon_PIXMA_iP8500_modeuses_PPplusDS[] = {
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP8500_modeuses_PPhires[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* US driver does not support this media: untested */
-static const char* canon_PIXMA_iP8500_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* US driver does not support this media */
-static const char* canon_PIXMA_iP8500_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP8500_modeuses_disc[] = {
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_PIXMA_iP8500_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_iP8500_modeuses_Transparency[] = {
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_PIXMA_iP8500_modeuses_PPother[] = {
- "600x600dpi_photo3",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iP8500_modeuses[] = {
- { "Plain", canon_PIXMA_iP8500_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP8500_modeuses_PPpro, 0 },/*unsupported*/
- { "PhotopaperPlus", canon_PIXMA_iP8500_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP8500_modeuses_PPpro, 0 },/*unsupported*/
- { "GlossyPaper", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP8500_modeuses_PPhires, 0 },
- { "InkJetHagaki", canon_PIXMA_iP8500_modeuses_inkjetHagaki, 0 },/*untested*/
- { "Hagaki", canon_PIXMA_iP8500_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
- { "DiscCompat", canon_PIXMA_iP8500_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP8500_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP8500_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP8500_modeuses_Hagaki, 0 },
- { "Transparency", canon_PIXMA_iP8500_modeuses_Transparency, 0 },
- { "PhotopaperOther", canon_PIXMA_iP8500_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iP8500);
-
-/* ----------------------------------- Canon iP8600 ----------------------------------- */
-static const char* canon_PIXMA_iP8600_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- /* Mono */
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- NULL
- };
-
-/* modes using R not yet supported */
-static const char* canon_PIXMA_iP8600_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",/*untested*/
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode using R not supported yet */
-static const char* canon_PIXMA_iP8600_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",/*untested*/
- "600x600dpi_photo",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- /* Mono */
- "600x600dpi_mono",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_FA[] = {
- "600x600dpi_photohigh4",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_disc[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_TShirt[] = {
- "600x600dpi",
- NULL
-};
-
-static const char* canon_PIXMA_iP8600_modeuses_Transparency[] = {
- "600x600dpi_std4",
- "600x600dpi_draft4",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iP8600_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP8600_modeuses[] = {
- { "Plain", canon_PIXMA_iP8600_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP8600_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP8600_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP8600_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP8600_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "FineArtPhotoRag", canon_PIXMA_iP8600_modeuses_FA, 0 },
- { "FineArtOther", canon_PIXMA_iP8600_modeuses_FA, 0 },
- { "DiscCompat", canon_PIXMA_iP8600_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP8600_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP8600_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP8600_modeuses_Hagaki, 0 },
- { "Transparency", canon_PIXMA_iP8600_modeuses_Transparency, 0 },
- { "PhotopaperOther", canon_PIXMA_iP8600_modeuses_PPother, 0 },/*untested*/
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP8600);
-
-/* ----------------------------------- Canon iP9910 ----------------------------------- */
-static const char* canon_PIXMA_iP9910_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- /* Mono */
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- NULL
- };
-
-/* highest mode using R not yet supported */
-static const char* canon_PIXMA_iP9910_modeuses_PPpro[] = {
- "600x600dpi_photo",
- "600x600dpi_photo2",
- NULL
-};
-
-/* highest mode using R not supported yet */
-static const char* canon_PIXMA_iP9910_modeuses_PPplus[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- /* Mono */
- "600x600dpi_mono",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_FA[] = {
- "600x600dpi_photohigh4",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_disc[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_TShirt[] = {
- "600x600dpi",
- NULL
-};
-
-static const char* canon_PIXMA_iP9910_modeuses_Transparency[] = {
- "600x600dpi_std4",
- "600x600dpi_draft4",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iP9910_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iP9910_modeuses[] = {
- { "Plain", canon_PIXMA_iP9910_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_PIXMA_iP9910_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iP9910_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iP9910_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iP9910_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_PIXMA_iP9910_modeuses_FA, 0 },
- { "FineArtOther", canon_PIXMA_iP9910_modeuses_FA, 0 },
- { "DiscCompat", canon_PIXMA_iP9910_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_iP9910_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_iP9910_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iP9910_modeuses_Hagaki, 0 },
- { "Transparency", canon_PIXMA_iP9910_modeuses_Transparency, 0 },
- { "PhotopaperOther", canon_PIXMA_iP9910_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iP9910);
-
-/* ----------------------------------- Canon iX4000 ----------------------------------- */
-static const char* canon_PIXMA_iX4000_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iX4000_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iX4000_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iX4000_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iX4000_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iX4000_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iX4000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* US driver does not have this media */
-static const char* canon_PIXMA_iX4000_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-/* US driver does not have this media */
-static const char* canon_PIXMA_iX4000_modeuses_Transparency[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iX4000_modeuses[] = {
- { "Plain", canon_PIXMA_iX4000_modeuses_plain, 0 },
- { "GlossyPro", canon_PIXMA_iX4000_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iX4000_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iX4000_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iX4000_modeuses_Hagaki, 0 },
- { "TShirt", canon_PIXMA_iX4000_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iX4000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iX4000_modeuses_PPother, 0 },/*Note: US driver does not have this media*/
- { "Transparency", canon_PIXMA_iX4000_modeuses_Transparency, 0 },/*Note: US driver does not have this media */
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iX4000);
-
-/* ----------------------------------- Canon iX5000 ----------------------------------- */
-static const char* canon_PIXMA_iX5000_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iX5000_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iX5000_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iX5000_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iX5000_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iX5000_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iX5000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* US driver does not have this media */
-static const char* canon_PIXMA_iX5000_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_iX5000_modeuses[] = {
- { "Plain", canon_PIXMA_iX5000_modeuses_plain, 0 },
- { "GlossyPro", canon_PIXMA_iX5000_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_PIXMA_iX5000_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
- { "Coated", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_PIXMA_iX5000_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_iX5000_modeuses_Hagaki, 0 },
- { "TShirt", canon_PIXMA_iX5000_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iX5000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iX5000_modeuses_PPother, 0 },/*Note: US driver does not have this media*/
- { "Transparency", canon_PIXMA_iX5000_modeuses_inkjetHagaki, 0 },/*Note: US driver does not have this media */
- };
-
-DECLARE_MODEUSES(canon_PIXMA_iX5000);
-
-/* ----------------------------------- Canon iX6500 ----------------------------------- */
-static const char* canon_PIXMA_iX6500_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-
-static const char* canon_PIXMA_iX6500_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iX6500_modeuses_PPproPlat[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_iX6500_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_iX6500_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iX6500_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_iX6500_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/*untested*/
-static const char* canon_PIXMA_iX6500_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iX6500_modeuses[] = {
- { "Plain", canon_PIXMA_iX6500_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_PIXMA_iX6500_modeuses_PPproPlat, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_iX6500_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_iX6500_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_iX6500_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
- { "HagakiA", canon_PIXMA_iX6500_modeuses_Hagaki, 0 },
- { "Hagaki", canon_PIXMA_iX6500_modeuses_Hagaki, 0 },
- { "TShirt", canon_PIXMA_iX6500_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_iX6500_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_iX6500_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iX6500);
-
-/* ----------------------------------- Canon iX7000 ----------------------------------- */
-static const char* canon_PIXMA_iX7000_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-
-static const char* canon_PIXMA_iX7000_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iX7000_modeuses_PPproPlat[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-/* highest mode not supported yet */
-static const char* canon_PIXMA_iX7000_modeuses_PPsemigloss[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_PIXMA_iX7000_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_iX7000_modeuses_Hagaki[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_PIXMA_iX7000_modeuses_FA[] = {
- "600x600dpi_photo3",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_iX7000_modeuses[] = {
- { "Plain", canon_PIXMA_iX7000_modeuses_plain, DUPLEX_SUPPORT },
- { "PhotoPlusGloss2", canon_PIXMA_iX7000_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_PIXMA_iX7000_modeuses_PPproPlat, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_iX7000_modeuses_PPsemigloss, 0 },
- { "PhotopaperMatte", canon_PIXMA_iX7000_modeuses_PPproPlat, 0 },
- { "InkJetHagaki", canon_PIXMA_iX7000_modeuses_inkjetHagaki, 0 },
- { "HagakiA", canon_PIXMA_iX7000_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "Hagaki", canon_PIXMA_iX7000_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "FineArtPhotoRag", canon_PIXMA_iX7000_modeuses_FA, 0 },
- { "FineArtOther", canon_PIXMA_iX7000_modeuses_FA, 0 },
- { "Envelope", canon_PIXMA_iX7000_modeuses_Hagaki, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_iX7000);
-
-/* ----------------------------------- Canon MP150 ----------------------------------- */
-static const char* canon_MULTIPASS_MP150_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* color-only */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- "300x300dpi_std3",
- "300x300dpi_draft3",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP150_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh3",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP150_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP150_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP150_modeuses_PPgloss[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP150_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",
- /* mono */
- "600x600dpi_highmono2",
- "600x600dpi_mono2",
- "600x600dpi_draftmono2",
- /* color-only */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP150_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP150_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP150_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP150_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "GlossyPro", canon_MULTIPASS_MP150_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlus", canon_MULTIPASS_MP150_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP150_modeuses_PPgloss, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP150_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP150_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP150_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP150_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP150);
-
-/* ----------------------------------- Canon MP190 ----------------------------------- */
-static const char* canon_MULTIPASS_MP190_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- "300x300dpi_std3",
- "300x300dpi_draft3",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP190_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP190_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP190_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP190_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_mono2",
- "600x600dpi_draftmono2",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP190_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP190_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP190_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP190_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_MULTIPASS_MP190_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MP190_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlus", canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP190_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP190_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP190_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP190_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP190_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP190_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP190_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP190);
-
-/* ----------------------------------- Canon MP210 ----------------------------------- */
-static const char* canon_MULTIPASS_MP210_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- "300x300dpi_std3",
- "300x300dpi_draft3",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP210_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested here*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP210_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP210_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested here*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP210_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested here*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP210_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_mono2",
- "600x600dpi_draftmono2",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP210_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP210_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP210_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP210_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "GlossyPro", canon_MULTIPASS_MP210_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlus", canon_MULTIPASS_MP210_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP210_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP210_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP210_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP210_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP210_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP210_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP210_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP210);
-
-/* ----------------------------------- Canon MP240 ----------------------------------- */
-static const char* canon_MULTIPASS_MP240_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- "300x300dpi_std3",
- "300x300dpi_draft3",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP240_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP240_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP240_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_mono2",
- "600x600dpi_draftmono2",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP240_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP240_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP240_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP240_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
- { "PhotoPlusGloss2", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_MULTIPASS_MP240_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP240_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP240_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP240_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP240_modeuses_PPother, INKSET_COLOR_SUPPORT },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP240);
-
-/* ----------------------------------- Canon MP250 ----------------------------------- */
-static const char* canon_MULTIPASS_MP250_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- /* mono */
- "600x600dpi_highmono",
- "600x600dpi_highmono2",/* duplex */
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",/*untested*/
- /* color-only --- no special duplex */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- "300x300dpi_std3",
- "300x300dpi_draft3",/*untested*/
- NULL
- };
-
-static const char* canon_MULTIPASS_MP250_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP250_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP250_modeuses_Hagaki[] = {
- "600x600dpi_high5",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- /* mono */
- "600x600dpi_highmono5",
- "600x600dpi_mono2",
- "600x600dpi_draftmono2",/*untested*/
- /* color-only */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP250_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP250_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP250_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP250_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
- { "PhotoPlusGloss2", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_MULTIPASS_MP250_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MP250_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "ProPhotoHagakiP", canon_MULTIPASS_MP250_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP250_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT},
- { "TShirt", canon_MULTIPASS_MP250_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP250_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP250_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP250);
-
-/* ----------------------------------- Canon MP280 ----------------------------------- */
-static const char* canon_MULTIPASS_MP280_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",/*untested*/
- /* Color */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- "300x300dpi_std3",
- "300x300dpi_draft3",/*untested*/
- NULL
- };
-
-static const char* canon_MULTIPASS_MP280_modeuses_PPproPlat[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP280_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP280_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_mono2",
- "600x600dpi_draftmono2",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP280_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP280_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP280_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP280_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
- { "PhotoPlusGloss2", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MP280_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MP280_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP280_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP280_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP280_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP280_modeuses_PPother, INKSET_COLOR_SUPPORT },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP280);
-
-/* ----------------------------------- Canon MP360 ----------------------------------- */
-static const char* canon_MULTIPASS_MP360_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_highmono",/* mono */
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP360_modeuses_PPpro[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP360_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP360_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP360_modeuses_PPgloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP360_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_highmono2",/* mono */
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP360_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP360_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP360_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP360_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MP360_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP360_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP360_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP360_modeuses_PPgloss, 0 },
- { "Coated", canon_MULTIPASS_MP360_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP360_modeuses_PPmatte, 0 },
- { "Hagaki", canon_MULTIPASS_MP360_modeuses_Hagaki, 0 },
- { "TShirt", canon_MULTIPASS_MP360_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP360_modeuses_Hagaki, 0 },
- { "Transparency", canon_MULTIPASS_MP360_modeuses_Transparency, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP360);
-
-/* ----------------------------------- Canon MP470 ----------------------------------- */
-static const char* canon_MULTIPASS_MP470_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- "300x300dpi_std2",
- "300x300dpi_draft2",
- NULL
- };
-
-/* high mode not supported yet */
-static const char* canon_MULTIPASS_MP470_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP470_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP470_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP470_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP470_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- /* Mono */
- "600x600dpi_highmono3",
- "600x600dpi_mono3",
- "600x600dpi_draftmono3",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP470_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP470_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP470_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP470_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
- { "GlossyPro", canon_MULTIPASS_MP470_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlus", canon_MULTIPASS_MP470_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP470_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP470_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP470_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP470_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP470_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP470_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP470_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP470_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP470_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP470_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP470);
-
-/* ----------------------------------- Canon MP480 ----------------------------------- */
-static const char* canon_MULTIPASS_MP480_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- "300x300dpi_std2",
- "300x300dpi_draft2",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP480_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP480_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP480_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- /* Mono */
- "600x600dpi_highmono3",
- "600x600dpi_mono3",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP480_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP480_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP480_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP480_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
- { "PhotoPlusGloss2", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_MULTIPASS_MP480_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP480_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP480_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP480_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP480_modeuses_PPother, INKSET_COLOR_SUPPORT },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP480);
-
-/* ----------------------------------- Canon MP490 ----------------------------------- */
-static const char* canon_MULTIPASS_MP490_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- "300x300dpi_mono",
- "300x300dpi_draftmono",/*untested*/
- /* Color */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- "300x300dpi_std3",
- "300x300dpi_draft3",/*untested*/
- NULL
- };
-
-static const char* canon_MULTIPASS_MP490_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP490_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP490_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_mono2",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP490_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP490_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- "600x600dpi_photodraft",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP490_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP490_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
- { "PhotoPro2", canon_MULTIPASS_MP490_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "ProPhotoHagakiP", canon_MULTIPASS_MP490_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MP490_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "Hagaki", canon_MULTIPASS_MP490_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP490_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP490_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP490_modeuses_PPother, INKSET_COLOR_SUPPORT },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP490);
-
-/* ----------------------------------- Canon MP493 ----------------------------------- */
-static const char* canon_MULTIPASS_MP493_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- "300x300dpi_std2",
- "300x300dpi_draft2",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP493_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP493_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP493_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- /* Mono */
- "600x600dpi_highmono3",
- "600x600dpi_mono3",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP493_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP493_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP493_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP493_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
- { "PhotoPlusGloss2", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_MULTIPASS_MP493_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MP493_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "ProPhotoHagakiP", canon_MULTIPASS_MP493_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MP493_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MP493_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MP493_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MP493_modeuses_PPother, INKSET_COLOR_SUPPORT },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP493);
-
-/* ----------------------------------- Canon MP520 ----------------------------------- */
-static const char* canon_MULTIPASS_MP520_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP520_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP520_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP520_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP520_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP520_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP520_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP520_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP520_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP520_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MP520_modeuses_PPpro, 0 },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP520_modeuses_PPplus, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP520_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP520_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP520_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP520_modeuses_PPplusDS, 0 },
- { "Coated", canon_MULTIPASS_MP520_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP520_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP520_modeuses_Hagaki, 0 },
- { "TShirt", canon_MULTIPASS_MP520_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP520_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP520_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP520);
-
-/* ----------------------------------- Canon MP530 ----------------------------------- */
-static const char* canon_MULTIPASS_MP530_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* most photo modes not yet supported */
-static const char* canon_MULTIPASS_MP530_modeuses_PPpro[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-/* only draft available */
-static const char* canon_MULTIPASS_MP530_modeuses_PPplus[] = {
- "600x600dpi_photodraft",
- NULL
-};
-
-/*most photo modes not yet supported */
-static const char* canon_MULTIPASS_MP530_modeuses_PPplusDS[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP530_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP530_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP530_modeuses_disc[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP530_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP530_modeuses_PPother[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP530_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP530_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MP530_modeuses_PPpro, 0 },/*not supported yet*/
- { "PhotopaperPlus", canon_MULTIPASS_MP530_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "GlossyPaper", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "PhotopaperMatte", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "Coated", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "InkJetHagaki", canon_MULTIPASS_MP530_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP530_modeuses_Hagaki, 0 },
- { "CD", canon_MULTIPASS_MP530_modeuses_plain, 0 },/*NOTE:temporary replacement*/
- { "DiscCompat", canon_MULTIPASS_MP530_modeuses_disc, 0 },/*not supported yet*/
- { "DiscOthers", canon_MULTIPASS_MP530_modeuses_disc, 0 },/*not supported yet*/
- { "TShirt", canon_MULTIPASS_MP530_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP530_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP530_modeuses_PPother, 0 },/*not supported yet*/
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP530);
-
-/* ----------------------------------- Canon MP540 ----------------------------------- */
-static const char* canon_MULTIPASS_MP540_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP540_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP540_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP540_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP540_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP540_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP540_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP540_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP540_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP540_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MP540_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP540_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
- { "Coated", canon_MULTIPASS_MP540_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP540_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP540_modeuses_Hagaki, 0 },
- { "TShirt", canon_MULTIPASS_MP540_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP540_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP540_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP540);
-
-/* ----------------------------------- Canon MP550 ----------------------------------- */
-static const char* canon_MULTIPASS_MP550_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- NULL
- };
-
-/*highest mode not supported yet*/
-static const char* canon_MULTIPASS_MP550_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP550_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP550_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP550_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP550_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP550_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP550_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP550_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP550_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MP550_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP550_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP550_modeuses_PPmatte, 0 },
- { "HagakiA", canon_MULTIPASS_MP550_modeuses_Hagaki, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP550_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
- { "ProPhotoHagakiP", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_MULTIPASS_MP550_modeuses_Hagaki, 0 },
- { "TShirt", canon_MULTIPASS_MP550_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP550_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP550_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP550);
-
-/* ----------------------------------- Canon MP560 ----------------------------------- */
-static const char* canon_MULTIPASS_MP560_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/* duplex */
- "600x600dpi",
- "300x300dpi",
- NULL
- };
-
-/*highest mode not supported yet*/
-static const char* canon_MULTIPASS_MP560_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP560_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP560_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP560_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP560_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP560_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP560_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP560_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP560_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MP560_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP560_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP560_modeuses_PPmatte, 0 },
- { "HagakiA", canon_MULTIPASS_MP560_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP560_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
- { "ProPhotoHagakiP", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_MULTIPASS_MP560_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "TShirt", canon_MULTIPASS_MP560_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP560_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP560_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP560);
-
-/* ----------------------------------- Canon MP600 ----------------------------------- */
-static const char* canon_MULTIPASS_MP600_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/*unsupported*/
-static const char* canon_MULTIPASS_MP600_modeuses_PPpro[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
-};
-
-/*most modes unsupported*/
-static const char* canon_MULTIPASS_MP600_modeuses_PPplus[] = {
- "600x600dpi_photodraft",
- NULL
-};
-
-/*unsupported*/
-static const char* canon_MULTIPASS_MP600_modeuses_PPplusDS[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
-};
-
-/*unsupported*/
-static const char* canon_MULTIPASS_MP600_modeuses_PPmatte[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
-};
-
-/*highest mode unsupported*/
-static const char* canon_MULTIPASS_MP600_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP600_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-/*unsupported*/
-static const char* canon_MULTIPASS_MP600_modeuses_disc[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP600_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/*unsupported*/
-static const char* canon_MULTIPASS_MP600_modeuses_PPother[] = {
- "600x600dpi_photodraft",/*stand-in*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP600_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP600_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MP600_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP600_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP600_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP600_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP600_modeuses_PPplusDS, 0 },
- { "Coated", canon_MULTIPASS_MP600_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP600_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP600_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_MULTIPASS_MP600_modeuses_plain, 0 },/*temporary for plain modes*/
- { "DiscCompat", canon_MULTIPASS_MP600_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP600_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP600_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP600_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP600_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP600);
-
-/* ----------------------------------- Canon MP610 ----------------------------------- */
-static const char* canon_MULTIPASS_MP610_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* missing highest resolution mode as not yet implemented */
-static const char* canon_MULTIPASS_MP610_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP610_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP610_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP610_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MP610_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP610_modeuses_PPplus, 0 },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP610_modeuses_PPplusG2, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP610_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP610_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP610_modeuses_PPplusDS, 0 },
- { "Coated", canon_MULTIPASS_MP610_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP610_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP610_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_MULTIPASS_MP610_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP610_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP610_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP610_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP610_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP610);
-
-/* ----------------------------------- Canon MP620 ----------------------------------- */
-static const char* canon_MULTIPASS_MP620_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP620_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP620_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP620_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP620_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP620_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP620_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP620_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP620_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP620_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MP620_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP620_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
- { "Coated", canon_MULTIPASS_MP620_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP620_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP620_modeuses_Hagaki, 0 },
- { "TShirt", canon_MULTIPASS_MP620_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP620_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP620_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP620);
-
-/* ----------------------------------- Canon MP630 ----------------------------------- */
-static const char* canon_MULTIPASS_MP630_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP630_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP630_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP630_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP630_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP630_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP630_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP630_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP630_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP630_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP630_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MP630_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP630_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP630_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP630_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP630_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_MULTIPASS_MP630_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP630_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP630_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP630_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP630_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP630);
-
-/* ----------------------------------- Canon MP640 ----------------------------------- */
-static const char* canon_MULTIPASS_MP640_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP640_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP640_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP640_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP640_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP640_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP640_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP640_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP640_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP640_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP640_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MP640_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP640_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP640_modeuses_PPmatte, 0 },
- { "HagakiA", canon_MULTIPASS_MP640_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MP640_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
- { "ProPhotoHagakiP", canon_MULTIPASS_MP640_modeuses_PPpro, 0 },
- { "Hagaki", canon_MULTIPASS_MP640_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_MULTIPASS_MP640_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP640_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP640_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP640_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP640_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP640);
-
-/* ----------------------------------- Canon MP700 ----------------------------------- */
-static const char* canon_MULTIPASS_MP700_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",/*untested*/
- "600x600dpi_draft",
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP700_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP700_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP700_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP700_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",/*untested*/
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP700_modeuses_Hagaki[] = {
- "600x600dpi_high3",/*untested*/
- "600x600dpi_high2",
- "600x600dpi_std2",/*untested*/
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP700_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP700_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP700_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-/*untested*/
-static const char* canon_MULTIPASS_MP700_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP700_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP700_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MP700_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP700_modeuses_PPpro, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
- { "Coated", canon_MULTIPASS_MP700_modeuses_coated, 0 },
- { "GlossyFilm", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP700_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP700_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_MULTIPASS_MP700_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP700_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP700_modeuses_TShirt, 0 },
- { "Transparency", canon_MULTIPASS_MP700_modeuses_Transparency, 0 },
- { "Envelope", canon_MULTIPASS_MP700_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP700_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP700);
-
-/* ----------------------------------- Canon MP710 ----------------------------------- */
-static const char* canon_MULTIPASS_MP710_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",/*untested*/
- "600x600dpi_draft",
- "300x300dpi_high",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP710_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP710_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP710_modeuses_coated[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP710_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",/*untested*/
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP710_modeuses_Hagaki[] = {
- "600x600dpi_high3",/*untested*/
- "600x600dpi_high2",
- "600x600dpi_std2",/*untested*/
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP710_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP710_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP710_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-/*untested*/
-static const char* canon_MULTIPASS_MP710_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP710_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP710_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MP710_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP710_modeuses_PPpro, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
- { "Coated", canon_MULTIPASS_MP710_modeuses_coated, 0 },
- { "GlossyFilm", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP710_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP710_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_MULTIPASS_MP710_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP710_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP710_modeuses_TShirt, 0 },
- { "Transparency", canon_MULTIPASS_MP710_modeuses_Transparency, 0 },
- { "Envelope", canon_MULTIPASS_MP710_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP710_modeuses_PPother, 0 },/*untested*/
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP710);
-
-/* ----------------------------------- Canon MP750 ----------------------------------- */
-static const char* canon_MULTIPASS_MP750_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP750_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP750_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP750_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP750_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP750_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP750_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP750_modeuses_Transparency[] = {
- "600x600dpi_ohphigh",
- "600x600dpi_ohp",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP750_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP750_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP750_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MP750_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP750_modeuses_PPpro, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
- { "Coated", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
- { "GlossyFilm", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },/*untested*/
- { "InkJetHagaki", canon_MULTIPASS_MP750_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP750_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_MULTIPASS_MP750_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP750_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP750_modeuses_TShirt, 0 },
- { "Transparency", canon_MULTIPASS_MP750_modeuses_Transparency, 0 },
- { "Envelope", canon_MULTIPASS_MP750_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP750_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP750);
-
-/* ----------------------------------- Canon MP800 ----------------------------------- */
-static const char* canon_MULTIPASS_MP800_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/*most photo modes not yet supported */
-static const char* canon_MULTIPASS_MP800_modeuses_PPpro[] = {
- "600x600dpi_photo",/*temporary stand-in*/
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-/* only draft available */
-static const char* canon_MULTIPASS_MP800_modeuses_PPplus[] = {
- "600x600dpi_photo",/*temporary stand-in*/
- "600x600dpi_photodraft",
- NULL
-};
-
-/*most photo modes not yet supported */
-static const char* canon_MULTIPASS_MP800_modeuses_PPplusDS[] = {
- "600x600dpi_photo",/*temporary stand-in*/
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP800_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP800_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP800_modeuses_disc[] = {
- "600x600dpi_photo",/*temporary stand-in*/
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP800_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP800_modeuses_PPother[] = {
- "600x600dpi_photo",/*temporary stand-in*/
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP800_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP800_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MP800_modeuses_PPpro, 0 },/*not supported yet*/
- { "PhotopaperPlus", canon_MULTIPASS_MP800_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "GlossyPaper", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "PhotopaperMatte", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "Coated", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "InkJetHagaki", canon_MULTIPASS_MP800_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP800_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_MULTIPASS_MP800_modeuses_plain, 0 },/*NOTE:temporary replacement*/
- { "DiscCompat", canon_MULTIPASS_MP800_modeuses_disc, 0 },/*not supported yet*/
- { "DiscOthers", canon_MULTIPASS_MP800_modeuses_disc, 0 },/*not supported yet*/
- { "TShirt", canon_MULTIPASS_MP800_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP800_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP800_modeuses_PPother, 0 },/*not supported yet*/
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP800);
-
-/* ----------------------------------- Canon MP810 ----------------------------------- */
-static const char* canon_MULTIPASS_MP810_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP810_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP810_modeuses_PPother[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP810_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP810_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MP810_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP810_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP810_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP810_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP810_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP810_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP810_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP810_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_MULTIPASS_MP810_modeuses_plain, },/*NOTE:option*/
- { "DiscCompat", canon_MULTIPASS_MP810_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP810_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP810_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP810_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP810_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP810);
-
-/* ----------------------------------- Canon MP830 ----------------------------------- */
-static const char* canon_MULTIPASS_MP830_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/*most photo modes not yet supported */
-static const char* canon_MULTIPASS_MP830_modeuses_PPpro[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-/* only draft available */
-static const char* canon_MULTIPASS_MP830_modeuses_PPplus[] = {
- "600x600dpi_photodraft",
- NULL
-};
-
-/*most photo modes not yet supported */
-static const char* canon_MULTIPASS_MP830_modeuses_PPplusDS[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MP830_modeuses_inkjetHagaki[] = {
- "600x600dpi_photo2",
- "600x600dpi_photodraft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP830_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP830_modeuses_disc[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP830_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP830_modeuses_PPother[] = {
- "600x600dpi_photodraft",/*temporary stand-in*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP830_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP830_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MP830_modeuses_PPpro, 0 },/*not supported yet*/
- { "PhotopaperPlus", canon_MULTIPASS_MP830_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "GlossyPaper", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "PhotopaperMatte", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "Coated", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
- { "InkJetHagaki", canon_MULTIPASS_MP830_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP830_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "CD", canon_MULTIPASS_MP830_modeuses_plain, 0 },/*NOTE:temporary replacement*/
- { "DiscCompat", canon_MULTIPASS_MP830_modeuses_disc, 0 },/*not supported yet*/
- { "DiscOthers", canon_MULTIPASS_MP830_modeuses_disc, 0 },/*not supported yet*/
- { "TShirt", canon_MULTIPASS_MP830_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP830_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP830_modeuses_PPother, 0 },/*not supported yet*/
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP830);
-
-/* ----------------------------------- Canon MP900 ----------------------------------- */
-static const char* canon_MULTIPASS_MP900_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- /* Mono */
- "600x600dpi_draftmono",
- "600x600dpi_draftmono2",
- NULL
- };
-
-static const char* canon_MULTIPASS_MP900_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photo2",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_coated[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_Hagaki[] = {
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",
- "600x600dpi_draftmono4",/* Mono */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_disc[] = {
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP900_modeuses_Transparency[] = {
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-/*untested*/
-static const char* canon_MULTIPASS_MP900_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP900_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP900_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MP900_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP900_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP900_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP900_modeuses_coated, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP900_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP900_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_MULTIPASS_MP900_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP900_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP900_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP900_modeuses_Hagaki, 0 },
- { "Transparency", canon_MULTIPASS_MP900_modeuses_Transparency, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP900_modeuses_PPother, 0 },/*untested*/
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP900);
-
-/* ----------------------------------- Canon MP950 ----------------------------------- */
-static const char* canon_MULTIPASS_MP950_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/*highest mode not yet supported */
-static const char* canon_MULTIPASS_MP950_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- /* Mono not yet supported */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- /* Mono not yet supported */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- "600x600dpi_photodraft",/*untested*/
- /* No mono modes for this media */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- /* No mono modes for this media */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_FA[] = {
- "600x600dpi_photohigh4",
- /* Mono not yet supported */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_disc[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photo5",
- "600x600dpi_photodraft5",
- NULL
- /* No mono modes for this media */
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_Transparency[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- /* No mono modes for this media */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP950_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- "600x600dpi_photodraft",/*untested*/
- /* No mono modes for this media */
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MP950_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP950_modeuses_plain, DUPLEX_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MP950_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP950_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP950_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP950_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP950_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP950_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP950_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP950_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_MULTIPASS_MP950_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP950_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP950_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP950_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_MULTIPASS_MP950_modeuses_FA, 0 },
- { "FineArtOther", canon_MULTIPASS_MP950_modeuses_FA, 0 },
- { "Transparency", canon_MULTIPASS_MP950_modeuses_Transparency, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP950_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP950);
-
-/* ----------------------------------- Canon MP960 ----------------------------------- */
-static const char* canon_MULTIPASS_MP960_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/*duplex*/
- "600x600dpi",
- "600x600dpi_draft",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/*highest mode not yet supported */
-static const char* canon_MULTIPASS_MP960_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* Mono not yet supported */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* Mono not yet supported */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* No mono modes for this media */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- /* No mono modes for this media */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- /* No mono modes for this media */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_FA[] = {
- "600x600dpi_photohigh5",
- /* Mono not yet supported */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
- /* No mono modes for this media */
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* Note: this media is not supported in Windows driver: taken from MP950 */
-static const char* canon_MULTIPASS_MP960_modeuses_Transparency[] = {
- "600x600dpi_high4",
- "600x600dpi_std4",
- /* No mono modes for this media */
- NULL
-};
-
-static const char* canon_MULTIPASS_MP960_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- /* No mono modes for this media */
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP960_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP960_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_MULTIPASS_MP960_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP960_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP960_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP960_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP960_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP960_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP960_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP960_modeuses_Hagaki, DUPLEX_SUPPORT }, /* not sure */
- { "DiscCompat", canon_MULTIPASS_MP960_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP960_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP960_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP960_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_MULTIPASS_MP960_modeuses_FA, 0 },
- { "FineArtOther", canon_MULTIPASS_MP960_modeuses_FA, 0 },
- { "Transparency", canon_MULTIPASS_MP960_modeuses_Transparency, 0 },/*untested*/
- { "PhotopaperOther", canon_MULTIPASS_MP960_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP960);
-
-/* ----------------------------------- Canon MP970 ----------------------------------- */
-/* TODO: mono modes for photo media*/
-
-static const char* canon_MULTIPASS_MP970_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/*duplex*/
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/*highest mode not yet supported */
-static const char* canon_MULTIPASS_MP970_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_FA[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP970_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP970_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP970_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "GlossyPro", canon_MULTIPASS_MP970_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP970_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP970_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP970_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP970_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_MULTIPASS_MP970_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP970_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP970_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP970_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_MULTIPASS_MP970_modeuses_FA, 0 },
- { "FineArtOther", canon_MULTIPASS_MP970_modeuses_FA, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP970_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP970);
-
-/* ----------------------------------- Canon MP980 ----------------------------------- */
-/* TODO: mono modes for photo media*/
-
-static const char* canon_MULTIPASS_MP980_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/*duplex*/
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/*photo modes not yet supported */
-static const char* canon_MULTIPASS_MP980_modeuses_PPpro[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-/*photo modes not yet supported */
-static const char* canon_MULTIPASS_MP980_modeuses_PPplus[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP980_modeuses_PPmatte[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP980_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP980_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-/*photo modes not yet supported */
-static const char* canon_MULTIPASS_MP980_modeuses_FA[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP980_modeuses_disc[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP980_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP980_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP980_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP980_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
- { "PhotoPro2", canon_MULTIPASS_MP980_modeuses_PPpro, 0 },/*unsupported*/
- { "PhotoProPlat", canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
- { "PhotoProSemiGloss",canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
- { "GlossyPaper", canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
- { "PhotopaperMatte", canon_MULTIPASS_MP980_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP980_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP980_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MP980_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_MULTIPASS_MP980_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP980_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP980_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP980_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_MULTIPASS_MP980_modeuses_FA, 0 },/*unsupported*/
- { "FineArtOther", canon_MULTIPASS_MP980_modeuses_FA, 0 },/*unsupported*/
- { "PhotopaperOther", canon_MULTIPASS_MP980_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP980);
-
-/* ----------------------------------- Canon MP990 ----------------------------------- */
-/* Most photo modes not supported */
-static const char* canon_MULTIPASS_MP990_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi_high",/*duplex*/
- "600x600dpi",
- "300x300dpi",
- NULL
- };
-
-/* unsupported */
-static const char* canon_MULTIPASS_MP990_modeuses_PPpro[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-/* unsupported */
-static const char* canon_MULTIPASS_MP990_modeuses_PPproPlat[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-/* unsupported */
-static const char* canon_MULTIPASS_MP990_modeuses_PPplus[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP990_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP990_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP990_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-/*unsupported*/
-static const char* canon_MULTIPASS_MP990_modeuses_FA[] = {
- "600x600dpi_photo",/*stand-in*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MP990_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP990_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MP990_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MP990_modeuses[] = {
- { "Plain", canon_MULTIPASS_MP990_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
- { "PhotoPro2", canon_MULTIPASS_MP990_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MP990_modeuses_PPproPlat, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
- { "GlossyPaper", canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MP990_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MP990_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MP990_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
- { "ProPhotoHagakiP", canon_MULTIPASS_MP990_modeuses_PPproPlat, 0 },
- { "HagakiA", canon_MULTIPASS_MP990_modeuses_Hagaki, DUPLEX_SUPPORT },/* not sure */
- { "Hagaki", canon_MULTIPASS_MP990_modeuses_Hagaki, DUPLEX_SUPPORT },/* not sure */
- { "DiscCompat", canon_MULTIPASS_MP990_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MP990_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MP990_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MP990_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_MULTIPASS_MP990_modeuses_FA, 0 },
- { "FineArtOther", canon_MULTIPASS_MP990_modeuses_FA, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MP990_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MP990);
-
-/* ----------------------------------- Canon MX300 ----------------------------------- */
-static const char* canon_MULTIPASS_MX300_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Black */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- "300x300dpi_std2",
- "300x300dpi_draft2",
- NULL
- };
-
-static const char* canon_MULTIPASS_MX300_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX300_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX300_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX300_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX300_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- /* Black */
- "600x600dpi_highmono3",
- "600x600dpi_stdmono3",
- "600x600dpi_draftmono3",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MX300_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX300_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX300_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX300_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPro", canon_MULTIPASS_MX300_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlus", canon_MULTIPASS_MX300_modeuses_PPplus, INKSET_COLOR_SUPPORT },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MX300_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MX300_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MX300_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MX300_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MX300_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MX300_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MX300_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX300_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MX300_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX300);
-
-/* ----------------------------------- Canon MX330 ----------------------------------- */
-static const char* canon_MULTIPASS_MX330_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Black */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- "300x300dpi_std2",
- "300x300dpi_draft2",
- NULL
- };
-
-static const char* canon_MULTIPASS_MX330_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX330_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX330_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- /* Black */
- "600x600dpi_highmono3",
- "600x600dpi_stdmono3",
- "600x600dpi_draftmono3",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MX330_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX330_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX330_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX330_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_MULTIPASS_MX330_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MX330_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MX330_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX330_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MX330_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX330);
-
-/* ----------------------------------- Canon MX340 ----------------------------------- */
-static const char* canon_MULTIPASS_MX340_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- /* Black */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",/*untested*/
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- "300x300dpi_std2",
- "300x300dpi_draft2",/*untested*/
- NULL
- };
-
-static const char* canon_MULTIPASS_MX340_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX340_modeuses_PPpro[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX340_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- /* Black */
- "600x600dpi_highmono3",
- "600x600dpi_stdmono3",
- "600x600dpi_draftmono3",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MX340_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX340_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX340_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX340_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoPro2", canon_MULTIPASS_MX340_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MX340_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MX340_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MX340_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX340_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MX340_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX340);
-
-/* ----------------------------------- Canon MX360 ----------------------------------- */
-static const char* canon_MULTIPASS_MX360_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- /* Black */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",/*untested*/
- /* Color */
- "600x600dpi_high3",
- "600x600dpi_std3",
- "600x600dpi_draft3",/*untested*/
- "300x300dpi_std3",
- "300x300dpi_draft3",/*untested*/
- NULL
- };
-
-static const char* canon_MULTIPASS_MX360_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX360_modeuses_PPproPlat[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX360_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- /* Black */
- "600x600dpi_highmono2",
- "600x600dpi_stdmono2",
- "600x600dpi_draftmono2",/*untested*/
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- "600x600dpi_draft4",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MX360_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX360_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MX360_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX360_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MX360_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MX360_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MX360_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MX360_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX360_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MX360_modeuses_PPother, INKSET_COLOR_SUPPORT },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX360);
-
-/* ----------------------------------- Canon MX370 ----------------------------------- */
-static const char* canon_MULTIPASS_MX370_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX370_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX370_modeuses_PPproPlat[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX370_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX370_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX370_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX370_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX370_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MX370_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MX370_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MX370_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MX370_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX370_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MX370_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX370);
-
-/* ----------------------------------- Canon MX420 ----------------------------------- */
-static const char* canon_MULTIPASS_MX420_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- /* Black */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",/*untested*/
- "300x300dpi_mono",
- "300x300dpi_draftmono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "600x600dpi_draft2",/*untested*/
- "300x300dpi_std2",
- "300x300dpi_draft2",
- NULL
- };
-
-static const char* canon_MULTIPASS_MX420_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MX420_modeuses_PPproPlat[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",/*untested*/
- NULL
-};
-
-static const char* canon_MULTIPASS_MX420_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- /* Black */
- "600x600dpi_highmono3",
- "600x600dpi_stdmono3",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX420_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX420_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",/*untested*/
- "600x600dpi_photodraft",/*untested*/
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MX420_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX420_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MX420_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MX420_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MX420_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_MX420_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX420_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MX420_modeuses_PPother, INKSET_COLOR_SUPPORT },
- };
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX420);
-
-/* ----------------------------------- Canon MX510 ----------------------------------- */
-static const char* canon_MULTIPASS_MX510_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high3",/* duplex */
- "600x600dpi",
- "300x300dpi",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX510_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX510_modeuses_PPproPlat[] = {
- "1200x1200dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX510_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX510_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX510_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX510_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX510_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_MX510_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_MX510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_MX510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
- { "TShirt", canon_MULTIPASS_MX510_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_MX510_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX510);
-
-/* ----------------------------------- Canon MX700 ----------------------------------- */
-static const char* canon_MULTIPASS_MX700_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MX700_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX700_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX700_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX700_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_draft3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX700_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX700_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX700_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MX700_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX700_modeuses_plain, 0 },
- { "GlossyPro", canon_MULTIPASS_MX700_modeuses_PPpro, 0 },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX700_modeuses_PPplus, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MX700_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MX700_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_MULTIPASS_MX700_modeuses_PPplus, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MX700_modeuses_PPplusDS, 0 },
- { "Coated", canon_MULTIPASS_MX700_modeuses_PPplusDS, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MX700_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MX700_modeuses_Hagaki, 0 },
- { "TShirt", canon_MULTIPASS_MX700_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MX700_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MX700_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX700);
-
-/* ----------------------------------- Canon MX710 ----------------------------------- */
-static const char* canon_MULTIPASS_MX710_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_std2", /* duplex */
- "300x300dpi",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX710_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode unsupported */
-static const char* canon_MULTIPASS_MX710_modeuses_PPproPlat[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX710_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX710_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX710_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX710_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX710_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX710_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX710_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MX710_modeuses_PPproPlat, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MX710_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
- { "Coated", canon_MULTIPASS_MX710_modeuses_PPmatte, 0 },
- { "HagakiA", canon_MULTIPASS_MX710_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MX710_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_MULTIPASS_MX710_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "TShirt", canon_MULTIPASS_MX710_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MX710_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MX710_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX710);
-
-/* ----------------------------------- Canon MX850 ----------------------------------- */
-static const char* canon_MULTIPASS_MX850_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- "300x300dpi_draft",
- NULL
- };
-
-static const char* canon_MULTIPASS_MX850_modeuses_PPplus[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- "600x600dpi_photodraft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX850_modeuses_PPplusDS[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MX850_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX850_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX850_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- "600x600dpi_photodraft3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX850_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX850_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- "600x600dpi_photodraft4",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX850_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX850_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
- };
-
-static const canon_modeuse_t canon_MULTIPASS_MX850_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX850_modeuses_plain, DUPLEX_SUPPORT },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX850_modeuses_PPplus, 0 },
- { "GlossyPro", canon_MULTIPASS_MX850_modeuses_PPpro, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MX850_modeuses_PPplus, 0 },
- { "PhotopaperPlusDouble", canon_MULTIPASS_MX850_modeuses_PPplusDS, 0 },
- { "GlossyPaper", canon_MULTIPASS_MX850_modeuses_PPplusDS, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX850_modeuses_PPplusDS, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MX850_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MX850_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MX850_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MX850_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_MULTIPASS_MX850_modeuses_disc, 0 },
- { "DiscOthers", canon_MULTIPASS_MX850_modeuses_disc, 0 },
- { "TShirt", canon_MULTIPASS_MX850_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MX850_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MX850_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX850);
-
-/* ----------------------------------- Canon MX860 ----------------------------------- */
-static const char* canon_MULTIPASS_MX860_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX860_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MX860_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX860_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX860_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX860_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX860_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX860_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX860_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX860_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MX860_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MX860_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
- { "Coated", canon_MULTIPASS_MX860_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MX860_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_MULTIPASS_MX860_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "TShirt", canon_MULTIPASS_MX860_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MX860_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MX860_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX860);
-
-/* ----------------------------------- Canon MX870 ----------------------------------- */
-static const char* canon_MULTIPASS_MX870_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX870_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MX870_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX870_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX870_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX870_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX870_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX870_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX870_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX870_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_MULTIPASS_MX870_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MX870_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
- { "Coated", canon_MULTIPASS_MX870_modeuses_PPmatte, 0 },
- { "HagakiA", canon_MULTIPASS_MX870_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MX870_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_MULTIPASS_MX870_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "TShirt", canon_MULTIPASS_MX870_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MX870_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MX870_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX870);
-
-/* ----------------------------------- Canon MX880 ----------------------------------- */
-static const char* canon_MULTIPASS_MX880_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX880_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MX880_modeuses_PPproPlat[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX880_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX880_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX880_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX880_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX880_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX880_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX880_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_MULTIPASS_MX880_modeuses_PPproPlat, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MX880_modeuses_PPmatte, 0 },
- { "Coated", canon_MULTIPASS_MX880_modeuses_PPmatte, 0 },
- { "HagakiA", canon_MULTIPASS_MX880_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_MULTIPASS_MX880_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_MULTIPASS_MX880_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "TShirt", canon_MULTIPASS_MX880_modeuses_TShirt, 0 },
- { "Envelope", canon_MULTIPASS_MX880_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_MULTIPASS_MX880_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX880);
-
-/* ----------------------------------- Canon MX7600 ----------------------------------- */
-static const char* canon_MULTIPASS_MX7600_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX7600_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode not yet supported */
-static const char* canon_MULTIPASS_MX7600_modeuses_PPsemiGloss[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX7600_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_MULTIPASS_MX7600_modeuses_FA[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_MX7600_modeuses[] = {
- { "Plain", canon_MULTIPASS_MX7600_modeuses_plain, DUPLEX_SUPPORT },
- { "PhotoPlusGloss2", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
- { "PhotopaperPlus", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
- { "PhotoProSemiGloss",canon_MULTIPASS_MX7600_modeuses_PPsemiGloss, 0 },
- { "InkJetHagaki", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
- { "FineArtPhotoRag", canon_MULTIPASS_MX7600_modeuses_FA, 0 },
- { "FineArtOther", canon_MULTIPASS_MX7600_modeuses_FA, 0 },
- { "Hagaki", canon_MULTIPASS_MX7600_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "Envelope", canon_MULTIPASS_MX7600_modeuses_Hagaki, 0 },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_MX7600);
-
-/* ----------------------------------- Canon E500 ----------------------------------- */
-static const char* canon_MULTIPASS_E500_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* color-only */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",
- NULL
-};
-
-static const char* canon_MULTIPASS_E500_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_E500_modeuses_PPproPlat[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_MULTIPASS_E500_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_MULTIPASS_E500_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_MULTIPASS_E500_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_MULTIPASS_E500_modeuses[] = {
- { "Plain", canon_MULTIPASS_E500_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_MULTIPASS_E500_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_MULTIPASS_E500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_MULTIPASS_E500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_MULTIPASS_E500_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_MULTIPASS_E500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_MULTIPASS_E500_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_MULTIPASS_E500);
-
-/* ----------------------------------- Canon MG2100 ----------------------------------- */
-static const char* canon_PIXMA_MG2100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "300x300dpi",
- /* Mono */
- "600x600dpi_monohigh",
- "600x600dpi_mono",
- "300x300dpi_mono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "300x300dpi_std2",
- NULL
- };
-
-static const char* canon_PIXMA_MG2100_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG2100_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG2100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- /* Mono */
- "600x600dpi_highmono3",
- "600x600dpi_mono3",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- NULL
-};
-
-static const char* canon_PIXMA_MG2100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_MG2100_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG2100_modeuses[] = {
- { "Plain", canon_PIXMA_MG2100_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_PIXMA_MG2100_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_PIXMA_MG2100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "InkJetHagaki", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_PIXMA_MG2100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "TShirt", canon_PIXMA_MG2100_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_PIXMA_MG2100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_PIXMA_MG2100_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG2100);
-
-/* ----------------------------------- Canon MG3100 ----------------------------------- */
-static const char* canon_PIXMA_MG3100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high5",/* duplex */
- "600x600dpi",
- "300x300dpi",
- /* Mono */
- "600x600dpi_monohigh",
- "600x600dpi_mono",
- "300x300dpi_mono",
- /* Color */
- "600x600dpi_high2",
- "600x600dpi_std2",
- "300x300dpi_std2",
- NULL
- };
-
-static const char* canon_PIXMA_MG3100_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG3100_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG3100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- /* Mono */
- "600x600dpi_highmono3",
- "600x600dpi_mono3",
- /* Color */
- "600x600dpi_high4",
- "600x600dpi_std4",
- NULL
-};
-
-static const char* canon_PIXMA_MG3100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_MG3100_modeuses_PPother[] = {
- "600x600dpi_photohigh",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG3100_modeuses[] = {
- { "Plain", canon_PIXMA_MG3100_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotoProPlat", canon_PIXMA_MG3100_modeuses_PPpro, INKSET_COLOR_SUPPORT },
- { "PhotoProSemiGloss",canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "PhotopaperMatte", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "GlossyPaper", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Coated", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "HagakiA", canon_PIXMA_MG3100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "CanonPhotoHagakiK",canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
- { "Hagaki", canon_PIXMA_MG3100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
- { "TShirt", canon_PIXMA_MG3100_modeuses_TShirt, INKSET_COLOR_SUPPORT },
- { "Envelope", canon_PIXMA_MG3100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
- { "PhotopaperOther", canon_PIXMA_MG3100_modeuses_PPother, INKSET_COLOR_SUPPORT },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG3100);
-
-/* ----------------------------------- Canon MG5100 ----------------------------------- */
-static const char* canon_PIXMA_MG5100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "300x300dpi",
- NULL
- };
-
-static const char* canon_PIXMA_MG5100_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode still unsupported */
-static const char* canon_PIXMA_MG5100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG5100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_MG5100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_PIXMA_MG5100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_MG5100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_MG5100_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG5100_modeuses[] = {
- { "Plain", canon_PIXMA_MG5100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_PIXMA_MG5100_modeuses_PPpro, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_MG5100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
- { "Coated", canon_PIXMA_MG5100_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_MG5100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG5100_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_PIXMA_MG5100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "TShirt", canon_PIXMA_MG5100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_MG5100_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_MG5100_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG5100);
-
-/* ----------------------------------- Canon MG5200 ----------------------------------- */
-static const char* canon_PIXMA_MG5200_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_draft",/*untested*/
- "300x300dpi",
- "300x300dpi_draft",/*untested*/
- NULL
- };
-
-static const char* canon_PIXMA_MG5200_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode still unsupported */
-static const char* canon_PIXMA_MG5200_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG5200_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_MG5200_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_PIXMA_MG5200_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_MG5200_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_MG5200_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_MG5200_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG5200_modeuses[] = {
- { "Plain", canon_PIXMA_MG5200_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_PIXMA_MG5200_modeuses_PPpro, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_MG5200_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
- { "Coated", canon_PIXMA_MG5200_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_MG5200_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG5200_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_PIXMA_MG5200_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_MG5200_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_MG5200_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_MG5200_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_MG5200_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_MG5200_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG5200);
-
-/* ----------------------------------- Canon MG5300 ----------------------------------- */
-static const char* canon_PIXMA_MG5300_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_std2",/*duplex*/
- "300x300dpi",
- NULL
- };
-
-static const char* canon_PIXMA_MG5300_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-/* highest mode still unsupported */
-static const char* canon_PIXMA_MG5300_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG5300_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo2",
- NULL
-};
-
-static const char* canon_PIXMA_MG5300_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_MG5300_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_MG5300_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_MG5300_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-static const char* canon_PIXMA_MG5300_modeuses_PPother[] = {
- "600x600dpi_photo",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG5300_modeuses[] = {
- { "Plain", canon_PIXMA_MG5300_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_PIXMA_MG5300_modeuses_PPpro, 0 },
- { "PhotoProSemiGloss",canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_MG5300_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
- { "Coated", canon_PIXMA_MG5300_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_MG5300_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG5300_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
- { "Hagaki", canon_PIXMA_MG5300_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_MG5300_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_MG5300_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_MG5300_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_MG5300_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_MG5300_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG5300);
-
-/* ----------------------------------- Canon MG6100 ----------------------------------- */
-/* most photo modes use gray ink which is unsupported */
-/* TODO: mono modes for photo media */
-static const char* canon_PIXMA_MG6100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "300x300dpi",
- NULL
- };
-
-/* unsupported*/
-static const char* canon_PIXMA_MG6100_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG6100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG6100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG6100_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",
- NULL
-};
-
-static const char* canon_PIXMA_MG6100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_MG6100_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_MG6100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG6100_modeuses_photorag[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG6100_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG6100_modeuses[] = {
- { "Plain", canon_PIXMA_MG6100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotoProPlat", canon_PIXMA_MG6100_modeuses_PPpro, 0 },/*unsupported*/
- { "PhotoProSemiGloss",canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotopaperMatte", canon_PIXMA_MG6100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Coated", canon_PIXMA_MG6100_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_MG6100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG6100_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Hagaki", canon_PIXMA_MG6100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_MG6100_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_MG6100_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_MG6100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_MG6100_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_PIXMA_MG6100_modeuses_photorag, 0 },/*unsupported*/
- { "FineArtOther", canon_PIXMA_MG6100_modeuses_photorag, 0 },/*unsupported*/
- { "PhotopaperOther", canon_PIXMA_MG6100_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG6100);
-
-/* ----------------------------------- Canon MG6200 ----------------------------------- */
-/* most photo modes use gray ink which is unsupported */
-/* TODO: mono modes for photo media */
-static const char* canon_PIXMA_MG6200_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_std2",/* duplex */
- "300x300dpi",
- NULL
- };
-
-/* unsupported*/
-static const char* canon_PIXMA_MG6200_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG6200_modeuses_PPpro[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG6200_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG6200_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_MG6200_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_MG6200_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_MG6200_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG6200_modeuses_photorag[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG6200_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG6200_modeuses[] = {
- { "Plain", canon_PIXMA_MG6200_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotoProPlat", canon_PIXMA_MG6200_modeuses_PPpro, 0 },/*unsupported*/
- { "PhotoProSemiGloss",canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotopaperMatte", canon_PIXMA_MG6200_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Coated", canon_PIXMA_MG6200_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_MG6200_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG6200_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Hagaki", canon_PIXMA_MG6200_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_MG6200_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_MG6200_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_MG6200_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_MG6200_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_PIXMA_MG6200_modeuses_photorag, 0 },/*unsupported*/
- { "FineArtOther", canon_PIXMA_MG6200_modeuses_photorag, 0 },/*unsupported*/
- { "PhotopaperOther", canon_PIXMA_MG6200_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG6200);
-
-/* ----------------------------------- Canon MG8100 ----------------------------------- */
-/* most photo modes use gray ink which is unsupported */
-/* TODO: mono modes for photo media */
-static const char* canon_PIXMA_MG8100_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_std2",/* duplex */
- "300x300dpi",
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG8100_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG8100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG8100_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG8100_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_MG8100_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_MG8100_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_MG8100_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG8100_modeuses_photorag[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG8100_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG8100_modeuses[] = {
- { "Plain", canon_PIXMA_MG8100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotoProPlat", canon_PIXMA_MG8100_modeuses_PPpro, 0 },/*unsupported*/
- { "PhotoProSemiGloss",canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotopaperMatte", canon_PIXMA_MG8100_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Coated", canon_PIXMA_MG8100_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_MG8100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG8100_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Hagaki", canon_PIXMA_MG8100_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_MG8100_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_MG8100_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_MG8100_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_MG8100_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_PIXMA_MG8100_modeuses_photorag, 0 },/*unsupported*/
- { "FineArtOther", canon_PIXMA_MG8100_modeuses_photorag, 0 },/*unsupported*/
- { "PhotopaperOther", canon_PIXMA_MG8100_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG8100);
-
-/* ----------------------------------- Canon MG8200 ----------------------------------- */
-/* most photo modes use gray ink which is unsupported */
-/* TODO: mono modes for photo media */
-static const char* canon_PIXMA_MG8200_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi_high2",/* duplex */
- "600x600dpi",
- "600x600dpi_std2",/* duplex */
- "300x300dpi",
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG8200_modeuses_PPplusG2[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG8200_modeuses_PPpro[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG8200_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- NULL
-};
-
-static const char* canon_PIXMA_MG8200_modeuses_Hagaki[] = {
- "600x600dpi_high2",
- "600x600dpi_std2",
- NULL
-};
-
-static const char* canon_PIXMA_MG8200_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- NULL
-};
-
-static const char* canon_PIXMA_MG8200_modeuses_disc[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- NULL
-};
-
-static const char* canon_PIXMA_MG8200_modeuses_TShirt[] = {
- "600x600dpi_tshirt",
- NULL
-};
-
-/* unsupported*/
-static const char* canon_PIXMA_MG8200_modeuses_photorag[] = {
- "600x600dpi_photohigh",/*stand-in*/
- "600x600dpi_photo",/*stand-in*/
- "600x600dpi_photo2",/*stand-in*/
- NULL
-};
-
-static const char* canon_PIXMA_MG8200_modeuses_PPother[] = {
- "600x600dpi_photo2",
- NULL
-};
-
-static const canon_modeuse_t canon_PIXMA_MG8200_modeuses[] = {
- { "Plain", canon_PIXMA_MG8200_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
- { "PhotoPlusGloss2", canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotoProPlat", canon_PIXMA_MG8200_modeuses_PPpro, 0 },/*unsupported*/
- { "PhotoProSemiGloss",canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "PhotopaperMatte", canon_PIXMA_MG8200_modeuses_PPmatte, 0 },
- { "GlossyPaper", canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Coated", canon_PIXMA_MG8200_modeuses_PPmatte, 0 },
- { "HagakiA", canon_PIXMA_MG8200_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "InkJetHagaki", canon_PIXMA_MG8200_modeuses_inkjetHagaki, 0 },
- { "CanonPhotoHagakiK",canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
- { "Hagaki", canon_PIXMA_MG8200_modeuses_Hagaki, DUPLEX_SUPPORT },
- { "DiscCompat", canon_PIXMA_MG8200_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_MG8200_modeuses_disc, 0 },
- { "TShirt", canon_PIXMA_MG8200_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_MG8200_modeuses_Hagaki, 0 },
- { "FineArtPhotoRag", canon_PIXMA_MG8200_modeuses_photorag, 0 },/*unsupported*/
- { "FineArtOther", canon_PIXMA_MG8200_modeuses_photorag, 0 },/*unsupported*/
- { "PhotopaperOther", canon_PIXMA_MG8200_modeuses_PPother, 0 },
-};
-
-DECLARE_MODEUSES(canon_PIXMA_MG8200);
-
-/* ----------------------------------- Canon Pro9000 ----------------------------------- */
-
-static const char* canon_PIXMA_Pro9000_modeuses_plain[] = {
- "600x600dpi_high2",
- "600x600dpi",
- "600x600dpi_std2",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- "600x600dpi_draftmono2",
- NULL
- };
-
-/* highest mode not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9000_modeuses_PPplusG2[] = {
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9000_modeuses_PPplus[] = {
- "600x600dpi_photo",
- "600x600dpi_photodraft2",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- "600x600dpi_photomonodraft",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000_modeuses_PPgloss[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photodraft",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomonodraft",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9000_modeuses_PPpro[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomonomed",
- "600x600dpi_photomono",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9000_modeuses_PPproPlat[] = {
- "600x600dpi_photohigh",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomonomed",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000_modeuses_PPmatte[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000_modeuses_inkjetHagaki[] = {
- "600x600dpi_photomed2",
- "600x600dpi_photomed",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000_modeuses_Hagaki[] = {
- "600x600dpi_high3",
- "600x600dpi_std3",/*Mono High*/
- "600x600dpi_std4",/* bw=2 for mono */
- "600x600dpi_draft3",/* bw=2 for mono */
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo2",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000_modeuses_board[] = {
- "600x600dpi_photohigh5",
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-static const char* canon_PIXMA_Pro9000_modeuses_photorag[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
- };
-
-static const char* canon_PIXMA_Pro9000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",/* bw=2 for mono */
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000_modeuses_PPother[] = {
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_Pro9000_modeuses[] = {
- { "Plain", canon_PIXMA_Pro9000_modeuses_plain, 0 },
- { "PhotopaperPlus", canon_PIXMA_Pro9000_modeuses_PPplus, 0 },
- { "PhotoPlusGloss2", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_Pro9000_modeuses_PPgloss, 0 },
- { "PhotoProSemiGloss", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },
- { "GlossyPro", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },
- { "PhotoPro2", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },
- { "PhotoProPlat", canon_PIXMA_Pro9000_modeuses_PPproPlat, 0 },
- { "PhotopaperMatte", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_Pro9000_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_Pro9000_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_PIXMA_Pro9000_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_Pro9000_modeuses_disc, 0 },
- { "Boardpaper", canon_PIXMA_Pro9000_modeuses_board, 0 },
- { "Canvas", canon_PIXMA_Pro9000_modeuses_board, 0 },
- { "FineArtPhotoRag", canon_PIXMA_Pro9000_modeuses_photorag, 0 },
- { "FineArtOther", canon_PIXMA_Pro9000_modeuses_board, 0 },
- { "FineArtPremiumMatte",canon_PIXMA_Pro9000_modeuses_board, 0 },
- { "FineArtMuseumEtching",canon_PIXMA_Pro9000_modeuses_photorag, 0 },
- { "TShirt", canon_PIXMA_Pro9000_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_Pro9000_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_Pro9000_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_Pro9000);
-
-/* ----------------------------------- Canon Pro9000mk2 ----------------------------------- */
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- "600x600dpi_draft2",
- /* Mono */
- "600x600dpi_highmono",
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- "600x600dpi_draftmono2",
- NULL
- };
-
-/* highest mode not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9000mk2_modeuses_PPplusG2[] = {
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_PPgloss[] = {
- "600x600dpi_photohigh2",
- "600x600dpi_photodraft",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomonodraft",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9000mk2_modeuses_PPpro2[] = {
- "600x600dpi_photomed",
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomonomed",/*untested: quality setting uncertain*/
- "600x600dpi_photomono",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9000mk2_modeuses_PPproPlat[] = {
- "600x600dpi_photomed",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomonomed",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_PPmatte[] = {
- "600x600dpi_photohigh",
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_inkjetHagaki[] = {
- "600x600dpi_photohigh3",
- "600x600dpi_photo3",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_Hagaki[] = {
- "600x600dpi_high2",/* bw=2 for mono */
- "600x600dpi_std2",/* bw=2 for mono */
- "600x600dpi_draft2",/* bw=2 for mono */
- /* Mono */
- "600x600dpi_high3",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_disc[] = {
- "600x600dpi_photohigh4",
- "600x600dpi_photo4",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_board[] = {
- "600x600dpi_photohigh5",
- /* Mono */
- "600x600dpi_photomonohigh",
- NULL
- };
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_photorag[] = {
- "600x600dpi_photohigh5",
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomonohigh",
- "600x600dpi_photomono",
- NULL
- };
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_TShirt[] = {
- "600x600dpi_tshirt",/* bw=2 for mono */
- NULL
-};
-
-static const char* canon_PIXMA_Pro9000mk2_modeuses_PPother[] = {
- "600x600dpi_photo",
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_Pro9000mk2_modeuses[] = {
- { "Plain", canon_PIXMA_Pro9000mk2_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_PIXMA_Pro9000mk2_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_Pro9000mk2_modeuses_PPgloss, 0 },
- { "PhotoProSemiGloss", canon_PIXMA_Pro9000mk2_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_PIXMA_Pro9000mk2_modeuses_PPpro2, 0 },
- { "PhotoProPlat", canon_PIXMA_Pro9000mk2_modeuses_PPproPlat, 0 },
- { "PhotopaperMatte", canon_PIXMA_Pro9000mk2_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_Pro9000mk2_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_Pro9000mk2_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_Pro9000mk2_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_PIXMA_Pro9000mk2_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_Pro9000mk2_modeuses_disc, 0 },
- { "Boardpaper", canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
- { "Canvas", canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
- { "FineArtPhotoRag", canon_PIXMA_Pro9000mk2_modeuses_photorag, 0 },
- { "FineArtOther", canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
- { "FineArtPremiumMatte",canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
- { "FineArtMuseumEtching",canon_PIXMA_Pro9000mk2_modeuses_photorag, 0 },
- { "TShirt", canon_PIXMA_Pro9000mk2_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_Pro9000mk2_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_Pro9000mk2_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_Pro9000mk2);
-
-/* ----------------------------------- Canon Pro9500 ----------------------------------- */
-
-static const char* canon_PIXMA_Pro9500_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_highmono",/*untested*/
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- "600x600dpi_draftmono2",/*untested*/
- NULL
- };
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_PPplusG2[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_PPgloss[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_PPpro2[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_PPproPlat[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_PPmatte[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_inkjetHagaki[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_Hagaki[] = {
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_highmono",
- "600x600dpi_mono",/*untested*/
- "600x600dpi_draftmono",/*untested*/
- "600x600dpi_draftmono2",/*untested*/
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_disc[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_board[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_photorag[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_TShirt[] = {
- "600x600dpi_photomono",/* bw=2 for mono */
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500_modeuses_PPother[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_Pro9500_modeuses[] = {
- { "Plain", canon_PIXMA_Pro9500_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_PIXMA_Pro9500_modeuses_PPplusG2, 0 },
- { "GlossyPaper", canon_PIXMA_Pro9500_modeuses_PPgloss, 0 },
- { "PhotoProSemiGloss", canon_PIXMA_Pro9500_modeuses_PPplusG2, 0 },
- { "PhotoPro2", canon_PIXMA_Pro9500_modeuses_PPpro2, 0 },
- { "PhotoProPlat", canon_PIXMA_Pro9500_modeuses_PPproPlat, 0 },
- { "PhotopaperMatte", canon_PIXMA_Pro9500_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_Pro9500_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_Pro9500_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_Pro9500_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_PIXMA_Pro9500_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_Pro9500_modeuses_disc, 0 },
- { "Boardpaper", canon_PIXMA_Pro9500_modeuses_board, 0 },
- { "Canvas", canon_PIXMA_Pro9500_modeuses_board, 0 },
- { "FineArtPhotoRag", canon_PIXMA_Pro9500_modeuses_photorag, 0 },
- { "FineArtOther", canon_PIXMA_Pro9500_modeuses_board, 0 },
- { "FineArtPremiumMatte",canon_PIXMA_Pro9500_modeuses_board, 0 },
- { "FineArtMuseumEtching",canon_PIXMA_Pro9500_modeuses_photorag, 0 },
- { "TShirt", canon_PIXMA_Pro9500_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_Pro9500_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_Pro9500_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_Pro9500);
-
-/* ----------------------------------- Canon Pro9500mk2 ----------------------------------- */
-
-static const char* canon_PIXMA_Pro9500mk2_modeuses_plain[] = {
- "600x600dpi_high",
- "600x600dpi",
- "600x600dpi_draft",
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_highmono",/*untested*/
- "600x600dpi_mono",
- "600x600dpi_draftmono",
- "600x600dpi_draftmono2",/*untested*/
- NULL
- };
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_PPplusG2[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_PPgloss[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* highest mode not yet supported (R,G inks) */
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_PPproPlat[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_PPmatte[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_inkjetHagaki[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_Hagaki[] = {
- /* Mono */
- "600x600dpi_highmono2",
- "600x600dpi_highmono",
- "600x600dpi_mono",/*untested*/
- "600x600dpi_draftmono",/*untested*/
- "600x600dpi_draftmono2",/*untested*/
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_disc[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_board[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_photorag[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_TShirt[] = {
- "600x600dpi_photomono",/* bw=2 for mono */
- NULL
-};
-
-/* modes not yet supported (R,G inks) */
-static const char* canon_PIXMA_Pro9500mk2_modeuses_PPother[] = {
- /* Mono */
- "600x600dpi_photomono",
- NULL
- };
-
-static const canon_modeuse_t canon_PIXMA_Pro9500mk2_modeuses[] = {
- { "Plain", canon_PIXMA_Pro9500mk2_modeuses_plain, 0 },
- { "PhotoPlusGloss2", canon_PIXMA_Pro9500mk2_modeuses_PPplusG2, 0 },
- { "PhotoProPlat", canon_PIXMA_Pro9500mk2_modeuses_PPproPlat, 0 },
- { "GlossyPaper", canon_PIXMA_Pro9500mk2_modeuses_PPgloss, 0 },
- { "PhotoProSemiGloss", canon_PIXMA_Pro9500mk2_modeuses_PPplusG2, 0 },
- { "PhotopaperMatte", canon_PIXMA_Pro9500mk2_modeuses_PPmatte, 0 },
- { "Coated", canon_PIXMA_Pro9500mk2_modeuses_PPmatte, 0 },
- { "InkJetHagaki", canon_PIXMA_Pro9500mk2_modeuses_inkjetHagaki, 0 },
- { "Hagaki", canon_PIXMA_Pro9500mk2_modeuses_Hagaki, 0 },
- { "DiscCompat", canon_PIXMA_Pro9500mk2_modeuses_disc, 0 },
- { "DiscOthers", canon_PIXMA_Pro9500mk2_modeuses_disc, 0 },
- { "Boardpaper", canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
- { "Canvas", canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
- { "FineArtPhotoRag", canon_PIXMA_Pro9500mk2_modeuses_photorag, 0 },
- { "FineArtOther", canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
- { "FineArtPremiumMatte",canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
- { "FineArtMuseumEtching",canon_PIXMA_Pro9500mk2_modeuses_photorag, 0 },
- { "TShirt", canon_PIXMA_Pro9500mk2_modeuses_TShirt, 0 },
- { "Envelope", canon_PIXMA_Pro9500mk2_modeuses_Hagaki, 0 },
- { "PhotopaperOther", canon_PIXMA_Pro9500mk2_modeuses_PPother, 0 },
- };
-
-DECLARE_MODEUSES(canon_PIXMA_Pro9500mk2);
-
-#endif
+/*
+ * Print plug-in CANON BJL driver for the GIMP.
+ *
+ * Copyright 1997-2000 Michael Sweet (mike@easysw.com),
+ * Robert Krawitz (rlk@alum.mit.edu) and
+ * Andy Thaller (thaller@ph.tum.de)
+ * Copyright (c) 2006 - 2007 Sascha Sommer (saschasommer@freenet.de)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* This file contains the usage matrix matching media with modes
+*/
+
+#ifndef GUTENPRINT_INTERNAL_CANON_MEDIA_MODE_H
+#define GUTENPRINT_INTERNAL_CANON_MEDIA_MODE_H
+
+/* create matrix of which media are used with which mode */
+
+typedef struct {
+ const char *name; /* unstranslated media name */
+ const char** mode_name_list; /* untranslated mode names */
+ const unsigned int use_flags;
+ /* flags to indicate support in the media */
+#define INKSET_BLACK_SUPPORT 0x1
+#define INKSET_COLOR_SUPPORT 0x2
+ /*#define INKSET_BOTH_SUPPORT 0x4*/
+#define INKSET_PHOTO_SUPPORT 0x8
+ /* duplex support for media --- this is currently not implemented: so duplex can be specified for all media types */
+#define DUPLEX_SUPPORT 0x10
+ /* flags to indicate existence of special replacement modes to search for */
+#define INKSET_BLACK_MODEREPL 0x100
+#define INKSET_COLOR_MODEREPL 0x200
+ /*#define INKSET_BOTH_MODEREPL 0x400*/
+#define INKSET_PHOTO_MODEREPL 0x800
+#define DUPLEX_MODEREPL 0x1000
+
+} canon_modeuse_t;
+
+typedef struct {
+ const char *name;
+ const short count;
+ const canon_modeuse_t *modeuses;
+} canon_modeuselist_t;
+
+#define DECLARE_MODEUSES(name) \
+ static const canon_modeuselist_t name##_modeuselist = { \
+ #name, \
+ sizeof(name##_modeuses) / sizeof(canon_modeuse_t), \
+ name##_modeuses \
+}
+
+/* Ordering of data:
+ BJC
+ DS
+ mini
+ S
+ i --- *i is Japanese model, with Hagaki/inkjetHagaki support.
+ i* is US model without such support. Not sure about European models.
+ iP
+ iX
+ MP
+ MX
+ MG
+ Pro
+*/
+
+/* ----------------------------------- Canon BJC 30 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_30_modeuses_plain[] = {
+ "720x360dpi",
+ "360x360dpi",
+ "180x180dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_30_modeuses[] = {
+ { "Plain", canon_BJC_30_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_30_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_30_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_30_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_30_modeuses_plain, 0 },
+ { "Coated", canon_BJC_30_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_30_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_30_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_30_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_30_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_30_modeuses_plain, 0 },
+ { "Other", canon_BJC_30_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_30);
+
+/* ----------------------------------- Canon BJC 85 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_85_modeuses_plain[] = {
+ "720x360dpi",
+ "360x360dmt",
+ "360x360dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_85_modeuses[] = {
+ { "Plain", canon_BJC_85_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_85_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_85_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_85_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_85_modeuses_plain, 0 },
+ { "Coated", canon_BJC_85_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_85_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_85_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_85_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_85_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_85_modeuses_plain, 0 },
+ { "Other", canon_BJC_85_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_85);
+
+/* ----------------------------------- Canon BJC 210 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_210_modeuses_plain[] = {
+ "720x360dpi",
+ "360x360dpi",
+ "180x180dpi",
+ "90x90dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_210_modeuses[] = {
+ { "Plain", canon_BJC_210_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_210_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_210_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_210_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_210_modeuses_plain, 0 },
+ { "Coated", canon_BJC_210_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_210_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_210_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_210_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_210_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_210_modeuses_plain, 0 },
+ { "Other", canon_BJC_210_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_210);
+
+/* ----------------------------------- Canon BJC 240 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_240_modeuses_plain[] = {
+ "720x360dpi",
+ "360x360dmt",
+ "360x360dpi",
+ "180x180dpi",
+ "90x90dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_240_modeuses[] = {
+ { "Plain", canon_BJC_240_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_240_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_240_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_240_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_240_modeuses_plain, 0 },
+ { "Coated", canon_BJC_240_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_240_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_240_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_240_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_240_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_240_modeuses_plain, 0 },
+ { "Other", canon_BJC_240_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_240);
+
+/* ----------------------------------- Canon BJC 2000 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_2000_modeuses_plain[] = {
+ "360x360dpi",
+ "180x180dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_2000_modeuses[] = {
+ { "Plain", canon_BJC_2000_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_2000_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_2000_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_2000_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_2000_modeuses_plain, 0 },
+ { "Coated", canon_BJC_2000_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_2000_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_2000_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_2000_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_2000_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_2000_modeuses_plain, 0 },
+ { "Other", canon_BJC_2000_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_2000);
+
+/* ----------------------------------- Canon BJC 3000 ----------------------------------- */
+
+static const char* canon_BJC_3000_modeuses_plain[] = {
+ "1440x720dpi",/*untested*/
+ "720x720dpi",
+ "360x360dpi",
+ "360x360dmt",
+ "360x360dpi_draft",
+ "180x180dpi",
+ /* Photo */
+ "360x360dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_3000_modeuses_PPgloss[] = {
+ "1440x720dpi",
+ "720x720dpi",
+ "360x360dpi",
+ "360x360dmt",
+ /* Photo */
+ "360x360dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_3000_modeuses_coated[] = {
+ "1440x720dpi",
+ "720x720dpi",
+ "360x360dpi",
+ "360x360dmt",
+ "360x360dpi_draft",
+ /* Photo */
+ "360x360dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_3000_modeuses_glossFilm[] = {
+ "720x720dpi",
+ "360x360dpi",
+ "360x360dmt",
+ NULL
+};
+
+static const char* canon_BJC_3000_modeuses_Tshirt[] = {
+ "360x360dpi",
+ "360x360dmt",
+ NULL
+};
+
+static const char* canon_BJC_3000_modeuses_Transparency[] = {
+ "360x360dpi",
+ "360x360dmt",
+ "360x360dpi_draft",
+ NULL
+};
+
+static const char* canon_BJC_3000_modeuses_Envelope[] = {
+ "720x720dpi",
+ "360x360dpi",
+ "360x360dmt",
+ "360x360dpi_draft",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_3000_modeuses[] = {
+ { "Plain", canon_BJC_3000_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "Transparency", canon_BJC_3000_modeuses_Transparency, INKSET_BLACK_SUPPORT },
+ { "BackPrint", canon_BJC_3000_modeuses_Tshirt, 0 },
+ { "Fabric", canon_BJC_3000_modeuses_Tshirt, 0 },/*untested*/
+ { "Envelope", canon_BJC_3000_modeuses_Envelope, INKSET_BLACK_SUPPORT },
+ { "Coated", canon_BJC_3000_modeuses_coated, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "TShirt", canon_BJC_3000_modeuses_Tshirt, 0 },
+ { "GlossyFilm", canon_BJC_3000_modeuses_glossFilm, 0 },
+ { "GlossyPaper", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "GlossyCard", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "GlossyPro", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
+ { "Other", canon_BJC_3000_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_3000);
+
+/* ----------------------------------- Canon BJC 4300 ----------------------------------- */
+
+static const char* canon_BJC_4300_modeuses_plain[] = {
+ "360x360dpi_high",
+ "360x360dpi",
+ "360x360dmt",
+ "720x360dpi",
+ "360x360dpi_draft",
+ "180x180dpi",
+ /* Photo */
+ "360x360dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_4300_modeuses_PPgloss[] = {
+ "360x360dpi_high",
+ "360x360dpi",
+ "360x360dmt",
+ "720x360dpi",/*mono*/
+ /* Photo */
+ "360x360dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_4300_modeuses_coated[] = {
+ "360x360dpi_high",
+ "360x360dpi",
+ "360x360dmt",
+ "720x360dpi",
+ "360x360dpi_draft",
+ /* Photo */
+ "360x360dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_4300_modeuses_glossFilm[] = {
+ "360x360dpi_high",
+ "360x360dpi",
+ "360x360dmt",
+ "720x360dpi",/*mono*/
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_4300_modeuses[] = {
+ { "Plain", canon_BJC_4300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "Transparency", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "BackPrint", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "Fabric", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "Envelope", canon_BJC_4300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "Coated", canon_BJC_4300_modeuses_coated, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "TShirt", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "GlossyFilm", canon_BJC_4300_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "GlossyPaper", canon_BJC_4300_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "GlossyCard", canon_BJC_4300_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "GlossyPro", canon_BJC_4300_modeuses_PPgloss, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
+ { "Other", canon_BJC_4300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+};
+
+DECLARE_MODEUSES(canon_BJC_4300);
+
+/* ----------------------------------- Canon BJC 4400 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_4400_modeuses_plain[] = {
+ "720x360dpi",
+ "360x360dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_4400_modeuses[] = {
+ { "Plain", canon_BJC_4400_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_4400_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_4400_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_4400_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_4400_modeuses_plain, 0 },
+ { "Coated", canon_BJC_4400_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_4400_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_4400_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_4400_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_4400_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_4400_modeuses_plain, 0 },
+ { "Other", canon_BJC_4400_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_4400);
+
+/* ----------------------------------- Canon BJC 4550 ----------------------------------- */
+
+static const char* canon_BJC_4550_modeuses_plain[] = {
+ "720x360dpi_high",
+ "360x360dpi_high",
+ "720x360dpi",
+ "360x360dpi",
+ "180x180dpi",
+ /* Photo */
+ "360x360dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_4550_modeuses_glossFilm[] = {
+ "720x360dpi_high",
+ "360x360dpi_high",
+ "360x360dpi",/*untested*/
+ "180x180dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_4550_modeuses[] = {
+ { "Plain", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "Transparency", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "BackPrint", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "Fabric", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT },
+ { "Envelope", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "Coated", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "TShirt", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "GlossyFilm", canon_BJC_4550_modeuses_glossFilm, INKSET_BLACK_SUPPORT },
+ { "GlossyPaper", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+ { "GlossyCard", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
+ { "GlossyPro", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },/*untested*/
+ { "Other", canon_BJC_4550_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_PHOTO_SUPPORT | INKSET_PHOTO_MODEREPL },
+};
+
+DECLARE_MODEUSES(canon_BJC_4550);
+
+/* ----------------------------------- Canon BJC 5500 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_5500_modeuses_plain[] = {
+ "360x360dpi",
+ "180x180dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_5500_modeuses[] = {
+ { "Plain", canon_BJC_5500_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_5500_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_5500_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_5500_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_5500_modeuses_plain, 0 },
+ { "Coated", canon_BJC_5500_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_5500_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_5500_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_5500_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_5500_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_5500_modeuses_plain, 0 },
+ { "Other", canon_BJC_5500_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_5500);
+
+/* ----------------------------------- Canon BJC 6000 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_6000_modeuses_plain[] = {
+ "1440x720dpi",
+ "720x720dpi",
+ "360x360dmt",
+ "360x360dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_6000_modeuses[] = {
+ { "Plain", canon_BJC_6000_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_6000_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_6000_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_6000_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_6000_modeuses_plain, 0 },
+ { "Coated", canon_BJC_6000_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_6000_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_6000_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_6000_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_6000_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_6000_modeuses_plain, 0 },
+ { "Other", canon_BJC_6000_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_6000);
+
+/* ----------------------------------- Canon BJC 7000 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_7000_modeuses_plain[] = {
+ "1200x1200dpi",
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_7000_modeuses[] = {
+ { "Plain", canon_BJC_7000_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_7000_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_7000_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_7000_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_7000_modeuses_plain, 0 },
+ { "Coated", canon_BJC_7000_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_7000_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_7000_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_7000_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_7000_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_7000_modeuses_plain, 0 },
+ { "Other", canon_BJC_7000_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_7000);
+
+/* ----------------------------------- Canon BJC 7100 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_7100_modeuses_plain[] = {
+ "1200x1200dpi",
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_7100_modeuses[] = {
+ { "Plain", canon_BJC_7100_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_7100_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_7100_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_7100_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_7100_modeuses_plain, 0 },
+ { "Coated", canon_BJC_7100_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_7100_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_7100_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_7100_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_7100_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_7100_modeuses_plain, 0 },
+ { "Other", canon_BJC_7100_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_7100);
+
+/* ----------------------------------- Canon BJC 8200 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_8200_modeuses_plain[] = {
+ "1200x1200dpi",
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_8200_modeuses[] = {
+ { "Plain", canon_BJC_8200_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_8200_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_8200_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_8200_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_8200_modeuses_plain, 0 },
+ { "Coated", canon_BJC_8200_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_8200_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_8200_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_8200_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_8200_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_8200_modeuses_plain, 0 },
+ { "Other", canon_BJC_8200_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_8200);
+
+/* ----------------------------------- Canon BJC 8500 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_8500_modeuses_plain[] = {
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_8500_modeuses[] = {
+ { "Plain", canon_BJC_8500_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_8500_modeuses_plain, 0 },
+ { "BackPrint", canon_BJC_8500_modeuses_plain, 0 },
+ { "Fabric", canon_BJC_8500_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_8500_modeuses_plain, 0 },
+ { "Coated", canon_BJC_8500_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_8500_modeuses_plain, 0 },
+ { "GlossyFilm", canon_BJC_8500_modeuses_plain, 0 },
+ { "GlossyPaper", canon_BJC_8500_modeuses_plain, 0 },
+ { "GlossyCard", canon_BJC_8500_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_8500_modeuses_plain, 0 },
+ { "Other", canon_BJC_8500_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_8500);
+
+/* ----------------------------------- Canon DS700 ----------------------------------- */
+static const char* canon_SELPHY_DS700_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS700_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_SELPHY_DS700_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS700_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS700_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS700_modeuses_Hagaki[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const canon_modeuse_t canon_SELPHY_DS700_modeuses[] = {
+ { "GlossyPro", canon_SELPHY_DS700_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_SELPHY_DS700_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_SELPHY_DS700_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_SELPHY_DS700_modeuses_PPgloss, 0 },
+ { "InkJetHagaki", canon_SELPHY_DS700_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_SELPHY_DS700_modeuses_Hagaki, 0 },
+};
+
+DECLARE_MODEUSES(canon_SELPHY_DS700);
+
+/* ----------------------------------- Canon DS810 ----------------------------------- */
+static const char* canon_SELPHY_DS810_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS810_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_SELPHY_DS810_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS810_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS810_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_SELPHY_DS810_modeuses_Hagaki[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const canon_modeuse_t canon_SELPHY_DS810_modeuses[] = {
+ { "GlossyPro", canon_SELPHY_DS810_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_SELPHY_DS810_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_SELPHY_DS810_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_SELPHY_DS810_modeuses_PPgloss, 0 },
+ { "InkJetHagaki", canon_SELPHY_DS810_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_SELPHY_DS810_modeuses_Hagaki, 0 },
+};
+
+DECLARE_MODEUSES(canon_SELPHY_DS810);
+
+/* ----------------------------------- Canon mini220 ----------------------------------- */
+static const char* canon_PIXMA_mini220_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh",
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_mini220_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_mini220_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_mini220_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_mini220_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_mini220_modeuses_Hagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_mini220_modeuses[] = {
+ { "GlossyPro", canon_PIXMA_mini220_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_mini220_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_PIXMA_mini220_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_mini220_modeuses_PPgloss, 0 },
+ { "InkJetHagaki", canon_PIXMA_mini220_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_mini220_modeuses_Hagaki, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_mini220);
+
+/* ----------------------------------- Canon mini320 ----------------------------------- */
+/*most nodes not supported*/
+static const char* canon_PIXMA_mini320_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh",
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+/*most nodes not supported*/
+static const char* canon_PIXMA_mini320_modeuses_PPplus[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_PIXMA_mini320_modeuses_PPmatte[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+/*most nodes not supported*/
+static const char* canon_PIXMA_mini320_modeuses_PPgloss[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_PIXMA_mini320_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_PIXMA_mini320_modeuses_Hagaki[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_mini320_modeuses[] = {
+ { "GlossyPro", canon_PIXMA_mini320_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_mini320_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_mini320_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_PIXMA_mini320_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_mini320_modeuses_PPgloss, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_mini320_modeuses_PPplus, 0 },
+ { "InkJetHagaki", canon_PIXMA_mini320_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_mini320_modeuses_Hagaki, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_mini320);
+
+/* ----------------------------------- Canon S200 ----------------------------------- */
+/* TODO: mode-media correlation */
+static const char* canon_BJC_S200_modeuses_plain[] = {
+ "1440x1440dpi",
+ "1440x720dpi",
+ "720x720dpi",
+ "360x360dpi",
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_S200_modeuses[] = {
+ { "Plain", canon_BJC_S200_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S200_modeuses_plain, 0 },
+ { "PhotopaperPlus", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
+ { "PhotopaperPlusDouble",canon_BJC_S200_modeuses_plain, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
+ { "GlossyPaper", canon_BJC_S200_modeuses_plain, 0 },
+ { "Coated", canon_BJC_S200_modeuses_plain, 0 },
+ { "InkJetHagaki", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S200_modeuses_plain, 0 },
+ { "TShirt", canon_BJC_S200_modeuses_plain, 0 },
+ { "Transparency", canon_BJC_S200_modeuses_plain, 0 },
+ { "Envelope", canon_BJC_S200_modeuses_plain, 0 },
+ { "PhotopaperOther", canon_BJC_S200_modeuses_plain, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S200);
+
+/* ----------------------------------- Canon BJC S300 ----------------------------------- */
+static const char* canon_BJC_S300_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_std2",
+ "600x600dpi",/*untested*/
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_BJC_S300_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S300_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S300_modeuses_coated[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S300_modeuses_Envelope[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_BJC_S300_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S300_modeuses_Transparency[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S300_modeuses[] = {
+ { "Plain", canon_BJC_S300_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S300_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
+ { "PhotopaperPlusDouble", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
+ { "GlossyPaper", canon_BJC_S300_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S300_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S300_modeuses_Envelope, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S300_modeuses_coated, 0 },
+ { "GlossyCard", canon_BJC_S300_modeuses_PPgloss, 0 },
+ { "Transparency", canon_BJC_S300_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S300_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S300_modeuses_Envelope, 0 },
+ { "PhotopaperOther", canon_BJC_S300_modeuses_PPgloss, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S300);
+
+/* ----------------------------------- Canon BJC S330 ----------------------------------- */
+static const char* canon_BJC_S330_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_std2",
+ "600x600dpi",/*untested*/
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_BJC_S330_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S330_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S330_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S330_modeuses_Envelope[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_BJC_S330_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S330_modeuses_Transparency[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S330_modeuses[] = {
+ { "Plain", canon_BJC_S330_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S330_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S330_modeuses_PPpro, 0 },
+ { "PhotopaperPlusDouble", canon_BJC_S330_modeuses_PPpro, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S330_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_S330_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S330_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_BJC_S330_modeuses_PPpro, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S330_modeuses_Envelope, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S330_modeuses_PPmatte, 0 },
+ { "Transparency", canon_BJC_S330_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S330_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S330_modeuses_Envelope, 0 },
+ { "PhotopaperOther", canon_BJC_S330_modeuses_PPpro, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S330);
+
+/* ----------------------------------- Canon BJC S500 ----------------------------------- */
+static const char* canon_BJC_S500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",/*untested*/
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_S500_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S500_modeuses_coated[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_S500_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S500_modeuses_Envelope[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_BJC_S500_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S500_modeuses_Transparency[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S500_modeuses[] = {
+ { "Plain", canon_BJC_S500_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S500_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
+ { "PhotopaperPlusDouble", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S500_modeuses_coated, 0 },/*untested*/
+ { "GlossyPaper", canon_BJC_S500_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S500_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S500_modeuses_Envelope, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S500_modeuses_PPpro, 0 },
+ { "GlossyCard", canon_BJC_S500_modeuses_PPgloss, 0 },
+ { "Transparency", canon_BJC_S500_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S500_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S500_modeuses_Envelope, 0 },
+ { "PhotopaperOther", canon_BJC_S500_modeuses_PPpro, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S500);
+
+/* ----------------------------------- Canon BJC S520 ----------------------------------- */
+static const char* canon_BJC_S520_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_highmono",/* mono */
+ "600x600dpi",/*untested*/
+ "600x600dpi_draft",
+ "300x300dpi",/*untested*/
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_S520_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S520_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S520_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S520_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_S520_modeuses_Envelope[] = {
+ "600x600dpi_high3",
+ "600x600dpi_highmono3",/* mono */
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_BJC_S520_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S520_modeuses_Transparency[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S520_modeuses[] = {
+ { "Plain", canon_BJC_S520_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S520_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S520_modeuses_PPpro, 0 },
+ { "PhotopaperPlusDouble", canon_BJC_S520_modeuses_PPpro, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S520_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_S520_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S520_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_S520_modeuses_PPpro, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S520_modeuses_Envelope, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S520_modeuses_PPpro, 0 },
+ { "Transparency", canon_BJC_S520_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S520_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S520_modeuses_Envelope, 0 },
+ { "PhotopaperOther", canon_BJC_S520_modeuses_PPpro, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S520);
+
+/* ----------------------------------- Canon BJC S600 ----------------------------------- */
+static const char* canon_BJC_S600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_S600_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S600_modeuses_coated[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_S600_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S600_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_S600_modeuses_Envelope[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_BJC_S600_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S600_modeuses_Transparency[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S600_modeuses[] = {
+ { "Plain", canon_BJC_S600_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S600_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S600_modeuses_PPpro, 0 },/*untested*/
+ { "PhotopaperPlusDouble", canon_BJC_S600_modeuses_PPpro, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S600_modeuses_PPgloss, 0 },/*untested*/
+ { "GlossyPaper", canon_BJC_S600_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S600_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_S600_modeuses_inkjetHagaki, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S600_modeuses_Envelope, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S600_modeuses_PPpro, 0 },
+ { "GlossyCard", canon_BJC_S600_modeuses_PPgloss, 0 },
+ { "Transparency", canon_BJC_S600_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S600_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S600_modeuses_Envelope, 0 },
+ { "PhotopaperOther", canon_BJC_S600_modeuses_PPpro, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S600);
+
+/* ----------------------------------- Canon BJC S750 ----------------------------------- */
+static const char* canon_BJC_S750_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",/*untested*/
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_S750_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S750_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S750_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_S750_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_S750_modeuses_Envelope[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_BJC_S750_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S750_modeuses_Transparency[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S750_modeuses[] = {
+ { "Plain", canon_BJC_S750_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S750_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S750_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_BJC_S750_modeuses_PPplus, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S750_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_BJC_S750_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S750_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_S750_modeuses_PPplus, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S750_modeuses_Envelope, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S750_modeuses_PPpro, 0 },
+ { "Transparency", canon_BJC_S750_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S750_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S750_modeuses_Envelope, 0 },
+ { "PhotopaperOther", canon_BJC_S750_modeuses_PPpro, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S750);
+
+/* ----------------------------------- Canon BJC S800 ----------------------------------- */
+static const char* canon_BJC_S800_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+static const char* canon_BJC_S800_modeuses_PPpro[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_BJC_S800_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_S800_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S800_modeuses_glossFilm[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_S800_modeuses_PPother[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ /* Mono */
+ "600x600dpi_photomonohigh2",
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ "600x600dpi_photomonodraft",
+ NULL
+};
+
+static const char* canon_BJC_S800_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S800_modeuses_Transparency[] = {
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S800_modeuses[] = {
+ { "Plain", canon_BJC_S800_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S800_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S800_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_BJC_S800_modeuses_PPplus, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S800_modeuses_PPgloss, 0 },
+ { "GlossyPaper", canon_BJC_S800_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S800_modeuses_PPgloss, 0 },
+ { "InkJetHagaki", canon_BJC_S800_modeuses_PPgloss, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S800_modeuses_plain, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S800_modeuses_glossFilm, 0 },
+ { "GlossyCard", canon_BJC_S800_modeuses_PPgloss, 0 },
+ { "Transparency", canon_BJC_S800_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S800_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S800_modeuses_plain, 0 },
+ { "PhotopaperOther", canon_BJC_S800_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_S800);
+
+/* ----------------------------------- Canon BJC S820 ----------------------------------- */
+static const char* canon_BJC_S820_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/*untested*/
+ "600x600dpi",
+ "600x600dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono2",/*untested*/
+ "600x600dpi_highmono",/*untested*/
+ "600x600dpi_mono",/*untested*/
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+static const char* canon_BJC_S820_modeuses_PPpro[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_BJC_S820_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_S820_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S820_modeuses_glossFilm[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_S820_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S820_modeuses_Transparency[] = {
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S820_modeuses[] = {
+ { "Plain", canon_BJC_S820_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S820_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S820_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_BJC_S820_modeuses_PPplus, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S820_modeuses_PPgloss, 0 },
+ { "GlossyPaper", canon_BJC_S820_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S820_modeuses_PPgloss, 0 },
+ { "InkJetHagaki", canon_BJC_S820_modeuses_PPgloss, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S820_modeuses_plain, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S820_modeuses_glossFilm, 0 },
+ { "GlossyCard", canon_BJC_S820_modeuses_PPgloss, 0 },
+ { "Transparency", canon_BJC_S820_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S820_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S820_modeuses_plain, 0 },
+ { "PhotopaperOther", canon_BJC_S820_modeuses_plain, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_S820);
+
+/* ----------------------------------- Canon BJC S900 ----------------------------------- */
+static const char* canon_BJC_S900_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono2",/*untested*/
+ "600x600dpi_highmono",/*untested*/
+ "600x600dpi_mono",/*untested*/
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+static const char* canon_BJC_S900_modeuses_PPpro[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_BJC_S900_modeuses_PPplus[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo2",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_S900_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S900_modeuses_coated[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_S900_modeuses_glossFilm[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_S900_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_S900_modeuses_Transparency[] = {
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_S900_modeuses[] = {
+ { "Plain", canon_BJC_S900_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_S900_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_S900_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_BJC_S900_modeuses_PPplus, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_S900_modeuses_PPgloss, 0 },
+ { "GlossyPaper", canon_BJC_S900_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_S900_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_S900_modeuses_PPgloss, 0 },/*untested*/
+ { "Hagaki", canon_BJC_S900_modeuses_plain, 0 },/*untested*/
+ { "GlossyFilm", canon_BJC_S900_modeuses_glossFilm, 0 },
+ { "GlossyCard", canon_BJC_S900_modeuses_PPgloss, 0 },
+ { "Transparency", canon_BJC_S900_modeuses_Transparency, 0 },
+ { "TShirt", canon_BJC_S900_modeuses_TShirt, 0 },
+ { "Envelope", canon_BJC_S900_modeuses_plain, 0 },
+ { "PhotopaperOther", canon_BJC_S900_modeuses_plain, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_S900);
+
+/* ----------------------------------- Canon i50 ----------------------------------- */
+static const char* canon_BJC_i50_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_i50_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i50_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i50_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i50_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photomed",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i50_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",/*color*/
+ "600x600dpi_std4",/*mono*/
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_BJC_i50_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i50_modeuses_Transparency[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_BJC_i50_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i50_modeuses[] = {
+ { "Plain", canon_BJC_i50_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i50_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i50_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i50_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_BJC_i50_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i50_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i50_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_BJC_i50_modeuses_PPplus, 0 },
+ { "Hagaki", canon_BJC_i50_modeuses_Hagaki, 0 },
+ { "TShirt", canon_BJC_i50_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i50_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i50_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i50_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_i50);
+
+/* ----------------------------------- Canon i80 ----------------------------------- */
+static const char* canon_BJC_i80_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/*mono*/
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_high4",/*mono*/
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ "600x600dpi_ohpdraft",
+ NULL
+};
+
+static const char* canon_BJC_i80_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_i80_modeuses[] = {
+ { "Plain", canon_BJC_i80_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i80_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i80_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i80_modeuses_PPmatte, 0 },
+ { "PhotopaperMatte", canon_BJC_i80_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i80_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i80_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_BJC_i80_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i80_modeuses_Hagaki, 0 },
+ { "TShirt", canon_BJC_i80_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i80_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i80_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i80_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_i80);
+
+/* ----------------------------------- Canon i450 ----------------------------------- */
+static const char* canon_BJC_i450_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_highmono",/* mono mode */
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_i450_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_highmono2",/* mono */
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_BJC_i450_modeuses_PPother[] = {
+ "600x600dpi_photohigh2",/*untested*/
+ "600x600dpi_photo2",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i450_modeuses[] = {
+ { "Plain", canon_BJC_i450_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i450_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i450_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i450_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_BJC_i450_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_BJC_i450_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i450_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_BJC_i450_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i450_modeuses_Hagaki, 0 },
+ { "TShirt", canon_BJC_i450_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i450_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i450_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i450_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i450);
+
+/* ----------------------------------- Canon i455 ----------------------------------- */
+static const char* canon_BJC_i455_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_highmono",/* mono mode */
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_i455_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_highmono2",/* mono */
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_BJC_i455_modeuses_PPother[] = {
+ "600x600dpi_photohigh2",/*untested*/
+ "600x600dpi_photo2",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i455_modeuses[] = {
+ { "Plain", canon_BJC_i455_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i455_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i455_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i455_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_BJC_i455_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_BJC_i455_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i455_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_BJC_i455_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i455_modeuses_Hagaki, 0 },
+ { "TShirt", canon_BJC_i455_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i455_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i455_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i455_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i455);
+
+/* ----------------------------------- Canon i550 ----------------------------------- */
+static const char* canon_BJC_i550_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_highmono",/* mono mode */
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_i550_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i550_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i550_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photomed",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i550_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i550_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i550_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_highmono3",/* mono */
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_BJC_i550_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i550_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+/*untested*/
+static const char* canon_BJC_i550_modeuses_PPother[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i550_modeuses[] = {
+ { "Plain", canon_BJC_i550_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i550_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i550_modeuses_PPpro, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i550_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_BJC_i550_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i550_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i550_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i550_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i550_modeuses_Hagaki, 0 },
+ { "GlossyFilm", canon_BJC_i550_modeuses_PPpro, 0 },
+ { "TShirt", canon_BJC_i550_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i550_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i550_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i550_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i550);
+
+/* ----------------------------------- Canon i560 ----------------------------------- */
+static const char* canon_BJC_i560_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not supported yet */
+static const char* canon_BJC_i560_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft2",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_BJC_i560_modeuses_PPother[] = {
+ "600x600dpi_photo",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i560_modeuses[] = {
+ { "Plain", canon_BJC_i560_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i560_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i560_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i560_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_BJC_i560_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_BJC_i560_modeuses_PPplusDS, 0 },
+ { "Coated", canon_BJC_i560_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i560_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i560_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_BJC_i560_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i560_modeuses_disc, 0 },
+ { "TShirt", canon_BJC_i560_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i560_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i560_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i560_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i560);
+
+/* ----------------------------------- Canon i850 ----------------------------------- */
+static const char* canon_BJC_i850_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highset mode not supported yet */
+static const char* canon_BJC_i850_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i850_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highset mode not supported yet */
+static const char* canon_BJC_i850_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i850_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i850_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i850_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_BJC_i850_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i850_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i850_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+/*untested*/
+static const char* canon_BJC_i850_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i850_modeuses[] = {
+ { "Plain", canon_BJC_i850_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i850_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i850_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i850_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_BJC_i850_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_BJC_i850_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i850_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i850_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i850_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_BJC_i850_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i850_modeuses_disc, 0 },
+ { "GlossyFilm", canon_BJC_i850_modeuses_PPplus, 0 },
+ { "TShirt", canon_BJC_i850_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i850_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i850_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i850_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i850);
+
+/* ----------------------------------- Canon i860 ----------------------------------- */
+static const char* canon_BJC_i860_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+/* highest mode not supported yet */
+static const char* canon_BJC_i860_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_BJC_i860_modeuses_PPother[] = {
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_i860_modeuses[] = {
+ { "Plain", canon_BJC_i860_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_BJC_i860_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i860_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i860_modeuses_PPmatte, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_i860_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i860_modeuses_PPmatte, 0 },
+ { "Coated", canon_BJC_i860_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_BJC_i860_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i860_modeuses_Hagaki, DUPLEX_SUPPORT }, /* not sure */
+ { "DiscCompat", canon_BJC_i860_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i860_modeuses_disc, 0 },
+ { "TShirt", canon_BJC_i860_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i860_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i860_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i860_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i860);
+
+/* ----------------------------------- Canon i900 ----------------------------------- */
+static const char* canon_BJC_i900_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_disc[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo5",
+ "600x600dpi_photodraft5",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_BJC_i900_modeuses_PPother[] = {
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_BJC_i900_modeuses[] = {
+ { "Plain", canon_BJC_i900_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i900_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i900_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i900_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_BJC_i900_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i900_modeuses_PPplus, 0 },
+ { "Coated", canon_BJC_i900_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_BJC_i900_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i900_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_BJC_i900_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i900_modeuses_disc, 0 },
+ { "TShirt", canon_BJC_i900_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i900_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i900_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i900_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i900);
+
+/* ----------------------------------- Canon i950 ----------------------------------- */
+static const char* canon_BJC_i950_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high"/*untested*/,
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "600x600dpi_draft2",
+ "600x600dpi_draftmono",/* mono --- untested*/
+ "600x600dpi_draftmono2",/* mono */
+ NULL
+ };
+
+static const char* canon_BJC_i950_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo3",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_GlossyFilm[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_disc[] = {
+ "600x600dpi_photo5",
+ "600x600dpi_photodraft5",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_high5",/*untested*/
+ "600x600dpi_std4",/*untested*/
+ "600x600dpi_std5",
+ "600x600dpi_draftmono4",/* mono---untested*/
+ "600x600dpi_draftmono5",/* mono */
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_Transparency[] = {
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ "600x600dpi_draft4",
+ NULL
+};
+
+static const char* canon_BJC_i950_modeuses_PPother[] = {
+ "600x600dpi_photo2",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i950_modeuses[] = {
+ { "Plain", canon_BJC_i950_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i950_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i950_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i950_modeuses_PPgloss, 0 },
+ { "PhotopaperMatte", canon_BJC_i950_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i950_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i950_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i950_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i950_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_BJC_i950_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i950_modeuses_disc, 0 },
+ { "GlossyFilm", canon_BJC_i950_modeuses_GlossyFilm, 0 },
+ { "TShirt", canon_BJC_i950_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i950_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i950_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i950_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i950);
+
+/* ----------------------------------- Canon i960 ----------------------------------- */
+static const char* canon_BJC_i960_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high3",/* duplex */
+ "600x600dpi_high",
+ "600x600dpi",/*untested*/
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ "600x600dpi_draftmono",/* mono */
+ "600x600dpi_draftmono2",/* mono */
+ NULL
+ };
+
+static const char* canon_BJC_i960_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo5",/*untested*/
+ NULL
+};
+
+
+static const char* canon_BJC_i960_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_coated[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ "600x600dpi_photo5",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_disc[] = {
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_high5",
+ "600x600dpi_std4",/*untested*/
+ "600x600dpi_std5",
+ "600x600dpi_draft5",
+ "600x600dpi_draftmono4",
+ "600x600dpi_draftmono5",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_Transparency[] = {
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_i960_modeuses_PPother[] = {
+ "600x600dpi_photo2",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i960_modeuses[] = {
+ { "Plain", canon_BJC_i960_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_BJC_i960_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i960_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i960_modeuses_PPgloss, 0 },
+ { "PhotopaperMatte", canon_BJC_i960_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i960_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i960_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i960_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i960_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_BJC_i960_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i960_modeuses_disc, 0 },
+ { "TShirt", canon_BJC_i960_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i960_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i960_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i960_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i960);
+
+/* ----------------------------------- Canon i990 ----------------------------------- */
+static const char* canon_BJC_i990_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high3", /*duplex*/
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ "600x600dpi_draftmono",/*mono*/
+ "600x600dpi_draftmono2",/*mono*/
+ NULL
+ };
+
+/* most photo modes use R ink and therefore unsupported */
+/* unsupported */
+static const char* canon_BJC_i990_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_BJC_i990_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* unsupported */
+static const char* canon_BJC_i990_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_BJC_i990_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_BJC_i990_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photomed",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* high mode not yet supported */
+static const char* canon_BJC_i990_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i990_modeuses_disc[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i990_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft5",
+ "600x600dpi_draft4",
+ "600x600dpi_draftmono4",/*mono*/
+ "600x600dpi_draftmono5",/*mono*/
+ NULL
+};
+
+static const char* canon_BJC_i990_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i990_modeuses_Transparency[] = {
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+/* untested */
+static const char* canon_BJC_i990_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i990_modeuses[] = {
+ { "Plain", canon_BJC_i990_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_BJC_i990_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i990_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i990_modeuses_PPplus, 0 },/*untested*/
+ { "PhotopaperMatte", canon_BJC_i990_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i990_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i990_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i990_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i990_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_BJC_i990_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i990_modeuses_disc, 0 },
+ { "TShirt", canon_BJC_i990_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i990_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i990_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i990_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i990);
+
+/* ----------------------------------- Canon i6100 ----------------------------------- */
+static const char* canon_BJC_i6100_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",/*untested*/
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_BJC_i6100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_Transparency[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_BJC_i6100_modeuses_PPother[] = {
+ "600x600dpi_photo2",/*untested*/
+ "600x600dpi_photo",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i6100_modeuses[] = {
+ { "Plain", canon_BJC_i6100_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i6100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i6100_modeuses_PPpro, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i6100_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_BJC_i6100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i6100_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i6100_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i6100_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i6100_modeuses_Hagaki, 0 },
+ { "TShirt", canon_BJC_i6100_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i6100_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i6100_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i6100_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i6100);
+
+/* ----------------------------------- Canon i9100 ----------------------------------- */
+static const char* canon_BJC_i9100_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "600x600dpi_mono",/*untested*/
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+static const char* canon_BJC_i9100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",/*untested*/
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ "600x600dpi_draftmono2",
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_Transparency[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",/*untested*/
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i9100_modeuses_PPother[] = {
+ "600x600dpi_photo2",/*untested*/
+ "600x600dpi_photo",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i9100_modeuses[] = {
+ { "Plain", canon_BJC_i9100_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i9100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i9100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i9100_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_BJC_i9100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i9100_modeuses_PPmatte, 0 },
+ { "Coated", canon_BJC_i9100_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i9100_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i9100_modeuses_Hagaki, 0 },
+ { "TShirt", canon_BJC_i9100_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i9100_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i9100_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i9100_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_BJC_i9100);
+
+/* ----------------------------------- Canon i9900 ----------------------------------- */
+static const char* canon_BJC_i9900_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ "600x600dpi_draftmono",/*mono*/
+ "600x600dpi_draftmono2",/*mono*/
+ NULL
+ };
+
+/* most photo modes use R,G inks and therefore unsupported */
+/* unsupported */
+static const char* canon_BJC_i9900_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_BJC_i9900_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* unsupported */
+static const char* canon_BJC_i9900_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_BJC_i9900_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_BJC_i9900_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photomed",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* high mode not yet supported */
+static const char* canon_BJC_i9900_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_BJC_i9900_modeuses_disc[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_BJC_i9900_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft5",
+ "600x600dpi_draft4",
+ "600x600dpi_draftmono4",/*mono*/
+ "600x600dpi_draftmono5",/*mono*/
+ NULL
+};
+
+static const char* canon_BJC_i9900_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_BJC_i9900_modeuses_Transparency[] = {
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_BJC_i9900_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_BJC_i9900_modeuses[] = {
+ { "Plain", canon_BJC_i9900_modeuses_plain, 0 },
+ { "GlossyPro", canon_BJC_i9900_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_BJC_i9900_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_BJC_i9900_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_BJC_i9900_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_BJC_i9900_modeuses_PPgloss, 0 },
+ { "Coated", canon_BJC_i9900_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_BJC_i9900_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_BJC_i9900_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_BJC_i9900_modeuses_disc, 0 },
+ { "DiscOthers", canon_BJC_i9900_modeuses_disc, 0 },
+ { "TShirt", canon_BJC_i9900_modeuses_TShirt, 0 },
+ { "Transparency", canon_BJC_i9900_modeuses_Transparency, 0 },
+ { "Envelope", canon_BJC_i9900_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_BJC_i9900_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_BJC_i9900);
+
+/* ----------------------------------- Canon iP90 ----------------------------------- */
+static const char* canon_PIXMA_iP90_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high", /* mono */
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP90_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2", /* no ESC (S */
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP90_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP90_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP90_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_high3", /* mono */
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP90_modeuses_TShirt[] = {
+ "600x600dpi_tshirt", /* no ESC (S */
+ NULL
+};
+
+static const char* canon_PIXMA_iP90_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP90_modeuses[] = {
+ { "Plain", canon_PIXMA_iP90_modeuses_plain, 0 },/*INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL*/
+ { "GlossyPro", canon_PIXMA_iP90_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlus", canon_PIXMA_iP90_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_iP90_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_iP90_modeuses_Hagaki, 0 },/*INKSET_COLOR_SUPPORT*/
+ { "TShirt", canon_PIXMA_iP90_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_iP90_modeuses_Hagaki, 0 },/* INKSET_COLOR_SUPPORT*/
+ { "PhotopaperOther", canon_PIXMA_iP90_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP90);
+
+/* ----------------------------------- Canon iP100 ----------------------------------- */
+static const char* canon_PIXMA_iP100_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high", /* mono */
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP100_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP100_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_high3", /* mono */
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP100_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP100_modeuses[] = {
+ { "Plain", canon_PIXMA_iP100_modeuses_plain, 0 },/*INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL*/
+ { "GlossyPro", canon_PIXMA_iP100_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlus", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoPlusGloss2", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_iP100_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_iP100_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_iP100_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_iP100_modeuses_Hagaki, 0 },/*INKSET_COLOR_SUPPORT*/
+ { "TShirt", canon_PIXMA_iP100_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_iP100_modeuses_Hagaki, 0 },/*INKSET_COLOR_SUPPORT*/
+ { "PhotopaperOther", canon_PIXMA_iP100_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP100);
+
+/* ----------------------------------- Canon iP2000 ----------------------------------- */
+static const char* canon_PIXMA_iP2000_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/* mono */
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP2000_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2000_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2000_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2000_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2000_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_high3",/* mono */
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2000_modeuses_Transparency[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2000_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP2000_modeuses[] = {
+ { "Plain", canon_PIXMA_iP2000_modeuses_plain, 0 },
+ { "GlossyPro", canon_PIXMA_iP2000_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP2000_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble",canon_PIXMA_iP2000_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP2000_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_PIXMA_iP2000_modeuses_PPgloss, 0 },
+ { "Coated", canon_PIXMA_iP2000_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP2000_modeuses_PPplusDS, 0 },/*untested*/
+ { "Hagaki", canon_PIXMA_iP2000_modeuses_Hagaki, 0 },/*untested*/
+ { "TShirt", canon_PIXMA_iP2000_modeuses_TShirt, 0 },
+ { "Transparency", canon_PIXMA_iP2000_modeuses_Transparency, 0 },
+ { "Envelope", canon_PIXMA_iP2000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP2000_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP2000);
+
+/* ----------------------------------- Canon iP2700 ----------------------------------- */
+static const char* canon_PIXMA_iP2700_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "300x300dpi_mono",
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "300x300dpi_std3",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP2700_modeuses_PPpro[] = {
+ "1200x1200dpi_high",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2700_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2700_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2700_modeuses_TShirt[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_PIXMA_iP2700_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP2700_modeuses[] = {
+ { "Plain", canon_PIXMA_iP2700_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_PIXMA_iP2700_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_iP2700_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_PIXMA_iP2700_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_iP2700_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_PIXMA_iP2700_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_iP2700_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_iP2700_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP2700);
+
+/* ----------------------------------- Canon iP3000 ----------------------------------- */
+static const char* canon_PIXMA_iP3000_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iP3000_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3000_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3000_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* Note: iP3000 US driver does not have inkjetHagaki or Hagaki media */
+/* untested */
+static const char* canon_PIXMA_iP3000_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3000_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3000_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3000_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP3000_modeuses_transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP3000_modeuses[] = {
+ { "Plain", canon_PIXMA_iP3000_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP3000_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP3000_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP3000_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP3000_modeuses_inkjetHagaki, 0 },/*untested*/
+ { "Hagaki", canon_PIXMA_iP3000_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
+ { "DiscCompat", canon_PIXMA_iP3000_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP3000_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP3000_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP3000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP3000_modeuses_PPother, 0 },
+ { "Transparency", canon_PIXMA_iP3000_modeuses_transparency, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP3000);
+
+/* ----------------------------------- Canon iP3100 ----------------------------------- */
+static const char* canon_PIXMA_iP3100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iP3100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3100_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3100_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3100_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3100_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* Note: iP3100 US driver does not have this media */
+/*untested*/
+static const char* canon_PIXMA_iP3100_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP3100_modeuses_transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP3100_modeuses[] = {
+ { "Plain", canon_PIXMA_iP3100_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP3100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP3100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP3100_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP3100_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP3100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP3100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP3100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP3100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP3100_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP3100_modeuses_PPother, 0 },/*untested*/
+ { "Transparency", canon_PIXMA_iP3100_modeuses_transparency, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP3100);
+
+/* ----------------------------------- Canon iP3300 ----------------------------------- */
+static const char* canon_PIXMA_iP3300_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP3300_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3300_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3300_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3300_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3300_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3300_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3300_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP3300_modeuses[] = {
+ { "Plain", canon_PIXMA_iP3300_modeuses_plain, 0 },
+ { "GlossyPro", canon_PIXMA_iP3300_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP3300_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },/*check*/
+ { "PhotopaperMatte", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP3300_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP3300_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP3300_modeuses_Hagaki, 0 },
+ { "TShirt", canon_PIXMA_iP3300_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP3300_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP3300_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP3300);
+
+/* ----------------------------------- Canon iP3600 ----------------------------------- */
+static const char* canon_PIXMA_iP3600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP3600_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3600_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3600_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3600_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3600_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3600_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP3600_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP3600_modeuses[] = {
+ { "Plain", canon_PIXMA_iP3600_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_PIXMA_iP3600_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_iP3600_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP3600_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_iP3600_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP3600_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP3600_modeuses_Hagaki, 0 },
+ { "TShirt", canon_PIXMA_iP3600_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP3600_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP3600_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP3600);
+
+/* ----------------------------------- Canon iP4000 ----------------------------------- */
+static const char* canon_PIXMA_iP4000_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ "600x600dpi_high2",/*legacy*/
+ "600x600dpi_std2",/*legacy*/
+ "600x600dpi_draft2",/*legacy*/
+ NULL
+ };
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iP4000_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4000_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4000_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* Note: iP4000 US driver does not have inkjetHagaki or Hagaki media */
+/* untested */
+static const char* canon_PIXMA_iP4000_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4000_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4000_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4000_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP4000_modeuses_transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP4000_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4000_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP4000_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP4000_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP4000_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP4000_modeuses_inkjetHagaki, 0 },/*untested*/
+ { "Hagaki", canon_PIXMA_iP4000_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
+ { "CD", canon_PIXMA_iP4000_modeuses_plain, 0 },/*NOTE:temporary replacement*/
+ { "DiscCompat", canon_PIXMA_iP4000_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP4000_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP4000_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4000_modeuses_PPother, 0 },
+ { "Transparency", canon_PIXMA_iP4000_modeuses_transparency, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP4000);
+
+/* ----------------------------------- Canon iP4100 ----------------------------------- */
+static const char* canon_PIXMA_iP4100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iP4100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4100_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4100_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4100_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4100_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP4100_modeuses_transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP4100_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4100_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP4100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP4100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP4100_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP4100_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP4100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP4100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP4100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP4100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4100_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4100_modeuses_PPother, 0 },/*untested*/
+ { "Transparency", canon_PIXMA_iP4100_modeuses_transparency, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP4100);
+
+/* ----------------------------------- Canon iP4200 ----------------------------------- */
+static const char* canon_PIXMA_iP4200_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* most photo modes not supported yet --- used photodraft as stand-in everywhere */
+static const char* canon_PIXMA_iP4200_modeuses_PPplus[] = {
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* high mode not yet supported */
+static const char* canon_PIXMA_iP4200_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4200_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4200_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iP4200_modeuses_transparency[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP4200_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4200_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "PhotopaperPlus", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* mostly not yet supported */
+ { "PhotopaperPlusDouble", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "PhotopaperMatte", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "GlossyPaper", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "Coated", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "InkJetHagaki", canon_PIXMA_iP4200_modeuses_inkjetHagaki, 0 },/* partially not yet supported */
+ { "Hagaki", canon_PIXMA_iP4200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_PIXMA_iP4200_modeuses_plain, 0 },/*NOTE:temporary replacement*/
+ { "DiscCompat", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "DiscOthers", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "TShirt", canon_PIXMA_iP4200_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4200_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4200_modeuses_PPplus, 0 },/* not yet supported */
+ { "Transparency", canon_PIXMA_iP4200_modeuses_transparency, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP4200);
+
+/* ----------------------------------- Canon iP4300 ----------------------------------- */
+static const char* canon_PIXMA_iP4300_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* most photo modes not supported yet --- used photodraft as stand-in everywhere */
+static const char* canon_PIXMA_iP4300_modeuses_PPplus[] = {
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* high mode not yet supported */
+static const char* canon_PIXMA_iP4300_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4300_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4300_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iP4300_modeuses_transparency[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP4300_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4300_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "PhotopaperPlus", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* mostly not yet supported */
+ { "PhotopaperPlusDouble", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "PhotopaperMatte", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "GlossyPaper", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "Coated", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "InkJetHagaki", canon_PIXMA_iP4300_modeuses_inkjetHagaki, 0 },/* partially not yet supported */
+ { "Hagaki", canon_PIXMA_iP4300_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_PIXMA_iP4300_modeuses_plain, 0 },/*NOTE:temporary replacement*/
+ { "DiscCompat", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "DiscOthers", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "TShirt", canon_PIXMA_iP4300_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4300_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4300_modeuses_PPplus, 0 },/* not yet supported */
+ { "Transparency", canon_PIXMA_iP4300_modeuses_transparency, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP4300);
+
+/* ----------------------------------- Canon iP4500 ----------------------------------- */
+static const char* canon_PIXMA_iP4500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP4500_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4500_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP4500_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4500_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4500_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4500_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4500_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4500_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4500_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP4500_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4500_modeuses_plain, DUPLEX_SUPPORT },
+ { "PhotoPlusGloss2", canon_PIXMA_iP4500_modeuses_PPplus, 0 },
+ { "GlossyPro", canon_PIXMA_iP4500_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP4500_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP4500_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP4500_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP4500_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_iP4500_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP4500_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP4500_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP4500_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP4500_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP4500_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4500_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4500_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP4500);
+
+/* ----------------------------------- Canon iP4600 ----------------------------------- */
+static const char* canon_PIXMA_iP4600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP4600_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",/*untested*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP4600_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",/*untested*/
+ NULL
+};
+
+static const char* canon_PIXMA_iP4600_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_PIXMA_iP4600_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",/*untested*/
+ NULL
+};
+
+static const char* canon_PIXMA_iP4600_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ NULL
+};
+
+static const char* canon_PIXMA_iP4600_modeuses_disc[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_PIXMA_iP4600_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4600_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP4600_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4600_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_PIXMA_iP4600_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_iP4600_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP4600_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_iP4600_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP4600_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP4600_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP4600_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP4600_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP4600_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4600_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4600_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP4600);
+
+/* ----------------------------------- Canon iP4700 ----------------------------------- */
+static const char* canon_PIXMA_iP4700_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP4700_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP4700_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4700_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4700_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4700_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4700_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4700_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4700_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP4700_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4700_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_PIXMA_iP4700_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_iP4700_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP4700_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_iP4700_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_iP4700_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_iP4700_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_iP4700_modeuses_PPpro, 0 },
+ { "OtherPhotoHagakiO",canon_PIXMA_iP4700_modeuses_PPpro, 0 },
+ { "Hagaki", canon_PIXMA_iP4700_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP4700_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP4700_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP4700_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4700_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4700_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP4700);
+
+/* ----------------------------------- Canon iP4900 ----------------------------------- */
+static const char* canon_PIXMA_iP4900_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP4900_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP4900_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4900_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4900_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4900_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4900_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4900_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP4900_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP4900_modeuses[] = {
+ { "Plain", canon_PIXMA_iP4900_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_iP4900_modeuses_PPproPlat, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP4900_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_iP4900_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_iP4900_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_iP4900_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_iP4900_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_iP4900_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP4900_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP4900_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP4900_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP4900_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP4900_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP4900);
+
+/* ----------------------------------- Canon iP5000 ----------------------------------- */
+/* high mode not supported yet */
+static const char* canon_PIXMA_iP5000_modeuses_plain[] = {
+ "600x600dpi",
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* high modes not supported yet */
+static const char* canon_PIXMA_iP5000_modeuses_PPpro[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+};
+
+/* high modes not supported yet */
+static const char* canon_PIXMA_iP5000_modeuses_PPplus[] = {
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* high modes not supported yet */
+static const char* canon_PIXMA_iP5000_modeuses_PPplusDS[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+};
+
+/* US driver does not supply this media: untested */
+static const char* canon_PIXMA_iP5000_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+/* high modes not supported yet */
+static const char* canon_PIXMA_iP5000_modeuses_disc[] = {
+ /* plain mode temporarily added here */
+ "600x600dpi",
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* photo modes temporarily added */
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_iP5000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* high modes not supported yet */
+static const char* canon_PIXMA_iP5000_modeuses_PPother[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+ };
+
+static const char* canon_PIXMA_iP5000_modeuses_transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP5000_modeuses[] = {
+ { "Plain", canon_PIXMA_iP5000_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP5000_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP5000_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP5000_modeuses_PPplusDS, 0 },/*untested*/
+ { "Hagaki", canon_PIXMA_iP5000_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
+ { "DiscCompat", canon_PIXMA_iP5000_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP5000_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP5000_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP5000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP5000_modeuses_PPother, 0 },
+ { "Transparency", canon_PIXMA_iP5000_modeuses_transparency, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP5000);
+
+/* ----------------------------------- Canon iP5300 ----------------------------------- */
+static const char* canon_PIXMA_iP5300_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP5300_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP5300_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP5300_modeuses[] = {
+ { "Plain", canon_PIXMA_iP5300_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP5300_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP5300_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP5300_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iP5300_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP5300_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_iP5300_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP5300_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP5300_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_PIXMA_iP5300_modeuses_plain, 0 },/*optional using plain*/
+ { "DiscCompat", canon_PIXMA_iP5300_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP5300_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP5300_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP5300_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP5300_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP5300);
+
+/* ----------------------------------- Canon iP6000 ----------------------------------- */
+static const char* canon_PIXMA_iP6000_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP6000_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6000_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6000_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo",
+ NULL
+};
+
+/*Note: US printer driver does not support inkjetHagaki */
+static const char* canon_PIXMA_iP6000_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/*Note: US printer driver does not support Hagaki */
+static const char* canon_PIXMA_iP6000_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6000_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6000_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP6000_modeuses_transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP6000_modeuses[] = {
+ { "Plain", canon_PIXMA_iP6000_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP6000_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP6000_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP6000_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP6000_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP6000_modeuses_PPplus, 0 },
+ { "Coated", canon_PIXMA_iP6000_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP6000_modeuses_inkjetHagaki, 0 },/*untested*/
+ { "Hagaki", canon_PIXMA_iP6000_modeuses_Hagaki, DUPLEX_SUPPORT },/* untested */
+ { "CD", canon_PIXMA_iP6000_modeuses_disc, 0 },/*NOTE:temporary*/
+ { "DiscCompat", canon_PIXMA_iP6000_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP6000_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP6000_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP6000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP6000_modeuses_PPother, 0 },
+ { "Transparency", canon_PIXMA_iP6000_modeuses_transparency, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP6000);
+
+/* ----------------------------------- Canon iP6100 ----------------------------------- */
+static const char* canon_PIXMA_iP6100_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP6100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6100_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",/*untested*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6100_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6100_modeuses_PPother[] = {
+ "600x600dpi_photohigh",/*untested*/
+ NULL
+ };
+
+static const char* canon_PIXMA_iP6100_modeuses_transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP6100_modeuses[] = {
+ { "Plain", canon_PIXMA_iP6100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP6100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP6100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP6100_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP6100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP6100_modeuses_PPplus, 0 },
+ { "Coated", canon_PIXMA_iP6100_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP6100_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP6100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_PIXMA_iP6100_modeuses_disc, 0 },/*NOTE:identical, so combined*/
+ { "TShirt", canon_PIXMA_iP6100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP6100_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP6100_modeuses_PPother, 0 },
+ { "Transparency", canon_PIXMA_iP6100_modeuses_transparency, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP6100);
+
+/* ----------------------------------- Canon iP6210 ----------------------------------- */
+static const char* canon_PIXMA_iP6210_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "300x300dpi_std2",
+ "300x300dpi_draft2",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP6210_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* Color */
+ "1200x1200dpi_photohigh4",
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6210_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* Color */
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6210_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* Color */
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6210_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6210_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ /* Color */
+ "600x600dpi_std5",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6210_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ /* Color */
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo2",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP6210_modeuses[] = {
+ { "Plain", canon_PIXMA_iP6210_modeuses_plain, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP6210_modeuses_PPpro, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "PhotopaperPlus", canon_PIXMA_iP6210_modeuses_PPplus, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "PhotopaperMatte", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "GlossyPaper", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "Coated", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_PIXMA_iP6210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "Hagaki", canon_PIXMA_iP6210_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_PIXMA_iP6210_modeuses_TShirt, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "Envelope", canon_PIXMA_iP6210_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_iP6210_modeuses_PPother, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP6210);
+
+/* ----------------------------------- Canon iP6600 ----------------------------------- */
+static const char* canon_PIXMA_iP6600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP6600_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6600_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6600_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6600_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6600_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6600_modeuses_disc[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo5",
+ "600x600dpi_photodraft5",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6600_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6600_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP6600_modeuses[] = {
+ { "Plain", canon_PIXMA_iP6600_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP6600_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP6600_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP6600_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP6600_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP6600_modeuses_PPplus, 0 },
+ { "Coated", canon_PIXMA_iP6600_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP6600_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP6600_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP6600_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP6600_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP6600_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP6600_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP6600_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP6600);
+
+/* ----------------------------------- Canon iP6700 ----------------------------------- */
+static const char* canon_PIXMA_iP6700_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_PIXMA_iP6700_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_FA[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_disc[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo5",
+ "600x600dpi_photodraft5",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP6700_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP6700_modeuses[] = {
+ { "Plain", canon_PIXMA_iP6700_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP6700_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP6700_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP6700_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP6700_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP6700_modeuses_PPplus, 0 },
+ { "Coated", canon_PIXMA_iP6700_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP6700_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP6700_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "FineArtPhotoRag", canon_PIXMA_iP6700_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP6700_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP6700_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP6700_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP6700_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP6700_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP6700_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP6700);
+
+/* ----------------------------------- Canon iP7100 ----------------------------------- */
+static const char* canon_PIXMA_iP7100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ /* Mono */
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+static const char* canon_PIXMA_iP7100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+
+static const char* canon_PIXMA_iP7100_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7100_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ /* Mono */
+ "600x600dpi_mono",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7100_modeuses_FA[] = {
+ "600x600dpi_photohigh3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7100_modeuses_disc[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7100_modeuses_TShirt[] = {
+ "600x600dpi",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7100_modeuses_Transparency[] = {
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iP7100_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP7100_modeuses[] = {
+ { "Plain", canon_PIXMA_iP7100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP7100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP7100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP7100_modeuses_PPplus, 0 },
+ { "Hagaki", canon_PIXMA_iP7100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "FineArtPhotoRag", canon_PIXMA_iP7100_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP7100_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP7100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP7100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP7100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP7100_modeuses_Hagaki, 0 },
+ { "Transparency", canon_PIXMA_iP7100_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP7100_modeuses_PPother, 0 },/*untested*/
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP7100);
+
+/* ----------------------------------- Canon iP7200 ----------------------------------- */
+static const char* canon_PIXMA_iP7200_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/*duplex*/
+ "300x300dpi",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7200_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode still unsupported */
+static const char* canon_PIXMA_iP7200_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7200_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7200_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7200_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7200_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7200_modeuses_TShirt[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7200_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP7200_modeuses[] = {
+ { "Plain", canon_PIXMA_iP7200_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_iP7200_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_iP7200_modeuses_PPpro, 0 },
+ { "PhotoProLuster", canon_PIXMA_iP7200_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_iP7200_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP7200_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP7200_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_iP7200_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_iP7200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_iP7200_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_iP7200_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_iP7200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_iP7200_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP7200_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP7200_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP7200_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP7200_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP7200);
+
+/* ----------------------------------- Canon iP7500 ----------------------------------- */
+static const char* canon_PIXMA_iP7500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest modes not yet supported */
+static const char* canon_PIXMA_iP7500_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+
+static const char* canon_PIXMA_iP7500_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7500_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7500_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7500_modeuses_FA[] = {
+ "600x600dpi_photohigh3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7500_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7500_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iP7500_modeuses_Transparency[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP7500_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP7500_modeuses[] = {
+ { "Plain", canon_PIXMA_iP7500_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_PIXMA_iP7500_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP7500_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
+ { "Coated", canon_PIXMA_iP7500_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP7500_modeuses_PPplus, 0 },
+ { "Hagaki", canon_PIXMA_iP7500_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "FineArtPhotoRag", canon_PIXMA_iP7500_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP7500_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP7500_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP7500_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP7500_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP7500_modeuses_Hagaki, 0 },
+ { "Transparency", canon_PIXMA_iP7500_modeuses_Transparency, 0 },/*untested*/
+ { "PhotopaperOther", canon_PIXMA_iP7500_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP7500);
+
+/* ----------------------------------- Canon iP8100 ----------------------------------- */
+static const char* canon_PIXMA_iP8100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ /* Mono */
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+/* no support for modes using R yet */
+static const char* canon_PIXMA_iP8100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*untested*/
+ "600x600dpi_photo",
+ NULL
+};
+
+
+static const char* canon_PIXMA_iP8100_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ /* Mono */
+ "600x600dpi_mono",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_FA[] = {
+ "600x600dpi_photohigh3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_disc[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_TShirt[] = {
+ "600x600dpi",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8100_modeuses_Transparency[] = {
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iP8100_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft2",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP8100_modeuses[] = {
+ { "Plain", canon_PIXMA_iP8100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP8100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP8100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP8100_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP8100_modeuses_PPgloss, 0 },
+ { "Coated", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP8100_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP8100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "FineArtPhotoRag", canon_PIXMA_iP8100_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP8100_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP8100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP8100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP8100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP8100_modeuses_Hagaki, 0 },
+ { "Transparency", canon_PIXMA_iP8100_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP8100_modeuses_PPother, 0 },/*untested*/
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP8100);
+
+/* ----------------------------------- Canon iP8500 ----------------------------------- */
+static const char* canon_PIXMA_iP8500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* modes not yet supported */
+static const char* canon_PIXMA_iP8500_modeuses_PPpro[] = {
+ "600x600dpi_photodraft",/*temporary stand-in: untested*/
+ NULL
+};
+
+/* most modes unsupported */
+static const char* canon_PIXMA_iP8500_modeuses_PPplus[] = {
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* most modes unsupported */
+static const char* canon_PIXMA_iP8500_modeuses_PPplusDS[] = {
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8500_modeuses_PPhires[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* US driver does not support this media: untested */
+static const char* canon_PIXMA_iP8500_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* US driver does not support this media */
+static const char* canon_PIXMA_iP8500_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8500_modeuses_disc[] = {
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8500_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8500_modeuses_Transparency[] = {
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8500_modeuses_PPother[] = {
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iP8500_modeuses[] = {
+ { "Plain", canon_PIXMA_iP8500_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP8500_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotopaperPlus", canon_PIXMA_iP8500_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP8500_modeuses_PPpro, 0 },/*unsupported*/
+ { "GlossyPaper", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP8500_modeuses_PPhires, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP8500_modeuses_inkjetHagaki, 0 },/*untested*/
+ { "Hagaki", canon_PIXMA_iP8500_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
+ { "DiscCompat", canon_PIXMA_iP8500_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP8500_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP8500_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP8500_modeuses_Hagaki, 0 },
+ { "Transparency", canon_PIXMA_iP8500_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP8500_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iP8500);
+
+/* ----------------------------------- Canon iP8600 ----------------------------------- */
+static const char* canon_PIXMA_iP8600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ /* Mono */
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+/* modes using R not yet supported */
+static const char* canon_PIXMA_iP8600_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",/*untested*/
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode using R not supported yet */
+static const char* canon_PIXMA_iP8600_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",/*untested*/
+ "600x600dpi_photo",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ /* Mono */
+ "600x600dpi_mono",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_FA[] = {
+ "600x600dpi_photohigh4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_disc[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_TShirt[] = {
+ "600x600dpi",
+ NULL
+};
+
+static const char* canon_PIXMA_iP8600_modeuses_Transparency[] = {
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iP8600_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP8600_modeuses[] = {
+ { "Plain", canon_PIXMA_iP8600_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP8600_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP8600_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP8600_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP8600_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "FineArtPhotoRag", canon_PIXMA_iP8600_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP8600_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP8600_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP8600_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP8600_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP8600_modeuses_Hagaki, 0 },
+ { "Transparency", canon_PIXMA_iP8600_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP8600_modeuses_PPother, 0 },/*untested*/
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP8600);
+
+/* ----------------------------------- Canon iP9910 ----------------------------------- */
+static const char* canon_PIXMA_iP9910_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ /* Mono */
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ NULL
+ };
+
+/* highest mode using R not yet supported */
+static const char* canon_PIXMA_iP9910_modeuses_PPpro[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photo2",
+ NULL
+};
+
+/* highest mode using R not supported yet */
+static const char* canon_PIXMA_iP9910_modeuses_PPplus[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ /* Mono */
+ "600x600dpi_mono",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_FA[] = {
+ "600x600dpi_photohigh4",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_disc[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_TShirt[] = {
+ "600x600dpi",
+ NULL
+};
+
+static const char* canon_PIXMA_iP9910_modeuses_Transparency[] = {
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iP9910_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iP9910_modeuses[] = {
+ { "Plain", canon_PIXMA_iP9910_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_PIXMA_iP9910_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP9910_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP9910_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iP9910_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_iP9910_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP9910_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP9910_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP9910_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP9910_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iP9910_modeuses_Hagaki, 0 },
+ { "Transparency", canon_PIXMA_iP9910_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP9910_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iP9910);
+
+/* ----------------------------------- Canon iX4000 ----------------------------------- */
+static const char* canon_PIXMA_iX4000_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iX4000_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iX4000_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iX4000_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iX4000_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iX4000_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iX4000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* US driver does not have this media */
+static const char* canon_PIXMA_iX4000_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+/* US driver does not have this media */
+static const char* canon_PIXMA_iX4000_modeuses_Transparency[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iX4000_modeuses[] = {
+ { "Plain", canon_PIXMA_iX4000_modeuses_plain, 0 },
+ { "GlossyPro", canon_PIXMA_iX4000_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iX4000_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iX4000_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iX4000_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iX4000_modeuses_Hagaki, 0 },
+ { "TShirt", canon_PIXMA_iX4000_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iX4000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iX4000_modeuses_PPother, 0 },/*Note: US driver does not have this media*/
+ { "Transparency", canon_PIXMA_iX4000_modeuses_Transparency, 0 },/*Note: US driver does not have this media */
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iX4000);
+
+/* ----------------------------------- Canon iX5000 ----------------------------------- */
+static const char* canon_PIXMA_iX5000_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iX5000_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iX5000_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iX5000_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iX5000_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iX5000_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iX5000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* US driver does not have this media */
+static const char* canon_PIXMA_iX5000_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_iX5000_modeuses[] = {
+ { "Plain", canon_PIXMA_iX5000_modeuses_plain, 0 },
+ { "GlossyPro", canon_PIXMA_iX5000_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iX5000_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iX5000_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_PIXMA_iX5000_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_iX5000_modeuses_Hagaki, 0 },
+ { "TShirt", canon_PIXMA_iX5000_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iX5000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iX5000_modeuses_PPother, 0 },/*Note: US driver does not have this media*/
+ { "Transparency", canon_PIXMA_iX5000_modeuses_inkjetHagaki, 0 },/*Note: US driver does not have this media */
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_iX5000);
+
+/* ----------------------------------- Canon iX6500 ----------------------------------- */
+static const char* canon_PIXMA_iX6500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+
+static const char* canon_PIXMA_iX6500_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iX6500_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_iX6500_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_iX6500_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iX6500_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_iX6500_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/*untested*/
+static const char* canon_PIXMA_iX6500_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iX6500_modeuses[] = {
+ { "Plain", canon_PIXMA_iX6500_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_iX6500_modeuses_PPproPlat, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iX6500_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_iX6500_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iX6500_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_iX6500_modeuses_PPplusG2, 0 },
+ { "HagakiA", canon_PIXMA_iX6500_modeuses_Hagaki, 0 },
+ { "Hagaki", canon_PIXMA_iX6500_modeuses_Hagaki, 0 },
+ { "TShirt", canon_PIXMA_iX6500_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_iX6500_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_iX6500_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iX6500);
+
+/* ----------------------------------- Canon iX7000 ----------------------------------- */
+static const char* canon_PIXMA_iX7000_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+
+static const char* canon_PIXMA_iX7000_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iX7000_modeuses_PPproPlat[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* highest mode not supported yet */
+static const char* canon_PIXMA_iX7000_modeuses_PPsemigloss[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_iX7000_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_iX7000_modeuses_Hagaki[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_PIXMA_iX7000_modeuses_FA[] = {
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_iX7000_modeuses[] = {
+ { "Plain", canon_PIXMA_iX7000_modeuses_plain, DUPLEX_SUPPORT },
+ { "PhotoPlusGloss2", canon_PIXMA_iX7000_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_iX7000_modeuses_PPproPlat, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_iX7000_modeuses_PPsemigloss, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iX7000_modeuses_PPproPlat, 0 },
+ { "InkJetHagaki", canon_PIXMA_iX7000_modeuses_inkjetHagaki, 0 },
+ { "HagakiA", canon_PIXMA_iX7000_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "Hagaki", canon_PIXMA_iX7000_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "FineArtPhotoRag", canon_PIXMA_iX7000_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iX7000_modeuses_FA, 0 },
+ { "Envelope", canon_PIXMA_iX7000_modeuses_Hagaki, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_iX7000);
+
+/* ----------------------------------- Canon MP150 ----------------------------------- */
+static const char* canon_MULTIPASS_MP150_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* color-only */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP150_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP150_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP150_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP150_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP150_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ /* mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ "600x600dpi_draftmono2",
+ /* color-only */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP150_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP150_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP150_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP150_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "GlossyPro", canon_MULTIPASS_MP150_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlus", canon_MULTIPASS_MP150_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP150_modeuses_PPgloss, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP150_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP150_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP150_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP150_modeuses_Hagaki, INKSET_COLOR_SUPPORT | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP150_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP150);
+
+/* ----------------------------------- Canon MP190 ----------------------------------- */
+static const char* canon_MULTIPASS_MP190_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP190_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP190_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP190_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP190_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ "600x600dpi_draftmono2",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP190_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP190_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP190_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP190_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_MULTIPASS_MP190_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MP190_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlus", canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP190_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP190_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP190_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP190_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP190_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP190_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP190_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP190_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP190);
+
+/* ----------------------------------- Canon MP210 ----------------------------------- */
+static const char* canon_MULTIPASS_MP210_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP210_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested here*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP210_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP210_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested here*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP210_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested here*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP210_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ "600x600dpi_draftmono2",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP210_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP210_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP210_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP210_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "GlossyPro", canon_MULTIPASS_MP210_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlus", canon_MULTIPASS_MP210_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP210_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP210_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP210_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP210_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP210_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP210_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP210_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP210_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP210);
+
+/* ----------------------------------- Canon MP230 ----------------------------------- */
+static const char* canon_MULTIPASS_MP230_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",/*untested*/
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",/*untested*/
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP230_modeuses_PPproPlat[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP230_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP230_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ "600x600dpi_draftmono2",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP230_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP230_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP230_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP230_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MP230_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MP230_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK", canon_MULTIPASS_MP230_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP230_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP230_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP230_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP230_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP230);
+
+/* ----------------------------------- Canon MP240 ----------------------------------- */
+static const char* canon_MULTIPASS_MP240_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP240_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP240_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP240_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ "600x600dpi_draftmono2",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP240_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP240_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP240_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP240_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_MULTIPASS_MP240_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP240_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP240_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP240_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP240_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP240_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP240);
+
+/* ----------------------------------- Canon MP250 ----------------------------------- */
+static const char* canon_MULTIPASS_MP250_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ /* mono */
+ "600x600dpi_highmono",
+ "600x600dpi_highmono2",/* duplex */
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",/*untested*/
+ /* color-only --- no special duplex */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",/*untested*/
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP250_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP250_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP250_modeuses_Hagaki[] = {
+ "600x600dpi_high5",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ /* mono */
+ "600x600dpi_highmono5",
+ "600x600dpi_mono2",
+ "600x600dpi_draftmono2",/*untested*/
+ /* color-only */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP250_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP250_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP250_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP250_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_MULTIPASS_MP250_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MP250_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MP250_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "ProPhotoHagakiP", canon_MULTIPASS_MP250_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP250_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT},
+ { "TShirt", canon_MULTIPASS_MP250_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP250_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP250_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP250);
+
+/* ----------------------------------- Canon MP280 ----------------------------------- */
+static const char* canon_MULTIPASS_MP280_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",/*untested*/
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",/*untested*/
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP280_modeuses_PPproPlat[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP280_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP280_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ "600x600dpi_draftmono2",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP280_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP280_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP280_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP280_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MP280_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MP280_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK", canon_MULTIPASS_MP280_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP280_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP280_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP280_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP280_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP280);
+
+/* ----------------------------------- Canon MP360 ----------------------------------- */
+static const char* canon_MULTIPASS_MP360_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_highmono",/* mono */
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP360_modeuses_PPpro[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP360_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP360_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP360_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP360_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_highmono2",/* mono */
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP360_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP360_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP360_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP360_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MP360_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP360_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP360_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP360_modeuses_PPgloss, 0 },
+ { "Coated", canon_MULTIPASS_MP360_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP360_modeuses_PPmatte, 0 },
+ { "Hagaki", canon_MULTIPASS_MP360_modeuses_Hagaki, 0 },
+ { "TShirt", canon_MULTIPASS_MP360_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP360_modeuses_Hagaki, 0 },
+ { "Transparency", canon_MULTIPASS_MP360_modeuses_Transparency, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP360);
+
+/* ----------------------------------- Canon MP470 ----------------------------------- */
+static const char* canon_MULTIPASS_MP470_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ "300x300dpi_std2",
+ "300x300dpi_draft2",
+ NULL
+ };
+
+/* high mode not supported yet */
+static const char* canon_MULTIPASS_MP470_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP470_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP470_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP470_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP470_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ /* Mono */
+ "600x600dpi_highmono3",
+ "600x600dpi_mono3",
+ "600x600dpi_draftmono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP470_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP470_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP470_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP470_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "GlossyPro", canon_MULTIPASS_MP470_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlus", canon_MULTIPASS_MP470_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP470_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP470_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP470_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP470_modeuses_PPplusDS, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP470_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP470_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP470_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP470_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP470_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP470_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP470);
+
+/* ----------------------------------- Canon MP480 ----------------------------------- */
+static const char* canon_MULTIPASS_MP480_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ "300x300dpi_std2",
+ "300x300dpi_draft2",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP480_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP480_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP480_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* Mono */
+ "600x600dpi_highmono3",
+ "600x600dpi_mono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP480_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP480_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP480_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP480_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_MULTIPASS_MP480_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP480_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP480_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP480_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP480_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP480_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP480);
+
+/* ----------------------------------- Canon MP490 ----------------------------------- */
+static const char* canon_MULTIPASS_MP490_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",/*untested*/
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ "300x300dpi_std3",
+ "300x300dpi_draft3",/*untested*/
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP490_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP490_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP490_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_mono2",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP490_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP490_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP490_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP490_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "PhotoPro2", canon_MULTIPASS_MP490_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "ProPhotoHagakiP", canon_MULTIPASS_MP490_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK", canon_MULTIPASS_MP490_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MP490_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "Hagaki", canon_MULTIPASS_MP490_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP490_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP490_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP490_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP490);
+
+/* ----------------------------------- Canon MP493 ----------------------------------- */
+static const char* canon_MULTIPASS_MP493_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ "300x300dpi_std2",
+ "300x300dpi_draft2",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP493_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP493_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP493_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* Mono */
+ "600x600dpi_highmono3",
+ "600x600dpi_mono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP493_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP493_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP493_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP493_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL},
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_MULTIPASS_MP493_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MP493_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK", canon_MULTIPASS_MP493_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "ProPhotoHagakiP", canon_MULTIPASS_MP493_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MP493_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MP493_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MP493_modeuses_Hagaki,INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MP493_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP493);
+
+/* ----------------------------------- Canon MP520 ----------------------------------- */
+static const char* canon_MULTIPASS_MP520_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP520_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP520_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP520_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP520_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP520_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP520_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP520_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP520_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP520_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MP520_modeuses_PPpro, 0 },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP520_modeuses_PPplus, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP520_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP520_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP520_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP520_modeuses_PPplusDS, 0 },
+ { "Coated", canon_MULTIPASS_MP520_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP520_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP520_modeuses_Hagaki, 0 },
+ { "TShirt", canon_MULTIPASS_MP520_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP520_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP520_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP520);
+
+/* ----------------------------------- Canon MP530 ----------------------------------- */
+static const char* canon_MULTIPASS_MP530_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* most photo modes not yet supported */
+static const char* canon_MULTIPASS_MP530_modeuses_PPpro[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+/* only draft available */
+static const char* canon_MULTIPASS_MP530_modeuses_PPplus[] = {
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/*most photo modes not yet supported */
+static const char* canon_MULTIPASS_MP530_modeuses_PPplusDS[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP530_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP530_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP530_modeuses_disc[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP530_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP530_modeuses_PPother[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP530_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP530_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MP530_modeuses_PPpro, 0 },/*not supported yet*/
+ { "PhotopaperPlus", canon_MULTIPASS_MP530_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "GlossyPaper", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "PhotopaperMatte", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "Coated", canon_MULTIPASS_MP530_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "InkJetHagaki", canon_MULTIPASS_MP530_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP530_modeuses_Hagaki, 0 },
+ { "CD", canon_MULTIPASS_MP530_modeuses_plain, 0 },/*NOTE:temporary replacement*/
+ { "DiscCompat", canon_MULTIPASS_MP530_modeuses_disc, 0 },/*not supported yet*/
+ { "DiscOthers", canon_MULTIPASS_MP530_modeuses_disc, 0 },/*not supported yet*/
+ { "TShirt", canon_MULTIPASS_MP530_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP530_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP530_modeuses_PPother, 0 },/*not supported yet*/
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP530);
+
+/* ----------------------------------- Canon MP540 ----------------------------------- */
+static const char* canon_MULTIPASS_MP540_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP540_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP540_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP540_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP540_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP540_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP540_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP540_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP540_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP540_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MP540_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP540_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP540_modeuses_PPplusG2, 0 },
+ { "Coated", canon_MULTIPASS_MP540_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP540_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP540_modeuses_Hagaki, 0 },
+ { "TShirt", canon_MULTIPASS_MP540_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP540_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP540_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP540);
+
+/* ----------------------------------- Canon MP550 ----------------------------------- */
+static const char* canon_MULTIPASS_MP550_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+/*highest mode not supported yet*/
+static const char* canon_MULTIPASS_MP550_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP550_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP550_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP550_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP550_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP550_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP550_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP550_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP550_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MP550_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP550_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP550_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_MULTIPASS_MP550_modeuses_Hagaki, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP550_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
+ { "ProPhotoHagakiP", canon_MULTIPASS_MP550_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_MULTIPASS_MP550_modeuses_Hagaki, 0 },
+ { "TShirt", canon_MULTIPASS_MP550_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP550_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP550_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP550);
+
+/* ----------------------------------- Canon MP560 ----------------------------------- */
+static const char* canon_MULTIPASS_MP560_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+/*highest mode not supported yet*/
+static const char* canon_MULTIPASS_MP560_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP560_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP560_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP560_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP560_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP560_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP560_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP560_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP560_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MP560_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP560_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP560_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_MULTIPASS_MP560_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP560_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
+ { "ProPhotoHagakiP", canon_MULTIPASS_MP560_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_MULTIPASS_MP560_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "TShirt", canon_MULTIPASS_MP560_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP560_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP560_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP560);
+
+/* ----------------------------------- Canon MP600 ----------------------------------- */
+static const char* canon_MULTIPASS_MP600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/*unsupported*/
+static const char* canon_MULTIPASS_MP600_modeuses_PPpro[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+};
+
+/*most modes unsupported*/
+static const char* canon_MULTIPASS_MP600_modeuses_PPplus[] = {
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_MULTIPASS_MP600_modeuses_PPplusDS[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_MULTIPASS_MP600_modeuses_PPmatte[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+};
+
+/*highest mode unsupported*/
+static const char* canon_MULTIPASS_MP600_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP600_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_MULTIPASS_MP600_modeuses_disc[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP600_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_MULTIPASS_MP600_modeuses_PPother[] = {
+ "600x600dpi_photodraft",/*stand-in*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP600_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP600_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MP600_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP600_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP600_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP600_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP600_modeuses_PPplusDS, 0 },
+ { "Coated", canon_MULTIPASS_MP600_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP600_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP600_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_MULTIPASS_MP600_modeuses_plain, 0 },/*temporary for plain modes*/
+ { "DiscCompat", canon_MULTIPASS_MP600_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP600_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP600_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP600_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP600_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP600);
+
+/* ----------------------------------- Canon MP610 ----------------------------------- */
+static const char* canon_MULTIPASS_MP610_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* missing highest resolution mode as not yet implemented */
+static const char* canon_MULTIPASS_MP610_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP610_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP610_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP610_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MP610_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP610_modeuses_PPplus, 0 },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP610_modeuses_PPplusG2, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP610_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP610_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP610_modeuses_PPplusDS, 0 },
+ { "Coated", canon_MULTIPASS_MP610_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP610_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP610_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_MULTIPASS_MP610_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP610_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP610_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP610_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP610_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP610);
+
+/* ----------------------------------- Canon MP620 ----------------------------------- */
+static const char* canon_MULTIPASS_MP620_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP620_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP620_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP620_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP620_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP620_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP620_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP620_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP620_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP620_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MP620_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP620_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP620_modeuses_PPplusG2, 0 },
+ { "Coated", canon_MULTIPASS_MP620_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP620_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP620_modeuses_Hagaki, 0 },
+ { "TShirt", canon_MULTIPASS_MP620_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP620_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP620_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP620);
+
+/* ----------------------------------- Canon MP630 ----------------------------------- */
+static const char* canon_MULTIPASS_MP630_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP630_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP630_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP630_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP630_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP630_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP630_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP630_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP630_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP630_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP630_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MP630_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP630_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP630_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP630_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP630_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP630_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_MULTIPASS_MP630_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP630_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP630_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP630_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP630_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP630);
+
+/* ----------------------------------- Canon MP640 ----------------------------------- */
+static const char* canon_MULTIPASS_MP640_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP640_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP640_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP640_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP640_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP640_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP640_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP640_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP640_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP640_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP640_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MP640_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP640_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP640_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_MULTIPASS_MP640_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MP640_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MP640_modeuses_PPplusG2, 0 },
+ { "ProPhotoHagakiP", canon_MULTIPASS_MP640_modeuses_PPpro, 0 },
+ { "Hagaki", canon_MULTIPASS_MP640_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_MULTIPASS_MP640_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP640_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP640_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP640_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP640_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP640);
+
+/* ----------------------------------- Canon MP700 ----------------------------------- */
+static const char* canon_MULTIPASS_MP700_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",/*untested*/
+ "600x600dpi_draft",
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP700_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP700_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP700_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP700_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",/*untested*/
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP700_modeuses_Hagaki[] = {
+ "600x600dpi_high3",/*untested*/
+ "600x600dpi_high2",
+ "600x600dpi_std2",/*untested*/
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP700_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP700_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP700_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+/*untested*/
+static const char* canon_MULTIPASS_MP700_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP700_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP700_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MP700_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP700_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
+ { "Coated", canon_MULTIPASS_MP700_modeuses_coated, 0 },
+ { "GlossyFilm", canon_MULTIPASS_MP700_modeuses_PPplus, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP700_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP700_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_MULTIPASS_MP700_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP700_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP700_modeuses_TShirt, 0 },
+ { "Transparency", canon_MULTIPASS_MP700_modeuses_Transparency, 0 },
+ { "Envelope", canon_MULTIPASS_MP700_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP700_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP700);
+
+/* ----------------------------------- Canon MP710 ----------------------------------- */
+static const char* canon_MULTIPASS_MP710_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",/*untested*/
+ "600x600dpi_draft",
+ "300x300dpi_high",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP710_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP710_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP710_modeuses_coated[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP710_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",/*untested*/
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP710_modeuses_Hagaki[] = {
+ "600x600dpi_high3",/*untested*/
+ "600x600dpi_high2",
+ "600x600dpi_std2",/*untested*/
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP710_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP710_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP710_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+/*untested*/
+static const char* canon_MULTIPASS_MP710_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP710_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP710_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MP710_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP710_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
+ { "Coated", canon_MULTIPASS_MP710_modeuses_coated, 0 },
+ { "GlossyFilm", canon_MULTIPASS_MP710_modeuses_PPplus, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP710_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP710_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_MULTIPASS_MP710_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP710_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP710_modeuses_TShirt, 0 },
+ { "Transparency", canon_MULTIPASS_MP710_modeuses_Transparency, 0 },
+ { "Envelope", canon_MULTIPASS_MP710_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP710_modeuses_PPother, 0 },/*untested*/
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP710);
+
+/* ----------------------------------- Canon MP750 ----------------------------------- */
+static const char* canon_MULTIPASS_MP750_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP750_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP750_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP750_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP750_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP750_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP750_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP750_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP750_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP750_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP750_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MP750_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP750_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
+ { "Coated", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },
+ { "GlossyFilm", canon_MULTIPASS_MP750_modeuses_PPplus, 0 },/*untested*/
+ { "InkJetHagaki", canon_MULTIPASS_MP750_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP750_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_MULTIPASS_MP750_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP750_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP750_modeuses_TShirt, 0 },
+ { "Transparency", canon_MULTIPASS_MP750_modeuses_Transparency, 0 },
+ { "Envelope", canon_MULTIPASS_MP750_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP750_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP750);
+
+/* ----------------------------------- Canon MP800 ----------------------------------- */
+static const char* canon_MULTIPASS_MP800_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/*most photo modes not yet supported */
+static const char* canon_MULTIPASS_MP800_modeuses_PPpro[] = {
+ "600x600dpi_photo",/*temporary stand-in*/
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+/* only draft available */
+static const char* canon_MULTIPASS_MP800_modeuses_PPplus[] = {
+ "600x600dpi_photo",/*temporary stand-in*/
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/*most photo modes not yet supported */
+static const char* canon_MULTIPASS_MP800_modeuses_PPplusDS[] = {
+ "600x600dpi_photo",/*temporary stand-in*/
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP800_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP800_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP800_modeuses_disc[] = {
+ "600x600dpi_photo",/*temporary stand-in*/
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP800_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP800_modeuses_PPother[] = {
+ "600x600dpi_photo",/*temporary stand-in*/
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP800_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP800_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MP800_modeuses_PPpro, 0 },/*not supported yet*/
+ { "PhotopaperPlus", canon_MULTIPASS_MP800_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "GlossyPaper", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "PhotopaperMatte", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "Coated", canon_MULTIPASS_MP800_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "InkJetHagaki", canon_MULTIPASS_MP800_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP800_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_MULTIPASS_MP800_modeuses_plain, 0 },/*NOTE:temporary replacement*/
+ { "DiscCompat", canon_MULTIPASS_MP800_modeuses_disc, 0 },/*not supported yet*/
+ { "DiscOthers", canon_MULTIPASS_MP800_modeuses_disc, 0 },/*not supported yet*/
+ { "TShirt", canon_MULTIPASS_MP800_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP800_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP800_modeuses_PPother, 0 },/*not supported yet*/
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP800);
+
+/* ----------------------------------- Canon MP810 ----------------------------------- */
+static const char* canon_MULTIPASS_MP810_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP810_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP810_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP810_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP810_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MP810_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP810_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP810_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP810_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP810_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP810_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP810_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP810_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_MULTIPASS_MP810_modeuses_plain, },/*NOTE:option*/
+ { "DiscCompat", canon_MULTIPASS_MP810_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP810_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP810_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP810_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP810_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP810);
+
+/* ----------------------------------- Canon MP830 ----------------------------------- */
+static const char* canon_MULTIPASS_MP830_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/*most photo modes not yet supported */
+static const char* canon_MULTIPASS_MP830_modeuses_PPpro[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+/* only draft available */
+static const char* canon_MULTIPASS_MP830_modeuses_PPplus[] = {
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/*most photo modes not yet supported */
+static const char* canon_MULTIPASS_MP830_modeuses_PPplusDS[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MP830_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP830_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP830_modeuses_disc[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP830_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP830_modeuses_PPother[] = {
+ "600x600dpi_photodraft",/*temporary stand-in*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP830_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP830_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MP830_modeuses_PPpro, 0 },/*not supported yet*/
+ { "PhotopaperPlus", canon_MULTIPASS_MP830_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "GlossyPaper", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "PhotopaperMatte", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "Coated", canon_MULTIPASS_MP830_modeuses_PPplusDS, 0 },/*not supported yet*/
+ { "InkJetHagaki", canon_MULTIPASS_MP830_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP830_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "CD", canon_MULTIPASS_MP830_modeuses_plain, 0 },/*NOTE:temporary replacement*/
+ { "DiscCompat", canon_MULTIPASS_MP830_modeuses_disc, 0 },/*not supported yet*/
+ { "DiscOthers", canon_MULTIPASS_MP830_modeuses_disc, 0 },/*not supported yet*/
+ { "TShirt", canon_MULTIPASS_MP830_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP830_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP830_modeuses_PPother, 0 },/*not supported yet*/
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP830);
+
+/* ----------------------------------- Canon MP900 ----------------------------------- */
+static const char* canon_MULTIPASS_MP900_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ /* Mono */
+ "600x600dpi_draftmono",
+ "600x600dpi_draftmono2",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MP900_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photo2",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_coated[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_Hagaki[] = {
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",
+ "600x600dpi_draftmono4",/* Mono */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_disc[] = {
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP900_modeuses_Transparency[] = {
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+/*untested*/
+static const char* canon_MULTIPASS_MP900_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP900_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP900_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MP900_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP900_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP900_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP900_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP900_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP900_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_MULTIPASS_MP900_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP900_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP900_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP900_modeuses_Hagaki, 0 },
+ { "Transparency", canon_MULTIPASS_MP900_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP900_modeuses_PPother, 0 },/*untested*/
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP900);
+
+/* ----------------------------------- Canon MP950 ----------------------------------- */
+static const char* canon_MULTIPASS_MP950_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/*highest mode not yet supported */
+static const char* canon_MULTIPASS_MP950_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ /* Mono not yet supported */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ /* Mono not yet supported */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ "600x600dpi_photodraft",/*untested*/
+ /* No mono modes for this media */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ /* No mono modes for this media */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_FA[] = {
+ "600x600dpi_photohigh4",
+ /* Mono not yet supported */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_disc[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo5",
+ "600x600dpi_photodraft5",
+ NULL
+ /* No mono modes for this media */
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_Transparency[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* No mono modes for this media */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP950_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ "600x600dpi_photodraft",/*untested*/
+ /* No mono modes for this media */
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MP950_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP950_modeuses_plain, DUPLEX_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MP950_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP950_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP950_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP950_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP950_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP950_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP950_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP950_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_MULTIPASS_MP950_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP950_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP950_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP950_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_MULTIPASS_MP950_modeuses_FA, 0 },
+ { "FineArtOther", canon_MULTIPASS_MP950_modeuses_FA, 0 },
+ { "Transparency", canon_MULTIPASS_MP950_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP950_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP950);
+
+/* ----------------------------------- Canon MP960 ----------------------------------- */
+static const char* canon_MULTIPASS_MP960_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/*duplex*/
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/*highest mode not yet supported */
+static const char* canon_MULTIPASS_MP960_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* Mono not yet supported */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* Mono not yet supported */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* No mono modes for this media */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ /* No mono modes for this media */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ /* No mono modes for this media */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_FA[] = {
+ "600x600dpi_photohigh5",
+ /* Mono not yet supported */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+ /* No mono modes for this media */
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* Note: this media is not supported in Windows driver: taken from MP950 */
+static const char* canon_MULTIPASS_MP960_modeuses_Transparency[] = {
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ /* No mono modes for this media */
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP960_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ /* No mono modes for this media */
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP960_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP960_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_MULTIPASS_MP960_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP960_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP960_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP960_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP960_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP960_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP960_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP960_modeuses_Hagaki, DUPLEX_SUPPORT }, /* not sure */
+ { "DiscCompat", canon_MULTIPASS_MP960_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP960_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP960_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP960_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_MULTIPASS_MP960_modeuses_FA, 0 },
+ { "FineArtOther", canon_MULTIPASS_MP960_modeuses_FA, 0 },
+ { "Transparency", canon_MULTIPASS_MP960_modeuses_Transparency, 0 },/*untested*/
+ { "PhotopaperOther", canon_MULTIPASS_MP960_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP960);
+
+/* ----------------------------------- Canon MP970 ----------------------------------- */
+/* TODO: mono modes for photo media*/
+
+static const char* canon_MULTIPASS_MP970_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/*duplex*/
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/*highest mode not yet supported */
+static const char* canon_MULTIPASS_MP970_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_FA[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP970_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP970_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP970_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "GlossyPro", canon_MULTIPASS_MP970_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP970_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP970_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP970_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP970_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP970_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_MULTIPASS_MP970_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP970_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP970_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP970_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_MULTIPASS_MP970_modeuses_FA, 0 },
+ { "FineArtOther", canon_MULTIPASS_MP970_modeuses_FA, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP970_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP970);
+
+/* ----------------------------------- Canon MP980 ----------------------------------- */
+/* TODO: mono modes for photo media*/
+
+static const char* canon_MULTIPASS_MP980_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/*duplex*/
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/*photo modes not yet supported */
+static const char* canon_MULTIPASS_MP980_modeuses_PPpro[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+/*photo modes not yet supported */
+static const char* canon_MULTIPASS_MP980_modeuses_PPplus[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP980_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP980_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP980_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+/*photo modes not yet supported */
+static const char* canon_MULTIPASS_MP980_modeuses_FA[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP980_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP980_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP980_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP980_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP980_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
+ { "PhotoPro2", canon_MULTIPASS_MP980_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotoProPlat", canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
+ { "GlossyPaper", canon_MULTIPASS_MP980_modeuses_PPplus, 0 },/*unsupported*/
+ { "PhotopaperMatte", canon_MULTIPASS_MP980_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP980_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP980_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MP980_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_MULTIPASS_MP980_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP980_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP980_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP980_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_MULTIPASS_MP980_modeuses_FA, 0 },/*unsupported*/
+ { "FineArtOther", canon_MULTIPASS_MP980_modeuses_FA, 0 },/*unsupported*/
+ { "PhotopaperOther", canon_MULTIPASS_MP980_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP980);
+
+/* ----------------------------------- Canon MP990 ----------------------------------- */
+/* Most photo modes not supported */
+static const char* canon_MULTIPASS_MP990_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi_high",/*duplex*/
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+/* unsupported */
+static const char* canon_MULTIPASS_MP990_modeuses_PPpro[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+/* unsupported */
+static const char* canon_MULTIPASS_MP990_modeuses_PPproPlat[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+/* unsupported */
+static const char* canon_MULTIPASS_MP990_modeuses_PPplus[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP990_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP990_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP990_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+/*unsupported*/
+static const char* canon_MULTIPASS_MP990_modeuses_FA[] = {
+ "600x600dpi_photo",/*stand-in*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP990_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP990_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MP990_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MP990_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MP990_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MP990_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MP990_modeuses_PPproPlat, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP990_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP990_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP990_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MP990_modeuses_PPplus, 0 },
+ { "ProPhotoHagakiP", canon_MULTIPASS_MP990_modeuses_PPproPlat, 0 },
+ { "HagakiA", canon_MULTIPASS_MP990_modeuses_Hagaki, DUPLEX_SUPPORT },/* not sure */
+ { "Hagaki", canon_MULTIPASS_MP990_modeuses_Hagaki, DUPLEX_SUPPORT },/* not sure */
+ { "DiscCompat", canon_MULTIPASS_MP990_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP990_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP990_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MP990_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_MULTIPASS_MP990_modeuses_FA, 0 },
+ { "FineArtOther", canon_MULTIPASS_MP990_modeuses_FA, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP990_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MP990);
+
+/* ----------------------------------- Canon MX300 ----------------------------------- */
+static const char* canon_MULTIPASS_MX300_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Black */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ "300x300dpi_std2",
+ "300x300dpi_draft2",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MX300_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX300_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX300_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX300_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX300_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ /* Black */
+ "600x600dpi_highmono3",
+ "600x600dpi_stdmono3",
+ "600x600dpi_draftmono3",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX300_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX300_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX300_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX300_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX300_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPro", canon_MULTIPASS_MX300_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlus", canon_MULTIPASS_MX300_modeuses_PPplus, INKSET_COLOR_SUPPORT },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MX300_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX300_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX300_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX300_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MX300_modeuses_PPmatte, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX300_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX300_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX300_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX300_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX300);
+
+/* ----------------------------------- Canon MX330 ----------------------------------- */
+static const char* canon_MULTIPASS_MX330_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Black */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ "300x300dpi_std2",
+ "300x300dpi_draft2",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MX330_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX330_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX330_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ /* Black */
+ "600x600dpi_highmono3",
+ "600x600dpi_stdmono3",
+ "600x600dpi_draftmono3",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX330_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX330_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX330_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX330_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_MULTIPASS_MX330_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MX330_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX330_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX330_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX330_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX330_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX330);
+
+/* ----------------------------------- Canon MX340 ----------------------------------- */
+static const char* canon_MULTIPASS_MX340_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ /* Black */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",/*untested*/
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ "300x300dpi_std2",
+ "300x300dpi_draft2",/*untested*/
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MX340_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX340_modeuses_PPpro[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX340_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ /* Black */
+ "600x600dpi_highmono3",
+ "600x600dpi_stdmono3",
+ "600x600dpi_draftmono3",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX340_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX340_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX340_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX340_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoPro2", canon_MULTIPASS_MX340_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MX340_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX340_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX340_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX340_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX340_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX340_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX340);
+
+/* ----------------------------------- Canon MX360 ----------------------------------- */
+static const char* canon_MULTIPASS_MX360_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ /* Black */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",/*untested*/
+ /* Color */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "600x600dpi_draft3",/*untested*/
+ "300x300dpi_std3",
+ "300x300dpi_draft3",/*untested*/
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MX360_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX360_modeuses_PPproPlat[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX360_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ /* Black */
+ "600x600dpi_highmono2",
+ "600x600dpi_stdmono2",
+ "600x600dpi_draftmono2",/*untested*/
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "600x600dpi_draft4",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX360_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX360_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MX360_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX360_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX360_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MX360_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK", canon_MULTIPASS_MX360_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX360_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX360_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX360_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX360_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX360);
+
+/* ----------------------------------- Canon MX370 ----------------------------------- */
+static const char* canon_MULTIPASS_MX370_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ /* color-only */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "300x300dpi_draft3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX370_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX370_modeuses_PPproPlat[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX370_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX370_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX370_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX370_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX370_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX370_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MX370_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX370_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX370_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX370_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX370_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX370_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX370);
+/* ----------------------------------- Canon MX390 ----------------------------------- */
+static const char* canon_MULTIPASS_MX390_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ /* color-only */
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ "300x300dpi_draft3",
+ NULL
+ };
+
+
+static const char* canon_MULTIPASS_MX390_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX390_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX390_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX390_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX390_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX390_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX390_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX390_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MX390_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX390_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX390_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX390_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX390_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX390_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX390);
+/* ----------------------------------- Canon MX420 ----------------------------------- */
+static const char* canon_MULTIPASS_MX420_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ /* Black */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",/*untested*/
+ "300x300dpi_mono",
+ "300x300dpi_draftmono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_draft2",/*untested*/
+ "300x300dpi_std2",
+ "300x300dpi_draft2",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MX420_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX420_modeuses_PPproPlat[] = {
+ "1200x1200dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX420_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* Black */
+ "600x600dpi_highmono3",
+ "600x600dpi_stdmono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX420_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX420_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",/*untested*/
+ "600x600dpi_photodraft",/*untested*/
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MX420_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX420_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX420_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MX420_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK", canon_MULTIPASS_MX420_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX420_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX420_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX420_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX420_modeuses_PPother, INKSET_COLOR_SUPPORT },
+ };
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX420);
+
+/* ----------------------------------- Canon MX510 ----------------------------------- */
+static const char* canon_MULTIPASS_MX510_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high3",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ /* color-only */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "300x300dpi_std4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX510_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX510_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX510_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX510_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX510_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX510_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX510_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX510_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MX510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
+ { "TShirt", canon_MULTIPASS_MX510_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX510_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX510);
+
+/* ----------------------------------- Canon MX520 ----------------------------------- */
+static const char* canon_MULTIPASS_MX520_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high3",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ /* color-only */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ "300x300dpi_std4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX520_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX520_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX520_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX520_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX520_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX520_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX520_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_MX520_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_MX520_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX520_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_MX520_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_MX520_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX520_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_MX520_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX520);
+
+/* ----------------------------------- Canon MX700 ----------------------------------- */
+static const char* canon_MULTIPASS_MX700_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MX700_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX700_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX700_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX700_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_draft3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX700_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX700_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX700_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MX700_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX700_modeuses_plain, 0 },
+ { "GlossyPro", canon_MULTIPASS_MX700_modeuses_PPpro, 0 },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX700_modeuses_PPplus, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MX700_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MX700_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MX700_modeuses_PPplus, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MX700_modeuses_PPplusDS, 0 },
+ { "Coated", canon_MULTIPASS_MX700_modeuses_PPplusDS, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MX700_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MX700_modeuses_Hagaki, 0 },
+ { "TShirt", canon_MULTIPASS_MX700_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MX700_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MX700_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX700);
+
+/* ----------------------------------- Canon MX710 ----------------------------------- */
+static const char* canon_MULTIPASS_MX710_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2", /* duplex */
+ "300x300dpi",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX710_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode unsupported */
+static const char* canon_MULTIPASS_MX710_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX710_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX710_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX710_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX710_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX710_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX710_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX710_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MX710_modeuses_PPproPlat, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MX710_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
+ { "Coated", canon_MULTIPASS_MX710_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_MULTIPASS_MX710_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MX710_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX710_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_MULTIPASS_MX710_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "TShirt", canon_MULTIPASS_MX710_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MX710_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MX710_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX710);
+
+/* ----------------------------------- Canon MX720 ----------------------------------- */
+static const char* canon_PIXMA_MX720_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/*duplex*/
+ "300x300dpi",
+ NULL
+};
+
+static const char* canon_PIXMA_MX720_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode still unsupported */
+static const char* canon_PIXMA_MX720_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MX720_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MX720_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MX720_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MX720_modeuses_TShirt[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_PIXMA_MX720_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MX720_modeuses[] = {
+ { "Plain", canon_PIXMA_MX720_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MX720_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MX720_modeuses_PPpro, 0 },
+ { "PhotoProLuster", canon_PIXMA_MX720_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MX720_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MX720_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MX720_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MX720_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MX720_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MX720_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MX720_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_MX720_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "TShirt", canon_PIXMA_MX720_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MX720_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MX720_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MX720);
+
+/* ----------------------------------- Canon MX850 ----------------------------------- */
+static const char* canon_MULTIPASS_MX850_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_MULTIPASS_MX850_modeuses_PPplus[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX850_modeuses_PPplusDS[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MX850_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX850_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX850_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX850_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX850_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX850_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX850_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const canon_modeuse_t canon_MULTIPASS_MX850_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX850_modeuses_plain, DUPLEX_SUPPORT },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX850_modeuses_PPplus, 0 },
+ { "GlossyPro", canon_MULTIPASS_MX850_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MX850_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MX850_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MX850_modeuses_PPplusDS, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX850_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MX850_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MX850_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MX850_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MX850_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_MULTIPASS_MX850_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MX850_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MX850_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MX850_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MX850_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX850);
+
+/* ----------------------------------- Canon MX860 ----------------------------------- */
+static const char* canon_MULTIPASS_MX860_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX860_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MX860_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX860_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX860_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX860_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX860_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX860_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX860_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX860_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MX860_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MX860_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX860_modeuses_PPplusG2, 0 },
+ { "Coated", canon_MULTIPASS_MX860_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MX860_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_MULTIPASS_MX860_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "TShirt", canon_MULTIPASS_MX860_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MX860_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MX860_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX860);
+
+/* ----------------------------------- Canon MX870 ----------------------------------- */
+static const char* canon_MULTIPASS_MX870_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX870_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MX870_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX870_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX870_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX870_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX870_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX870_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX870_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX870_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_MULTIPASS_MX870_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MX870_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
+ { "Coated", canon_MULTIPASS_MX870_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_MULTIPASS_MX870_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MX870_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX870_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_MULTIPASS_MX870_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "TShirt", canon_MULTIPASS_MX870_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MX870_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MX870_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX870);
+
+/* ----------------------------------- Canon MX880 ----------------------------------- */
+static const char* canon_MULTIPASS_MX880_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX880_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MX880_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX880_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX880_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX880_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX880_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX880_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX880_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX880_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_MULTIPASS_MX880_modeuses_PPproPlat, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MX880_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MX880_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_MULTIPASS_MX880_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_MULTIPASS_MX880_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_MX880_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_MULTIPASS_MX880_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "TShirt", canon_MULTIPASS_MX880_modeuses_TShirt, 0 },
+ { "Envelope", canon_MULTIPASS_MX880_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MX880_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX880);
+
+/* ----------------------------------- Canon MX920 ----------------------------------- */
+static const char* canon_PIXMA_MX920_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/*duplex*/
+ "300x300dpi",
+ NULL
+};
+
+static const char* canon_PIXMA_MX920_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode still unsupported */
+static const char* canon_PIXMA_MX920_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MX920_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MX920_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MX920_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MX920_modeuses_disc[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MX920_modeuses_TShirt[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_PIXMA_MX920_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MX920_modeuses[] = {
+ { "Plain", canon_PIXMA_MX920_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MX920_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MX920_modeuses_PPpro, 0 },
+ { "PhotoProLuster", canon_PIXMA_MX920_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MX920_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MX920_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MX920_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MX920_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MX920_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MX920_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MX920_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_MX920_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MX920_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MX920_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MX920_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MX920_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MX920_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MX920);
+
+/* ----------------------------------- Canon MX7600 ----------------------------------- */
+static const char* canon_MULTIPASS_MX7600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX7600_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode not yet supported */
+static const char* canon_MULTIPASS_MX7600_modeuses_PPsemiGloss[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX7600_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_MULTIPASS_MX7600_modeuses_FA[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_MX7600_modeuses[] = {
+ { "Plain", canon_MULTIPASS_MX7600_modeuses_plain, DUPLEX_SUPPORT },
+ { "PhotoPlusGloss2", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_MULTIPASS_MX7600_modeuses_PPsemiGloss, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MX7600_modeuses_PPplusG2, 0 },
+ { "FineArtPhotoRag", canon_MULTIPASS_MX7600_modeuses_FA, 0 },
+ { "FineArtOther", canon_MULTIPASS_MX7600_modeuses_FA, 0 },
+ { "Hagaki", canon_MULTIPASS_MX7600_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "Envelope", canon_MULTIPASS_MX7600_modeuses_Hagaki, 0 },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_MX7600);
+
+/* ----------------------------------- Canon E500 ----------------------------------- */
+static const char* canon_MULTIPASS_E500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* color-only */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E500_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E500_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E500_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E500_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E500_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_E500_modeuses[] = {
+ { "Plain", canon_MULTIPASS_E500_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_E500_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_E500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_E500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_E500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_E500_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_E500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_E500_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_E500);
+
+/* ----------------------------------- Canon E510 ----------------------------------- */
+static const char* canon_MULTIPASS_E510_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* color-only */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E510_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E510_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E510_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E510_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_MULTIPASS_E510_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_MULTIPASS_E510_modeuses[] = {
+ { "Plain", canon_MULTIPASS_E510_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_MULTIPASS_E510_modeuses_PPproPlat, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_MULTIPASS_E510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_MULTIPASS_E510_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_MULTIPASS_E510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_MULTIPASS_E510_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_MULTIPASS_E510_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_MULTIPASS_E510_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_MULTIPASS_E510);
+
+/* ----------------------------------- Canon MG2100 ----------------------------------- */
+static const char* canon_PIXMA_MG2100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ /* Mono */
+ "600x600dpi_monohigh",
+ "600x600dpi_mono",
+ "300x300dpi_mono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "300x300dpi_std2",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG2100_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* Mono */
+ "600x600dpi_highmono3",
+ "600x600dpi_mono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2100_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG2100_modeuses[] = {
+ { "Plain", canon_PIXMA_MG2100_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_MG2100_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_MG2100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG2100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_MG2100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_PIXMA_MG2100_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_MG2100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_MG2100_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG2100);
+
+/* ----------------------------------- Canon MG2200 ----------------------------------- */
+static const char* canon_PIXMA_MG2200_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ /* Mono */
+ "600x600dpi_monohigh",
+ "600x600dpi_mono",
+ "300x300dpi_mono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "300x300dpi_std2",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG2200_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2200_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2200_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* Mono */
+ "600x600dpi_highmono3",
+ "600x600dpi_mono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2200_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2200_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG2200_modeuses[] = {
+ { "Plain", canon_PIXMA_MG2200_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_MG2200_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_MG2200_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG2200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_MG2200_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_PIXMA_MG2200_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_MG2200_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_MG2200_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG2200);
+
+/* ----------------------------------- Canon MG2400 ----------------------------------- */
+static const char* canon_PIXMA_MG2400_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG2400_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2400_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2400_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG2400_modeuses_TShirt[] = {
+ "600x600dpi_photo",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG2400_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG2400_modeuses[] = {
+ { "Plain", canon_PIXMA_MG2400_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_MG2400_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_MG2400_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG2400_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_MG2400_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_PIXMA_MG2400_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_MG2400_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_MG2400_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG2400);
+
+/* ----------------------------------- Canon MG3100 ----------------------------------- */
+static const char* canon_PIXMA_MG3100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high5",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ /* Mono */
+ "600x600dpi_monohigh",
+ "600x600dpi_mono",
+ "300x300dpi_mono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "300x300dpi_std2",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG3100_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* Mono */
+ "600x600dpi_highmono3",
+ "600x600dpi_mono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3100_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG3100_modeuses[] = {
+ { "Plain", canon_PIXMA_MG3100_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_MG3100_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_MG3100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG3100_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_MG3100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
+ { "TShirt", canon_PIXMA_MG3100_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_MG3100_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_MG3100_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG3100);
+
+/* ----------------------------------- Canon MG3200 ----------------------------------- */
+static const char* canon_PIXMA_MG3200_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high5",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ /* Mono */
+ "600x600dpi_monohigh",
+ "600x600dpi_mono",
+ "300x300dpi_mono",
+ /* Color */
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "300x300dpi_std2",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG3200_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3200_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3200_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ /* Mono */
+ "600x600dpi_highmono3",
+ "600x600dpi_mono3",
+ /* Color */
+ "600x600dpi_high4",
+ "600x600dpi_std4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3200_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3200_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG3200_modeuses[] = {
+ { "Plain", canon_PIXMA_MG3200_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_MG3200_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_MG3200_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG3200_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_MG3200_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT },
+ { "TShirt", canon_PIXMA_MG3200_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_MG3200_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_MG3200_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG3200);
+
+/* ----------------------------------- Canon MG3500 ----------------------------------- */
+/* same as MG3100 but try to use inktypes to control use of inks in inksets */
+static const char* canon_PIXMA_MG3500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high5",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG3500_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3500_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3500_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3500_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3500_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG3500_modeuses[] = {
+ { "Plain", canon_PIXMA_MG3500_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_MG3500_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaper", canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_MG3500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG3500_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Hagaki", canon_PIXMA_MG3500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_PIXMA_MG3500_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_MG3500_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_MG3500_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG3500);
+
+/* ----------------------------------- Canon MG5100 ----------------------------------- */
+static const char* canon_PIXMA_MG5100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG5100_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode still unsupported */
+static const char* canon_PIXMA_MG5100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5100_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG5100_modeuses[] = {
+ { "Plain", canon_PIXMA_MG5100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MG5100_modeuses_PPpro, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MG5100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MG5100_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG5100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG5100_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG5100_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_MG5100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "TShirt", canon_PIXMA_MG5100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG5100_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MG5100_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG5100);
+
+/* ----------------------------------- Canon MG5200 ----------------------------------- */
+static const char* canon_PIXMA_MG5200_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_draft",/*untested*/
+ "300x300dpi",
+ "300x300dpi_draft",/*untested*/
+ NULL
+ };
+
+static const char* canon_PIXMA_MG5200_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode still unsupported */
+static const char* canon_PIXMA_MG5200_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5200_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5200_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5200_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5200_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5200_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5200_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG5200_modeuses[] = {
+ { "Plain", canon_PIXMA_MG5200_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MG5200_modeuses_PPpro, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MG5200_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MG5200_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG5200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG5200_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG5200_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_MG5200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG5200_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG5200_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG5200_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG5200_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MG5200_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG5200);
+
+/* ----------------------------------- Canon MG5300 ----------------------------------- */
+static const char* canon_PIXMA_MG5300_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/*duplex*/
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG5300_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode still unsupported */
+static const char* canon_PIXMA_MG5300_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5300_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5300_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5300_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5300_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5300_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5300_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG5300_modeuses[] = {
+ { "Plain", canon_PIXMA_MG5300_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MG5300_modeuses_PPpro, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MG5300_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MG5300_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG5300_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG5300_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG5300_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_MG5300_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG5300_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG5300_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG5300_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG5300_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MG5300_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG5300);
+
+/* ----------------------------------- Canon MG5400 ----------------------------------- */
+static const char* canon_PIXMA_MG5400_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/*duplex*/
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG5400_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+/* highest mode still unsupported */
+static const char* canon_PIXMA_MG5400_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5400_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5400_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5400_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5400_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5400_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5400_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG5400_modeuses[] = {
+ { "Plain", canon_PIXMA_MG5400_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG5400_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MG5400_modeuses_PPpro, 0 },
+ { "PhotoProLuster", canon_PIXMA_MG5400_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MG5400_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MG5400_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG5400_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MG5400_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG5400_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG5400_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG5400_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_MG5400_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG5400_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG5400_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG5400_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG5400_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MG5400_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG5400);
+
+/* ----------------------------------- Canon MG5500 ----------------------------------- */
+static const char* canon_PIXMA_MG5500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG5500_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5500_modeuses_PPpro[] = {
+ /*ud1 not supported */
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5500_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5500_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5500_modeuses_TShirt[] = {
+ "600x600dpi_photohigh2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5500_modeuses_PPother[] = {
+ "600x600dpi_photohigh", /* experimental */
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG5500_modeuses[] = {
+ { "Plain", canon_PIXMA_MG5500_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG5500_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MG5500_modeuses_PPpro, 0 },
+ { "PhotoProLuster", canon_PIXMA_MG5500_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MG5500_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MG5500_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG5500_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MG5500_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG5500_modeuses_Hagaki, 0 },
+ { "InkJetHagaki", canon_PIXMA_MG5500_modeuses_PPplusG2, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG5500_modeuses_PPplusG2, 0 },
+ { "Hagaki", canon_PIXMA_MG5500_modeuses_Hagaki, 0 },
+ { "TShirt", canon_PIXMA_MG5500_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG5500_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MG5500_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG5500);
+
+/* ----------------------------------- Canon MG6100 ----------------------------------- */
+/* most photo modes use gray ink which is unsupported */
+/* TODO: mono modes for photo media */
+static const char* canon_PIXMA_MG6100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6100_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6100_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6100_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6100_modeuses_photorag[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6100_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG6100_modeuses[] = {
+ { "Plain", canon_PIXMA_MG6100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProPlat", canon_PIXMA_MG6100_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotopaperMatte", canon_PIXMA_MG6100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Coated", canon_PIXMA_MG6100_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG6100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG6100_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG6100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Hagaki", canon_PIXMA_MG6100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG6100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG6100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG6100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG6100_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_MG6100_modeuses_photorag, 0 },/*unsupported*/
+ { "FineArtOther", canon_PIXMA_MG6100_modeuses_photorag, 0 },/*unsupported*/
+ { "PhotopaperOther", canon_PIXMA_MG6100_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG6100);
+
+/* ----------------------------------- Canon MG6200 ----------------------------------- */
+/* most photo modes use gray ink which is unsupported */
+/* TODO: mono modes for photo media */
+static const char* canon_PIXMA_MG6200_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "300x300dpi",
+ NULL
+ };
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6200_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6200_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6200_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6200_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6200_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6200_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6200_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6200_modeuses_photorag[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6200_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG6200_modeuses[] = {
+ { "Plain", canon_PIXMA_MG6200_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProPlat", canon_PIXMA_MG6200_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotopaperMatte", canon_PIXMA_MG6200_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Coated", canon_PIXMA_MG6200_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG6200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG6200_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG6200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Hagaki", canon_PIXMA_MG6200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG6200_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG6200_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG6200_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG6200_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_MG6200_modeuses_photorag, 0 },/*unsupported*/
+ { "FineArtOther", canon_PIXMA_MG6200_modeuses_photorag, 0 },/*unsupported*/
+ { "PhotopaperOther", canon_PIXMA_MG6200_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG6200);
+
+/* ----------------------------------- Canon MG6300 ----------------------------------- */
+/* most photo modes use gray ink which is unsupported */
+/* TODO: mono modes for photo media */
+static const char* canon_PIXMA_MG6300_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "300x300dpi",
+ NULL
+ };
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6300_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6300_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6300_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6300_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6300_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6300_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6300_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6300_modeuses_photorag[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6300_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG6300_modeuses[] = {
+ { "Plain", canon_PIXMA_MG6300_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG6300_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProPlat", canon_PIXMA_MG6300_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotoProLuster", canon_PIXMA_MG6300_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",canon_PIXMA_MG6300_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotopaperMatte", canon_PIXMA_MG6300_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG6300_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Coated", canon_PIXMA_MG6300_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG6300_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG6300_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG6300_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Hagaki", canon_PIXMA_MG6300_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG6300_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG6300_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG6300_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG6300_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_MG6300_modeuses_photorag, 0 },/*unsupported*/
+ { "FineArtOther", canon_PIXMA_MG6300_modeuses_photorag, 0 },/*unsupported*/
+ { "PhotopaperOther", canon_PIXMA_MG6300_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG6300);
+
+/* ----------------------------------- Canon MG6500 ----------------------------------- */
+/* most photo modes use gray ink which is unsupported */
+/* TODO: mono modes for photo media */
+static const char* canon_PIXMA_MG6500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "300x300dpi",
+ NULL
+ };
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6500_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6500_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6500_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6500_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6500_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6500_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG6500_modeuses_TShirt[] = {
+ "600x600dpi_photo",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG6500_modeuses_photorag[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG6500_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG6500_modeuses[] = {
+ { "Plain", canon_PIXMA_MG6500_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG6500_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProPlat", canon_PIXMA_MG6500_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotoProLuster", canon_PIXMA_MG6500_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",canon_PIXMA_MG6500_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotopaperMatte", canon_PIXMA_MG6500_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG6500_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Coated", canon_PIXMA_MG6500_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG6500_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG6500_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG6500_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Hagaki", canon_PIXMA_MG6500_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG6500_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG6500_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG6500_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG6500_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_MG6500_modeuses_photorag, 0 },/*unsupported*/
+ { "FineArtOther", canon_PIXMA_MG6500_modeuses_photorag, 0 },/*unsupported*/
+ { "PhotopaperOther", canon_PIXMA_MG6500_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG6500);
+
+/* ----------------------------------- Canon MG8100 ----------------------------------- */
+/* most photo modes use gray ink which is unsupported */
+/* TODO: mono modes for photo media */
+static const char* canon_PIXMA_MG8100_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "300x300dpi",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG8100_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG8100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG8100_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8100_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8100_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8100_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8100_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG8100_modeuses_photorag[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG8100_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG8100_modeuses[] = {
+ { "Plain", canon_PIXMA_MG8100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProPlat", canon_PIXMA_MG8100_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotopaperMatte", canon_PIXMA_MG8100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Coated", canon_PIXMA_MG8100_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG8100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG8100_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG8100_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Hagaki", canon_PIXMA_MG8100_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG8100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG8100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG8100_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG8100_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_MG8100_modeuses_photorag, 0 },/*unsupported*/
+ { "FineArtOther", canon_PIXMA_MG8100_modeuses_photorag, 0 },/*unsupported*/
+ { "PhotopaperOther", canon_PIXMA_MG8100_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG8100);
+
+/* ----------------------------------- Canon MG8200 ----------------------------------- */
+/* most photo modes use gray ink which is unsupported */
+/* TODO: mono modes for photo media */
+static const char* canon_PIXMA_MG8200_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "300x300dpi",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG8200_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG8200_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG8200_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8200_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8200_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8200_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG8200_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+/* unsupported*/
+static const char* canon_PIXMA_MG8200_modeuses_photorag[] = {
+ "600x600dpi_photohigh",/*stand-in*/
+ "600x600dpi_photo",/*stand-in*/
+ "600x600dpi_photo2",/*stand-in*/
+ NULL
+};
+
+static const char* canon_PIXMA_MG8200_modeuses_PPother[] = {
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG8200_modeuses[] = {
+ { "Plain", canon_PIXMA_MG8200_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotoProPlat", canon_PIXMA_MG8200_modeuses_PPpro, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "PhotopaperMatte", canon_PIXMA_MG8200_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Coated", canon_PIXMA_MG8200_modeuses_PPmatte, 0 },
+ { "HagakiA", canon_PIXMA_MG8200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG8200_modeuses_inkjetHagaki, 0 },
+ { "CanonPhotoHagakiK",canon_PIXMA_MG8200_modeuses_PPplusG2, 0 },/*unsupported*/
+ { "Hagaki", canon_PIXMA_MG8200_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG8200_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG8200_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG8200_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG8200_modeuses_Hagaki, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_MG8200_modeuses_photorag, 0 },/*unsupported*/
+ { "FineArtOther", canon_PIXMA_MG8200_modeuses_photorag, 0 },/*unsupported*/
+ { "PhotopaperOther", canon_PIXMA_MG8200_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG8200);
+
+/* ----------------------------------- Canon Pro9000 ----------------------------------- */
+
+static const char* canon_PIXMA_Pro9000_modeuses_plain[] = {
+ "600x600dpi_high2",
+ "600x600dpi",
+ "600x600dpi_std2",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ "600x600dpi_draftmono2",
+ NULL
+ };
+
+/* highest mode not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9000_modeuses_PPplusG2[] = {
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9000_modeuses_PPplus[] = {
+ "600x600dpi_photo",
+ "600x600dpi_photodraft2",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ "600x600dpi_photomonodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photodraft",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomonodraft",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9000_modeuses_PPpro[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomonomed",
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9000_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomonomed",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photomed2",
+ "600x600dpi_photomed",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",/*Mono High*/
+ "600x600dpi_std4",/* bw=2 for mono */
+ "600x600dpi_draft3",/* bw=2 for mono */
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo2",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000_modeuses_board[] = {
+ "600x600dpi_photohigh5",
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+static const char* canon_PIXMA_Pro9000_modeuses_photorag[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+ };
+
+static const char* canon_PIXMA_Pro9000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",/* bw=2 for mono */
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_Pro9000_modeuses[] = {
+ { "Plain", canon_PIXMA_Pro9000_modeuses_plain, 0 },
+ { "PhotopaperPlus", canon_PIXMA_Pro9000_modeuses_PPplus, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_Pro9000_modeuses_PPgloss, 0 },
+ { "PhotoProSemiGloss", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },
+ { "GlossyPro", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },
+ { "PhotoPro2", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_PIXMA_Pro9000_modeuses_PPproPlat, 0 },
+ { "PhotopaperMatte", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_Pro9000_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_Pro9000_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_PIXMA_Pro9000_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_Pro9000_modeuses_disc, 0 },
+ { "Boardpaper", canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "Canvas", canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_Pro9000_modeuses_photorag, 0 },
+ { "FineArtOther", canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "FineArtPremiumMatte",canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "FineArtMuseumEtching",canon_PIXMA_Pro9000_modeuses_photorag, 0 },
+ { "TShirt", canon_PIXMA_Pro9000_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_Pro9000_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_Pro9000_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_Pro9000);
+
+/* ----------------------------------- Canon Pro9000mk2 ----------------------------------- */
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "600x600dpi_draft2",
+ /* Mono */
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ "600x600dpi_draftmono2",
+ NULL
+ };
+
+/* highest mode not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9000mk2_modeuses_PPplusG2[] = {
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photodraft",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomonodraft",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9000mk2_modeuses_PPpro2[] = {
+ "600x600dpi_photomed",
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomonomed",/*untested: quality setting uncertain*/
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9000mk2_modeuses_PPproPlat[] = {
+ "600x600dpi_photomed",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomonomed",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_Hagaki[] = {
+ "600x600dpi_high2",/* bw=2 for mono */
+ "600x600dpi_std2",/* bw=2 for mono */
+ "600x600dpi_draft2",/* bw=2 for mono */
+ /* Mono */
+ "600x600dpi_high3",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_disc[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_board[] = {
+ "600x600dpi_photohigh5",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ NULL
+ };
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_photorag[] = {
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
+ NULL
+ };
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",/* bw=2 for mono */
+ NULL
+};
+
+static const char* canon_PIXMA_Pro9000mk2_modeuses_PPother[] = {
+ "600x600dpi_photo",
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_Pro9000mk2_modeuses[] = {
+ { "Plain", canon_PIXMA_Pro9000mk2_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_Pro9000mk2_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_Pro9000mk2_modeuses_PPgloss, 0 },
+ { "PhotoProSemiGloss", canon_PIXMA_Pro9000mk2_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_PIXMA_Pro9000mk2_modeuses_PPpro2, 0 },
+ { "PhotoProPlat", canon_PIXMA_Pro9000mk2_modeuses_PPproPlat, 0 },
+ { "PhotopaperMatte", canon_PIXMA_Pro9000mk2_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_Pro9000mk2_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_Pro9000mk2_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_Pro9000mk2_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_PIXMA_Pro9000mk2_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_Pro9000mk2_modeuses_disc, 0 },
+ { "Boardpaper", canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
+ { "Canvas", canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_Pro9000mk2_modeuses_photorag, 0 },
+ { "FineArtOther", canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
+ { "FineArtPremiumMatte",canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
+ { "FineArtMuseumEtching",canon_PIXMA_Pro9000mk2_modeuses_photorag, 0 },
+ { "TShirt", canon_PIXMA_Pro9000mk2_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_Pro9000mk2_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_Pro9000mk2_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_Pro9000mk2);
+
+/* ----------------------------------- Canon Pro9500 ----------------------------------- */
+
+static const char* canon_PIXMA_Pro9500_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono",/*untested*/
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ "600x600dpi_draftmono2",/*untested*/
+ NULL
+ };
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_PPplusG2[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_PPgloss[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_PPpro2[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_PPproPlat[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_PPmatte[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_inkjetHagaki[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_Hagaki[] = {
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono",
+ "600x600dpi_mono",/*untested*/
+ "600x600dpi_draftmono",/*untested*/
+ "600x600dpi_draftmono2",/*untested*/
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_disc[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_board[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_photorag[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_TShirt[] = {
+ "600x600dpi_photomono",/* bw=2 for mono */
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500_modeuses_PPother[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_Pro9500_modeuses[] = {
+ { "Plain", canon_PIXMA_Pro9500_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_Pro9500_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_Pro9500_modeuses_PPgloss, 0 },
+ { "PhotoProSemiGloss", canon_PIXMA_Pro9500_modeuses_PPplusG2, 0 },
+ { "PhotoPro2", canon_PIXMA_Pro9500_modeuses_PPpro2, 0 },
+ { "PhotoProPlat", canon_PIXMA_Pro9500_modeuses_PPproPlat, 0 },
+ { "PhotopaperMatte", canon_PIXMA_Pro9500_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_Pro9500_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_Pro9500_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_Pro9500_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_PIXMA_Pro9500_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_Pro9500_modeuses_disc, 0 },
+ { "Boardpaper", canon_PIXMA_Pro9500_modeuses_board, 0 },
+ { "Canvas", canon_PIXMA_Pro9500_modeuses_board, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_Pro9500_modeuses_photorag, 0 },
+ { "FineArtOther", canon_PIXMA_Pro9500_modeuses_board, 0 },
+ { "FineArtPremiumMatte",canon_PIXMA_Pro9500_modeuses_board, 0 },
+ { "FineArtMuseumEtching",canon_PIXMA_Pro9500_modeuses_photorag, 0 },
+ { "TShirt", canon_PIXMA_Pro9500_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_Pro9500_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_Pro9500_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_Pro9500);
+
+/* ----------------------------------- Canon Pro9500mk2 ----------------------------------- */
+
+static const char* canon_PIXMA_Pro9500mk2_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono",/*untested*/
+ "600x600dpi_mono",
+ "600x600dpi_draftmono",
+ "600x600dpi_draftmono2",/*untested*/
+ NULL
+ };
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_PPplusG2[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_PPgloss[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* highest mode not yet supported (R,G inks) */
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_PPproPlat[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_PPmatte[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_inkjetHagaki[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_Hagaki[] = {
+ /* Mono */
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono",
+ "600x600dpi_mono",/*untested*/
+ "600x600dpi_draftmono",/*untested*/
+ "600x600dpi_draftmono2",/*untested*/
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_disc[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_board[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_photorag[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_TShirt[] = {
+ "600x600dpi_photomono",/* bw=2 for mono */
+ NULL
+};
+
+/* modes not yet supported (R,G inks) */
+static const char* canon_PIXMA_Pro9500mk2_modeuses_PPother[] = {
+ /* Mono */
+ "600x600dpi_photomono",
+ NULL
+ };
+
+static const canon_modeuse_t canon_PIXMA_Pro9500mk2_modeuses[] = {
+ { "Plain", canon_PIXMA_Pro9500mk2_modeuses_plain, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_Pro9500mk2_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_Pro9500mk2_modeuses_PPproPlat, 0 },
+ { "GlossyPaper", canon_PIXMA_Pro9500mk2_modeuses_PPgloss, 0 },
+ { "PhotoProSemiGloss", canon_PIXMA_Pro9500mk2_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_Pro9500mk2_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_Pro9500mk2_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_Pro9500mk2_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_Pro9500mk2_modeuses_Hagaki, 0 },
+ { "DiscCompat", canon_PIXMA_Pro9500mk2_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_Pro9500mk2_modeuses_disc, 0 },
+ { "Boardpaper", canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
+ { "Canvas", canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_Pro9500mk2_modeuses_photorag, 0 },
+ { "FineArtOther", canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
+ { "FineArtPremiumMatte",canon_PIXMA_Pro9500mk2_modeuses_board, 0 },
+ { "FineArtMuseumEtching",canon_PIXMA_Pro9500mk2_modeuses_photorag, 0 },
+ { "TShirt", canon_PIXMA_Pro9500mk2_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_Pro9500mk2_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_Pro9500mk2_modeuses_PPother, 0 },
+ };
+
+DECLARE_MODEUSES(canon_PIXMA_Pro9500mk2);
+
+#endif
diff --git a/src/main/canon-media.h b/src/main/canon-media.h
index 7fc3bf7..b7cd87e 100644
--- a/src/main/canon-media.h
+++ b/src/main/canon-media.h
@@ -235,6 +235,22 @@ static const canon_slot_t canon_PIXMA_MG5200_slots[] = {
};
DECLARE_SLOTS(canon_PIXMA_MG5200);
+static const canon_slot_t canon_PIXMA_MG5400_slots[] = {
+ { "Cassette", N_ ("Cassette"), 0xd },
+ { "CD", N_ ("CD tray"), 0xa },
+};
+DECLARE_SLOTS(canon_PIXMA_MG5400);
+
+static const canon_slot_t canon_PIXMA_MX720_slots[] = {
+ { "Cassette", N_ ("Cassette"), 0xd },
+};
+DECLARE_SLOTS(canon_PIXMA_MX720);
+
+static const canon_slot_t canon_PIXMA_iP8700_slots[] = {
+ { "Rear", N_ ("Rear tray"), 0x4 },
+ { "CD", N_ ("CD tray"), 0xa },
+};
+DECLARE_SLOTS(canon_PIXMA_iP8700);
/* media types */
@@ -1883,6 +1899,45 @@ static const canon_paper_t canon_MULTIPASS_MP990_papers[] = { /* k_lower_sca
};
DECLARE_PAPERS(canon_MULTIPASS_MP990);
+static const canon_paper_t canon_PIXMA_MG2400_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed */
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed: PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* glossy */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed: all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed: inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed: Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed: hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed: T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* uncomfirmed: PP other */
+};
+DECLARE_PAPERS(canon_PIXMA_MG2400);
+
+/* new paper type from October 2012 */
+static const canon_paper_t canon_PIXMA_MG3200_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+};
+DECLARE_PAPERS(canon_PIXMA_MG3200);
+
static const canon_paper_t canon_PIXMA_MG5100_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
{ "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
@@ -1921,6 +1976,28 @@ static const canon_paper_t canon_PIXMA_MG5200_papers[] = {
};
DECLARE_PAPERS(canon_PIXMA_MG5200);
+/* new paper type from October 2012 */
+static const canon_paper_t canon_PIXMA_MG5400_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+};
+DECLARE_PAPERS(canon_PIXMA_MG5400);
+
static const canon_paper_t canon_PIXMA_MG6100_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
{ "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
@@ -1943,16 +2020,71 @@ static const canon_paper_t canon_PIXMA_MG6100_papers[] = {
};
DECLARE_PAPERS(canon_PIXMA_MG6100);
-#endif
+/* new paper type from October 2012 */
+static const canon_paper_t canon_PIXMA_MG6300_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* Untested */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+};
+DECLARE_PAPERS(canon_PIXMA_MG6300);
-/*
-Plain: Plain Paper, Canon High Resolution Paper;
-Super: Photo Paper Plus Glossy;
-Super Double-Sided: Photo Paper Plus Double-Sided;
-Super High Gloss: Photo Paper Pro Platinum;
-Glossy: Photo Paper Plus Glossy II, Photo Paper Glossy;
-Semi-Gloss: Photo Paper Plus Semi-Gloss;
-Matte: Canon Matte Photo Paper;
-Fine Art: Canon Fine Art Paper "Photo Rag";
-Envelope: U.S.# 10 Envelope
-*/
+/* new paper type from February 2014 */
+static const canon_paper_t canon_PIXMA_iP8700_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Inkjet photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* Untested */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+};
+DECLARE_PAPERS(canon_PIXMA_iP8700);
+
+static const canon_paper_t canon_PIXMA_iX6800_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Inkjet photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+};
+DECLARE_PAPERS(canon_PIXMA_iX6800);
+
+#endif
diff --git a/src/main/canon-modes.h b/src/main/canon-modes.h
index a21d324..b3f0ef1 100644
--- a/src/main/canon-modes.h
+++ b/src/main/canon-modes.h
@@ -147,7 +147,7 @@ static const canon_mode_t canon_BJC_30_modes[] = {
{ 360, 360,CANON_INK_K,"360x360dpi",N_("360x360 DPI"),INKSET(1_K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 180, 180,CANON_INK_K,"180x180dpi",N_("180x180 DPI"),INKSET(1_K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_30,2);
+DECLARE_MODES(canon_BJC_30,0);
static const canon_mode_t canon_BJC_85_modes[] = {
@@ -158,7 +158,7 @@ static const canon_mode_t canon_BJC_85_modes[] = {
{ 360, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_85,2);
+DECLARE_MODES(canon_BJC_85,0);
/* we treat the printers that can either print in K or CMY as CMYK printers here by assigning a CMYK inkset */
@@ -168,7 +168,7 @@ static const canon_mode_t canon_BJC_210_modes[] = {
{ 180, 180,CANON_INK_K | CANON_INK_CMY,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 90, 90,CANON_INK_K | CANON_INK_CMY,"90x90dpi",N_("90x90 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_210,3);
+DECLARE_MODES(canon_BJC_210,0);
static const canon_mode_t canon_BJC_240_modes[] = {
@@ -178,14 +178,14 @@ static const canon_mode_t canon_BJC_240_modes[] = {
{ 180, 180,CANON_INK_K | CANON_INK_CMY,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 90, 90,CANON_INK_K | CANON_INK_CMY,"90x90dpi",N_("90x90 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_240,4);
+DECLARE_MODES(canon_BJC_240,0);
static const canon_mode_t canon_BJC_2000_modes[] = {
{ 360, 360,CANON_INK_CMYK,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 180, 180,CANON_INK_CMYK,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_2000,1);
+DECLARE_MODES(canon_BJC_2000,0);
/* these printers only have CMYK, so CcMmYK is not required I think */
/* using color (CMYK) cartridge, some media use CMYK, others only use CMY --- need to check this as my test image lacked Y apparently */
@@ -200,7 +200,7 @@ static const canon_mode_t canon_BJC_3000_modes[] = {
{ 180, 180,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,"180x180dpi",N_("180x180 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
{ 360, 360,CANON_INK_CMY | CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi_photo",N_("360x360 DPI PHOTO CARTRIDGE"),INKSET(6_C4M4Y4K4c4m4),8,MODE_FLAG_PHOTO,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_3000,4);
+DECLARE_MODES(canon_BJC_3000,1);
/* these printers only have K and CMYK, so CcMmYK is not required */
/* using color (CMYK) cartridge, all media use CMYK */
@@ -216,7 +216,7 @@ static const canon_mode_t canon_BJC_4300_modes[] = {
{ 360, 360,CANON_INK_CMYK,"360x360dpi_photo",N_("360x360 DPI PHOTO CARTRIDGE"),INKSET(4_C4M4Y4K4),8,MODE_FLAG_PHOTO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* there is another 720x360 mono mode */
};
-DECLARE_MODES(canon_BJC_4300,5);
+DECLARE_MODES(canon_BJC_4300,1);
static const canon_mode_t canon_BJC_4400_modes[] = {
{ 720, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
@@ -224,7 +224,7 @@ static const canon_mode_t canon_BJC_4400_modes[] = {
{ 360, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_4400,1);
+DECLARE_MODES(canon_BJC_4400,0);
/* this seems to use different ESC (c bit for quality than pixma devices. */
/* these printers only have K, or (subset of) CMYK, so CcMmYK is not required. */
@@ -238,37 +238,53 @@ static const canon_mode_t canon_BJC_4550_modes[] = {
{ 180, 180,CANON_INK_K|CANON_INK_CMYK,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 360, 360,CANON_INK_CMYK,"360x360dpi_photo",N_("360x360 DPI PHOTO CARTRIDGE"),INKSET(4_C4M4Y4K4),8,MODE_FLAG_PHOTO,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_BJC_4550,4);
+DECLARE_MODES(canon_BJC_4550,1);
static const canon_mode_t canon_BJC_5500_modes[] = {
{ 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 180, 180,CANON_INK_CMYK | CANON_INK_CcMmYK,"180x180dpi",N_("180x180 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_5500,1);
-
+DECLARE_MODES(canon_BJC_5500,0);
+/* HS mode: bi-directional
+ HQ mode (360x360): bi-directional
+ Fine mode (720x720): uni-directional
+ Fine mode (1440x720): uni-directional
+*/
+/* added MODE_FLAG_PHOTO as a means to set ESC (t
+ requires setting for those modes that are not 1bpp
+ probably 4-bpp for photo mode, 2-bpp non-photo mode
+*/
static const canon_mode_t canon_BJC_6000_modes[] = {
- { 1440, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"1440x720dpi",N_("1440x720 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,delay_1440,0.5,1.0,NULL,NULL,NULL,2},
- { 720, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"720x720dpi",N_("720x720 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dmt",N_("360x360 DPI DMT"),INKSET(6_C4M4Y4K4c4m4),8,0,NULL,1.8,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_BJC_6000,3);
-
+ /* Color/Black cartidge modes */
+ { 1440, 720,CANON_INK_CMYK|CANON_INK_CMY|CANON_INK_K,"1440x720dpi",N_("1440x720 DPI"),INKSET(4_C2M2Y2K2),8,0,delay_1440,0.5,1.0,NULL,NULL,NULL,2},
+ { 720, 720,CANON_INK_CMYK|CANON_INK_CMY|CANON_INK_K,"720x720dpi",N_("720x720 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_CMYK|CANON_INK_CMY|CANON_INK_K,"360x360dpi_high",N_("360x360 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_CMYK|CANON_INK_K,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,1},/* 1bpp */
+ { 360, 360,CANON_INK_CMYK|CANON_INK_K,"360x360dmt",N_("360x360 DPI DMT"),INKSET(4_C4M4Y4K4),8,0,NULL,1.8,1.0,NULL,NULL,NULL,2},/* unknown mode */
+ { 180, 180,CANON_INK_CMYK|CANON_INK_K,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* Photo cartridge modes */
+ { 1440, 720,CANON_INK_CcMmYK|CANON_INK_CMYK|CANON_INK_CMY|CANON_INK_K,"1440x720dpi_photo",N_("1440x720 DPI PHOTO"),INKSET(6_C4M4Y4K4c4m4),8,MODE_FLAG_PHOTO,delay_1440,0.5,1.0,NULL,NULL,NULL,2},
+ { 720, 720,CANON_INK_CcMmYK|CANON_INK_CMYK|CANON_INK_CMY|CANON_INK_K,"720x720dpi_photo",N_("720x720 DPI PHOTO"),INKSET(6_C4M4Y4K4c4m4),8,MODE_FLAG_PHOTO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_CcMmYK|CANON_INK_CMYK|CANON_INK_CMY|CANON_INK_K,"360x360dpi_highphoto",N_("360x360 DPI HIGH PHOTO"),INKSET(6_C4M4Y4K4c4m4),8,MODE_FLAG_PHOTO,NULL,1.8,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_CcMmYK|CANON_INK_CMYK|CANON_INK_K,"360x360dpi_photo",N_("360x360 DPI PHOTO"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,1},/* 1bpp - double the data as for non-photo, maybe uses weaving? */
+ { 180, 180,CANON_INK_CMYK|CANON_INK_K,"180x180dpi_photo",N_("180x180 DPI PHOTO"),INKSET(4_C2M2Y2K2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,0},/* 1bpp - same as non-photo */
+};
+DECLARE_MODES(canon_BJC_6000,1);
static const canon_mode_t canon_BJC_7000_modes[] = {
{ 1200, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"1200x600dpi",N_("1200x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,2},
{ 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYyK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,3.5,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_7000,2);
+DECLARE_MODES(canon_BJC_7000,1);
static const canon_mode_t canon_BJC_7100_modes[] = {
{ 1200, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"1200x600dpi",N_("1200x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYyK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_7100,2);
+DECLARE_MODES(canon_BJC_7100,1);
/* 50i sold as i70 outside of Japan */
static const canon_mode_t canon_BJC_i50_modes[] = {
@@ -830,14 +846,14 @@ static const canon_mode_t canon_BJC_8200_modes[] = {
{ 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_8200,2);
+DECLARE_MODES(canon_BJC_8200,1);
static const canon_mode_t canon_BJC_8500_modes[] = {
{ 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_8500,1);
+DECLARE_MODES(canon_BJC_8500,0);
static const canon_mode_t canon_S200_modes[] = {
@@ -850,7 +866,7 @@ static const canon_mode_t canon_S200_modes[] = {
{ 360, 360,CANON_INK_CMYK | CANON_INK_CMY | CANON_INK_K,
"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),8,0,delay_S200,2.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_S200,3);
+DECLARE_MODES(canon_S200,2);
static const canon_mode_t canon_BJC_S300_modes[] = {
/* original two modes */
@@ -1935,9 +1951,13 @@ DECLARE_MODES(canon_MULTIPASS_MX360,1);
static const canon_mode_t canon_MULTIPASS_MX370_modes[] = {
/* plain modes */
- { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std3",N_("600x600 DPI STD COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft3",N_("300x300 DPI COLOR-ONLY"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes */
{ 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST proPlat"),INKSET(13_C14M14Y14c14m14y14),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* CMYcmy, cmy less 0x60 */
{ 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -1990,9 +2010,13 @@ DECLARE_MODES(canon_MULTIPASS_MX420,1);
static const canon_mode_t canon_MULTIPASS_MX510_modes[] = {
/* plain modes --- try to use based on inkset definitions */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_std4",N_("300x300 DPI COLOR-ONLY"),INKSET(13_C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes */
{ 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST proPlat"),INKSET(13_C14M14Y14c14m14y14),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* CMYcmy, cmy less 0x60 */
{ 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -2005,6 +2029,46 @@ static const canon_mode_t canon_MULTIPASS_MX510_modes[] = {
};
DECLARE_MODES(canon_MULTIPASS_MX510,2);
+static const canon_mode_t canon_MULTIPASS_MP230_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},/*untested*/
+ /* mono modes */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,0},/*untested*/
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std3",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_draft3",N_("600x600 DPI DRAFT COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 300, 300,CANON_INK_CMY,"300x300dpi_std3",N_("300x300 DPI COLOR-ONLY"),INKSET(13_C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_draft3",N_("300x300 DPI DRAFT COLOR-ONLY"),INKSET(13_C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,0},/*untested*/
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST proPlat"),INKSET(13_c3m3y3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ /* TST */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C4M4Y3K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_mono2",N_("600x600 DPI MONO Env/Hagaki"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI DRAFT MONO Env/Hagaki"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ /* Env/Hagaki color-only modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_draft4",N_("600x600 DPI DRAFT Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+};
+DECLARE_MODES(canon_MULTIPASS_MP230,1);
+
static const canon_mode_t canon_MULTIPASS_MP240_modes[] = {
/* plain color modes */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -2295,14 +2359,14 @@ static const canon_mode_t canon_MULTIPASS_MP540_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* 16 */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO inkjet Hagaki"),INKSET(13_C5M5Y4y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* 8 not 16 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* 16 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO inkjet Hagaki"),INKSET(13_C5M5Y4k4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* 8 not 16 */
/* T-Shirt --- same as photo high */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Env/Hagaki */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -2316,15 +2380,15 @@ static const canon_mode_t canon_MULTIPASS_MP550_modes[] = {
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
/* inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-shirt --- same as photo high */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Env/Hagaki */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -2339,15 +2403,15 @@ static const canon_mode_t canon_MULTIPASS_MP560_modes[] = {
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
/* inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-shirt --- same as photo high */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Env/Hagaki */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -2385,15 +2449,15 @@ static const canon_mode_t canon_MULTIPASS_MP640_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},/* untested */
/* photo modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
/* inkjet Hagaki / CD */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki/CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki/CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki/CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki/CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-Shirt --- same as photo high */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Env/Hagaki CMYKk */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -2538,20 +2602,39 @@ static const canon_mode_t canon_MULTIPASS_MX710_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes CMYk */
/*highest proPlat mode unsupported */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-Shirt CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Env/Hagaki CMYKk */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
DECLARE_MODES(canon_MULTIPASS_MX710,2);
+static const canon_mode_t canon_PIXMA_MX720_modes[] = {
+ /* plain - used for mono also. For duplex use CMYKk */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH (Duplex)"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI (Duplex)"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYKk|CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH inkjetHagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO inkjetHagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MX720,2);
+
/* MX860 --- similar to iP4500 */
static const canon_mode_t canon_MULTIPASS_MX860_modes[] = {
/* plain modes --- duplex same CMYK */
@@ -2562,14 +2645,14 @@ static const canon_mode_t canon_MULTIPASS_MX860_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-Shirt CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Env/Hagaki CMYKk */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -2586,20 +2669,39 @@ static const canon_mode_t canon_MULTIPASS_MX880_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* 16 */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO inkjet Hagaki"),INKSET(13_C5M5Y4y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* 8 not 16 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* 16 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO inkjet Hagaki"),INKSET(13_C5M5Y4k4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* 8 not 16 */
/* T-Shirt --- same as photo high */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Env/Hagaki */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
DECLARE_MODES(canon_MULTIPASS_MX880,1);
+static const canon_mode_t canon_PIXMA_MX920_modes[] = {
+ /* plain - used for mono also. For duplex use CMYKk */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH (Duplex)"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI (Duplex)"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYKk|CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH CD/inkjetHagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO CD/inkjetHagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MX920,2);
+
static const canon_mode_t canon_MULTIPASS_MX7600_modes[] = {
/* plain modes CMYK --- duplex same */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -2641,14 +2743,14 @@ static const canon_mode_t canon_PIXMA_iP4500_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT Plus/PlusGlossyII"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT Plus/PlusGlossyII"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(13_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* CD CMYcmk */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -2671,22 +2773,22 @@ static const canon_mode_t canon_PIXMA_iP4600_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI HIGH PHOTO/CD"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/HiRes/CD"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT/CD"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/*untested*/
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI HIGH PHOTO/CD"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/HiRes/CD"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT/CD"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/*untested*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
/* Hagaki and Env modes used K and k both */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/*untested*/
/* T-Shirt CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI HIGH T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI HIGH T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
};
DECLARE_MODES(canon_PIXMA_iP4600,1);
@@ -2697,20 +2799,20 @@ static const canon_mode_t canon_PIXMA_iP4700_modes[] = {
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki CMYKk */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/*T-Shirt CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
};
DECLARE_MODES(canon_PIXMA_iP4700,2);
@@ -2724,17 +2826,17 @@ static const canon_mode_t canon_PIXMA_iP4900_modes[] = {
/* draft */
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-Shirt CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
};
DECLARE_MODES(canon_PIXMA_iP4900,1);
@@ -2746,14 +2848,14 @@ static const canon_mode_t canon_PIXMA_iP5300_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(13_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* CD CMYcmk */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -2775,14 +2877,14 @@ static const canon_mode_t canon_MULTIPASS_MP610_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy/GlossGold"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy/GlossGold"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(13_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* CD CMYcmk */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -2827,16 +2929,16 @@ static const canon_mode_t canon_MULTIPASS_MP810_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
/* Photo modes CMYcmk */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2 / CD"),INKSET(13_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2 / CD"),INKSET(13_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2 / CD"),INKSET(13_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(13_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* T-shirt CMYk */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -3245,6 +3347,25 @@ static const canon_mode_t canon_PIXMA_iP7100_modes[] = {
};
DECLARE_MODES(canon_PIXMA_iP7100,2);
+static const canon_mode_t canon_PIXMA_iP7200_modes[] = {
+ /* plain - used for mono also. For duplex use CMYKk */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH (Duplex)"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI (Duplex)"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH CD/inkjetHagaki/HiRes"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO CD/inkjetHagaki/HiRes"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP7200,2);
+
static const canon_mode_t canon_PIXMA_iP7500_modes[] = {
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4K2c6m6k4off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(19_C3M3Y3K2k3off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -3435,8 +3556,23 @@ static const canon_mode_t canon_PIXMA_MG2100_modes[] = {
};
DECLARE_MODES(canon_PIXMA_MG2100,1);
-static const canon_mode_t canon_PIXMA_MG3100_modes[] = {
+static const canon_mode_t canon_PIXMA_MG2400_modes[] = {
/* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI (incl. T-shirt)"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST glossGold"),INKSET(13_C14M14Y14c14m14y14),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG2400,1);
+
+static const canon_mode_t canon_PIXMA_MG3100_modes[] = {
+ /* plain modes - borderless uses CMY */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
@@ -3455,7 +3591,7 @@ static const canon_mode_t canon_PIXMA_MG3100_modes[] = {
{ 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-Shirt */
{ 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* Env/Hagaki modes */
+ /* Env/Hagaki modes - borderless uses CMY */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_K,"600x600dpi_highmono3",N_("600x600 DPI MONO HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -3466,6 +3602,25 @@ static const canon_mode_t canon_PIXMA_MG3100_modes[] = {
};
DECLARE_MODES(canon_PIXMA_MG3100,1);
+/* same as MG3100, but try to use inktypes to control use of inks in inkets */
+static const canon_mode_t canon_PIXMA_MG3500_modes[] = {
+ /* plain modes - borderless uses CMY */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX|MODE_FLAG_BLACK|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMY,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST proPlat"),INKSET(13_C14M14Y14c14m14y14),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* Env/Hagaki modes - borderless uses CMY */
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG3500,1);
+
static const canon_mode_t canon_PIXMA_MG5100_modes[] = {
/* plain modes --- duplex no mono */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -3496,20 +3651,20 @@ static const canon_mode_t canon_PIXMA_MG5200_modes[] = {
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},/*untested*/
/* photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki CMYKk */
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-Shirt CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
};
DECLARE_MODES(canon_PIXMA_MG5200,2);
@@ -3523,20 +3678,38 @@ static const canon_mode_t canon_PIXMA_MG5300_modes[] = {
/* draft */
{ 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* photo modes CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet hagaki CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-Shirt CMYk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
};
DECLARE_MODES(canon_PIXMA_MG5300,1);
+/* borderless: plain (qlty 2 only), hagaki (qlty 3 and 2) use std mode with CMYk, those with photo modes unchanged. No env, HiRes, TST for borderless */
+static const canon_mode_t canon_PIXMA_MG5500_modes[] = {
+ /* plain modes -- B/W also */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K3k4off_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Duplex/Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH duplex/Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI duplex/Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* draft */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo modes CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes/T-shirt"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG5500,1);
+
/* for this printer most photo modes have grey (H) ink. */
static const canon_mode_t canon_PIXMA_MG6100_modes[] = {
/* plain modes --- duplex no mono CMYK */
@@ -3588,6 +3761,30 @@ static const canon_mode_t canon_PIXMA_MG6200_modes[] = {
DECLARE_MODES(canon_PIXMA_MG6200,1);
/* for this printer most photo modes have grey (H) ink. */
+/* borderless: plain (qlty 2 only), hagaki (qlty 3 and 2) use std mode with CMYk, those with photo modes unchanged. No env, HiRes, TST for borderless */
+static const canon_mode_t canon_PIXMA_MG6500_modes[] = {
+ /* plain modes --- duplex no mono CMYK */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(30_K3C6M6Y4k4off_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K3C3M3Y2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Duplex/Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH duplex/Env/Hagaki"),INKSET(30_K3C3M3Y2k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI duplex/Env/Hagaki"),INKSET(30_K3C3M3Y2k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* draft */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(30_K2C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo modes CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes/T-shirt"),INKSET(30_M8K8m4k4H8off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(30_M8K8m4k4H8off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO other"),INKSET(30_M6K6m4k4H6off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(30_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(30_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet hagaki CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(30_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(30_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG6500,1);
+
+/* for this printer most photo modes have grey (H) ink. */
static const canon_mode_t canon_PIXMA_MG8100_modes[] = {
/* plain modes --- duplex no mono CMYK */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(30_K2C6M6Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
diff --git a/src/main/canon-printers.h b/src/main/canon-printers.h
index 08b86f1..c2f9232 100644
--- a/src/main/canon-printers.h
+++ b/src/main/canon-printers.h
@@ -239,6 +239,12 @@ static const char* control_cmd_PIXMA_MG5300[] = {
NULL
};
+static const char* control_cmd_PIXMA_MG3500[] = {
+/*"SetTime=20060722092503", */ /*what is this for?*/
+ "ForcePWDetection=OFF",
+ NULL
+};
+
static const char iP4500_channel_order[STP_NCOLORS] = {1,2,3,0}; /* CMYK */
static const canon_cap_t canon_model_capabilities[] =
@@ -649,12 +655,12 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 6000 *//* heads: BC-30/BC-31 BC-32/BC-31 */
"6000", 3,
- 618, 936, /* 8.58" x 13 " */
- 11, 9, 10, 18, /* unconfirmed */
+ 618, 4745, /* 8.58" x 65.9" (banner paper) */
+ 10, 10, 9, 20, /* l 3.4mm r 3.4mm t 3mm b 7mm */
&canon_default_slotlist,
- CANON_CAP_STD1,0,
+ CANON_CAP_STD1 | CANON_CAP_cart,0,
2,0,
- control_cmd_ackshort,
+ control_cmd_BJC_i6100,
&canon_BJC_6000_modelist,
&canon_default_paperlist,
&canon_BJC_6000_modeuselist,
@@ -683,12 +689,12 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 6500 *//* heads: BC-30/BC-31 BC-32/BC-31 */
"6500", 3,
- 842, INCH(17),
- 11, 9, 10, 18, /* unconfirmed */
+ 821, INCH(17), /* printing width: 289,6mm = 11.4" = 821 points */
+ 10, 10, 9, 15, /* l 3.4mm r 3.4mm t 3mm b 5mm */
&canon_default_slotlist,
- CANON_CAP_STD1,0,
+ CANON_CAP_STD1 | CANON_CAP_cart,0,
2,0,
- NULL,
+ control_cmd_BJC_i6100,
&canon_BJC_6000_modelist,
&canon_default_paperlist,
&canon_BJC_6000_modeuselist,
@@ -1305,7 +1311,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP100 */
"PIXMA iP100", 3, /*model, model_id*/
- INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver, and linux driver v3.70 */
10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP150_slotlist,
CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_T|CANON_CAP_NOBLACK|CANON_CAP_S|CANON_CAP_BORDERLESS,0,
@@ -1818,6 +1824,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA iP7200 CD-R tray J */
+ "PIXMA iP7200", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* from linux driver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5400_slotlist, /* iP7200 uses ESC (r 0x68 command for CD tray only */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_v|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features Uses ESC (r only for CD media */
+ &canon_PIXMA_iP7200_modelist,
+ &canon_PIXMA_MG5400_paperlist,
+ &canon_PIXMA_iP7200_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA iX4000 --- like iX5000 but includes Transparency and ud1 mode is different */
"PIXMA iX4000", 3, /*model, model_id*/
933, INCH(23), /* max paper width and height */ /* from MacOSX driver */
@@ -2170,7 +2192,7 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA Pro9500 Mk.II */
"PIXMA Pro9502", 3, /*model, model_id*/
@@ -2186,7 +2208,7 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA iP7100 */
"PIXMA iP7100", 3, /*model, model_id*/
@@ -2444,6 +2466,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon MULTIPASS MP230 --- with XML no borderless but leave it in as untested */
+ "PIXMA MP230", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP250_slotlist, /* these models only have a rear tray. Also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_T|CANON_CAP_XML|CANON_CAP_BORDERLESS,0, /* borderless not in Windows driver---untested */
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /*features */
+ &canon_MULTIPASS_MP230_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_MULTIPASS_MP230_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon MULTIPASS MP240 */
"PIXMA MP240", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
@@ -2524,6 +2562,38 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA MG2200 */
+ "PIXMA MG2200", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_T|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features Also uses CAP_T */
+ &canon_PIXMA_MG2100_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_PIXMA_MG2200_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG2400 */
+ "PIXMA MG2400", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* not confirmed yet */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP250_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_T|CANON_CAP_v|CANON_CAP_XML,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features Also uses CAP_T */
+ &canon_PIXMA_MG2400_modelist,
+ &canon_PIXMA_MG2400_paperlist,
+ &canon_PIXMA_MG2400_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA MG3100 */
"PIXMA MG3100", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.60 */
@@ -2540,6 +2610,38 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA MG3200 */
+ "PIXMA MG3200", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_T|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features: also uses CAP_T */
+ &canon_PIXMA_MG3100_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_PIXMA_MG3200_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG3500 */
+ "PIXMA MG3500", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* unconfirmed */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_T|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG3500, /* features: also uses CAP_T */
+ &canon_PIXMA_MG3500_modelist, /* same as MG3100 but try to use inktypes to control use of inks in inksets */
+ &canon_PIXMA_MG3200_paperlist, /* Canon Photo Hagaki changed to merely Photo Hagaki in Windows driver */
+ &canon_PIXMA_MG3500_modeuselist,/* same as MG3200 but try to use inktypes to control use of inks in inksets */
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA MG5100 */
"PIXMA MG5100", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
@@ -2588,6 +2690,38 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA MG5400 */
+ "PIXMA MG5400", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* from linux drver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5400_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_v|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features */
+ &canon_PIXMA_MG5300_modelist,
+ &canon_PIXMA_MG5400_paperlist,
+ &canon_PIXMA_MG5400_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG5500 */
+ "PIXMA MG5500", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* not confirmed yet */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_v|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG3500,
+ &canon_PIXMA_MG5500_modelist,
+ &canon_PIXMA_MG3200_paperlist, /* Canon Photo Hagaki changed to merely Photo Hagaki in Windows driver */
+ &canon_PIXMA_MG5500_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA MG6100 */
"PIXMA MG6100", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
@@ -2620,6 +2754,38 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA MG6300 */
+ "PIXMA MG6300", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* from linux driver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5400_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_v|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features */
+ &canon_PIXMA_MG6200_modelist,
+ &canon_PIXMA_MG6300_paperlist,
+ &canon_PIXMA_MG6300_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG6500 */
+ "PIXMA MG6500", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* not confirmed yet */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5400_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_v|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG3500,
+ &canon_PIXMA_MG6500_modelist,
+ &canon_PIXMA_MG6300_paperlist,
+ &canon_PIXMA_MG6500_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA MG8100 */
"PIXMA MG8100", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
@@ -2733,6 +2899,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon MULTIPASS MX390 --- with XML */
+ "PIXMA MX390", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.90 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist, /* only front tray also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300,
+ &canon_MULTIPASS_MX370_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_MULTIPASS_MX390_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon MULTIPASS MX420 --- with XML */
"PIXMA MX420", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.50 */
@@ -2765,6 +2947,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon MULTIPASS MX520 --- with XML */
+ "PIXMA MX520", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.90 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist, /* only front tray also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300,
+ &canon_MULTIPASS_MX510_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_MULTIPASS_MX520_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon MULTIPASS MX700 */
"PIXMA MX700", 3, /*model, model_id*/
INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
@@ -2783,7 +2981,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX710 --- with XML */
"PIXMA MX710", 3, /*model, model_id*/
- INCH(17/2), INCH(23), /* max paper width and height */ /* from linux driver v3.70 */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.70 */
10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_MG5100_slotlist,
CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
@@ -2797,6 +2995,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon MULTIPASS MX720 --- with XML */
+ "PIXMA MX720", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* from linux driver v3.90 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MX720_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300,
+ &canon_PIXMA_MX720_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_PIXMA_MX720_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon MULTIPASS MX850 */
"PIXMA MX850", 3, /*model, model_id*/
INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
@@ -2861,6 +3075,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon MULTIPASS MX920 --- with XML CD-R tray J */
+ "PIXMA MX920", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* from linux driver v3.90 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5400_slotlist, /* iP7200 uses ESC (r 0x68 command for CD tray only */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features Uses ESC (r only for CD media */
+ &canon_PIXMA_MX920_modelist,
+ &canon_PIXMA_MG5400_paperlist,
+ &canon_PIXMA_MX920_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon MULTIPASS MX7600 */
"PIXMA MX7600", 3, /*model, model_id*/
INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
@@ -2893,6 +3123,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon MULTIPASS E510 --- with XML */
+ "PIXMA E510", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /*features*/
+ &canon_MULTIPASS_E500_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_MULTIPASS_E510_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon MULTIPASS E600 --- with XML */
"PIXMA E600", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.70 */
@@ -2909,6 +3155,22 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon MULTIPASS E610 --- with XML */
+ "PIXMA E610", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.80 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /*features*/
+ &canon_MULTIPASS_E500_modelist,
+ &canon_PIXMA_MG3200_paperlist,
+ &canon_MULTIPASS_E510_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
};
#endif
diff --git a/src/main/curve.c b/src/main/curve.c
index feaff48..7e4d02b 100644
--- a/src/main/curve.c
+++ b/src/main/curve.c
@@ -1,5 +1,5 @@
/*
- * "$Id: curve.c,v 1.55 2010/08/04 00:33:56 rlk Exp $"
+ * "$Id: curve.c,v 1.56 2014/01/04 00:31:37 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -908,7 +908,6 @@ int
stp_curve_rescale(stp_curve_t *curve, double scale,
stp_curve_compose_t mode, stp_curve_bounds_t bounds_mode)
{
- size_t real_point_count;
int i;
double nblo;
double nbhi;
@@ -916,8 +915,6 @@ stp_curve_rescale(stp_curve_t *curve, double scale,
CHECK_CURVE(curve);
- real_point_count = get_real_point_count(curve);
-
stp_sequence_get_bounds(curve->seq, &nblo, &nbhi);
if (bounds_mode == STP_CURVE_BOUNDS_RESCALE)
{
@@ -1068,7 +1065,7 @@ do_interpolate_spline(double low, double high, double frac,
}
static inline double
-interpolate_point_internal(stp_curve_t *curve, double where)
+interpolate_point_internal(const stp_curve_t *curve, double where)
{
int integer = where;
double frac = where - (double) integer;
@@ -1082,7 +1079,7 @@ interpolate_point_internal(stp_curve_t *curve, double where)
return val;
}
if (curve->recompute_interval)
- compute_intervals(curve);
+ compute_intervals((stpi_cast_safe(curve)));
if (curve->curve_type == STP_CURVE_TYPE_LINEAR)
{
double val;
@@ -1136,7 +1133,7 @@ stp_curve_interpolate_value(const stp_curve_t *curve, double where,
if (curve->gamma) /* this means a pure gamma curve */
*result = interpolate_gamma_internal(curve, where);
else
- *result = interpolate_point_internal((stp_curve_t *) curve, where);
+ *result = interpolate_point_internal(curve, where);
return 1;
}
diff --git a/src/main/dither-inks.c b/src/main/dither-inks.c
index 3d47601..722e407 100644
--- a/src/main/dither-inks.c
+++ b/src/main/dither-inks.c
@@ -1,5 +1,5 @@
/*
- * "$Id: dither-inks.c,v 1.27 2010/08/04 00:33:56 rlk Exp $"
+ * "$Id: dither-inks.c,v 1.28 2014/01/04 00:31:37 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -367,9 +367,6 @@ stp_dither_set_inks_full(stp_vars_t *v, int color, int nshades,
{
int i;
int idx;
- stpi_dither_channel_t *dc;
-
- stpi_dither_t *d = (stpi_dither_t *) stp_get_component_data(v, "Dither");
stp_channel_reset_channel(v, color);
@@ -378,7 +375,6 @@ stp_dither_set_inks_full(stp_vars_t *v, int color, int nshades,
int subchannel = nshades - i - 1;
idx = stpi_dither_translate_channel(v, color, subchannel);
STPI_ASSERT(idx >= 0, NULL);
- dc = &(CHANNEL(d, idx));
stp_channel_add(v, color, subchannel, shades[i].value);
if (idx >= 0)
diff --git a/src/main/escp2-channels.c b/src/main/escp2-channels.c
index be98302..b110b10 100644
--- a/src/main/escp2-channels.c
+++ b/src/main/escp2-channels.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escp2-channels.c,v 1.91 2010/12/19 02:51:37 rlk Exp $"
+ * "$Id: escp2-channels.c,v 1.92 2013/12/14 19:36:29 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -415,7 +415,7 @@ load_inkgroup(const char *name)
{
int count = 0;
stp_mxml_node_t *node = stp_mxmlFindElement(inkgroup, inkgroup,
- "escp2:InkGroup", NULL,
+ "escp2InkGroup", NULL,
NULL, STP_MXML_DESCEND);
if (node)
{
diff --git a/src/main/escp2-papers.c b/src/main/escp2-papers.c
index a992d9c..f1c44b4 100644
--- a/src/main/escp2-papers.c
+++ b/src/main/escp2-papers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escp2-papers.c,v 1.119 2010/08/04 00:33:56 rlk Exp $"
+ * "$Id: escp2-papers.c,v 1.120 2013/12/14 19:36:29 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -121,7 +121,7 @@ stp_escp2_load_media(const stp_vars_t *v, const char *name)
stp_string_list_t **xpapers =
(stp_string_list_t **) &(printdef->papers);
stp_mxml_node_t *node = stp_mxmlFindElement(media, media,
- "escp2:papers", NULL,
+ "escp2Papers", NULL,
NULL, STP_MXML_DESCEND);
*xnode = media;
*xlist = stp_list_create();
@@ -346,7 +346,7 @@ stp_escp2_load_input_slots(const stp_vars_t *v, const char *name)
stp_string_list_t **xslots =
(stp_string_list_t **) &(printdef->input_slots);
stp_mxml_node_t *node = stp_mxmlFindElement(slots, slots,
- "escp2:InputSlots", NULL,
+ "escp2InputSlots", NULL,
NULL, STP_MXML_DESCEND);
*xnode = slots;
*xlist = stp_list_create();
diff --git a/src/main/escp2-resolutions.c b/src/main/escp2-resolutions.c
index ee78cf7..9966f79 100644
--- a/src/main/escp2-resolutions.c
+++ b/src/main/escp2-resolutions.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escp2-resolutions.c,v 1.52 2010/08/04 00:33:56 rlk Exp $"
+ * "$Id: escp2-resolutions.c,v 1.53 2013/12/14 19:36:29 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -90,7 +90,7 @@ stp_escp2_load_printer_weaves(const stp_vars_t *v, const char *name)
if (weaves)
{
stp_mxml_node_t *node = stp_mxmlFindElement(weaves, weaves,
- "escp2:PrinterWeaves", NULL,
+ "escp2PrinterWeaves", NULL,
NULL, STP_MXML_DESCEND);
if (node)
stp_escp2_load_printer_weaves_from_xml(v, node);
@@ -205,7 +205,7 @@ stp_escp2_load_resolutions(const stp_vars_t *v, const char *name)
if (resolutions)
{
stp_mxml_node_t *node = stp_mxmlFindElement(resolutions, resolutions,
- "escp2:resolutions", NULL,
+ "escp2Resolutions", NULL,
NULL, STP_MXML_DESCEND);
if (node)
stp_escp2_load_resolutions_from_xml(v, node);
@@ -307,7 +307,7 @@ stp_escp2_load_quality_presets(const stp_vars_t *v, const char *name)
if (qualities)
{
stp_mxml_node_t *node = stp_mxmlFindElement(qualities, qualities,
- "escp2:QualityPresets", NULL,
+ "escp2QualityPresets", NULL,
NULL, STP_MXML_DESCEND);
if (node)
stp_escp2_load_quality_presets_from_xml(v, node);
diff --git a/src/main/gutenprint-internal.h b/src/main/gutenprint-internal.h
index 0fa17b4..9de8214 100644
--- a/src/main/gutenprint-internal.h
+++ b/src/main/gutenprint-internal.h
@@ -1,5 +1,5 @@
/*
- * "$Id: gutenprint-internal.h,v 1.5 2011/06/12 00:31:51 rlk Exp $"
+ * "$Id: gutenprint-internal.h,v 1.6 2014/01/04 00:31:38 rlk Exp $"
*
* Print plug-in header file for the GIMP.
*
@@ -76,6 +76,18 @@ do \
/** @} */
+#define CAST_IS_SAFE GCC_DIAG_OFF(cast-qual)
+#define CAST_IS_UNSAFE GCC_DIAG_ON(cast-qual)
+
+#pragma GCC diagnostic ignored "-Woverlength-strings"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-qual"
+static inline void *
+stpi_cast_safe(const void *ptr)
+{
+ return (void *)ptr;
+}
+#pragma GCC diagnostic pop
#ifdef __cplusplus
}
@@ -83,5 +95,5 @@ do \
#endif /* GUTENPRINT_INTERNAL_INTERNAL_H */
/*
- * End of "$Id: gutenprint-internal.h,v 1.5 2011/06/12 00:31:51 rlk Exp $".
+ * End of "$Id: gutenprint-internal.h,v 1.6 2014/01/04 00:31:38 rlk Exp $".
*/
diff --git a/src/main/print-canon.c b/src/main/print-canon.c
index 6968ff0..edf7b55 100644
--- a/src/main/print-canon.c
+++ b/src/main/print-canon.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-canon.c,v 1.523 2012/05/25 17:52:30 gernot2270 Exp $"
+ * "$Id: print-canon.c,v 1.552 2014/01/24 17:21:46 gernot2270 Exp $"
*
* Print plug-in CANON BJL driver for the GIMP.
*
@@ -67,9 +67,7 @@
# define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif /* !MAX */
-/* set this to 1 to see errors in make, set to 0 (normal) to avoid noise */
-#define ERRPRINT 0
-
+/* 5 3-level pixels into 1 byte */
static int
pack_pixels(unsigned char* buf,int len)
{
@@ -78,7 +76,7 @@ pack_pixels(unsigned char* buf,int len)
int shift = 6;
while(read_pos < len)
{
- /* read 5pixels a 2 bit */
+ /* read 5pixels at 2 bit */
unsigned short value = buf[read_pos] << 8;
if(read_pos+1 < len)
value += buf[read_pos + 1];
@@ -101,6 +99,70 @@ pack_pixels(unsigned char* buf,int len)
return write_pos;
}
+/* 3 4-bit-per-pixel 5-level pixels into 1 byte */
+static int
+pack_pixels3_5(unsigned char* buf,int len)
+{
+ int read_pos = 0;
+ int write_pos = 0;
+ int shift = 7;
+ while(read_pos < len)
+ {
+ /* read 3pixels at 3 bit */
+ unsigned short value = buf[read_pos] << 8;
+ if(read_pos+1 < len)
+ value += buf[read_pos + 1];
+ if(shift)
+ value >>= shift;
+ /* write 8bit value representing the 12 bit pixel combination */
+ buf[write_pos] = twelve2eight[value & 1023];
+ ++write_pos;
+ if(shift == 0)
+ {
+ shift = 7;
+ read_pos += 2;
+ }
+ else
+ {
+ shift -= 1;
+ ++read_pos;
+ }
+ }
+ return write_pos;
+}
+
+/* 3 4-bit-per-pixel 6-level pixels into 1 byte */
+static int
+pack_pixels3_6(unsigned char* buf,int len)
+{
+ int read_pos = 0;
+ int write_pos = 0;
+ int shift = 7;
+ while(read_pos < len)
+ {
+ /* read 3pixels at 3 bit */
+ unsigned short value = buf[read_pos] << 8;
+ if(read_pos+1 < len)
+ value += buf[read_pos + 1];
+ if(shift)
+ value >>= shift;
+ /* write 8bit value representing the 12 bit pixel combination */
+ buf[write_pos] = twelve2eight2[value & 1023];
+ ++write_pos;
+ if(shift == 0)
+ {
+ shift = 7;
+ read_pos += 2;
+ }
+ else
+ {
+ shift -= 1;
+ ++read_pos;
+ }
+ }
+ return write_pos;
+}
+
/* model peculiarities */
#define CANON_CAP_MSB_FIRST 0x02ul /* how to send data */
#define CANON_CAP_a 0x04ul
@@ -127,6 +189,7 @@ pack_pixels(unsigned char* buf,int len)
#define CANON_CAP_cart 0x800000ul /* BJC printers with Color, Black, Photo options */
#define CANON_CAP_BORDERLESS 0x1000000ul /* borderless printing */
#define CANON_CAP_NOBLACK 0x2000000ul /* no Black cartridge selection */
+#define CANON_CAP_v 0x4000000ul /* not sure of this yet */
#define CANON_CAP_STD0 (CANON_CAP_b|CANON_CAP_c|CANON_CAP_d|\
CANON_CAP_l|CANON_CAP_q|CANON_CAP_t)
@@ -469,8 +532,7 @@ static char* canon_get_printername(const stp_vars_t* v)
len = strlen(canon_families[family]) + 7; /* max model nr. + terminating 0 */
name = stp_zalloc(len);
snprintf(name,len,"%s%u",canon_families[family],nr);
- if (ERRPRINT)
- stp_eprintf(v,"canon_get_printername: current printer name: %s\n", name);
+ stp_dprintf(STP_DBG_CANON, v,"canon_get_printername: current printer name: %s\n", name);
return name;
}
@@ -517,9 +579,7 @@ static const canon_mode_t* canon_get_current_mode(const stp_vars_t *v){
const char *ink_set = stp_get_string_parameter(v, "InkSet");/*debug*/
int i;
- stp_dprintf(STP_DBG_CANON, v,"Entered canon_get_current_mode\n");
- if (ERRPRINT)
- stp_eprintf(v,"entered canon_get_current_mode\n");
+ stp_dprintf(STP_DBG_CANON, v,"Entered canon_get_current_mode\n");
if (ink_set)
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: InkSet value (high priority): '%s'\n",ink_set);
@@ -566,8 +626,6 @@ static const canon_mode_t* canon_get_current_mode(const stp_vars_t *v){
#endif
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: current mode is '%s'\n",resolution);
- if (ERRPRINT)
- stp_eprintf(v,"current mode is '%s'\n",resolution);
return mode;
}
@@ -579,8 +637,6 @@ const canon_modeuse_t* select_media_modes(stp_vars_t *v, const canon_paper_t* me
if(!strcmp(media_type->name,mlist->modeuses[i].name)){
muse = &mlist->modeuses[i];
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: mode searching: assigned media '%s'\n",mlist->name);
- if (ERRPRINT)
- stp_eprintf(v,"mode searching: assigned media '%s'\n",mlist->name);
break;
}
}
@@ -591,8 +647,6 @@ int compare_mode_valid(stp_vars_t *v,const canon_mode_t* mode,const canon_modeus
int i=0;
int modecheck=1;
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: mode searching: assigned mode-media '%s'\n",mlist->name);
- if (ERRPRINT)
- stp_eprintf(v,"mode searching: assigned mode-media '%s'\n",mlist->name);
while (muse->mode_name_list[i]!=NULL){
if(!strcmp(mode->name,muse->mode_name_list[i])){
modecheck=0;
@@ -618,7 +672,7 @@ const canon_mode_t* suitable_mode_monochrome(stp_vars_t *v,const canon_modeuse_t
/* only look at modes with MODE_FLAG_BLACK if INKSET_BLACK_MODEREPL is in force */
if ( (caps->modelist->modes[j].quality >= quality) && (caps->modelist->modes[j].flags & MODE_FLAG_BLACK) ){
/* keep setting the mode until lowest matching quality is found */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check -- rare for monochrome, cannot remember any such case */
mode = &caps->modelist->modes[j];
modefound=1;
@@ -629,7 +683,7 @@ const canon_mode_t* suitable_mode_monochrome(stp_vars_t *v,const canon_modeuse_t
else { /* no special replacement modes for black inkset */
if ( (caps->modelist->modes[j].quality >= quality) ){
/* keep setting the mode until lowest matching quality is found */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check -- rare for monochrome, cannot remember any such case */
mode = &caps->modelist->modes[j];
modefound=1;
@@ -651,16 +705,19 @@ const canon_mode_t* find_first_matching_mode_monochrome(stp_vars_t *v,const cano
int modefound=0;
int j;
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered find_first_matching_mode_monochrome\n");
+
while ( (muse->mode_name_list[i]!=NULL) && (modefound != 1) ) {
/* pick first mode with MODE_FLAG_BLACK */
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
/* only look at modes with MODE_FLAG_BLACK if INKSET_BLACK_MODEREPL is in force */
if ( (caps->modelist->modes[j].flags & MODE_FLAG_BLACK) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check -- rare for monochrome, cannot remember any such case */
mode = &caps->modelist->modes[j];
modefound=1;
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (find_first_matching_mode_monochrome): picked monochrome mode (%s)\n",mode->name);
}
}
break; /* go to next mode in muse list */
@@ -677,11 +734,13 @@ const canon_mode_t* find_first_matching_mode(stp_vars_t *v,const canon_modeuse_t
int modefound=0;
int j;
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered find_first_matching_mode\n");
+
while ( (muse->mode_name_list[i]!=NULL) && (modefound != 1) ) {
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
- /* duplex check -- rare for monochrome, cannot remember any such case */
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ /* duplex check */
mode = &caps->modelist->modes[j];
modefound=1;
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (find_first_matching_mode): picked mode without inkset limitation (%s)\n",mode->name);
@@ -709,7 +768,7 @@ const canon_mode_t* suitable_mode_color(stp_vars_t *v,const canon_modeuse_t* mus
/* only look at modes with MODE_FLAG_COLOR if INKSET_COLOR_MODEREPL is in force */
if ( (caps->modelist->modes[j].quality >= quality) && (caps->modelist->modes[j].flags & MODE_FLAG_COLOR) ) {
/* keep setting the mode until lowest matching quality is found */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (suitable_mode_color): picked mode with special replacement inkset (%s)\n",mode->name);
@@ -721,7 +780,7 @@ const canon_mode_t* suitable_mode_color(stp_vars_t *v,const canon_modeuse_t* mus
else { /* no special replacement modes for color inkset */
if ( (caps->modelist->modes[j].quality >= quality) ){
/* keep setting the mode until lowest matching quality is found */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (suitable_mode_color): picked mode without any special replacement inkset (%s)\n",mode->name);
@@ -744,13 +803,15 @@ const canon_mode_t* find_first_matching_mode_color(stp_vars_t *v,const canon_mod
int modefound=0;
int j;
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered find_first_matching_mode_color\n");
+
while ( (muse->mode_name_list[i]!=NULL) && (modefound != 1) ) {
/* pick first mode with MODE_FLAG_COLOR */
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
/* only look at modes with MODE_FLAG_COLOR if INKSET_COLOR_MODEREPL is in force */
if ( (caps->modelist->modes[j].flags & MODE_FLAG_COLOR) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (find_first_matching_mode_color): picked first mode with special replacement inkset (%s)\n",mode->name);
@@ -780,9 +841,10 @@ const canon_mode_t* suitable_mode_photo(stp_vars_t *v,const canon_modeuse_t* mus
/* only look at modes with MODE_FLAG_PHOTO if INKSET_PHOTO_MODEREPL is in force */
if ( (caps->modelist->modes[j].quality >= quality) && (caps->modelist->modes[j].flags & MODE_FLAG_PHOTO) ) {
/* keep setting the mode until lowest matching quality is found */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (suitable_mode_photo): picked first mode with special replacement inkset (%s)\n",mode->name);
modefound=1;
}
}
@@ -791,9 +853,10 @@ const canon_mode_t* suitable_mode_photo(stp_vars_t *v,const canon_modeuse_t* mus
else { /* if no special replacement modes for photo inkset */
if ( (caps->modelist->modes[j].quality >= quality) ){
/* keep setting the mode until lowest matching quality is found */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (suitable_mode_photo): picked first mode with photo inkset (%s)\n",mode->name);
modefound=1;
}
}
@@ -812,6 +875,8 @@ const canon_mode_t* find_first_matching_mode_photo(stp_vars_t *v,const canon_mod
int i=0;
int modefound=0;
int j;
+
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered find_first_matching_mode_photo\n");
while ( (muse->mode_name_list[i]!=NULL) && (modefound != 1) ) {
/* pick first mode with MODE_FLAG_PHOTO */
@@ -819,9 +884,10 @@ const canon_mode_t* find_first_matching_mode_photo(stp_vars_t *v,const canon_mod
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
/* only look at modes with MODE_FLAG_PHOTO if INKSET_PHOTO_MODEREPL is in force */
if ( (caps->modelist->modes[j].flags & MODE_FLAG_PHOTO) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (find_first_matching_mode_photo): picked first mode with photo inkset (%s)\n",mode->name);
modefound=1;
}
}
@@ -840,15 +906,17 @@ const canon_mode_t* suitable_mode_general(stp_vars_t *v,const canon_modeuse_t* m
int modefound=0;
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered suitable_mode_general\n");
+
while ((muse->mode_name_list[i]!=NULL) && (modefound != 1)){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
/* keep setting the mode until lowest matching quality is found */
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (suitable_mode_general): picked first mode with lowest matching quality (%s)\n",mode->name);
modefound=1;
}
}
@@ -864,6 +932,8 @@ const char* find_ink_type(stp_vars_t *v,const canon_mode_t* mode,const char *pri
int i,inkfound;
const char *ink_type = stp_get_string_parameter(v, "InkType");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered find_ink_type\n");
+
/* if InkType does not match that of mode, change InkType to match it */
/* choose highest color as default, as there is only one option for Black */
/* if InkType does not match that of mode, change InkType to match it */
@@ -928,8 +998,6 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
#endif
stp_dprintf(STP_DBG_CANON, v,"Entered canon_check_current_mode: got PrintingMode %s\n",printing_mode);
- if (ERRPRINT)
- stp_eprintf(v,"entered canon_check_current_mode: got PrintingMode %s\n",printing_mode);
/* Logic: priority of options
1. Media --- always present for final selection.
@@ -958,8 +1026,6 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
if(resolution){
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: check_current_mode --- (Initial) Resolution already known: '%s'\n",resolution);
- if (ERRPRINT)
- stp_eprintf(v,"check_current_mode --- (Initial) Resolution already known: '%s'\n",resolution);
for(i=0;i<caps->modelist->count;i++){
if(!strcmp(resolution,caps->modelist->modes[i].name)){
mode = &caps->modelist->modes[i];
@@ -969,8 +1035,6 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
else {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: check_current_mode --- (Initial) Resolution not yet known \n");
- if (ERRPRINT)
- stp_eprintf(v,"check_current_mode --- (Initial) Resolution not yet known \n");
}
if (ink_set)
@@ -986,14 +1050,8 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
/* beginning of mode replacement code */
if (media_type && resolution && mode) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: check_current_mode --- Resolution, Media, Mode all known \n");
- if (ERRPRINT)
- stp_eprintf(v,"check_current_mode --- Resolution, Media, Mode all known \n");
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: media type selected: '%s'\n",media_type->name);
- if (ERRPRINT)
- stp_eprintf(v,"media type selected: '%s'\n",media_type->name);
stp_dprintf(STP_DBG_CANON, v,"DEBUG: (Inital) Gutenprint: mode initally active: '%s'\n",mode->name);
- if (ERRPRINT)
- stp_eprintf(v,"(Inital) mode initially active: '%s'\n",mode->name);
/* scroll through modeuse list to find media */
muse = select_media_modes(v,media_type,mlist);
@@ -1001,20 +1059,20 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
/* now scroll through to find if the mode is in the modeuses list */
modecheck=compare_mode_valid(v,mode,muse,mlist);
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: modecheck value: '%i'\n",modecheck);
- if (ERRPRINT)
- stp_eprintf(v,"modecheck value: '%i'\n",modecheck);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: (mode replacement) Gutenprint: modecheck value: '%i'\n",modecheck);
/* if we did not find a valid mode, need to replace it */
if (modecheck!=0) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (check_current_mode): no suitable mode exists, need to find a mode\n");
+
quality = mode->quality;
/* Black InkSet */
if (ink_set && !strcmp(ink_set,"Black")) {
stp_set_string_parameter(v, "PrintingMode","BW");
printing_mode = stp_get_string_parameter(v, "PrintingMode");
if (!(mode->ink_types & CANON_INK_K)) {
+
/* need a new mode:
loop through modes in muse list searching for a matching inktype, comparing quality
*/
@@ -1030,6 +1088,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
else { /* no special replacement modes for black inkset */
mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"Gutenprint (check_current_mode): Ink set is set to CANON_INK_K but did no special conditions, so first match taken: '%s'\n",mode->name);
}
}
if (!mode)
@@ -1053,6 +1112,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
/* mode is fine */
/* matched expected K inkset, but need to check if Duplex matches, and if not, get a new mode with right inkset */
mode=suitable_mode_monochrome(v,muse,caps,quality,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"Gutenprint (check_current_mode): Ink set is set to CANON_INK_K and mode already fits (but need to check for duplex condition): '%s'\n",mode->name);
if (!mode)
modefound=0;
else
@@ -1061,9 +1121,11 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
if (modefound == 0) { /* still did not find a mode: pick first one for that media matching the InkSet limitation */
if ( (muse->use_flags & INKSET_BLACK_MODEREPL) ) {
mode=find_first_matching_mode_monochrome(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"Gutenprint (check_current_mode): Ink set is set to CANON_INK_K, pick first one matching condition for black mode replacement: '%s'\n",mode->name);
}
else { /* no special replacement modes for black inkset */
mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"Gutenprint (check_current_mode): Ink set is set to CANON_INK_K, pick first one matching condition without mode replacement needed: '%s'\n",mode->name);
}
}
@@ -1074,17 +1136,17 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
/* if InkType does not match that of mode, change InkType to match it */
/* choose highest color as default, as there is only one option for Black */
if (printing_mode && !strcmp(printing_mode,"BW")) {
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType changed to %u (%s)\n",CANON_INK_K, "Gray");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Black): InkType changed to %u (%s)\n",CANON_INK_K, "Gray");
stp_set_string_parameter(v, "InkType", "Gray");
ink_type = stp_get_string_parameter(v, "InkType");
} else {
inkfound=0;
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType of mode %s is currently set as %s\n",mode->name,ink_type);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Black): InkType of mode %s is currently set as %s\n",mode->name,ink_type);
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) { /* a mode can have several ink_types: must compare with ink_type if set */
if ( !(strcmp(ink_type,canon_inktypes[i].name))) {
inkfound=1;
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType match found %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Black): InkType match found %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
stp_set_string_parameter(v, "InkType", canon_inktypes[i].name);
ink_type = stp_get_string_parameter(v, "InkType");
break;
@@ -1096,7 +1158,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) { /* a mode can have several ink_types: must compare with ink_type if set */
if ((!ink_type) || (strcmp(ink_type,canon_inktypes[i].name))) { /* if InkType does not match selected mode ink type*/
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): No match found---InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Black): No match found---InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
stp_set_string_parameter(v, "InkType", canon_inktypes[i].name);
ink_type = stp_get_string_parameter(v, "InkType");
inkfound=1; /* set */
@@ -1163,17 +1225,17 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
/* if InkType does not match that of mode, change InkType to match it */
/* choose highest color as default, as there is only one option for Black */
if (printing_mode && !strcmp(printing_mode,"BW")) {
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType changed to %u (%s)\n",CANON_INK_K, "Gray");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): InkType changed to %u (%s)\n",CANON_INK_K, "Gray");
stp_set_string_parameter(v, "InkType", "Gray");
ink_type = stp_get_string_parameter(v, "InkType");
} else {
inkfound=0;
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType of mode %s is currently set as %s\n",mode->name,ink_type);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): InkType of mode %s is currently set as %s\n",mode->name,ink_type);
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) { /* a mode can have several ink_types: must compare with ink_type if set */
if ( !(strcmp(ink_type,canon_inktypes[i].name))) {
inkfound=1;
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType match found %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): InkType match found %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
stp_set_string_parameter(v, "InkType", canon_inktypes[i].name);
ink_type = stp_get_string_parameter(v, "InkType");
break;
@@ -1243,17 +1305,17 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
/* if InkType does not match that of mode, change InkType to match it */
/* choose highest color as default, as there is only one option for Black */
if (printing_mode && !strcmp(printing_mode,"BW")) {
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType changed to %u (%s)\n",CANON_INK_K, "Gray");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): InkType changed to %u (%s)\n",CANON_INK_K, "Gray");
stp_set_string_parameter(v, "InkType", "Gray");
ink_type = stp_get_string_parameter(v, "InkType");
} else {
inkfound=0;
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType of mode %s is currently set as %s\n",mode->name,ink_type);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): InkType of mode %s is currently set as %s\n",mode->name,ink_type);
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) { /* a mode can have several ink_types: must compare with ink_type if set */
if ( !(strcmp(ink_type,canon_inktypes[i].name))) {
inkfound=1;
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): InkType match found %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): InkType match found %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
stp_set_string_parameter(v, "InkType", canon_inktypes[i].name);
ink_type = stp_get_string_parameter(v, "InkType");
break;
@@ -1265,7 +1327,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) { /* a mode can have several ink_types: must compare with ink_type if set */
if ((!ink_type) || (strcmp(ink_type,canon_inktypes[i].name))) { /* if InkType does not match selected mode ink type*/
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): No match found---InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): No match found---InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
stp_set_string_parameter(v, "InkType", canon_inktypes[i].name);
ink_type = stp_get_string_parameter(v, "InkType");
inkfound=1; /* set */
@@ -1462,7 +1524,6 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
if (printing_mode && !strcmp(printing_mode,"Color")) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode Color\n");
/* must skip K-only inksets if they exist: they only exist if the option "BW" is also declared but we cannot check if an option exists or not */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
i=0;
quality = mode->quality;
modefound=0;
@@ -1470,10 +1531,11 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
if (caps->modelist->modes[j].ink_types > CANON_INK_K) {
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (check_current_mode, Both/Color, printmode color): picked first mode with color inkset (%s)\n",mode->name);
modefound=1;
}
}
@@ -1483,12 +1545,10 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
i++;
}
- /*}*/
}
else if (printing_mode && !strcmp(printing_mode,"BW")) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode BW\n");
/* need to find K-only inksets: they must exist since we declared the printer to have this capability! */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
i=0;
quality = mode->quality;
modefound=0;
@@ -1496,10 +1556,11 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
if (caps->modelist->modes[j].ink_types & CANON_INK_K) { /* AND means support for CANON_IN_K is included */
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (check_current_mode, Both/Color, printmode BW): picked first mode with mono inkset (%s)\n",mode->name);
modefound=1;
}
}
@@ -1509,12 +1570,10 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
i++;
}
- /*}*/
}
else { /* no restriction from PrintingMode if not set yet */
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode not set yet\n");
/* if mode is not a matching duplex mode, need to find a new one */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
i=0;
quality = mode->quality;
modefound=0;
@@ -1525,6 +1584,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (check_current_mode, Both/Color, printmode unset): picked first mode with quality match (%s)\n",mode->name);
modefound=1;
}
}
@@ -1533,10 +1593,8 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
i++;
}
- /*}*/
}
/* if no mode was found yet, repeat with no restrictions --- since some media may not allow PrintingMode to be what was selected */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
if (modefound==0) {
i=0;
quality = mode->quality;
@@ -1544,9 +1602,10 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (check_current_mode, Both/Color, no printmode): picked first mode with quality match (%s)\n",mode->name);
modefound=1;
/* set PrintingMode to whatever the mode is capable of */
if (caps->modelist->modes[j].ink_types > CANON_INK_K) {
@@ -1596,7 +1655,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) { /* a mode can have several ink_types: must compare with ink_type if set */
if ((!ink_type) || (strcmp(ink_type,canon_inktypes[i].name))) { /* if InkType does not match selected mode ink type*/
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): No match found---InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): No match found---choosing first available. InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
stp_set_string_parameter(v, "InkType", canon_inktypes[i].name);
ink_type = stp_get_string_parameter(v, "InkType");
inkfound=1; /* set */
@@ -1611,8 +1670,6 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
/* end of cartridge option block */
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: mode searching: replaced mode with: '%s'\n",mode->name);
- if (ERRPRINT)
- stp_eprintf(v,"mode searching: replaced mode with: '%s'\n",mode->name);
#if 0
/* set InkType for the mode decided upon */
@@ -1629,7 +1686,8 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
#endif
}
- }/* added one here */
+ }
+ /* -------------------------------------- modecheck returned 0 for compare_mode_valid ------------------------------------------*/
else { /* we did find the mode in the list for media, so it should take precedence over other settings, as it is more specific. */
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (check_current_mode): mode exists, need to check for consistency (%s)\n",mode->name);
@@ -2132,7 +2190,6 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
if (printing_mode && !strcmp(printing_mode,"Color")) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode Color\n");
/* must skip K-only inksets if they exist: they only exist if the option "BW" is also declared but we cannot check if an option exists or not */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
i=0;
quality = mode->quality;
modefound=0;
@@ -2140,7 +2197,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
if (caps->modelist->modes[j].ink_types > CANON_INK_K) {
if (!strcmp(mode->name,caps->modelist->modes[j].name)) {
@@ -2156,12 +2213,10 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
i++;
}
- /*}*/
}
else if (printing_mode && !strcmp(printing_mode,"BW")) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode BW\n");
/* need to find K-only inksets: they must exist since we declared the printer to have this capability! */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
i=0;
quality = mode->quality;
modefound=0;
@@ -2169,7 +2224,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
if (caps->modelist->modes[j].ink_types & CANON_INK_K) { /* AND means CANON_INK_K is included in the support */
if (!strcmp(mode->name,caps->modelist->modes[j].name)) {
@@ -2185,12 +2240,9 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
i++;
}
- /*}*/
}
else { /* no restriction from PrintingMode if not set yet */
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode not set yet\n");
- /* if mode is not a matching duplex mode, need to find a new one */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
i=0;
quality = mode->quality;
modefound=0;
@@ -2198,7 +2250,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
if (!strcmp(mode->name,caps->modelist->modes[j].name)) {
mode = &caps->modelist->modes[j];
@@ -2212,10 +2264,8 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
}
i++;
}
- /*}*/
}
/* if no mode was found yet, repeat with no restrictions --- since some media may not allow PrintingMode to be what was selected */
- /*if ( (duplex_mode) || (mode->flags & MODE_FLAG_NODUPLEX) ) {*/
if (modefound==0) {
i=0;
quality = mode->quality;
@@ -2223,7 +2273,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(j=0;j<caps->modelist->count;j++){
if(!strcmp(muse->mode_name_list[i],caps->modelist->modes[j].name)){/* find right place in canon-modes list */
if ( (caps->modelist->modes[j].quality >= quality) ) {
- if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ if ( (duplex_mode && strncmp(duplex_mode,"Duplex",6)) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
/* duplex check */
mode = &caps->modelist->modes[j];
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) No mode previously found---catch-all: Decided on first matching mode (%s)\n",mode->name);
@@ -2276,7 +2326,7 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) { /* a mode can have several ink_types: must compare with ink_type if set */
if ((!ink_type) || (strcmp(ink_type,canon_inktypes[i].name))) { /* if InkType does not match selected mode ink type*/
- stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): No match found---InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both): No match found---choosing first available. InkType changed to %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
stp_set_string_parameter(v, "InkType", canon_inktypes[i].name);
ink_type = stp_get_string_parameter(v, "InkType");
inkfound=1; /* set */
@@ -2322,13 +2372,9 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
if (mode) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: check_current_mode --- Final returned mode: '%s'\n",mode->name);
- if (ERRPRINT)
- stp_eprintf(v,"check_current_mode --- Final returned mode: '%s'\n",mode->name);
}
else {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: check_current_mode --- Final returned mode is NULL \n");
- if (ERRPRINT)
- stp_eprintf(v,"check_current_mode --- Final returned mode is NULL \n");
}
/* set PrintingMode in case of Inkset precedence */
@@ -2345,20 +2391,22 @@ const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
stp_set_string_parameter(v, "PrintingMode", "Color");
}
- if (printing_mode)
+ if (printing_mode) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final PrintingMode %s\n",printing_mode);
- else /* should not happen */
+ } else { /* should not happen */
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final PrintingMode is NULL\n");
-
- if (ink_set)
+ }
+ if (ink_set) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkSet value (high priority): '%s'\n",ink_set);
- else
+ } else {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkSet value is NULL\n");
+ }
- if (ink_type)
+ if (ink_type) {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkType value (low priority): '%s'\n",ink_type);
- else
+ } else {
stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkType value is NULL\n");
+ }
return mode;
}
@@ -2375,12 +2423,9 @@ canon_printhead_colors(const stp_vars_t*v)
const char *ink_set = stp_get_string_parameter(v, "InkSet");
stp_dprintf(STP_DBG_CANON, v,"Entered canon_printhead_colors: got PrintingMode %s\n",print_mode);
- if (ERRPRINT)
- stp_eprintf(v,"entered canon_printhead_colors: got PrintingMode %s\n",print_mode);
/* if a mode is available, use it. Else mode is NULL */
- if (ERRPRINT)
- stp_eprintf(v,"Calling get_current_parameter from canon_printhead_colors");
+ stp_dprintf(STP_DBG_CANON, v,"Calling get_current_parameter from canon_printhead_colors\n");
mode = canon_get_current_mode(v);
/* get the printing mode again */
@@ -2390,17 +2435,11 @@ canon_printhead_colors(const stp_vars_t*v)
if(print_mode && !strcmp(print_mode, "BW") && !(caps->features & CANON_CAP_NOBLACK) ){ /* workaround in case BW is a default */
stp_dprintf(STP_DBG_CANON, v,"(canon_printhead_colors[BW]) Found InkType %u (CANON_INK_K)\n",CANON_INK_K);
stp_dprintf(STP_DBG_CANON, v,"(canon_printhead_colors[BW]) NOBLACK? %lu\n",(caps->features & CANON_CAP_NOBLACK));
- if (ERRPRINT) {
- stp_eprintf(v,"(canon_printhead_colors[BW]) Found InkType %u (CANON_INK_K)\n",CANON_INK_K);
- stp_eprintf(v,"(canon_printhead_colors[BW]) NOBLACK? %lu\n",(caps->features & CANON_CAP_NOBLACK));
- }
return CANON_INK_K;
}
/* alternatively, if the cartridge selection is in force, and black cartride is selected, accept it */
if(ink_set && !strcmp(ink_set, "Black")){
stp_dprintf(STP_DBG_CANON, v,"(canon_printhead_colors[BW]) Found InkSet black selection\n");
- if (ERRPRINT)
- stp_eprintf(v,"(canon_printhead_colors[BW]) Found InkSet black selection\n");
return CANON_INK_K;
}
@@ -2416,8 +2455,6 @@ canon_printhead_colors(const stp_vars_t*v)
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if (mode->ink_types & canon_inktypes[i].ink_type) {
stp_dprintf(STP_DBG_CANON, v,"(canon_printhead_colors[inktype]) Found InkType %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
- if (ERRPRINT)
- stp_eprintf(v,"(canon_printhead_colors[inktype]) Found InkType %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
return canon_inktypes[i].ink_type;
}
}
@@ -2428,8 +2465,6 @@ canon_printhead_colors(const stp_vars_t*v)
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if(mode->ink_types & canon_inktypes[i].ink_type) {
stp_dprintf(STP_DBG_CANON, v,"(canon_printhead_colors[mode]) Found InkType %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
- if (ERRPRINT)
- stp_eprintf(v,"(canon_printhead_colors[mode]) Found InkType %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
return canon_inktypes[i].ink_type;
}
}
@@ -2441,22 +2476,17 @@ canon_printhead_colors(const stp_vars_t*v)
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
if(ink_type && !strcmp(canon_inktypes[i].name,ink_type)) {
stp_dprintf(STP_DBG_CANON, v,"(canon_printhead_colors[inktype]) Found InkType %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
- if (ERRPRINT)
- stp_eprintf(v,"(canon_printhead_colors[inktype]) Found InkType %i(%s)\n",canon_inktypes[i].ink_type,canon_inktypes[i].name);
return canon_inktypes[i].ink_type;
}
}
}
else { /* no ink type selected yet */
- if (ERRPRINT)
- stp_eprintf(v,"canon_printhead_colors: no mode and no inktype: we have to choose the highest one to return\n");
+ stp_dprintf(STP_DBG_CANON, v,"canon_printhead_colors: no mode and no inktype: we have to choose the highest one to return\n");
/* loop through all modes, and return the highest inktype found */
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
for(j=0;j<caps->modelist->count;j++){
if(caps->modelist->modes[j].ink_types & canon_inktypes[i].ink_type){
stp_dprintf(STP_DBG_CANON, v," highest inktype found --- %s(%s)\n",canon_inktypes[i].name,canon_inktypes[i].text);
- if (ERRPRINT)
- stp_eprintf(v,"highest inktype found --- %s(%s)\n",canon_inktypes[i].name,canon_inktypes[i].text);
return canon_inktypes[i].ink_type;
}
}
@@ -2469,8 +2499,6 @@ canon_printhead_colors(const stp_vars_t*v)
/* However, some Canon printers do not have monochrome mode at all, only color meta ink modes, like iP6000 series */
#if 0
stp_dprintf(STP_DBG_CANON, v,"(canon_printhead_colors[fall-through]) Returning InkType %i(CANON_INK_K)\n",CANON_INK_K);
- if (ERRPRINT)
- stp_eprintf(v,"(canon_printhead_colors[fall-through]) Found InkType %i(CANON_INK_K)\n",CANON_INK_K);
return CANON_INK_K;
#endif
/* new fallback: loop through ink type in reverse order, picking first one found, which if CANON_INK_K is supported will be that, else the lowest amount of color */
@@ -2478,8 +2506,6 @@ canon_printhead_colors(const stp_vars_t*v)
for(j=0;j<caps->modelist->count;j++){
if(caps->modelist->modes[j].ink_types & canon_inktypes[i].ink_type){
stp_dprintf(STP_DBG_CANON, v," lowest inktype found --- %s(%s)\n",canon_inktypes[i].name,canon_inktypes[i].text);
- if (ERRPRINT)
- stp_eprintf(v,"lowest inktype found --- %s(%s)\n",canon_inktypes[i].name,canon_inktypes[i].text);
return canon_inktypes[i].ink_type;
}
}
@@ -2522,28 +2548,63 @@ canon_size_type(const stp_vars_t *v, const canon_cap_t * caps)
if (!strcmp(name,"w252h360J")) return 0x32; /* L --- similar to US 3.5x5 size */
if (!strcmp(name,"w360h504J")) return 0x33; /* 2L --- similar to US5x7 */
if (!strcmp(name,"w288h432J")) return 0x34; /* KG --- same size as US 4x6 */
+ /* if (!strcmp(name,"CD5Inch")) return 0x35; */ /* CD Custom Tray */
if (!strcmp(name,"w155h257")) return 0x36; /* Japanese Business Card 55mm x 91mm */
if (!strcmp(name,"w360h504")) return 0x37; /* US5x7 */
if (!strcmp(name,"w420h567")) return 0x39; /* Ofuku Hagaki */
if (!strcmp(name,"w340h666")) return 0x3a; /* Japanese Long Env #3 (chou3) */
if (!strcmp(name,"w255h581")) return 0x3b; /* Japanese Long Env #4 (chou4) */
+ /* if (!strcmp(name,"CD5Inch")) return 0x3f; */ /* CD Tray A */
+ /* if (!strcmp(name,"CD5Inch")) return 0x40; */ /* CD Tray B */
if (!strcmp(name,"w155h244")) return 0x41; /* Business/Credit Card 54mm x 86mm */
+
+ /* Fine Art paper codes */
+ /* iP6700D, iP7100, iP7500, iP8100, iP8600, iP9910 */
+ /* iX7000 */
+ /* MG6100, M6200, MG8100, MG8200 */
+ /* MX7600 */
+ /* MP950, MP960, MP970, MP980, MP990 */
/* if (!strcmp(name,"A4")) return 0x42; */ /* FineArt A4 35mm border --- iP7100: gap is 18 */
- /* if (!strcmp(name,"A3")) return 0x43; */ /* FineArt A3 35mm border --- iP7100: gap is 18 */
- /* if (!strcmp(name,"Letter")) return 0x44; */ /* FineArt Letter 35mm border --- iP7100: gap is 18 */
+ /* if (!strcmp(name,"A3")) return 0x43; */ /* FineArt A3 35mm border */
+ /* if (!strcmp(name,"A3plus")) return 0x44; */ /* FineArt A3plus 35mm border */
+ /* if (!strcmp(name,"Letter")) return 0x45; */ /* FineArt Letter 35mm border */
+
if (!strcmp(name,"w288h576")) return 0x46; /* US4x8 */
if (!strcmp(name,"w1008h1224J")) return 0x47; /* HanKire --- 14in x 17in */
if (!strcmp(name,"720h864J")) return 0x48; /* YonKire --- 10in x 12 in*/
if (!strcmp(name,"c8x10J")) return 0x49; /* RokuKire --- same size as 8x10 */
- /* if (!strcmp(name,"A4")) return 0x4d; */ /* ArtA4 35mm border */
- /* if (!strcmp(name,"A3")) return 0x4e; */ /* ArtA3 35mm border */
- /* if (!strcmp(name,"Letter")) return 0x4f; */ /* ArtLetter 35mm border */
+
+ /* if (!strcmp(name,"CD5Inch")) return 0x4a; */ /* CD Tray C */
+ /* if (!strcmp(name,"CD5Inch")) return 0x4b; */ /* CD Tray D */
+ /* if (!strcmp(name,"CD5Inch")) return 0x4c; */ /* CD Tray E */
+
+ /* Fine Art paper codes */
+ /* Pro series (9000, 9000 Mk.2, 9500, 9500 Mk.2, PRO-1) */
+ /* if (!strcmp(name,"A4")) return 0x4d; */ /* FineArt A4 35mm border */
+ /* if (!strcmp(name,"A3")) return 0x4e; */ /* FineArt A3 35mm border */
+ /* if (!strcmp(name,"Letter")) return 0x4f; */ /* FineArt Letter 35mm border */
+ /* if (!strcmp(name,"A3plus")) return 0x50; */ /* FineArt A3plus 35mm border */
+
+ /* if (!strcmp(name,"CD5Inch")) return 0x51; */ /* CD Tray F */
if (!strcmp(name,"w288h512")) return 0x52; /* Wide101.6x180.6 */
/* w283h566 Wide postcard 148mm x 200mm */
/* media size codes for CD (and other media depending on printer model */
- if (!strcmp(name,"CD5Inch")) return 0x53; /* CD --- arbitrary choice here, modify in ESC (P command */
- /* similar needed for FineArt media which have common sizes but different codes */
+
+ if (!strcmp(name,"CD5Inch")) return 0x53; /* CD Tray G --- arbitrary choice here, modify in ESC (P command */
+ /* if (!strcmp(name,"CD5Inch")) return 0x56; */ /* CD Tray G-late */
+ /* if (!strcmp(name,"CD5Inch")) return 0x57; */ /* CD Tray H */
+
+ /* Fine Art paper codes */
+ /* MG6300, MG6500, MG7100 (only A4) */
+ /* iP8700, iX6800 (A3 */
+ /* if (!strcmp(name,"A4")) return 0x58; */ /* FineArt A4 35mm border */
+ /* if (!strcmp(name,"Letter")) return 0x5a; */ /* FineArt Letter 35mm border */
+ /* if (!strcmp(name,"A3")) return 0x59; */ /* FineArt A3 35mm border */
+ /* if (!strcmp(name,"A3plus")) return 0x5d; */ /* FineArt A3plus 35mm border */
+
+ /* if (!strcmp(name,"CD5Inch")) return 0x5b; */ /* CD Tray J */
+ /* if (!strcmp(name,"CD5Inch")) return 0x62; */ /* CD Tray L */
/* custom */
@@ -2562,8 +2623,7 @@ canon_describe_resolution(const stp_vars_t *v, int *x, int *y)
const canon_cap_t * caps = canon_get_model_capabilities(v);
/* if mode is not yet set, it remains NULL */
- if (ERRPRINT)
- stp_eprintf(v,"Calling get_current_parameter from canon_describe_resolution");
+ stp_dprintf(STP_DBG_CANON, v,"Calling get_current_parameter from canon_describe_resolution\n");
mode = canon_get_current_mode(v);
if(!mode)
@@ -2646,7 +2706,7 @@ canon_parameters(const stp_vars_t *v, const char *name,
if (strcmp(name, "PageSize") == 0)
{
const char* input_slot = stp_get_string_parameter(v, "InputSlot");
- int height_limit, width_limit;
+ unsigned int height_limit, width_limit;
int papersizes = stp_known_papersizes();
description->bounds.str = stp_string_list_create();
@@ -2669,6 +2729,21 @@ canon_parameters(const stp_vars_t *v, const char *name,
pt->name, gettext(pt->text));
}
}
+ /*
+ {
+ for (i = 0; i < papersizes; i++)
+ {
+ const stp_papersize_t *pt = stp_get_papersize_by_index(i);
+ if (verify_papersize(v, pt))
+ stp_string_list_add_string(description->bounds.str,
+ pt->name, gettext(pt->text));
+ }
+ }
+
+
+ */
+
+
}
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
@@ -2752,8 +2827,7 @@ canon_parameters(const stp_vars_t *v, const char *name,
{
const canon_mode_t* mode = NULL;
- if (ERRPRINT)
- stp_eprintf(v,"Calling get_current_parameter from InkType block in canon_parameters");
+ stp_dprintf(STP_DBG_CANON, v,"Calling get_current_parameter from InkType block in canon_parameters\n");
mode=canon_get_current_mode(v);
description->bounds.str= stp_string_list_create();
@@ -2762,8 +2836,6 @@ canon_parameters(const stp_vars_t *v, const char *name,
if(mode->ink_types & canon_inktypes[i].ink_type){
stp_string_list_add_string(description->bounds.str,canon_inktypes[i].name,_(canon_inktypes[i].text));
stp_dprintf(STP_DBG_CANON, v," mode known --- Added InkType %s(%s) for mode %s (inktype %u)\n",canon_inktypes[i].name,canon_inktypes[i].text,mode->name,mode->ink_types);
- if (ERRPRINT)
- stp_eprintf(v,"mode known --- Added InkType %s(%s) for mode %s (inktype %u)\n",canon_inktypes[i].name,canon_inktypes[i].text,mode->name,mode->ink_types);
}
}
description->deflt.str = stp_string_list_param(description->bounds.str, 0)->name;
@@ -2775,8 +2847,6 @@ canon_parameters(const stp_vars_t *v, const char *name,
if(caps->modelist->modes[j].ink_types & canon_inktypes[i].ink_type){
stp_string_list_add_string(description->bounds.str,canon_inktypes[i].name,_(canon_inktypes[i].text));
stp_dprintf(STP_DBG_CANON, v," no mode --- Added InkType %s(%s) for mode (%s) inktypes %u\n",canon_inktypes[i].name,canon_inktypes[i].text,caps->modelist->modes[j].name,caps->modelist->modes[j].ink_types);
- if (ERRPRINT)
- stp_eprintf(v,"no mode --- Added InkType %s(%s) for mode (%s) inktypes %u\n",canon_inktypes[i].name,canon_inktypes[i].text,caps->modelist->modes[j].name,caps->modelist->modes[j].ink_types);
break;
}
}
@@ -2800,8 +2870,6 @@ canon_parameters(const stp_vars_t *v, const char *name,
if(ink_type == canon_inktypes[i].ink_type){
description->deflt.integer = canon_inktypes[i].num_channels;
stp_dprintf(STP_DBG_CANON, v,"Added %d InkChannels\n",canon_inktypes[i].num_channels);
- if (ERRPRINT)
- stp_eprintf(v,"Added %d InkChannels\n",canon_inktypes[i].num_channels);
}
}
description->bounds.integer.lower = -1;
@@ -2840,37 +2908,31 @@ canon_parameters(const stp_vars_t *v, const char *name,
const canon_mode_t* mode = NULL;
/* mode remains NULL if not yet set */
- if (ERRPRINT)
- stp_eprintf(v,"Calling get_current_mode from PrintingMode block in canon_parameter");
+ stp_dprintf(STP_DBG_CANON, v,"Calling get_current_mode from PrintingMode block in canon_parameter\n");
mode = canon_get_current_mode(v);
/* If mode is not set need to search ink types for all modes and
see whether we have any color there
*/
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode---entered enumeration block in canon_printers\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode---entered enumeration block in canon_printers\n");
description->bounds.str = stp_string_list_create();
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode---created list\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode---created list\n");
if (mode) {
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode known) what is the current mode inktype value: %i\n",mode->ink_types);
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode known) what is the current mode inktype value: %i\n",mode->ink_types);
/* e.g., ink_types is 21 = 16 + 4 + 1 */
if (mode->ink_types > 1) {
stp_string_list_add_string
(description->bounds.str, "Color", _("Color"));
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode known) added Color\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode known) added Color\n");
}
if (mode->ink_types & CANON_INK_K) {
stp_string_list_add_string
(description->bounds.str, "BW", _("Black and White"));
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode known) added BW\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode known) added BW\n");
}
}
#if 0
@@ -2879,14 +2941,12 @@ canon_parameters(const stp_vars_t *v, const char *name,
if (mode->ink_types != CANON_INK_K) {
stp_string_list_add_string
(description->bounds.str, "Color", _("Color"));
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode known) added Color\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode known) added Color\n");
}
#endif
else { /* mode not known yet --- needed for PPD generation */
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: entered mode not known conditional block\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: entered mode not known conditional block\n");
/* add code to find color inks */
/* default type must be deduced from the default mode */
/* use color if available, so break after first (color) is found, since ink types ordered with gray last */
@@ -2897,8 +2957,7 @@ canon_parameters(const stp_vars_t *v, const char *name,
stp_string_list_add_string
(description->bounds.str, "Color", _("Color"));
found_color=1;
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode not known) added Color\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode not known) added Color\n");
break;
}
}
@@ -2912,8 +2971,7 @@ canon_parameters(const stp_vars_t *v, const char *name,
stp_string_list_add_string
(description->bounds.str, "BW", _("Black and White"));
found_mono=1;
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode not known) added BW\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode not known) added BW\n");
break;
}
}
@@ -2926,22 +2984,19 @@ canon_parameters(const stp_vars_t *v, const char *name,
if(caps->modelist->modes[caps->modelist->default_mode].ink_types > 1){
stp_string_list_add_string
(description->bounds.str, "Color", _("Color"));
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode not known) added Color\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode not known) added Color\n");
}
if(caps->modelist->modes[caps->modelist->default_mode].ink_types & CANON_INK_K){
stp_string_list_add_string
(description->bounds.str, "BW", _("Black and White"));
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: (mode not known) added BW\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: (mode not known) added BW\n");
}
#endif
#if 0
/* original code */
stp_string_list_add_string
(description->bounds.str, "BW", _("Black and White"));
- if (ERRPRINT)
- stp_eprintf(v,"PrintingMode: added BW\n");
+ stp_dprintf(STP_DBG_CANON, v,"PrintingMode: added BW\n");
#endif
}
@@ -3116,29 +3171,24 @@ internal_imageable_area(const stp_vars_t *v, /* I */
}
/* temporarily limit to non-CD media until page size code moved here from do_print */
- /* Note: written beloe code to handle CD case as well */
+ /* Note: written below code to handle CD case as well */
if(!cd){
- if (ERRPRINT) {
- stp_eprintf(v,"internal_imageable_area: about to enter the borderless condition block\n");
- stp_eprintf(v,"internal_imageable_area: is borderless available? %016lx\n",caps->features & CANON_CAP_BORDERLESS);
- stp_eprintf(v,"internal_imageable_area: is borderless selected? %d\n",stp_get_boolean_parameter(v, "FullBleed"));
- }
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: about to enter the borderless condition block\n");
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: is borderless available? %016lx\n",caps->features & CANON_CAP_BORDERLESS);
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: is borderless selected? %d\n",stp_get_boolean_parameter(v, "FullBleed"));
if ( (caps->features & CANON_CAP_BORDERLESS) &&
(use_maximum_area || (!cd && stp_get_boolean_parameter(v, "FullBleed")))) {
- if (ERRPRINT)
- stp_eprintf(v,"internal_imageable_area: entered borderless condition\n");
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: entered borderless condition\n");
if (pt) {
- if (ERRPRINT)
- stp_eprintf(v,"internal_imageable_area: entered pt condition\n");
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: entered pt condition\n");
if (pt->left <= 0 && pt->right <= 0 && pt->top <= 0 && pt->bottom <= 0) {
- if (ERRPRINT)
- stp_eprintf(v,"internal_imageable_area: enetered margin<=0 condition\n");
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: entered margin<=0 condition\n");
if (use_paper_margins) {
unsigned width_limit = caps->max_width;
@@ -3149,8 +3199,7 @@ internal_imageable_area(const stp_vars_t *v, /* I */
top_margin = -6;
bottom_margin = -15;
- if (ERRPRINT)
- stp_eprintf(v,"internal_imageable_area: use_paper_margins so set margins all to -7\n");
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: use_paper_margins so set margins all to -7\n");
}
else {
@@ -3159,8 +3208,7 @@ internal_imageable_area(const stp_vars_t *v, /* I */
top_margin = 0;
bottom_margin = 0;
- if (ERRPRINT)
- stp_eprintf(v,"internal_imageable_area: does not use paper margins so set margins all to 0\n");
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: does not use paper margins so set margins all to 0\n");
}
}
@@ -3168,26 +3216,20 @@ internal_imageable_area(const stp_vars_t *v, /* I */
}
}
- if (ERRPRINT)
- {
- stp_eprintf(v,"internal_imageable_area: left_margin %d\n",left_margin);
- stp_eprintf(v,"internal_imageable_area: right_margin %d\n",right_margin);
- stp_eprintf(v,"internal_imageable_area: top_margin %d\n",top_margin);
- stp_eprintf(v,"internal_imageable_area: bottom_margin %d\n",bottom_margin);
- }
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: left_margin %d\n",left_margin);
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: right_margin %d\n",right_margin);
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: top_margin %d\n",top_margin);
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: bottom_margin %d\n",bottom_margin);
*left = left_margin;
*right = width - right_margin;
*top = top_margin;
*bottom = length - bottom_margin;
- if (ERRPRINT)
- {
- stp_eprintf(v,"internal_imageable_area: page_left %d\n",*left);
- stp_eprintf(v,"internal_imageable_area: page_right %d\n",*right);
- stp_eprintf(v,"internal_imageable_area: page_top %d\n",*top);
- stp_eprintf(v,"internal_imageable_area: page_bottom %d\n",*bottom);
- }
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: page_left %d\n",*left);
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: page_right %d\n",*right);
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: page_top %d\n",*top);
+ stp_dprintf(STP_DBG_CANON, v,"internal_imageable_area: page_bottom %d\n",*bottom);
}
@@ -3545,7 +3587,7 @@ canon_init_setESC_M(const stp_vars_t *v, const canon_privdata_t *init)
/* ESC (p -- 0x70 -- cmdSetPageMargins2 --:
*/
static void
-canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
+canon_init_setPageMargins2(const stp_vars_t *v, canon_privdata_t *init)
{
unsigned char arg_70_1,arg_70_2,arg_70_3,arg_70_4;
@@ -3554,6 +3596,28 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
int border_right2;
int border_bottom2;
int area_right,area_top;
+ int test_cd; /* variable for activating experimental adjustments */
+ /* CD tray size adjustments for paper dimensions */
+ int adjust_tray_custom_length, adjust_tray_custom_width;
+ int adjust_tray_A_length, adjust_tray_A_width;
+ int adjust_tray_BCD_length, adjust_tray_BCD_width;
+ int adjust_tray_E_length, adjust_tray_E_width;
+ int adjust_tray_F_length, adjust_tray_F_width;
+ int adjust_tray_G_length, adjust_tray_G_width;
+ int adjust_tray_H_length, adjust_tray_H_width;
+ int adjust_tray_J_length, adjust_tray_J_width;
+ int adjust_tray_L_length, adjust_tray_L_width;
+ /* CD tray border adjustments */
+ int adjust_tray_custom_left, adjust_tray_custom_right, adjust_tray_custom_top, adjust_tray_custom_bottom;
+ int adjust_tray_A_left, adjust_tray_A_right, adjust_tray_A_top, adjust_tray_A_bottom;
+ int adjust_tray_BCD_left, adjust_tray_BCD_right, adjust_tray_BCD_top, adjust_tray_BCD_bottom;
+ int adjust_tray_E_left, adjust_tray_E_right, adjust_tray_E_top, adjust_tray_E_bottom;
+ int adjust_tray_F_left, adjust_tray_F_right, adjust_tray_F_top, adjust_tray_F_bottom;
+ int adjust_tray_G_left, adjust_tray_G_right, adjust_tray_G_top, adjust_tray_G_bottom;
+ int adjust_tray_H_left, adjust_tray_H_right, adjust_tray_H_top, adjust_tray_H_bottom;
+ int adjust_tray_J_left, adjust_tray_J_right, adjust_tray_J_top, adjust_tray_J_bottom;
+ int adjust_tray_L_left, adjust_tray_L_right, adjust_tray_L_top, adjust_tray_L_bottom;
+
/* TOFIX: what exactly is to be sent?
* Is it the printable length or the bottom border?
@@ -3567,32 +3631,401 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
const char* input_slot = stp_get_string_parameter(v, "InputSlot");
int print_cd= (input_slot && (!strcmp(input_slot, "CD")));
- if (ERRPRINT) {
- stp_eprintf(v,"canon_init_setPageMargins2: borderless capability? %016lx\n", init->caps->features & CANON_CAP_BORDERLESS);
- stp_eprintf(v,"canon_init_setPageMargins2: borderless active? %d\n", stp_get_boolean_parameter(v, "FullBleed"));
+ stp_dprintf(STP_DBG_CANON, v,"setPageMargins2: print_cd = %d\n",print_cd);
+
+ test_cd = 1;
+ /*
+ Adjustments for different CD trays:
+ All based on the following settings:
+ CANON_CD_X = 176
+ CANON_CD_Y = 405
+
+ Custom:
+ printable_width = init->page_width + 24;
+ printable_length = init->page_height + 132;
+
+ A:
+ printable_width = init->page_width + 44;
+ printable_length = init->page_height + 151;
+
+ B/C/D:
+ printable_width = init->page_width + 10;
+ printable_length = init->page_height + 84;
+
+ E:
+ printable_width = init->page_width + 127;
+ printable_length = init->page_height + 186;
+
+ F:
+ printable_width = init->page_width + 10;
+ printable_length = init->page_height + 95;
+
+ G:
+ printable_width = init->page_width + 10;
+ printable_length = init->page_height + 127;
+
+ H:
+ printable_width = init->page_width + 68;
+ printable_length = init->page_height + 481;
+
+ J:
+ printable_width = init->page_width + 8;
+ printable_length = init->page_height + 44;
+
+ L:
+ printable_width = init->page_width + 10;
+ printable_length = init->page_height + 263;
+ */
+
+ /* adjust paper dimensions for CD in points */
+ adjust_tray_custom_length = 132;
+ adjust_tray_custom_width = 24;
+ adjust_tray_A_length = 151;
+ adjust_tray_A_width = 44;
+ adjust_tray_BCD_length = 84;
+ adjust_tray_BCD_width = 10;
+ adjust_tray_E_length = 186;
+ adjust_tray_E_width = 127;
+ adjust_tray_F_length = 95;
+ adjust_tray_F_width = 10; /* 10 calculated, but empirically 11 */
+ adjust_tray_G_length = 127;
+ adjust_tray_G_width = 10; /* 10 calculated, but empirically 11 */
+ adjust_tray_H_length = 481;
+ adjust_tray_H_width = 68;
+ adjust_tray_J_length = 44;
+ adjust_tray_J_width = 8;
+ adjust_tray_L_length = 263;
+ adjust_tray_L_width = 10;
+
+ /* ensure less than or equal to Windows measurements by border adjustments in points */
+ adjust_tray_custom_left = 0;
+ adjust_tray_custom_right = 0;
+ adjust_tray_custom_top = 0;
+ adjust_tray_custom_bottom = 0;
+ adjust_tray_A_left = 0;
+ adjust_tray_A_right = 0;
+ adjust_tray_A_top = 0;
+ adjust_tray_A_bottom = 0;
+ adjust_tray_BCD_left = 0;
+ adjust_tray_BCD_right = 0;
+ adjust_tray_BCD_top = 0;
+ adjust_tray_BCD_bottom = 0;
+ adjust_tray_E_left = 0;
+ adjust_tray_E_right = 0;
+ adjust_tray_E_top = 0;
+ adjust_tray_E_bottom = 0;
+ adjust_tray_F_left = 0;
+ adjust_tray_F_right = 0;
+ adjust_tray_F_top = 0;
+ adjust_tray_F_bottom = 0;
+ adjust_tray_G_left = 0;
+ adjust_tray_G_right = 0;
+ adjust_tray_G_top = 0;
+ adjust_tray_G_bottom = 0;
+ adjust_tray_H_left = 0;
+ adjust_tray_H_right = 0;
+ adjust_tray_H_top = 0;
+ adjust_tray_H_bottom = 0;
+ adjust_tray_J_left = 0;
+ adjust_tray_J_right = 0;
+ adjust_tray_J_top = 0;
+ adjust_tray_J_bottom = 0;
+ adjust_tray_L_left = 0;
+ adjust_tray_L_right = 0;
+ adjust_tray_L_top = 0;
+ adjust_tray_L_bottom = 0;
+
+ if ((print_cd) && test_cd) {
+ /* test all of the parameters for CD */
+ stp_dprintf(STP_DBG_CANON, v,"==========Start Test Printout=========='\n");
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_custom_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_custom_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom printable width (pts): '%d'\n",(init->page_width + adjust_tray_custom_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom printable length (pts): '%d'\n",(init->page_height + adjust_tray_custom_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom page_width (1/600): '%d'\n",(init->page_width + adjust_tray_custom_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom page_height (1/600): '%d'\n",(init->page_height + adjust_tray_custom_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_custom_width + 20 + adjust_tray_custom_left + adjust_tray_custom_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_custom_length + 24 + adjust_tray_custom_top + adjust_tray_custom_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray A original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_A_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_A_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A printable width (pts): '%d'\n",(init->page_width + adjust_tray_A_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A printable length (pts): '%d'\n",(init->page_height + adjust_tray_A_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A page_width (1/600): '%d'\n",(init->page_width + adjust_tray_A_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A page_height (1/600): '%d'\n",(init->page_height + adjust_tray_A_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_A_width + 20 + adjust_tray_A_left + adjust_tray_A_right ) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_A_length + 24 + adjust_tray_A_top + adjust_tray_A_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_BCD_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_BCD_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D printable width (pts): '%d'\n",(init->page_width + adjust_tray_BCD_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D printable length (pts): '%d'\n",(init->page_height + adjust_tray_BCD_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D page_width (1/600): '%d'\n",(init->page_width + adjust_tray_BCD_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D page_height (1/600): '%d'\n",(init->page_height + adjust_tray_BCD_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_BCD_width + 20 + adjust_tray_BCD_left + adjust_tray_BCD_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_BCD_length + 24 + adjust_tray_BCD_top + adjust_tray_BCD_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray E original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_E_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_E_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E printable width (pts): '%d'\n",(init->page_width + adjust_tray_E_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E printable length (pts): '%d'\n",(init->page_height + adjust_tray_E_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E page_width (1/600): '%d'\n",(init->page_width + adjust_tray_E_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E page_height (1/600): '%d'\n",(init->page_height + adjust_tray_E_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_E_width + 20 + adjust_tray_E_left + adjust_tray_E_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_E_length + 24 + adjust_tray_E_top + adjust_tray_E_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray F original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_F_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_F_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F printable width (pts): '%d'\n",(init->page_width + adjust_tray_F_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F printable length (pts): '%d'\n",(init->page_height + adjust_tray_F_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F page_width (1/600): '%d'\n",(init->page_width + adjust_tray_F_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F page_height (1/600): '%d'\n",(init->page_height + adjust_tray_F_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_F_width + 20 + adjust_tray_F_left + adjust_tray_F_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_F_length + 24 + adjust_tray_F_top + adjust_tray_F_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray G original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_G_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_G_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G printable width (pts): '%d'\n",(init->page_width + adjust_tray_G_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G printable length (pts): '%d'\n",(init->page_height + adjust_tray_G_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G page_width (1/600): '%d'\n",(init->page_width + adjust_tray_G_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G page_height (1/600): '%d'\n",(init->page_height + adjust_tray_G_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_G_width + 20 + adjust_tray_G_left + adjust_tray_G_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_G_length + 24 + adjust_tray_G_top + adjust_tray_G_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray H original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_H_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_H_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H printable width (pts): '%d'\n",(init->page_width + adjust_tray_H_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H printable length (pts): '%d'\n",(init->page_height + adjust_tray_H_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H page_width (1/600): '%d'\n",(init->page_width + adjust_tray_H_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H page_height (1/600): '%d'\n",(init->page_height + adjust_tray_H_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_H_width + 20 + adjust_tray_H_left + adjust_tray_H_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_H_length + 24 + adjust_tray_H_top + adjust_tray_H_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray J original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_J_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_J_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J printable width (pts): '%d'\n",(init->page_width + adjust_tray_J_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J printable length (pts): '%d'\n",(init->page_height + adjust_tray_J_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J page_width (1/600): '%d'\n",(init->page_width + adjust_tray_J_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J page_height (1/600): '%d'\n",(init->page_height + adjust_tray_J_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_J_width + 20 + adjust_tray_J_left + adjust_tray_J_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_J_length + 24 + adjust_tray_J_top + adjust_tray_J_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray L original init->page_width (pts): '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L original init->page_height (pts): '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L modified init->page_width (pts): '%d'\n",init->page_width + adjust_tray_L_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L modified init->page_height (pts): '%d'\n",init->page_height + adjust_tray_L_length);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L printable width (pts): '%d'\n",(init->page_width + adjust_tray_L_width + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L printable length (pts): '%d'\n",(init->page_height + adjust_tray_L_length + 1) * 5 / 6);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L page_width (1/600): '%d'\n",(init->page_width + adjust_tray_L_width) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L page_height (1/600): '%d'\n",(init->page_height + adjust_tray_L_length) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L paper_width (1/600): '%d'\n",(init->page_width + adjust_tray_L_width + 20 + adjust_tray_L_left + adjust_tray_L_right) * unit / 72);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L paper_height (1/600): '%d'\n",(init->page_height + adjust_tray_L_length + 24 + adjust_tray_L_top + adjust_tray_L_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v,"==========End Test Printout=========='\n");
+ }
+
+ /* Tray Custom */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA MP710")) && (test_cd==1) ) {
+
+ init->page_width +=24;
+ init->page_height +=132;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray Custom modified printable_length: '%d'\n",printable_length);
+
+ }
+
+ /* Tray A */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP9910")) && (test_cd==1) ) {
+
+ init->page_width +=44;
+ init->page_height +=151;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray A modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray A modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray A modified printable_length: '%d'\n",printable_length);
+
+ }
+
+ /* Tray B,C,D */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP3000")) && (test_cd==1) ) {
+
+ init->page_width +=10;
+ init->page_height +=84;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/B modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray B/C/D modified printable_length: '%d'\n",printable_length);
+
+ }
+
+ /* Tray E */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA Pro9000")) && (test_cd==1) ) {
+
+ init->page_width +=127;
+ init->page_height +=186;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray E modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray E modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray E modified printable_length: '%d'\n",printable_length);
+
+ }
+
+ /* Tray F */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP4500")) && (test_cd==1) ) {
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Tray F init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Tray F init->page_height: '%d'\n",init->page_height);
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray F init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F init->page_height: '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F initial printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F initial printable_length: '%d'\n",printable_length);
+
+ init->page_width +=10;
+ init->page_height +=95;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray F modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray F modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray F modified printable_length: '%d'\n",printable_length);
+
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Tray F modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Tray F modified printable_length: '%d'\n",printable_length);
+ }
+
+ /* Tray G */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP4700")) && (test_cd==1) ) {
+
+ init->page_width +=10;
+ init->page_height +=127;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray G modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray G modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray G modified printable_length: '%d'\n",printable_length);
+
+ }
+
+ /* Tray H */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA PRO-1")) && (test_cd==1) ) {
+
+ init->page_width +=68;
+ init->page_height +=481;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray H modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray H modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray H modified printable_length: '%d'\n",printable_length);
+
+ }
+
+ /* Tray J */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP7200")) && (test_cd==1) ) {
+
+ init->page_width +=8;
+ init->page_height +=44;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray J modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray J modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray J modified printable_length: '%d'\n",printable_length);
+
+ }
+
+ /* Tray L */
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP8700")) && (test_cd==1) ) {
+
+ init->page_width +=10;
+ init->page_height +=263;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray L modified init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L modified init->page_height: '%d'\n",init->page_height);
+
+ printable_width= (init->page_width+ 1)*5/6;
+ printable_length= (init->page_height + 1)*5/6;
+
+ stp_dprintf(STP_DBG_CANON, v, "Tray L modified printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "Tray L modified printable_length: '%d'\n",printable_length);
+
}
if ( (init->caps->features & CANON_CAP_BORDERLESS) &&
!(print_cd) && stp_get_boolean_parameter(v, "FullBleed") )
{
- if (ERRPRINT)
- stp_eprintf(v,"canon_init_setPageMargins2: for borderless set printable length and width to 0\n");
+ stp_dprintf(STP_DBG_CANON, v,"canon_init_setPageMargins2: for borderless set printable length and width to 0\n");
/* set to 0 for borderless */
printable_width = 0;
printable_length = 0;
}
+ /* arguments for short form of Esc (p command */
arg_70_1= (printable_length >> 8) & 0xff;
arg_70_2= (printable_length) & 0xff;
arg_70_3= (printable_width >> 8) & 0xff;
arg_70_4= (printable_width) & 0xff;
+
if (!(init->caps->features & CANON_CAP_px) && !(init->caps->features & CANON_CAP_p))
return;
if ((init->caps->features & CANON_CAP_px) ) {
/* workaround for CD writing that uses CANON_CAP_px --- fix with capabilities */
- if ( !(input_slot && !strcmp(input_slot,"CD")) || !(strcmp(init->caps->name,"PIXMA iP4600")) || !(strcmp(init->caps->name,"PIXMA iP4700")) || !(strcmp(init->caps->name,"PIXMA iP4800")) || !(strcmp(init->caps->name,"PIXMA iP4900")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MG5200")) || !(strcmp(init->caps->name,"PIXMA MG5300")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) )
+ if ( !( input_slot && !(strcmp(input_slot,"CD")) ) || !(strcmp(init->caps->name,"PIXMA iP4500")) || !(strcmp(init->caps->name,"PIXMA iP4600")) || !(strcmp(init->caps->name,"PIXMA iP4700")) || !(strcmp(init->caps->name,"PIXMA iP4800")) || !(strcmp(init->caps->name,"PIXMA iP4900")) || !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MG5200")) || !(strcmp(init->caps->name,"PIXMA MG5300")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA MP710")) || !(strcmp(init->caps->name,"PIXMA iP3000")) || !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) )
+ /* need to check if iP9910, MP710, iP3000, Pro9000 use Esc (p */
{
/* original borders */
@@ -3603,7 +4036,7 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
if (print_cd) {
border_top=9;
- border_bottom=9;
+ border_bottom=15; /* was 9 originally */
}
/* modified borders */
@@ -3612,8 +4045,72 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
border_right2=border_right;
border_bottom2=border_bottom;
- area_right = border_left2 * unit / 72;
- area_top = border_top2 * unit / 72;
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA MP710")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_custom_left;
+ border_right2 = border_right + adjust_tray_custom_right;
+ border_top2 = border_top + adjust_tray_custom_top;
+ border_bottom2 = border_bottom + adjust_tray_custom_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP9910")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_A_left;
+ border_right2 = border_right + adjust_tray_A_right;
+ border_top2 = border_top + adjust_tray_A_top;
+ border_bottom2 = border_bottom + adjust_tray_A_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP3000")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_BCD_left;
+ border_right2 = border_right + adjust_tray_BCD_right;
+ border_top2 = border_top + adjust_tray_BCD_top;
+ border_bottom2 = border_bottom + adjust_tray_BCD_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA Pro9000")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_E_left;
+ border_right2 = border_right + adjust_tray_E_right;
+ border_top2 = border_top + adjust_tray_E_top;
+ border_bottom2 = border_bottom + adjust_tray_E_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP4500")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_F_left;
+ border_right2 = border_right + adjust_tray_F_right;
+ border_top2 = border_top + adjust_tray_F_top;
+ border_bottom2 = border_bottom + adjust_tray_F_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP4700")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_G_left;
+ border_right2 = border_right + adjust_tray_G_right;
+ border_top2 = border_top + adjust_tray_G_top;
+ border_bottom2 = border_bottom + adjust_tray_G_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA PRO-1")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_H_left;
+ border_right2 = border_right + adjust_tray_H_right;
+ border_top2 = border_top + adjust_tray_H_top;
+ border_bottom2 = border_bottom + adjust_tray_H_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP7200")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_J_left;
+ border_right2 = border_right + adjust_tray_J_right;
+ border_top2 = border_top + adjust_tray_J_top;
+ border_bottom2 = border_bottom + adjust_tray_J_bottom;
+ }
+
+ if ( (print_cd) && !(strcmp(init->caps->name,"PIXMA iP8700")) && (test_cd==1) ) {
+ border_left2 = border_left + adjust_tray_L_left;
+ border_right2 = border_right + adjust_tray_L_right;
+ border_top2 = border_top + adjust_tray_L_top;
+ border_bottom2 = border_bottom + adjust_tray_L_bottom;
+ }
+
+ /* this does not seem to need adjustment, so use original borders */
+ area_right = border_left * unit / 72;
+ area_top = border_top * unit / 72;
if ( (init->caps->features & CANON_CAP_BORDERLESS) &&
!(print_cd) && stp_get_boolean_parameter(v, "FullBleed") ) {
@@ -3625,21 +4122,24 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
area_top = border_top2 * unit / 72;
}
- if (ERRPRINT) {
- stp_eprintf(v,"setPageMargins2: init->page_height = %d\n",init->page_height);
- stp_eprintf(v,"setPageMargins2: printable_length = %d\n",printable_length);
- stp_eprintf(v,"setPageMargins2: paper_height = %d\n",(init->page_height + border_top + border_bottom) * unit / 72);
- }
+ stp_dprintf(STP_DBG_CANON, v,"setPageMargins2: init->page_height = %d\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v,"setPageMargins2: printable_length = %d\n",printable_length);
+ stp_dprintf(STP_DBG_CANON, v,"setPageMargins2: paper_height = %d\n",(init->page_height + border_top + border_bottom) * unit / 72);
+
+ stp_dprintf(STP_DBG_CANON, v, "final init->page_width: '%d'\n",init->page_width);
+ stp_dprintf(STP_DBG_CANON, v, "final init->page_height: '%d'\n",init->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "final printable_width: '%d'\n",printable_width);
+ stp_dprintf(STP_DBG_CANON, v, "final printable_length: '%d'\n",printable_length);
stp_zfwrite(ESC28,2,1,v); /* ESC( */
stp_putc(0x70,v); /* p */
stp_put16_le(46, v); /* len */
/* 0 for borderless, calculated otherwise */
- stp_put16_be(printable_length,v); /* Windows 698, gutenprint 570 */
+ stp_put16_be(printable_length,v); /* printable_length */
stp_put16_be(0,v);
/* 0 for borderless, calculated otherwise */
- stp_put16_be(printable_width,v); /* Windows 352, gutenprint 342 */
+ stp_put16_be(printable_width,v); /* printable_width */
stp_put16_be(0,v);
stp_put32_be(0,v);
stp_put16_be(unit,v);
@@ -3647,15 +4147,47 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
/* depends on borderless or not: uses modified borders */
stp_put32_be(area_right,v); /* area_right : Windows seems to use 9.6, gutenprint uses 10 */
stp_put32_be(area_top,v); /* area_top : Windows seems to use 8.4, gutenprint uses 15 */
+
/* calculated depending on borderless or not: uses modified borders */
- stp_put32_be((init->page_width + (border_left - border_left2) + (border_right - border_right2) ) * unit / 72,v); /* area_width : Windows seems to use 352 for Tray G, gutenprint uses 340.92 */
- stp_put32_be((init->page_height + (border_top - border_top2) + (border_bottom - border_bottom2) ) * unit / 72,v); /* area_length : Windows seems to use 698.28 for Tray G, gutenprint uses 570 */
+ if ( (init->caps->features & CANON_CAP_BORDERLESS) &&
+ !(print_cd) && stp_get_boolean_parameter(v, "FullBleed") ) {
+ stp_put32_be((init->page_width - border_left2 - border_right2 ) * unit / 72,v); /* area_width */
+ stp_put32_be((init->page_height - border_top2 - border_bottom2 ) * unit / 72,v); /* area_length */
+ }
+ else {
+ /* for CD */
+ if ( (print_cd) && (test_cd==1) ) {
+ stp_put32_be(init->page_width * unit / 72,v); /* area_width */
+ stp_put32_be(init->page_height * unit / 72,v); /* area_length */
+ }
+ else { /* no CD */
+ stp_put32_be((init->page_width) * unit / 72,v); /* area_width */
+ stp_put32_be((init->page_height) * unit / 72,v); /* area_length */
+ }
+ }
+
/* 0 under all currently known circumstances */
stp_put32_be(0,v); /* paper_right : Windows also 0 here for all Trays */
stp_put32_be(0,v); /* paper_top : Windows also 0 here for all Trays */
+
/* standard paper sizes, unchanged for borderless so use original borders */
- stp_put32_be((init->page_width + border_left + border_right) * unit / 72,v); /* paper_width : Windows 371.4, gutenprint 360.96 */
- stp_put32_be((init->page_height + border_top + border_bottom) * unit / 72,v); /* paper_height : Windows 720.96, gutenprint 600 */
+ if ( (init->caps->features & CANON_CAP_BORDERLESS) &&
+ !(print_cd) && stp_get_boolean_parameter(v, "FullBleed") ) {
+ stp_put32_be((init->page_width) * unit / 72,v); /* paper_width */
+ stp_put32_be((init->page_height) * unit / 72,v); /* paper_length */
+ }
+ else {
+ /* for CD */
+ if ( (print_cd) && (test_cd==1) ) {
+ stp_put32_be((init->page_width + border_left2 + border_right2) * unit / 72,v); /* paper_width */
+ stp_put32_be((init->page_height + border_top2 + border_bottom2) * unit / 72,v); /* paper_length */
+ }
+ else { /* not CD */
+ stp_put32_be((init->page_width + border_left + border_right) * unit / 72,v); /* paper_width */
+ stp_put32_be((init->page_height + border_top + border_bottom) * unit / 72,v); /* paper_length */
+ }
+ }
+
return;
}
}
@@ -3670,12 +4202,23 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
static void
canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
{
- unsigned char arg_ESCP_1, arg_ESCP_2;
+ unsigned char arg_ESCP_1, arg_ESCP_2, arg_ESCP_9;
if(!(init->caps->features & CANON_CAP_P))
return;
arg_ESCP_1 = (init->pt) ? canon_size_type(v,init->caps): 0x03;
arg_ESCP_2 = (init->pt) ? init->pt->media_code_P: 0x00;
+ if ( !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MG5400")) || !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) ) {
+ arg_ESCP_9 = 0x02;
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA MG3500")) || !(strcmp(init->caps->name,"PIXMA MG5500")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) ) {
+ arg_ESCP_9 = 0xff;
+ }
+
+ else {
+ arg_ESCP_9 = 0x00;
+ }
+
/* workaround for CD media */
@@ -3711,10 +4254,19 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
if ( !(strcmp(init->caps->name,"PIXMA MP600")) || !(strcmp(init->caps->name,"PIXMA MP610")) || !(strcmp(init->caps->name,"PIXMA MP810")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MX850")) || !(strcmp(init->caps->name,"PIXMA iP4300")) || !(strcmp(init->caps->name,"PIXMA iP4500")) || !(strcmp(init->caps->name,"PIXMA iP5300")) ) {
arg_ESCP_1 = 0x51;
}
- /* Tray G from iP4800 onwards */
- if ( !(strcmp(init->caps->name,"PIXMA iP4800")) || !(strcmp(init->caps->name,"PIXMA iP4900")) || !(strcmp(init->caps->name,"PIXMA MG5200")) || !(strcmp(init->caps->name,"PIXMA MG5300")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
+ /* Tray G from iP4600 onwards */
+ if ( !(strcmp(init->caps->name,"PIXMA iP4600")) || !(strcmp(init->caps->name,"PIXMA iP4700")) || !(strcmp(init->caps->name,"PIXMA iP4800")) || !(strcmp(init->caps->name,"PIXMA iP4900")) || !(strcmp(init->caps->name,"PIXMA MG5200")) || !(strcmp(init->caps->name,"PIXMA MG5300")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
arg_ESCP_1 = 0x56;
}
+ /* Tray J from iP7200 onwards */
+ if ( !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MG5400")) || !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MX920")) ) {
+ arg_ESCP_1 = 0x5b;
+ arg_ESCP_9 = 0x00;
+ }
+ /* Tray J from iP8700 onwards */
+ if ( !(strcmp(init->caps->name,"PIXMA iP8700")) ) {
+ arg_ESCP_1 = 0x62;
+ }
}
}
/* 850i: CD Tray custom: none --- no ESC (P */
@@ -3744,6 +4296,7 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
/* MP980: CD Tray G : 0x53 */
/* MP990: CD Tray G : 0x53 */
/* MX850: CD Tray F : 0x51 */
+ /* MX920: CD Tray J : 0x5b */
/* iP3000: CD Tray B : 0x40 */
/* iP3100: CD Tray B : 0x40 */
/* iP4000: CD Tray B : 0x40 */
@@ -3762,15 +4315,20 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
/* iP6100D:CD Tray B : 0x40 */
/* iP6700D:CD Tray C : 0x4a */
/* iP7100: CD Tray B : 0x40 */
+ /* iP7200: CD Tray J : 0x5b */
/* iP7500: CD Tray C : 0x4a */
/* iP8100: CD Tray B : 0x40 */
/* iP8500 :CD Tray B : 0x40 */
/* iP8600: CD Tray B : 0x40 */
+ /* iP8700: CD Tray L : 0x62 */
/* iP9910: CD Tray A : 0x3f */
/* MG5200: CD Tray G : 0x56 */
/* MG5300: CD Tray G : 0x56 */
+ /* MG5400: CD Tray J : 0x5b */
/* MG6100: CD Tray G : 0x56 */
/* MG6200: CD Tray G : 0x56 */
+ /* MG6300: CD Tray J : 0x5b */
+ /* MG6500: CD Tray J : 0x5b */
/* MG8100: CD Tray G : 0x56 */
/* MG8200: CD Tray G : 0x56 */
/* pro9000:CD Tray E : 0x4c */
@@ -3779,60 +4337,140 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
/* pro9500mk2:CD Tray E : 0x4c */
/* PRO-1: CD Tray H : 0x57 */
-
-
/* workaround for FineArt media having same size as non-FineArt media */
- /* MP950: FineArtA4 : 0x42 */
- /* MP960: FineArtA4 : 0x42 */
- /* MP970: FineArtA4 : 0x42 */
- /* MP980: FineArtA4 : 0x42 */
- /* MP990: FineArtA4 : 0x42 */
- /* MX7600: FineArtA4 : 0x42 */
- /* iP6700D:FineArtA4 : 0x42 */
- /* iP7100: FineArtA4 : 0x42 */
- /* iP7500: FineArtA4 : 0x42 */
- /* iP8100: FineArtA4 : 0x42 */
- /* iP8600: FineArtA4 : 0x42 */
- /* iP9910: FineArtA4 : 0x42 */
- /* iX7000: FineArtA4 : 0x42 */
- /* MG6100: FineArtA4 : 0x42 */
- /* MG6200: FineArtA4 : 0x42 */
- /* MG8100: FineArtA4 : 0x42 */
- /* MG8200: FineArtA4 : 0x42 */
- /* pro9000:FineArtA4 : 0x4d */
- /* pro9000mk2:FineArtA4 : 0x4d */
- /* pro9500:FineArtA4 : 0x4d */
- /* pro9500mk2:FineArtA4 : 0x4d */
- /* PRO-1: FineArtA4 : 0x4d */
+ /* Fine Art paper codes */
+ /* iP6700D, iP7100, iP7500, iP8100, iP8600, iP9910 */
+ /* iX7000 */
+ /* MG6100, M6200, MG8100, MG8200 */
+ /* MX7600 */
+ /* MP950, MP960, MP970, MP980, MP990 */
+ /* if (!strcmp(name,"A4")) return 0x42; */ /* FineArt A4 35mm border --- iP7100: gap is 18 */
+ /* if (!strcmp(name,"A3")) return 0x43; */ /* FineArt A3 35mm border */
+ /* if (!strcmp(name,"A3plus")) return 0x44; */ /* FineArt A3plus 35mm border */
+ /* if (!strcmp(name,"Letter")) return 0x45; */ /* FineArt Letter 35mm border */
+
+ /* Fine Art paper codes */
+ /* Pro series (9000, 9000 Mk.2, 9500, 9500 Mk.2, PRO-1) */
+ /* if (!strcmp(name,"A4")) return 0x4d; */ /* FineArt A4 35mm border */
+ /* if (!strcmp(name,"A3")) return 0x4e; */ /* FineArt A3 35mm border */
+ /* if (!strcmp(name,"A3plus")) return 0x50; */ /* FineArt A3plus 35mm border */
+ /* if (!strcmp(name,"Letter")) return 0x4f; */ /* FineArt Letter 35mm border */
+
+ /* Fine Art paper codes */
+ /* MG6300, MG6500, MG7100 */
+ /* if (!strcmp(name,"A4")) return 0x58; */ /* FineArt A4 35mm border */
+ /* if (!strcmp(name,"Letter")) return 0x5a; */ /* FineArt Letter 35mm border */
+
+ /* Fine Art paper codes */
+ /* iP8700, iX6800 */
+ /* if (!strcmp(name,"A4")) return 0x58; */ /* FineArt A4 35mm border */
+ /* if (!strcmp(name,"A3")) return 0x59; */ /* FineArt A3 35mm border */
+ /* if (!strcmp(name,"A3plus")) return 0x5d; */ /* FineArt A3plus 35mm border */
+ /* if (!strcmp(name,"Letter")) return 0x5a; */ /* FineArt Letter 35mm border */
+
/* iP7100 is an exception needing yet another papersize code */
if ( (arg_ESCP_2 == 0x28) || ( arg_ESCP_2 == 0x29) || (arg_ESCP_2 == 0x2c) || (arg_ESCP_2 == 0x31) ) {
- /* A4 */
+ /* A4 FineArt */
if ( arg_ESCP_1 == 0x03 ) {
- /* default */
- arg_ESCP_1 = 0x4d;
- if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MX7600")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP7500")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA iX7000")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
+ if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MX7600")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP7500")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA iX7000")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
arg_ESCP_1 = 0x42;
}
+ else if ( !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA Pro9002")) || !(strcmp(init->caps->name,"PIXMA Pro9500")) || !(strcmp(init->caps->name,"PIXMA Pro9502")) ) {
+ arg_ESCP_1 = 0x4d;
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) ) {
+ arg_ESCP_1 = 0x58;
+ }
+ else {
+ /* default back to non-FineArt */
+ arg_ESCP_1 = 0x03;
+ }
}
- /* A3 */
+ /* A3 FineArt */
if ( arg_ESCP_1 == 0x05 ) {
- arg_ESCP_1 = 0x4e;
- if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MX7600")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP7500")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA iX7000")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
+ if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MX7600")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP7500")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA iX7000")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
arg_ESCP_1 = 0x43;
}
+ else if ( !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA Pro9002")) || !(strcmp(init->caps->name,"PIXMA Pro9500")) || !(strcmp(init->caps->name,"PIXMA Pro9502")) ) {
+ arg_ESCP_1 = 0x4e;
+ }
+#if 0
+ /* no known papersize code yet, since these printers do not handle A3 */
+ else if ( !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) ) {
+ arg_ESCP_1 = 0x59;
+ }
+#endif
+ else {
+ /* default back to non-FineArt */
+ arg_ESCP_1 = 0x05;
+ }
}
- /* Letter */
+ /* Letter FineArt */
if ( arg_ESCP_1 == 0x0d ) {
- arg_ESCP_1 = 0x4f;
- if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MX7600")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP7500")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA iX7000")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
+ if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MX7600")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP7500")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA iX7000")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
+ arg_ESCP_1 = 0x45;
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA Pro9002")) || !(strcmp(init->caps->name,"PIXMA Pro9500")) || !(strcmp(init->caps->name,"PIXMA Pro9502")) ) {
+ arg_ESCP_1 = 0x4f;
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) ) {
+ arg_ESCP_1 = 0x5a;
+ }
+ else {
+ /* default back to non-FineArt */
+ arg_ESCP_1 = 0x0d;
+ }
+ }
+ /* A3plus FineArt */
+ if ( arg_ESCP_1 == 0x2c ) {
+ if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA MP960")) || !(strcmp(init->caps->name,"PIXMA MP970")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MX7600")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP7500")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA iX7000")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) {
arg_ESCP_1 = 0x44;
}
+ else if ( !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA Pro9002")) || !(strcmp(init->caps->name,"PIXMA Pro9500")) || !(strcmp(init->caps->name,"PIXMA Pro9502")) ) {
+ arg_ESCP_1 = 0x50;
+ }
+#if 0
+ else if ( !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) ) {
+ arg_ESCP_1 = 0x5d;
+ }
+#endif
+ else {
+ /* default back to non-FineArt */
+ arg_ESCP_1 = 0x2c;
+ }
}
}
- if ( init->caps->ESC_P_len == 8 ) /* support for new devices from 2012. TODO: check if XML contents are identical to 6-byte devices */
+ /* workaround for media type based differences in 9-parameter ESC (P commands */
+ /* MX720, MX920, MG6500 uses 2 usually, 1 with various Hagaki media, and 0 with CD media */
+ if ( !(strcmp(init->caps->name,"PIXMA MX720")) || !(strcmp(init->caps->name,"PIXMA MX920")) || !(strcmp(init->caps->name,"PIXMA MG6500")) ) {
+ switch(arg_ESCP_2)
+ {
+ /* Hagaki media */
+ case 0x07: arg_ESCP_9=0x01; break;;
+ case 0x14: arg_ESCP_9=0x01; break;;
+ case 0x1b: arg_ESCP_9=0x01; break;;
+ case 0x36: arg_ESCP_9=0x01; break;;
+ case 0x38: arg_ESCP_9=0x01; break;;
+ /* CD media */
+ case 0x1f: arg_ESCP_9=0x00; break;;
+ case 0x20: arg_ESCP_9=0x00; break;;
+ /* other media */
+ default: arg_ESCP_9=0x02; break;;
+ }
+ }
+
+ if ( init->caps->ESC_P_len == 9 ) /* support for new devices from October 2012. */
+ {/* the 4th of the 6 bytes is the media type. 2nd byte is media size. Both read from canon-media array. */
+
+ /* arg_ESCP_1 = 0x03; */ /* A4 size */
+ /* arg_ESCP_2 = 0x00; */ /* plain media */
+ /* size media tray */
+ canon_cmd( v,ESC28,0x50,9,0x00,arg_ESCP_1,0x00,arg_ESCP_2,0x01,0x00,0x01,0x00,arg_ESCP_9);
+ }
+ else if ( init->caps->ESC_P_len == 8 ) /* support for new devices from 2012. */
{/* the 4th of the 6 bytes is the media type. 2nd byte is media size. Both read from canon-media array. */
/* arg_ESCP_1 = 0x03; */ /* A4 size */
@@ -4092,6 +4730,10 @@ canon_init_setImage(const stp_vars_t *v, const canon_privdata_t *init)
buf[3+i*3+1]=0x01;
buf[3+i*3+0]=init->mode->inks[i].ink->bits;
}*/
+ else if(init->mode->inks[i].ink->flags & INK_FLAG_3pixel5level_in_1byte)
+ buf[3+i*3+0]=(1<<5)|init->mode->inks[i].ink->bits; /*info*/
+ else if(init->mode->inks[i].ink->flags & INK_FLAG_3pixel6level_in_1byte)
+ buf[3+i*3+0]=(1<<5)|init->mode->inks[i].ink->bits; /*info*/
else
buf[3+i*3+0]=init->mode->inks[i].ink->bits;
@@ -4193,7 +4835,7 @@ canon_init_setMultiRaster(const stp_vars_t *v, const canon_privdata_t *init){
stp_put16_le(init->num_channels, v);
/* add an exception here to add 0x60 of cmy channels for those printers/modes that require it */
raster_channel_order=init->channel_order;
- if ( !(strcmp(init->caps->name,"PIXMA MP140")) || !(strcmp(init->caps->name,"PIXMA MP150")) || !(strcmp(init->caps->name,"PIXMA MP160")) || !(strcmp(init->caps->name,"PIXMA MP170")) || !(strcmp(init->caps->name,"PIXMA MP180")) || !(strcmp(init->caps->name,"PIXMA MP190")) || !(strcmp(init->caps->name,"PIXMA MP210")) || !(strcmp(init->caps->name,"PIXMA MP220")) || !(strcmp(init->caps->name,"PIXMA MP240")) || !(strcmp(init->caps->name,"PIXMA MP250")) || !(strcmp(init->caps->name,"PIXMA MP270")) || !(strcmp(init->caps->name,"PIXMA MP280")) || !(strcmp(init->caps->name,"PIXMA MP450")) || !(strcmp(init->caps->name,"PIXMA MP460")) || !(strcmp(init->caps->name,"PIXMA MP470")) || !(strcmp(init->caps->name,"PIXMA MP480")) || !(strcmp(init->caps->name,"PIXMA MP490")) || !(strcmp(init->caps->name,"PIXMA MP495")) || !(strcmp(init->caps->name,"PIXMA MX300")) || !(strcmp(init->caps->name,"PIXMA MX310")) || !(strcmp(init->caps->name,"PIXMA MX330")) || !(strcmp(init->caps->name,"PIXMA MX340")) || !(strcmp(init->caps->name,"PIXMA MX350")) || !(strcmp(init->caps->name,"PIXMA MX360")) || !(strcmp(init->caps->name,"PIXMA MX370")) || !(strcmp(init->caps->name,"PIXMA MX410")) || !(strcmp(init->caps->name,"PIXMA MX510")) || !(strcmp(init->caps->name,"PIXMA iP2700")) || !(strcmp(init->caps->name,"PIXMA MG2100")) )
+ if ( !(strcmp(init->caps->name,"PIXMA MP140")) || !(strcmp(init->caps->name,"PIXMA MP150")) || !(strcmp(init->caps->name,"PIXMA MP160")) || !(strcmp(init->caps->name,"PIXMA MP170")) || !(strcmp(init->caps->name,"PIXMA MP180")) || !(strcmp(init->caps->name,"PIXMA MP190")) || !(strcmp(init->caps->name,"PIXMA MP210")) || !(strcmp(init->caps->name,"PIXMA MP220")) || !(strcmp(init->caps->name,"PIXMA MP240")) || !(strcmp(init->caps->name,"PIXMA MP250")) || !(strcmp(init->caps->name,"PIXMA MP270")) || !(strcmp(init->caps->name,"PIXMA MP280")) || !(strcmp(init->caps->name,"PIXMA MP450")) || !(strcmp(init->caps->name,"PIXMA MP460")) || !(strcmp(init->caps->name,"PIXMA MP470")) || !(strcmp(init->caps->name,"PIXMA MP480")) || !(strcmp(init->caps->name,"PIXMA MP490")) || !(strcmp(init->caps->name,"PIXMA MP495")) || !(strcmp(init->caps->name,"PIXMA MX300")) || !(strcmp(init->caps->name,"PIXMA MX310")) || !(strcmp(init->caps->name,"PIXMA MX330")) || !(strcmp(init->caps->name,"PIXMA MX340")) || !(strcmp(init->caps->name,"PIXMA MX350")) || !(strcmp(init->caps->name,"PIXMA MX360")) || !(strcmp(init->caps->name,"PIXMA MX370")) || !(strcmp(init->caps->name,"PIXMA MX410")) || !(strcmp(init->caps->name,"PIXMA MX510")) || !(strcmp(init->caps->name,"PIXMA MX520")) || !(strcmp(init->caps->name,"PIXMA iP2700")) || !(strcmp(init->caps->name,"PIXMA MG2100")) || !(strcmp(init->caps->name,"PIXMA MG2400")) || !(strcmp(init->caps->name,"PIXMA MG3500")) )
{
/* if cmy there, add 0x60 to each --- all modes using cmy require it */
for(i=0;i<init->num_channels;i++){
@@ -4260,9 +4902,20 @@ canon_init_setMultiRaster(const stp_vars_t *v, const canon_privdata_t *init){
+/* ESC (v -- 0x76 -- */
+static void
+canon_init_setESC_v(const stp_vars_t *v, const canon_privdata_t *init)
+{
+ if (!(init->caps->features & CANON_CAP_v))
+ return;
+
+ canon_cmd(v,ESC28,0x76, 1, 0x00);
+}
+
+
static void
-canon_init_printer(const stp_vars_t *v, const canon_privdata_t *init)
+canon_init_printer(const stp_vars_t *v, canon_privdata_t *init)
{
unsigned int mytop;
/* init printer */
@@ -4285,6 +4938,7 @@ canon_init_printer(const stp_vars_t *v, const canon_privdata_t *init)
canon_init_setESC_S(v,init); /* ESC (S */
canon_init_setTray(v,init); /* ESC (l */
canon_init_setX72(v,init); /* ESC (r */
+ canon_init_setESC_v(v,init); /* ESC (v */
canon_init_setMultiRaster(v,init); /* ESC (I (J (L */
/* some linefeeds */
@@ -4446,6 +5100,7 @@ static int canon_setup_channel(stp_vars_t *v,canon_privdata_t* privdata,int chan
canon_channel_t* current;
stp_dprintf(STP_DBG_CANON, v, "canon_setup_channel: (start) privdata->num_channels %d\n", privdata->num_channels);
stp_dprintf(STP_DBG_CANON, v, "canon_setup_channel: (start) privdata->channel_order %s\n", privdata->channel_order);
+
/* create a new channel */
privdata->channels = stp_realloc(privdata->channels,sizeof(canon_channel_t) * (privdata->num_channels + 1));
privdata->channel_order = stp_realloc(privdata->channel_order,privdata->num_channels + 2);
@@ -4578,7 +5233,7 @@ static void canon_setup_channels(stp_vars_t *v,canon_privdata_t* privdata){
-/* FIXME move this to printercaps */
+/* FIXME move this to printercaps, and/or Esc (p command */
#define CANON_CD_X 176
#define CANON_CD_Y 405
@@ -4638,31 +5293,18 @@ static void setup_page(stp_vars_t* v,canon_privdata_t* privdata){
privdata->top -= page_top; /* checked in Epson: matches */
privdata->page_width = page_right - page_left; /* checked in Epson: matches */
privdata->page_height = page_bottom - page_top; /* checked in Epson: matches */
-
- if (ERRPRINT) {
- stp_eprintf(v,"============================set_imageable_area========================\n");
- stp_eprintf(v,"setup_page page_top = %i\n",page_top);
- stp_eprintf(v,"setup_page page_bottom = %i\n",page_bottom);
- stp_eprintf(v,"setup_page page_left = %i\n",page_left);
- stp_eprintf(v,"setup_page page_right = %i\n",page_right);
- stp_eprintf(v,"setup_page top = %i\n",privdata->top);
- stp_eprintf(v,"setup_page left = %i\n",privdata->left);
- stp_eprintf(v,"setup_page out_height = %i\n",privdata->out_height);
- stp_eprintf(v,"setup_page page_height = %i\n",privdata->page_height);
- stp_eprintf(v,"setup_page page_width = %i\n",privdata->page_width);
- }
-
- stp_dprintf(STP_DBG_CANON, v, "setup_page page_top = %i\n",page_top);
- stp_dprintf(STP_DBG_CANON, v, "setup_page page_bottom = %i\n",page_bottom);
- stp_dprintf(STP_DBG_CANON, v, "setup_page page_left = %i\n",page_left);
- stp_dprintf(STP_DBG_CANON, v, "setup_page page_right = %i\n",page_right);
- stp_dprintf(STP_DBG_CANON, v, "setup_page top = %i\n",privdata->top);
- stp_dprintf(STP_DBG_CANON, v, "setup_page left = %i\n",privdata->left);
- stp_dprintf(STP_DBG_CANON, v, "setup_page out_height = %i\n",privdata->out_height);
- stp_dprintf(STP_DBG_CANON, v, "setup_page page_height = %i\n",privdata->page_height);
- stp_dprintf(STP_DBG_CANON, v, "setup_page page_width = %i\n",privdata->page_width);
-
}
+
+ stp_dprintf(STP_DBG_CANON, v, "setup_page page_top = %i\n",page_top);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page page_bottom = %i\n",page_bottom);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page page_left = %i\n",page_left);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page page_right = %i\n",page_right);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page top = %i\n",privdata->top);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page left = %i\n",privdata->left);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page out_height = %i\n",privdata->out_height);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page page_height = %i\n",privdata->page_height);
+ stp_dprintf(STP_DBG_CANON, v, "setup_page page_width = %i\n",privdata->page_width);
+
}
@@ -4836,7 +5478,7 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
/* --- no current restrictions for Duplex setting --- */
- /* in particular, we do not constraint duplex printing to certain media */
+ /* in particular, we do not constrain duplex printing to certain media */
privdata.duplex_str = duplex_mode;
/* --- make adjustment to InkType to comply with InkSet --- */
@@ -4860,8 +5502,6 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
/* --- make adjustments to mode --- */
/* find the wanted print mode: NULL if not yet set */
- if (ERRPRINT)
- stp_eprintf(v,"Calling get_current_parameter from canon_do_print routine (before default set)");
stp_dprintf(STP_DBG_CANON, v, "canon_do_print: calling canon_get_current_mode\n");
privdata.mode = canon_get_current_mode(v);
@@ -4870,8 +5510,6 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
}
/* then call get_current_mode again to sort out the correct matching of parameters and mode selection */
- if (ERRPRINT)
- stp_eprintf(v,"Calling cannon_check_current_parameter from canon_do_print routine (after default set)");
stp_dprintf(STP_DBG_CANON, v, "canon_do_print: calling canon_check_current_mode\n");
@@ -5097,13 +5735,13 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
stp_compute_uncompressed_linewidth);
privdata.last_pass_offset = 0;
- if (ERRPRINT) {
+ if (stp_get_debug_level() & STP_DBG_CANON) {
for(x=0;x<4;x++){
- stp_eprintf(v, "DEBUG print-canon weave: weave_color_order[%d]: %u\n",
+ stp_dprintf(STP_DBG_CANON, v, "DEBUG print-canon weave: weave_color_order[%d]: %u\n",
x, (unsigned int)weave_color_order[x]);
}
for(x=0;x<privdata.num_channels;x++){
- stp_eprintf(v, "DEBUG print-canon weave: channel_order[%d]: %u\n",
+ stp_dprintf(STP_DBG_CANON, v, "DEBUG print-canon weave: channel_order[%d]: %u\n",
x, (unsigned int)privdata.channel_order[x]);
}
}
@@ -5117,8 +5755,7 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
if(weave_color_order[i] == privdata.channel_order[x]){
weave_cols[i] = privdata.channels[x].buf;
privdata.weave_bits[i] = privdata.channels[x].props->bits;
- if (ERRPRINT)
- stp_eprintf(v, "DEBUG print-canon weave: set weave_cols[%d] to privdata.channels[%d].buf\n",
+ stp_dprintf(STP_DBG_CANON, v, "DEBUG print-canon weave: set weave_cols[%d] to privdata.channels[%d].buf\n",
i, x);
}
}
@@ -5303,7 +5940,7 @@ canon_shift_buffer(unsigned char *line,int length,int bits)
}
-/* fold, apply 5 pixel in 1 byte compression, pack tiff and return the compressed length */
+/* fold, apply the necessary compression, pack tiff and return the compressed length */
static int canon_compress(stp_vars_t *v, canon_privdata_t *pd, unsigned char* line,int length,int offset,unsigned char* comp_buf,int bits, int ink_flags)
{
unsigned char
@@ -5329,17 +5966,17 @@ static int canon_compress(stp_vars_t *v, canon_privdata_t *pd, unsigned char* li
pixels_per_byte = 5;
stp_fold(line,length,pd->fold_buf);
- in_ptr= pd->fold_buf;
- length= (length*8/4); /* 4 pixels in 8bit */
+ in_ptr = pd->fold_buf;
+ length = (length*8/4); /* 4 pixels in 8bit */
/* calculate the number of compressed bytes that can be sent directly */
- offset2 = offset / pixels_per_byte;
+ offset2 = offset / pixels_per_byte;
/* calculate the number of (uncompressed) bits that have to be added to the raster data */
bitoffset = (offset % pixels_per_byte) * 2;
}
else if (bits==3) {
stp_fold_3bit_323(line,length,pd->fold_buf);
- in_ptr= pd->fold_buf;
- length= (length*8)/3;
+ in_ptr = pd->fold_buf;
+ length = (length*8)/3;
offset2 = offset/3;
#if 0
switch(offset%3){
@@ -5351,11 +5988,19 @@ static int canon_compress(stp_vars_t *v, canon_privdata_t *pd, unsigned char* li
bitoffset= 0;
}
else if (bits==4) {
+ int pixels_per_byte = 2;
+ if(ink_flags & INK_FLAG_3pixel5level_in_1byte)
+ pixels_per_byte = 3;
+ else if(ink_flags & INK_FLAG_3pixel6level_in_1byte)
+ pixels_per_byte = 3;
+
stp_fold_4bit(line,length,pd->fold_buf);
- in_ptr= pd->fold_buf;
- length= (length*8)/2;
- offset2 = offset / 2;
- bitoffset= offset % 2;
+ in_ptr = pd->fold_buf;
+ length = (length*8)/2; /* 2 pixels in 8 bits */
+ /* calculate the number of compressed bytes that can be sent directly */
+ offset2 = offset / pixels_per_byte;
+ /* calculate the number of (uncompressed) bits that have to be added to the raster data */
+ bitoffset = (offset % pixels_per_byte) * 2; /* not sure what this value means */
}
else if (bits==8) {
stp_fold_8bit(line,length,pd->fold_buf);
@@ -5394,6 +6039,11 @@ static int canon_compress(stp_vars_t *v, canon_privdata_t *pd, unsigned char* li
if(ink_flags & INK_FLAG_5pixel_in_1byte)
length = pack_pixels(in_ptr,length);
+ else if(ink_flags & INK_FLAG_3pixel5level_in_1byte)
+ length = pack_pixels3_5(in_ptr,length);
+ else if(ink_flags & INK_FLAG_3pixel6level_in_1byte)
+ length = pack_pixels3_6(in_ptr,length);
+
stp_pack_tiff(v, in_ptr, length, comp_data, &comp_ptr, NULL, NULL);
diff --git a/src/main/print-canon.h b/src/main/print-canon.h
index 3baeb2c..0382446 100644
--- a/src/main/print-canon.h
+++ b/src/main/print-canon.h
@@ -146,6 +146,526 @@ static const unsigned char tentoeight[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
+static const unsigned char twelve2eight[] =
+{
+ 0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 11, 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 40, 41, 42, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 50, 51, 52, 53, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 60, 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 70, 71, 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 75, 76, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 80, 81, 82, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 85, 86, 87, 88, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 95, 96, 97, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 100,101,102,103,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 105,106,107,108,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 110,111,112,113,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 115,116,117,118,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 120,121,122,123,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+};
+
+static const unsigned char twelve2eight2[] =
+{
+ 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 18, 19, 20, 21, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 36, 37, 38, 39, 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 49, 50, 51, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 60, 61, 62, 63, 64, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 73, 74, 75, 76, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 84, 85, 86, 87, 88, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 90, 91, 92, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96, 97, 98, 99,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 102,103,104,105,106,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 108,109,110,111,112,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 114,115,116,117,118,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 120,121,122,123,124,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 126,127,128,129,130,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 132,133,134,135,136,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 138,139,140,141,142,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 144,145,146,147,148,149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 150,151,152,153,154,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 156,157,158,159,160,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 162,163,164,165,166,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 168,169,170,171,172,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 174,175,176,177,178,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 180,181,182,183,184,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 186,187,188,189,190,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 192,193,194,195,196,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 198,199,200,201,202,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 204,205,206,207,208,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 210,211,212,213,214,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+};
+
const char* prexml_iP2700 ="<?xml version=\"1.0\" encoding=\"utf-8\" ?><cmd xmlns:ivec=\"http://www.canon.com/ns/cmd/2008/07/common/\"><ivec:contents><ivec:operation>StartJob</ivec:operation><ivec:param_set servicetype=\"print\"><ivec:jobID>00000001</ivec:jobID><ivec:bidi>0</ivec:bidi></ivec:param_set></ivec:contents></cmd><?xml version=\"1.0\" encoding=\"utf-8\" ?><cmd xmlns:ivec=\"http://www.canon.com/ns/cmd/2008/07/common/\" xmlns:vcn=\"http://www.canon.com/ns/cmd/2008/07/canon/\"><ivec:contents><ivec:operation>VendorCmd</ivec:operation><ivec:param_set servicetype=\"print\"><vcn:ijoperation>ModeShift</vcn:ijoperation><vcn:ijmode>1</vcn:ijmode><ivec:jobID>00000001</ivec:jobID></ivec:param_set></ivec:contents></cmd>";
const char* postxml_iP2700 ="<?xml version=\"1.0\" encoding=\"utf-8\" ?><cmd xmlns:ivec=\"http://www.canon.com/ns/cmd/2008/07/common/\"><ivec:contents><ivec:operation>EndJob</ivec:operation><ivec:param_set servicetype=\"print\"><ivec:jobID>00000001</ivec:jobID></ivec:param_set></ivec:contents></cmd>";
diff --git a/src/main/print-color.c b/src/main/print-color.c
index e7d5f4f..8318187 100644
--- a/src/main/print-color.c
+++ b/src/main/print-color.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-color.c,v 1.145 2012/01/19 13:25:40 m0m Exp $"
+ * "$Id: print-color.c,v 1.148 2014/01/24 01:55:56 rlk Exp $"
*
* Gutenprint color management module - traditional Gutenprint algorithm.
*
@@ -110,6 +110,38 @@ static const channel_param_t raw_channel_params[] =
{ 29, "GammaCh29", "CurveCh29", "GammaCh29", "CurveCh29" },
{ 30, "GammaCh30", "CurveCh30", "GammaCh30", "CurveCh30" },
{ 31, "GammaCh31", "CurveCh31", "GammaCh31", "CurveCh31" },
+ { 32, "GammaCh32", "CurveCh32", "GammaCh32", "CurveCh32" },
+ { 33, "GammaCh33", "CurveCh33", "GammaCh33", "CurveCh33" },
+ { 34, "GammaCh34", "CurveCh34", "GammaCh34", "CurveCh34" },
+ { 35, "GammaCh35", "CurveCh35", "GammaCh35", "CurveCh35" },
+ { 36, "GammaCh36", "CurveCh36", "GammaCh36", "CurveCh36" },
+ { 37, "GammaCh37", "CurveCh37", "GammaCh37", "CurveCh37" },
+ { 38, "GammaCh38", "CurveCh38", "GammaCh38", "CurveCh38" },
+ { 39, "GammaCh39", "CurveCh39", "GammaCh39", "CurveCh39" },
+ { 40, "GammaCh40", "CurveCh40", "GammaCh40", "CurveCh40" },
+ { 41, "GammaCh41", "CurveCh41", "GammaCh41", "CurveCh41" },
+ { 42, "GammaCh42", "CurveCh42", "GammaCh42", "CurveCh42" },
+ { 43, "GammaCh43", "CurveCh43", "GammaCh43", "CurveCh43" },
+ { 44, "GammaCh44", "CurveCh44", "GammaCh44", "CurveCh44" },
+ { 45, "GammaCh45", "CurveCh45", "GammaCh45", "CurveCh45" },
+ { 46, "GammaCh46", "CurveCh46", "GammaCh46", "CurveCh46" },
+ { 47, "GammaCh47", "CurveCh47", "GammaCh47", "CurveCh47" },
+ { 48, "GammaCh48", "CurveCh48", "GammaCh48", "CurveCh48" },
+ { 49, "GammaCh49", "CurveCh49", "GammaCh49", "CurveCh49" },
+ { 50, "GammaCh50", "CurveCh50", "GammaCh50", "CurveCh50" },
+ { 51, "GammaCh51", "CurveCh51", "GammaCh51", "CurveCh51" },
+ { 52, "GammaCh52", "CurveCh52", "GammaCh52", "CurveCh52" },
+ { 53, "GammaCh53", "CurveCh53", "GammaCh53", "CurveCh53" },
+ { 54, "GammaCh54", "CurveCh54", "GammaCh54", "CurveCh54" },
+ { 55, "GammaCh55", "CurveCh55", "GammaCh55", "CurveCh55" },
+ { 56, "GammaCh56", "CurveCh56", "GammaCh56", "CurveCh56" },
+ { 57, "GammaCh57", "CurveCh57", "GammaCh57", "CurveCh57" },
+ { 58, "GammaCh58", "CurveCh58", "GammaCh58", "CurveCh58" },
+ { 59, "GammaCh59", "CurveCh59", "GammaCh59", "CurveCh59" },
+ { 60, "GammaCh60", "CurveCh60", "GammaCh60", "CurveCh60" },
+ { 61, "GammaCh61", "CurveCh61", "GammaCh61", "CurveCh61" },
+ { 62, "GammaCh62", "CurveCh62", "GammaCh62", "CurveCh62" },
+ { 63, "GammaCh63", "CurveCh63", "GammaCh63", "CurveCh63" },
};
static const int raw_channel_param_count =
@@ -416,6 +448,38 @@ static const float_param_t float_parameters[] =
RAW_GAMMA_CHANNEL(29),
RAW_GAMMA_CHANNEL(30),
RAW_GAMMA_CHANNEL(31),
+ RAW_GAMMA_CHANNEL(32),
+ RAW_GAMMA_CHANNEL(33),
+ RAW_GAMMA_CHANNEL(34),
+ RAW_GAMMA_CHANNEL(35),
+ RAW_GAMMA_CHANNEL(36),
+ RAW_GAMMA_CHANNEL(37),
+ RAW_GAMMA_CHANNEL(38),
+ RAW_GAMMA_CHANNEL(39),
+ RAW_GAMMA_CHANNEL(40),
+ RAW_GAMMA_CHANNEL(41),
+ RAW_GAMMA_CHANNEL(42),
+ RAW_GAMMA_CHANNEL(43),
+ RAW_GAMMA_CHANNEL(44),
+ RAW_GAMMA_CHANNEL(45),
+ RAW_GAMMA_CHANNEL(46),
+ RAW_GAMMA_CHANNEL(47),
+ RAW_GAMMA_CHANNEL(48),
+ RAW_GAMMA_CHANNEL(49),
+ RAW_GAMMA_CHANNEL(50),
+ RAW_GAMMA_CHANNEL(51),
+ RAW_GAMMA_CHANNEL(52),
+ RAW_GAMMA_CHANNEL(53),
+ RAW_GAMMA_CHANNEL(54),
+ RAW_GAMMA_CHANNEL(55),
+ RAW_GAMMA_CHANNEL(56),
+ RAW_GAMMA_CHANNEL(57),
+ RAW_GAMMA_CHANNEL(58),
+ RAW_GAMMA_CHANNEL(59),
+ RAW_GAMMA_CHANNEL(60),
+ RAW_GAMMA_CHANNEL(61),
+ RAW_GAMMA_CHANNEL(62),
+ RAW_GAMMA_CHANNEL(63),
{
{
"LUTDumpFile", N_("LUT dump file"), N_("Advanced Output Control"),
@@ -589,6 +653,38 @@ static curve_param_t curve_parameters[] =
RAW_CURVE_CHANNEL(29),
RAW_CURVE_CHANNEL(30),
RAW_CURVE_CHANNEL(31),
+ RAW_CURVE_CHANNEL(32),
+ RAW_CURVE_CHANNEL(33),
+ RAW_CURVE_CHANNEL(34),
+ RAW_CURVE_CHANNEL(35),
+ RAW_CURVE_CHANNEL(36),
+ RAW_CURVE_CHANNEL(37),
+ RAW_CURVE_CHANNEL(38),
+ RAW_CURVE_CHANNEL(39),
+ RAW_CURVE_CHANNEL(40),
+ RAW_CURVE_CHANNEL(41),
+ RAW_CURVE_CHANNEL(42),
+ RAW_CURVE_CHANNEL(43),
+ RAW_CURVE_CHANNEL(44),
+ RAW_CURVE_CHANNEL(45),
+ RAW_CURVE_CHANNEL(46),
+ RAW_CURVE_CHANNEL(47),
+ RAW_CURVE_CHANNEL(48),
+ RAW_CURVE_CHANNEL(49),
+ RAW_CURVE_CHANNEL(50),
+ RAW_CURVE_CHANNEL(51),
+ RAW_CURVE_CHANNEL(52),
+ RAW_CURVE_CHANNEL(53),
+ RAW_CURVE_CHANNEL(54),
+ RAW_CURVE_CHANNEL(55),
+ RAW_CURVE_CHANNEL(56),
+ RAW_CURVE_CHANNEL(57),
+ RAW_CURVE_CHANNEL(58),
+ RAW_CURVE_CHANNEL(59),
+ RAW_CURVE_CHANNEL(60),
+ RAW_CURVE_CHANNEL(61),
+ RAW_CURVE_CHANNEL(62),
+ RAW_CURVE_CHANNEL(63),
};
static const int curve_parameter_count =
@@ -1734,7 +1830,7 @@ static const stp_colorfuncs_t stpi_color_traditional_colorfuncs =
&stpi_color_traditional_describe_parameter
};
-static const stp_color_t stpi_color_traditional_module_data =
+static stp_color_t stpi_color_traditional_module_data =
{
"traditional",
N_("Traditional Gutenprint color conversion"),
diff --git a/src/main/print-dither-matrices.c b/src/main/print-dither-matrices.c
index 70648e0..45ee656 100644
--- a/src/main/print-dither-matrices.c
+++ b/src/main/print-dither-matrices.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-dither-matrices.c,v 1.38 2010/08/04 00:33:56 rlk Exp $"
+ * "$Id: print-dither-matrices.c,v 1.39 2014/01/04 00:31:38 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -544,7 +544,7 @@ stp_xml_process_dither_matrix(stp_mxml_node_t *dm, /* The dither matrix node
}
static stp_array_t *
-stpi_dither_array_create_from_xmltree(stp_mxml_node_t *dm) /* Dither matrix node */
+stpi_dither_array_create_from_xmltree(stp_mxml_node_t *dm, int x, int y) /* Dither matrix node */
{
const char *stmp;
stp_mxml_node_t *child;
@@ -573,6 +573,13 @@ stpi_dither_array_create_from_xmltree(stp_mxml_node_t *dm) /* Dither matrix node
goto error;
}
+ if (x * y_aspect != y * x_aspect)
+ {
+ stp_erprintf("stpi_dither_array_create_from_xmltree: requested aspect of (%d, %d), found (%d, %d)\n",
+ x, y, x_aspect, y_aspect);
+ goto error;
+ }
+
/* Now read in the array */
child = stp_mxmlFindElement(dm, dm, "array", NULL, NULL, STP_MXML_DESCEND);
if (child)
@@ -584,7 +591,7 @@ stpi_dither_array_create_from_xmltree(stp_mxml_node_t *dm) /* Dither matrix node
}
static stp_array_t *
-xml_doc_get_dither_array(stp_mxml_node_t *doc)
+xml_doc_get_dither_array(stp_mxml_node_t *doc, int x, int y)
{
stp_mxml_node_t *cur;
stp_mxml_node_t *xmlseq;
@@ -610,11 +617,11 @@ xml_doc_get_dither_array(stp_mxml_node_t *doc)
return NULL;
}
- return stpi_dither_array_create_from_xmltree(xmlseq);
+ return stpi_dither_array_create_from_xmltree(xmlseq, x, y);
}
static stp_array_t *
-stpi_dither_array_create_from_file(const char* file)
+stpi_dither_array_create_from_file(const char* file, int x, int y)
{
stp_mxml_node_t *doc;
stp_array_t *ret = NULL;
@@ -637,7 +644,7 @@ stpi_dither_array_create_from_file(const char* file)
if (doc)
{
- ret = xml_doc_get_dither_array(doc);
+ ret = xml_doc_get_dither_array(doc, x, y);
stp_mxmlDelete(doc);
}
@@ -669,7 +676,7 @@ stp_xml_get_dither_array(int x, int y)
}
}
- ret = stpi_dither_array_create_from_file(cachedval->filename);
+ ret = stpi_dither_array_create_from_file(cachedval->filename, x, y);
cachedval->dither_array = ret;
return stp_array_create_copy(ret);
diff --git a/src/main/print-escp2-data.c b/src/main/print-escp2-data.c
index 1537adf..8e7d6e3 100644
--- a/src/main/print-escp2-data.c
+++ b/src/main/print-escp2-data.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-escp2-data.c,v 1.273 2010/08/04 00:33:56 rlk Exp $"
+ * "$Id: print-escp2-data.c,v 1.275 2013/12/14 19:36:29 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -353,7 +353,8 @@ load_model_from_file(const stp_vars_t *v, stp_mxml_node_t *xmod, int model)
!strcmp(child->value.element.name, "ChannelName"))
{
const char *cname = stp_mxmlElementGetAttr(child, "name");
- stp_string_list_add_string(p->channel_names, cname, cname);
+ const char *ctext = stp_mxmlElementGetAttr(child, "text");
+ stp_string_list_add_string(p->channel_names, cname, ctext);
}
child = child->next;
}
@@ -405,7 +406,7 @@ stp_escp2_load_model(const stp_vars_t *v, int model)
if (doc)
{
stp_mxml_node_t *node =
- stp_mxmlFindElement(doc, doc, "escp2:model", NULL, NULL,
+ stp_mxmlFindElement(doc, doc, "escp2Model", NULL, NULL,
STP_MXML_DESCEND);
if (node)
{
diff --git a/src/main/print-escp2.c b/src/main/print-escp2.c
index 07effa8..2a5b03e 100644
--- a/src/main/print-escp2.c
+++ b/src/main/print-escp2.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-escp2.c,v 1.439 2012/06/16 03:10:56 rlk Exp $"
+ * "$Id: print-escp2.c,v 1.442 2014/01/23 13:22:41 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -89,6 +89,14 @@ static const channel_count_t escp2_channel_counts[] =
{ 30, "30" },
{ 31, "31" },
{ 32, "32" },
+ { 33, "33" },
+ { 34, "34" },
+ { 35, "35" },
+ { 36, "36" },
+ { 37, "37" },
+ { 38, "38" },
+ { 39, "39" },
+ { 40, "40" },
};
static stp_curve_t *hue_curve_bounds = NULL;
@@ -385,6 +393,12 @@ static const stp_parameter_t the_parameters[] =
STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT,
STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 5, 1, 0
},
+ {
+ "GreenHueCurve", N_("Green Map"), "Color=Yes,Category=Advanced Output Control",
+ N_("Adjust the green map"),
+ STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT,
+ STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 5, 1, 0
+ },
PARAMETER_INT(max_hres),
PARAMETER_INT(max_vres),
PARAMETER_INT(min_hres),
@@ -483,24 +497,32 @@ static const float_param_t float_parameters[] =
},
{
{
- "RedDensity", N_("Red Density"), "Color=Yes,Category=Output Level Adjustment",
- N_("Adjust the red density"),
+ "BlueDensity", N_("Blue Density"), "Color=Yes,Category=Output Level Adjustment",
+ N_("Adjust the blue density"),
STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT,
STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 4, 1, 0
}, 0.0, 2.0, 1.0, 1
},
{
{
- "BlueDensity", N_("Blue Density"), "Color=Yes,Category=Output Level Adjustment",
- N_("Adjust the blue density"),
+ "OrangeDensity", N_("Orange Density"), "Color=Yes,Category=Output Level Adjustment",
+ N_("Adjust the orange density"),
+ STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT,
+ STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 4, 1, 0
+ }, 0.0, 2.0, 1.0, 1
+ },
+ {
+ {
+ "RedDensity", N_("Red Density"), "Color=Yes,Category=Output Level Adjustment",
+ N_("Adjust the red density"),
STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT,
STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 5, 1, 0
}, 0.0, 2.0, 1.0, 1
},
{
{
- "OrangeDensity", N_("Orange Density"), "Color=Yes,Category=Output Level Adjustment",
- N_("Adjust the orange density"),
+ "GreenDensity", N_("Green Density"), "Color=Yes,Category=Output Level Adjustment",
+ N_("Adjust the green density"),
STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT,
STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 5, 1, 0
}, 0.0, 2.0, 1.0, 1
@@ -1007,7 +1029,7 @@ get_privdata(stp_vars_t *v)
}
#define DEF_SIMPLE_ACCESSOR(f, t) \
-static inline t \
+static t \
escp2_##f(const stp_vars_t *v) \
{ \
if (stp_check_int_parameter(v, "escp2_" #f, STP_PARAMETER_ACTIVE)) \
@@ -1020,7 +1042,7 @@ escp2_##f(const stp_vars_t *v) \
}
#define DEF_RAW_ACCESSOR(f, t) \
-static inline t \
+static t \
escp2_##f(const stp_vars_t *v) \
{ \
if (stp_check_raw_parameter(v, "escp2_" #f, STP_PARAMETER_ACTIVE)) \
@@ -1033,7 +1055,7 @@ escp2_##f(const stp_vars_t *v) \
}
#define DEF_ROLL_ACCESSOR(f, t) \
-static inline t \
+static t \
escp2_##f(const stp_vars_t *v, int rollfeed) \
{ \
if (stp_check_int_parameter(v, "escp2_" #f, STP_PARAMETER_ACTIVE)) \
@@ -1244,25 +1266,25 @@ escp2_density(const stp_vars_t *v)
return 0;
}
-static int
+static inline int
escp2_bits(const stp_vars_t *v)
{
return escp2_res_param(v, "escp2_bits", NULL);
}
-static int
+static inline int
escp2_base_res(const stp_vars_t *v)
{
return escp2_res_param(v, "escp2_base_res", NULL);
}
-static int
+static inline int
escp2_ink_type_by_res(const stp_vars_t *v, const res_t *res)
{
return escp2_res_param(v, "escp2_ink_type", res);
}
-static double
+static inline double
escp2_density_by_res(const stp_vars_t *v, const res_t *res)
{
if (res)
@@ -1274,13 +1296,13 @@ escp2_density_by_res(const stp_vars_t *v, const res_t *res)
return 0.0;
}
-static int
+static inline int
escp2_bits_by_res(const stp_vars_t *v, const res_t *res)
{
return escp2_res_param(v, "escp2_bits", res);
}
-static int
+static inline int
escp2_base_res_by_res(const stp_vars_t *v, const res_t *res)
{
return escp2_res_param(v, "escp2_base_res", res);
@@ -2526,6 +2548,7 @@ escp2_parameters(const stp_vars_t *v, const char *name,
strcmp(name, "BlackDensity") == 0 ||
strcmp(name, "RedDensity") == 0 ||
strcmp(name, "BlueDensity") == 0 ||
+ strcmp(name, "GreenDensity") == 0 ||
strcmp(name, "OrangeDensity") == 0)
set_density_parameter(v, description, name);
else if (strcmp(name, "CyanHueCurve") == 0 ||
@@ -2533,6 +2556,7 @@ escp2_parameters(const stp_vars_t *v, const char *name,
strcmp(name, "YellowHueCurve") == 0 ||
strcmp(name, "RedHueCurve") == 0 ||
strcmp(name, "BlueHueCurve") == 0 ||
+ strcmp(name, "GreenHueCurve") == 0 ||
strcmp(name, "OrangeHueCurve") == 0)
set_hue_map_parameter(v, description, name);
else if (strcmp(name, "UseGloss") == 0)
@@ -4087,7 +4111,10 @@ setup_page(stp_vars_t *v)
pd->page_management_units / escp2_base_separation(v);
else
pd->page_extra_height = 0;
- pd->paper_extra_bottom = escp2_paper_extra_bottom(v);
+ if (pd->duplex)
+ pd->paper_extra_bottom = 0;
+ else
+ pd->paper_extra_bottom = escp2_paper_extra_bottom(v);
}
internal_imageable_area(v, 0, 0, &pd->page_left, &pd->page_right,
&pd->page_bottom, &pd->page_top);
diff --git a/src/main/print-escp2.h b/src/main/print-escp2.h
index 7280629..976ffd6 100644
--- a/src/main/print-escp2.h
+++ b/src/main/print-escp2.h
@@ -1,5 +1,5 @@
/*
- * "$Id: print-escp2.h,v 1.139 2010/12/19 02:51:37 rlk Exp $"
+ * "$Id: print-escp2.h,v 1.140 2014/01/23 13:22:41 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -28,8 +28,8 @@
* Maximum number of channels in a printer. If Epson comes out with an
* 8-head printer, this needs to be increased.
*/
-#define PHYSICAL_CHANNEL_LIMIT 8
#define MAX_DROP_SIZES 3
+#define PHYSICAL_CHANNEL_LIMIT ((STP_CHANNEL_LIMIT) / ((MAX_DROP_SIZES)+1))
#define XCOLOR_R (STP_NCOLORS + 0)
#define XCOLOR_B (STP_NCOLORS + 1)
@@ -624,5 +624,5 @@ extern void stpi_escp2_terminate_page(stp_vars_t *v);
#endif /* GUTENPRINT_INTERNAL_ESCP2_H */
/*
- * End of "$Id: print-escp2.h,v 1.139 2010/12/19 02:51:37 rlk Exp $".
+ * End of "$Id: print-escp2.h,v 1.140 2014/01/23 13:22:41 rlk Exp $".
*/
diff --git a/src/main/print-lexmark.c b/src/main/print-lexmark.c
index e43d9b4..95b2881 100644
--- a/src/main/print-lexmark.c
+++ b/src/main/print-lexmark.c
@@ -1,6 +1,6 @@
/*
- * "$Id: print-lexmark.c,v 1.161 2012/01/19 13:25:51 m0m Exp $"
+ * "$Id: print-lexmark.c,v 1.163 2014/01/04 23:07:22 rlk Exp $"
*
* Print plug-in Lexmark driver for the GIMP.
*
@@ -37,7 +37,7 @@
* lexmark_cap_t which defines positions are in 1/72 DPI. At
* lexmark_print the unit will be changed dependent on the printer,
* according to the value defined at lexmark_cap_t.x_raster_res and
- * lexmark_cap_t.y_raster_res. These two parameters are specifing the
+ * lexmark_cap_t.y_raster_res. These two parameters are specifying the
* resolution used for positioning the printer head (it is not the
* resolution used for printing!).
*/
@@ -466,8 +466,8 @@ typedef lexmark_res_t lexmark_res_t_array[LEXM_RES_COUNT];
typedef struct {
int ncolors;
unsigned int used_colors; /* specifies the head colors to be used (e.g. COLOR_MODE_K */
- unsigned int pass_length; /* avaliable jets for one color */
- int v_top_head_offset; /* offset from top, wehere the first jet will be found */
+ unsigned int pass_length; /* available jets for one color */
+ int v_top_head_offset; /* offset from top, where the first jet will be found */
int h_catridge_offset; /* horizontal offset of cartridges */
int h_direction_offset; /* Offset when printing in the other direction */
const int *head_offset; /* specifies the offset of head colors */
@@ -555,7 +555,7 @@ static const unsigned char outbufHeader_z52[LXM_Z52_HEADERSIZE]=
0x03,0x60, /* 0xd-0xe HE */
0x04,0xe0, /* 0xf-0x10 HS vertical pos */
0x19,0x5c, /* 0x11-0x12 */
- 0x0,0x0, /* 0x13-0x14 VO between packges*/
+ 0x0,0x0, /* 0x13-0x14 VO between packages*/
0x0,0x80, /* 0x15-0x16 */
0x0,0x0,0x0,0x0,0x1,0x2,0x0,0x0,0x0,0x0,0x0 /* 0x17-0x21 */
};
@@ -595,21 +595,21 @@ static const lexmark_res_t_array lexmark_reslist_z52 = /* LEXM_RES_COUNT entrie
static const lexmark_inkname_t ink_types_z52[] =
{
/* output_type ncolors used_colors pass_length v_top_head_offset
- * h_catridge_offset
+ * h_cartridge_offset
* h_direction_offset
* head_offset */
{ "CMYK", N_("Four Color Standard"),
{{ 1, COLOR_MODE_K, 208, 324, 0, 10, head_offset_cmyk },
{ 4, COLOR_MODE_CMYK, 192/3, 0, 0, 10, head_offset_cmyk }}},
{ "RGB", N_("Three Color Composite"),
- {{ 1, COLOR_MODE_K, 208, 324, 0, 10, head_offset_cmyk }, /* we ignor CMY, use black */
+ {{ 1, COLOR_MODE_K, 208, 324, 0, 10, head_offset_cmyk }, /* we ignore CMY, use black */
{ 4, COLOR_MODE_CMY, 192/3, 0, 0, 10, head_offset_cmy }}},
{ "PhotoCMYK", N_("Six Color Photo"),
{{ 1, COLOR_MODE_K, 192/3, 0, 0, 10, head_offset_cCmMyk },
{ 6, COLOR_MODE_CcMcYK, 192/3, 0, 0, 10, head_offset_cCmMyk }}},
{ "PhotoCMY", N_("Five Color Photo Composite"),
{{ 1, COLOR_MODE_K, 208, 324, 0, 10, head_offset_cCmMyk },
- { 5, COLOR_MODE_CcMcY, 192/3, 0, 0, 10, head_offset_cCmMyk }}}, /* we ignor CMY, use black */
+ { 5, COLOR_MODE_CcMcY, 192/3, 0, 0, 10, head_offset_cCmMyk }}}, /* we ignore CMY, use black */
{ "Gray", N_("Black"),
{{ 1, COLOR_MODE_K, 208, 324, 0, 10, head_offset_cmyk },
{ 1, COLOR_MODE_K, 208, 324, 0, 10, head_offset_cmyk }}},
@@ -619,7 +619,7 @@ static const lexmark_inkname_t ink_types_z52[] =
/*
- * 3200 sepecific stuff
+ * 3200 specific stuff
*/
#define LXM3200_LEFTOFFS 6254
#define LXM3200_RIGHTOFFS (LXM3200_LEFTOFFS-2120)
@@ -665,20 +665,20 @@ static const lexmark_res_t_array lexmark_reslist_3200 = /* LEXM_RES_COUNT entr
static const lexmark_inkname_t ink_types_3200[] =
{
/* output_type ncolors used_colors pass_length v_top_head_offset
- * h_catridge_offset
+ * h_cartridge_offset
* h_direction_offset
* head_offset */
{ "CMYK", N_("Four Color Standard"),
{{ 1, COLOR_MODE_K, 208, 20, 0, 12, head_offset_cmyk },
{ 4, COLOR_MODE_CMYK, 192/3, 0, 0, 12, head_offset_cmyk }}},
{ "RGB", N_("Three Color Composite"),
- {{ 1, COLOR_MODE_K, 208, 20, 0, 12, head_offset_cmyk }, /* we ignor CMY, use black */
+ {{ 1, COLOR_MODE_K, 208, 20, 0, 12, head_offset_cmyk }, /* we ignore CMY, use black */
{ 4, COLOR_MODE_CMY, 192/3, 0, 0, 12, head_offset_cmy }}},
{ "PhotoCMYK", N_("Six Color Photo"),
{{ 1, COLOR_MODE_K, 192/3, 0, 0, 12, head_offset_cCmMyk },
{ 6, COLOR_MODE_CcMcYK, 192/3, 0, 0, 12, head_offset_cCmMyk }}},
{ "PhotoCMY", N_("Five Color Photo Composite"),
- {{ 1, COLOR_MODE_K, 208, 20, 0, 12, head_offset_cCmMyk }, /* we ignor CMY, use black */
+ {{ 1, COLOR_MODE_K, 208, 20, 0, 12, head_offset_cCmMyk }, /* we ignore CMY, use black */
{ 5, COLOR_MODE_CcMcY, 192/3, 0, 0, 12, head_offset_cCmMyk }}},
{ NULL, NULL }
};
@@ -690,7 +690,7 @@ static const lexmark_inkname_t ink_types_3200[] =
/* main structure */
static const lexmark_cap_t lexmark_model_capabilities[] =
{
- /* default settings for unkown models */
+ /* default settings for unknown models */
{ (Lex_model)-1, 8*72,11*72,180,180,20,20,20,20, LEXMARK_INK_K, LEXMARK_SLOT_ASF1, 0 },
@@ -762,7 +762,7 @@ static const lexmark_cap_t lexmark_model_capabilities[] =
/*** printer internal parameters ***/
0, /* real left paper border */
300, /* real top paper border */
- 1200, /* horizontal resolutio of ??? dpi for positioning */
+ 1200, /* horizontal resolution of ??? dpi for positioning */
1200, /* use a vertical resolution of 1200 dpi for positioning */
&lexmark_reslist_3200, /* resolution specific parameters of ?? */
ink_types_3200, /* supported inks */
@@ -950,7 +950,10 @@ get_media_type(const char *name, const lexmark_cap_t * caps)
return NULL;
}
-static int
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-function"
+#pragma GCC diagnostic ignored "-pedantic"
+static inline int
lexmark_source_type(const char *name, const lexmark_cap_t * caps)
{
if (name)
@@ -965,6 +968,7 @@ lexmark_source_type(const char *name, const lexmark_cap_t * caps)
return 4;
}
+#pragma GCC diagnostic pop
@@ -980,7 +984,7 @@ lexmark_head_offset(int ydpi, /* i */
{
int i;
- stp_deprintf(STP_DBG_LEXMARK, " sizie %d, size_v %d, size_v[0] %d\n", (int)sizeof(*lineoff_buffer), (int)sizeof(lineoff_buffer->v), (int)sizeof(lineoff_buffer->v[0]));
+ stp_deprintf(STP_DBG_LEXMARK, " size %d, size_v %d, size_v[0] %d\n", (int)sizeof(*lineoff_buffer), (int)sizeof(lineoff_buffer->v), (int)sizeof(lineoff_buffer->v[0]));
memcpy(lineoff_buffer, ink_parameter->head_offset, sizeof(*lineoff_buffer));
for (i=0; i < (sizeof(lineoff_buffer->v) / sizeof(lineoff_buffer->v[0])); i++) {
@@ -1569,7 +1573,7 @@ get_double_param(stp_vars_t *v, const char *param)
/**********************************************************
* lexmark_print() - Print an image to a LEXMARK printer.
**********************************************************/
-/* This method should not be printer dependent (mybe it is because of nozzle count and other things) */
+/* This method should not be printer dependent (maybe it is because of nozzle count and other things) */
/* The method will set the printing method depending on the selected printer.
It will define the colors to be used and the resolution.
Additionally the pass_length will be defined.
@@ -1590,9 +1594,8 @@ lexmark_do_print(stp_vars_t *v, stp_image_t *image)
page_right,
page_bottom,
page_true_height, /* True length of page */
- out_width, /* Width of image on page in pixles */
+ out_width, /* Width of image on page in pixels */
out_height, /* Length of image on page */
- out_channels, /* Output bytes per pixel */
length, /* Length of raster data in bytes*/
buf_length, /* Length of raster data buffer (dmt) */
errdiv, /* Error dividend */
@@ -1601,14 +1604,12 @@ lexmark_do_print(stp_vars_t *v, stp_image_t *image)
errline, /* Current raster line */
errlast; /* Last raster line loaded */
unsigned zero_mask;
- int image_height,
- image_width;
+ int image_height;
int use_dmt = 0;
int pass_length=0; /* count of inkjets for one pass */
int add_top_offset=0; /* additional top offset */
int printMode = 0;
- int source;
- /* Lexmark do not have differnet pixel sizes. We have to correct the density according the print resolution. */
+ /* Lexmark do not have different pixel sizes. We have to correct the density according the print resolution. */
double densityDivisor; /* This parameter is will adapt the density according the resolution */
double k_lower, k_upper;
int physical_xdpi = 0;
@@ -1672,8 +1673,6 @@ lexmark_do_print(stp_vars_t *v, stp_image_t *image)
stp_image_init(image);
- source= lexmark_source_type(media_source,caps);
-
/* force grayscale if image is grayscale
* or single black cartridge installed
*/
@@ -1732,7 +1731,7 @@ lexmark_do_print(stp_vars_t *v, stp_image_t *image)
#endif
if ((printMode & COLOR_MODE_PHOTO) == COLOR_MODE_PHOTO) {
- /* in case of photo mode we have to go a bit ligther */
+ /* in case of photo mode we have to go a bit lighter */
densityDivisor /= 1.2;
}
@@ -1768,7 +1767,6 @@ densityDivisor /= 1.2;
stp_dprintf(STP_DBG_LEXMARK, v, "page_right %d, page_left %d, page_top %d, page_bottom %d, left %d, top %d\n",page_right, page_left, page_top, page_bottom,left, top);
image_height = stp_image_height(image);
- image_width = stp_image_width(image);
stp_default_media_size(v, &n, &page_true_height);
lxm3200_linetoeject = (page_true_height * 1200) / 72;
@@ -1788,7 +1786,7 @@ densityDivisor /= 1.2;
out_height = ydpi * out_height / 72;
- stp_dprintf(STP_DBG_LEXMARK, v, "border: left %d, x_raster_res %d, offser_left %d\n", left, caps->x_raster_res, caps->offset_left_border);
+ stp_dprintf(STP_DBG_LEXMARK, v, "border: left %d, x_raster_res %d, offset_left %d\n", left, caps->x_raster_res, caps->offset_left_border);
left = ((caps->x_raster_res * left) / 72) + caps->offset_left_border;
@@ -1879,7 +1877,7 @@ densityDivisor /= 1.2;
(cols.p.Y) ? 'Y' : ' ',
(cols.p.k) ? 'k' : ' ');
- /* initialize soft weaveing */
+ /* initialize soft weaving */
privdata.ink_parameter = ink_parameter;
privdata.bidirectional = lexmark_print_bidirectional(model, resolution);
privdata.outbuf = stp_malloc((((((pass_length/8)*11))+40) * out_width)+2000);
@@ -1890,7 +1888,7 @@ densityDivisor /= 1.2;
stp_initialize_weave(v,
pass_length, /* jets */
nozzle_separation, /* separation */
- horizontal_passes, /* h overample */
+ horizontal_passes, /* h oversample */
res_para_ptr->vertical_passes, /* v passes */
res_para_ptr->vertical_oversample, /* v oversample */
ncolors, /* colors */
@@ -1926,7 +1924,7 @@ densityDivisor /= 1.2;
stp_get_float_parameter(v, "Density") / densityDivisor,
densityDivisor);
- /* Lexmark do not have differnet pixel sizes. We have to correct the density according the print resolution. */
+ /* Lexmark do not have different pixel sizes. We have to correct the density according the print resolution. */
stp_scale_float_parameter(v, "Density", 1.0 / densityDivisor);
@@ -2077,7 +2075,7 @@ densityDivisor /= 1.2;
stp_curve_destroy(sat_adjustment);
}
- out_channels = stp_color_init(v, image, 65536);
+ (void) stp_color_init(v, image, 65536);
/* calculate the memory we need for one line of the printer image (hopefully we are right) */
stp_dprintf(STP_DBG_LEXMARK, v, "---------- buffer mem size = %d\n", (((((pass_length/8)*11)/10)+40) * out_width)+200);
@@ -2179,7 +2177,7 @@ static const stp_printfuncs_t print_lexmark_printfuncs =
This method is printer type dependent code.
This method initializes the line to be printed. It will set
- the printer specific initialization which has to be done bofor
+ the printer specific initialization which has to be done before
the pixels of the image could be printed.
*/
static unsigned char *
@@ -2199,7 +2197,7 @@ lexmark_init_line(int mode, unsigned char *prnBuf,
/* stp_erprintf("#### width %d, length %d, pass_length %d\n", width, length, pass_length);*/
- /* first, we wirte the line header */
+ /* first, we write the line header */
switch(caps->model) {
case m_z52:
case m_z42:
@@ -2216,7 +2214,7 @@ lexmark_init_line(int mode, unsigned char *prnBuf,
/* K could only be present if black is printed only. */
if ((mode & COLOR_MODE_K) || (mode & (COLOR_MODE_K | COLOR_MODE_LC | COLOR_MODE_LM))) {
- stp_deprintf(STP_DBG_LEXMARK, "set photo/black catridge \n");
+ stp_deprintf(STP_DBG_LEXMARK, "set photo/black cartridge \n");
prnBuf[LX_Z52_COLOR_MODE_POS] = LX_Z52_BLACK_PRINT;
if (direction) {
@@ -2386,7 +2384,7 @@ typedef struct Lexmark_head_colors {
/* lexmark_write
This method is has NO printer type dependent code.
- This method writes a single line of the print. The line consits of "pass_length"
+ This method writes a single line of the print. The line consists of "pass_length"
pixel lines (pixels, which could be printed with one pass by the printer.
*/
@@ -2405,7 +2403,7 @@ lexmark_write(const stp_vars_t *v, /* I - Print file or command */
int length, /* I - Length of bitmap data in bytes */
int mode, /* I - Which color */
int ydpi, /* I - Vertical resolution */
- int width, /* I - Printed width in pixles */
+ int width, /* I - Printed width in pixels */
int offset, /* I - Offset from left side in lexmark_cap_t.x_raster_res DPI */
int dmt)
{
@@ -2413,7 +2411,7 @@ lexmark_write(const stp_vars_t *v, /* I - Print file or command */
int clen;
int x; /* actual vertical position */
int y; /* actual horizontal position */
- int dy; /* horiz. inkjet posintion */
+ int dy; /* horiz. inkjet position */
int x1;
unsigned short pixelline; /* byte to be written */
unsigned int valid_bytes; /* bit list which tells the present bytes */
@@ -2579,7 +2577,7 @@ lexmark_write(const stp_vars_t *v, /* I - Print file or command */
if (anyDots) {
anyCol = 1;
} else {
- /* there are no dots, make empy package */
+ /* there are no dots, make empty package */
/* stp_dprintf(STP_DBG_LEXMARK, v, "-- empty col %i\n", x); */
}
}
@@ -2711,11 +2709,11 @@ flush_pass(stp_vars_t *v, int passno, int vertical_subpass)
prn_mode = PRINT_MODE_1200;
break;
default:
- stp_dprintf(STP_DBG_LEXMARK, v, "Eror: Unsupported phys resolution (%d)\n", physical_xdpi);
+ stp_dprintf(STP_DBG_LEXMARK, v, "Error: Unsupported phys resolution (%d)\n", physical_xdpi);
return;
break;
}
- /* calculate paper shift and adapt actual resoution to physical positioning resolution */
+ /* calculate paper shift and adapt actual resolution to physical positioning resolution */
paperShift = (pass->logicalpassstart - pd->last_pass_offset) * (caps->y_raster_res/ydpi);
for (j = 0; j < pd->ncolors; j++)
stp_dprintf(STP_DBG_LEXMARK, v, "Color %d: active %d line %p jets %d offset %ld\n",
@@ -2774,7 +2772,7 @@ flush_pass(stp_vars_t *v, int passno, int vertical_subpass)
(lwidth+7)/8, /* length, I - Length of bitmap data of one line in bytes */
prn_mode | COLOR_MODE_C | COLOR_MODE_Y | COLOR_MODE_M, /* mode, I - Which color */
ydpi, /* ydpi, I - Vertical resolution */
- lwidth, /* width, I - Printed width in pixles*/
+ lwidth, /* width, I - Printed width in pixels*/
hoffset+microoffset, /* offset I - Offset from left side in x_raster_res DPI */
0 /* dmt */);
if (pd->bidirectional)
@@ -2782,8 +2780,8 @@ flush_pass(stp_vars_t *v, int passno, int vertical_subpass)
}
- /*** do we have to print somthing with black or photo cartridge ? ***/
- /* we print with the photo or black cartidge */
+ /*** do we have to print something with black or photo cartridge ? ***/
+ /* we print with the photo or black cartridge */
if (pd->jets != 208)
{
@@ -2871,7 +2869,7 @@ flush_pass(stp_vars_t *v, int passno, int vertical_subpass)
(lwidth+7)/8, /* length, I - Length of bitmap data of one line in bytes */
prn_mode | COLOR_MODE_LC | COLOR_MODE_LM | COLOR_MODE_K, /* mode, I - Which color */
ydpi, /* ydpi, I - Vertical resolution */
- lwidth, /* width, I - Printed width in pixles*/
+ lwidth, /* width, I - Printed width in pixels*/
hoffset+microoffset, /* offset I - Offset from left side in x_raster_res DPI */
0 /* dmt */);
if (pd->bidirectional)
@@ -2925,7 +2923,7 @@ static void testprint(testdata *td)
/* read the colors */
fscanf(td->ifile, "%[^\"]\"%c c %[^\"]\",", dummy1, dummy2, dummy2); /* jump over first color */
- for (icol=0; icol < td->cols; icol++) { /* we ignor the first color. It is "no dot". */
+ for (icol=0; icol < td->cols; icol++) { /* we ignore the first color. It is "no dot". */
fscanf(td->ifile, "%[^\"]\"%c c %[^\"]\",", dummy1, &(td->colchar[icol]), dummy2);
stp_erprintf("colchar %d <%c>\n", i, td->colchar[icol]);
}
@@ -2933,12 +2931,12 @@ static void testprint(testdata *td)
if (td->cols > 5) {
td->cols = 7;
- for (icol=0; icol < td->cols; icol++) { /* we ignor the first color. It is "no dot". */
+ for (icol=0; icol < td->cols; icol++) { /* we ignore the first color. It is "no dot". */
linebufs.v[icol] = (char *)stp_malloc((td->x+7)/8); /* allocate the color */
}
} else if (td->cols > 4) {
td->cols = 5;
- for (icol=0; icol < td->cols; icol++) { /* we ignor the first color. It is "no dot". */
+ for (icol=0; icol < td->cols; icol++) { /* we ignore the first color. It is "no dot". */
linebufs.v[icol] = (char *)stp_malloc((td->x+7)/8); /* allocate the color */
}
} else {
@@ -3024,4 +3022,3 @@ stp_module_t stp_module_data =
print_lexmark_module_exit,
(void *) &print_lexmark_module_data
};
-
diff --git a/src/main/print-list.c b/src/main/print-list.c
index 16c24bc..75b5b08 100644
--- a/src/main/print-list.c
+++ b/src/main/print-list.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-list.c,v 1.26 2012/01/19 13:25:40 m0m Exp $"
+ * "$Id: print-list.c,v 1.27 2014/01/04 00:31:38 rlk Exp $"
*
* Gutenprint list functions. A doubly-linked list implementation,
* with callbacks for freeing, sorting, and retrieving nodes by name
@@ -236,7 +236,7 @@ stp_list_get_end(const stp_list_t *list)
static inline stp_list_t *
deconst_list(const stp_list_t *list)
{
- return (stp_list_t *) list;
+ return (stp_list_t *) stpi_cast_safe(list);
}
/* get the node by its place in the list */
@@ -568,7 +568,7 @@ stp_list_item_create(stp_list_t *list,
ln->prev = ln->next = NULL;
if (data)
- ln->data = (void *) data;
+ ln->data = stpi_cast_safe(data);
else
{
stp_free(ln);
diff --git a/src/main/print-olympus.c b/src/main/print-olympus.c
index a98fea4..a51d7df 100644
--- a/src/main/print-olympus.c
+++ b/src/main/print-olympus.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-olympus.c,v 1.99 2011/07/06 23:16:23 gernot2270 Exp $"
+ * "$Id: print-olympus.c,v 1.152 2014/02/01 01:04:21 speachy Exp $"
*
* Print plug-in DyeSub driver (formerly Olympus driver) for the GIMP.
*
@@ -29,6 +29,8 @@
* compile on generic platforms that don't support glib, gimp, gtk, etc.
*/
+/* #define DNPX2 */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -51,6 +53,10 @@
#define DYESUB_FEATURE_WHITE_BORDER 0x00000010
#define DYESUB_FEATURE_PLANE_INTERLACE 0x00000020
#define DYESUB_FEATURE_PLANE_LEFTTORIGHT 0x00000040
+#define DYESUB_FEATURE_ROW_INTERLACE 0x00000080
+#define DYESUB_FEATURE_12BPP 0x00000100
+#define DYESUB_FEATURE_16BPP 0x00000200
+#define DYESUB_FEATURE_BIGENDIAN 0x00000400
#define DYESUB_PORTRAIT 0
#define DYESUB_LANDSCAPE 1
@@ -73,6 +79,15 @@
#define MAX_BYTES_PER_CHANNEL 2
#define SIZE_THRESHOLD 6
+/*
+ * Random implementation from POSIX.1-2001 to yield reproducible results.
+ */
+static int xrand(unsigned long *seed)
+{
+ *seed = *seed * 1103515245ul + 12345ul;
+ return ((unsigned) (*seed / 65536ul) % 32768ul);
+}
+
typedef struct
{
const char *output_type;
@@ -138,6 +153,17 @@ typedef struct {
size_t n_items;
} laminate_list_t;
+typedef struct {
+ const char* name;
+ const char* text;
+ const stp_raw_t seq;
+} dyesub_media_t;
+
+typedef struct {
+ const dyesub_media_t *item;
+ size_t n_items;
+} dyesub_media_list_t;
+
#define NPUTC_BUFSIZE (4096)
typedef struct
@@ -149,7 +175,9 @@ typedef struct
int block_max_w, block_max_h;
const char* pagesize;
const laminate_t* laminate;
+ const dyesub_media_t* media;
int print_mode;
+ int bpp;
char nputc_buf[NPUTC_BUFSIZE];
} dyesub_privdata_t;
@@ -159,9 +187,11 @@ typedef struct {
int out_channels;
int ink_channels;
const char *ink_order;
- int bytes_per_out_channel;
int bytes_per_ink_channel;
+ int bits_per_ink_channel;
+ int byteswap;
int plane_interlacing;
+ int row_interlacing;
char empty_byte;
unsigned short **image_data;
int outh_px, outw_px, outt_px, outb_px, outl_px, outr_px;
@@ -180,7 +210,7 @@ typedef struct /* printer specific parameters */
const dyesub_pagesize_list_t *pages;
const dyesub_printsize_list_t *printsize;
int block_size;
- int features;
+ int features;
void (*printer_init_func)(stp_vars_t *);
void (*printer_end_func)(stp_vars_t *);
void (*plane_init_func)(stp_vars_t *);
@@ -191,11 +221,13 @@ typedef struct /* printer specific parameters */
const char *adj_magenta;
const char *adj_yellow;
const laminate_list_t *laminate;
+ const dyesub_media_list_t *media;
} dyesub_cap_t;
static const dyesub_cap_t* dyesub_get_model_capabilities(int model);
static const laminate_t* dyesub_get_laminate_pattern(stp_vars_t *v);
+static const dyesub_media_t* dyesub_get_mediatype(stp_vars_t *v);
static void dyesub_nputc(stp_vars_t *v, char byte, int count);
@@ -742,7 +774,6 @@ static const dyesub_printsize_t cp10_printsize[] =
LIST(dyesub_printsize_list_t, cp10_printsize_list, dyesub_printsize_t, cp10_printsize);
-
/* Canon CP-100 series */
static const dyesub_pagesize_t cpx00_page[] =
{
@@ -764,6 +795,12 @@ static const dyesub_printsize_t cpx00_printsize[] =
LIST(dyesub_printsize_list_t, cpx00_printsize_list, dyesub_printsize_t, cpx00_printsize);
+static void cp10_printer_init_func(stp_vars_t *v)
+{
+ stp_put16_be(0x4000, v);
+ dyesub_nputc(v, '\0', 10);
+}
+
static void cpx00_printer_init_func(stp_vars_t *v)
{
char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? '\1' :
@@ -852,16 +889,7 @@ static const dyesub_printsize_t cp220_printsize[] =
LIST(dyesub_printsize_list_t, cp220_printsize_list, dyesub_printsize_t, cp220_printsize);
-/* Canon SELPHY CP-520 */
-static void cp520_printer_init_func(stp_vars_t *v)
-{
- cpx00_printer_init_func(v);
- /* The CP520 does not want the printer_init and plane_init command to be sent
- in the same USB-packet so we fill up first USB-Packet with '\0'. */
- dyesub_nputc(v, '\0', 1012);
-}
-
-/* Canon SELPHY CP-790 */
+/* Canon SELPHY CP790 */
static void cp790_printer_init_func(stp_vars_t *v)
{
char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? '\0' :
@@ -981,6 +1009,12 @@ static void es40_printer_init_func(stp_vars_t *v)
stp_put32_le(privdata.w_size * privdata.h_size, v);
}
+/* Canon SELPHY CP900 */
+static void cp900_printer_end_func(stp_vars_t *v)
+{
+ dyesub_nputc(v, 0x0, 4);
+}
+
/* Sony DPP-EX5, DPP-EX7 */
static const dyesub_resolution_t res_403dpi[] =
{
@@ -1187,14 +1221,9 @@ LIST(dyesub_printsize_list_t, updr100_printsize_list, dyesub_printsize_t, updr10
static void updr100_printer_init_func(stp_vars_t *v)
{
- int dim1 = (privdata.print_mode == DYESUB_LANDSCAPE ?
- privdata.h_size : privdata.w_size);
- int dim2 = (privdata.print_mode == DYESUB_LANDSCAPE ?
- privdata.w_size : privdata.h_size);
-
stp_zfwrite("UPD8D\x00\x00\x00\x10\x03\x00\x00", 1, 12, v);
- stp_put32_le(dim1, v);
- stp_put32_le(dim2, v);
+ stp_put32_le(privdata.w_size, v);
+ stp_put32_le(privdata.h_size, v);
stp_zfwrite("\x1e\x00\x03\x00\x01\x00\x4e\x01\x00\x00", 1, 10, v);
stp_write_raw(&(privdata.laminate->seq), v); /* laminate pattern */
dyesub_nputc(v, '\0', 13);
@@ -1233,11 +1262,11 @@ LIST(dyesub_resolution_list_t, res_334dpi_list, dyesub_resolution_t, res_334dpi)
static const dyesub_pagesize_t updr150_page[] =
{
- { "w288h432", "2UPC-153 (4x6)", 298, 442, 0, 0, 0, 0, DYESUB_LANDSCAPE},
- { "B7", "2UPC-154 (3.5x5)", 261, 373, 0, 0, 0, 0, DYESUB_LANDSCAPE},
- { "w360h504", "2UPC-155 (5x7)", 373, 514, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "w432h576", "2UPC-156 (6x8)", 442, 588, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "Custom", NULL, 298, 442, 0, 0, 0, 0, DYESUB_LANDSCAPE},
+ { "w288h432", "2UPC-153 (4x6)", PT(1382,334)+1, PT(2048,334)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
+ { "B7", "2UPC-154 (3.5x5)", PT(1210,334)+1, PT(1728,334)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
+ { "w360h504", "2UPC-155 (5x7)", PT(1728,334)+1, PT(2380,334)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "w432h576", "2UPC-156 (6x8)", PT(2048,334)+1, PT(2724,334)+1, 0, 0, 0, DYESUB_PORTRAIT},
+ { "Custom", NULL, PT(1382,334)+1, PT(2048,334)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
};
LIST(dyesub_pagesize_list_t, updr150_page_list, dyesub_pagesize_t, updr150_page);
@@ -1253,13 +1282,9 @@ static const dyesub_printsize_t updr150_printsize[] =
LIST(dyesub_printsize_list_t, updr150_printsize_list, dyesub_printsize_t, updr150_printsize);
-static void updr150_printer_init_func(stp_vars_t *v)
+static void updr150_200_printer_init_func(stp_vars_t *v, int updr200)
{
char pg = '\0';
- int dim1 = (privdata.print_mode == DYESUB_LANDSCAPE ?
- privdata.w_size : privdata.h_size);
- int dim2 = (privdata.print_mode == DYESUB_LANDSCAPE ?
- privdata.h_size : privdata.w_size);
stp_zfwrite("\x6a\xff\xff\xff\xef\xff\xff\xff", 1, 8, v);
if (strcmp(privdata.pagesize,"B7") == 0)
@@ -1280,35 +1305,71 @@ static void updr150_printer_init_func(stp_vars_t *v)
"\x00\x00\x00\x00\x00\x01\x00\xed"
"\xff\xff\xff\x07\x00\x00\x00\x1b"
"\xee\x00\x00\x00\x02\x00\x02\x00"
- "\x00\x00\x00\x01\x07\x00\x00\x00"
+ "\x00\x00\x00\x01", 1, 67, v);
+
+ if (updr200) { /* UP-DR200-specific! */
+ stp_zfwrite("\x07\x00\x00\x00"
+ "\x1b\xc0\x00\x03\x00\x05", 1, 10, v);
+ stp_putc(0x00, v); /* 0x02 for doubled-up prints. */
+ /* eg 2x6 on 4x6 media, 3.5x5 on 5x7 media, 4x6 on 8x6 media */
+ }
+
+ stp_zfwrite("\x05\x00\x00\x00"
+ "\x02\x03\x00\x01\x00", 1, 9, v);
+ stp_zfwrite("\x07\x00\x00\x00"
"\x1b\x15\x00\x00\x00\x0d\x00\x0d"
"\x00\x00\x00\x00\x00\x00\x00\x07"
- "\x00\x00\x00\x00", 1, 91, v);
- stp_put16_be(dim1, v);
- stp_put16_be(dim2, v);
+ "\x00\x00\x00\x00", 1, 24, v);
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
stp_zfwrite("\xf9\xff\xff\xff\x07\x00\x00\x00"
"\x1b\xe1\x00\x00\x00\x0b\x00\x0b"
- "\x00\x00\x00\x00\x80\x00\x00\x00"
- "\x00\x00", 1, 26, v);
- stp_put16_be(dim1, v);
- stp_put16_be(dim2, v);
- stp_zfwrite("\xf8\xff\xff\xff\x0b\x00\x00\x00\x1b\xea"
- "\x00\x00\x00\x00", 1, 14, v);
+ "\x00\x00\x00\x00\x80", 1, 21, v);
+
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v); /*laminate pattern*/
+
+ stp_zfwrite("\x00\x00\x00\x00", 1, 4, v);
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ stp_zfwrite("\xf8\xff\xff\xff"
+ "\xec\xff\xff\xff"
+ "\x0b\x00\x00\x00\x1b\xea"
+ "\x00\x00\x00\x00", 1, 18, v);
stp_put32_be(privdata.w_size*privdata.h_size*3, v);
stp_zfwrite("\x00", 1, 1, v);
stp_put32_le(privdata.w_size*privdata.h_size*3, v);
}
+static void updr150_printer_init_func(stp_vars_t *v)
+{
+ updr150_200_printer_init_func(v, 0);
+}
+
static void updr150_printer_end_func(stp_vars_t *v)
{
- stp_zfwrite("\xfc\xff\xff"
+ stp_zfwrite("\xeb\xff\xff\xff"
+ "\xfc\xff\xff"
"\xff\xfa\xff\xff\xff\x07\x00\x00"
"\x00\x1b\x0a\x00\x00\x00\x00\x00"
"\x07\x00\x00\x00\x1b\x17\x00\x00"
"\x00\x00\x00\xf3\xff\xff\xff"
- , 1, 34, v);
+ , 1, 38, v);
}
+/* Sony UP-DR200 */
+static const laminate_t updr200_laminate[] =
+{
+ {"Glossy", N_("Glossy"), {1, "\x00"}},
+ {"Matte", N_("Matte"), {1, "\x0c"}},
+};
+
+LIST(laminate_list_t, updr200_laminate_list, laminate_t, updr200_laminate);
+
+static void updr200_printer_init_func(stp_vars_t *v)
+{
+ updr150_200_printer_init_func(v, 1);
+}
/* Fujifilm CX-400 */
static const dyesub_pagesize_t cx400_page[] =
@@ -1435,6 +1496,1139 @@ static void kodak_dock_plane_init(stp_vars_t *v)
dyesub_nputc(v, '\0', 4);
}
+/* Kodak 6800 */
+static const dyesub_pagesize_t kodak_6800_page[] =
+{
+ { "w288h432", "4x6", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE}, /* 4x6 */
+ { "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT}, /* 6x8 */
+ { "Custom", NULL, PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE}, /* 4x6 */
+};
+
+LIST(dyesub_pagesize_list_t, kodak_6800_page_list, dyesub_pagesize_t, kodak_6800_page);
+
+static const dyesub_printsize_t kodak_6800_printsize[] =
+{
+ { "300x300", "w288h432", 1240, 1844},
+ { "300x300", "w432h576", 1844, 2434},
+ { "300x300", "Custom", 1240, 1844},
+};
+
+LIST(dyesub_printsize_list_t, kodak_6800_printsize_list, dyesub_printsize_t, kodak_6800_printsize);
+
+static const laminate_t kodak_6800_laminate[] =
+{
+ {"Coated", N_("Coated"), {1, "\x01"}},
+ {"None", N_("None"), {1, "\x00"}},
+};
+
+LIST(laminate_list_t, kodak_6800_laminate_list, laminate_t, kodak_6800_laminate);
+
+
+static void kodak_6800_printer_init(stp_vars_t *v)
+{
+ stp_zfwrite("\x03\x1b\x43\x48\x43\x0a\x00\x01\x00", 1, 9, v);
+ stp_putc(0x01, v); /* Number of copies */
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ stp_putc(privdata.h_size == 1240 ? 0x00 : 0x06, v); /* XXX seen it on some 4x6 prints too! */
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v);
+ stp_putc(0x00, v);
+}
+
+/* Kodak 6850 */
+static const dyesub_pagesize_t kodak_6850_page[] =
+{
+ { "w288h432", "4x6", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE}, /* 4x6 */
+ { "w360h504", "5x7", PT(1548,300)+1, PT(2140,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT}, /* 5x7 */
+ { "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT}, /* 6x8 */
+ { "Custom", NULL, PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE}, /* 4x6 */
+};
+
+LIST(dyesub_pagesize_list_t, kodak_6850_page_list, dyesub_pagesize_t, kodak_6850_page);
+
+static const dyesub_printsize_t kodak_6850_printsize[] =
+{
+ { "300x300", "w288h432", 1240, 1844},
+ { "300x300", "w360h504", 1548, 2140},
+ { "300x300", "w432h576", 1844, 2434},
+ { "300x300", "Custom", 1240, 1844},
+};
+
+LIST(dyesub_printsize_list_t, kodak_6850_printsize_list, dyesub_printsize_t, kodak_6850_printsize);
+
+static void kodak_6850_printer_init(stp_vars_t *v)
+{
+ stp_zfwrite("\x03\x1b\x43\x48\x43\x0a\x00\x01\x00", 1, 9, v);
+ stp_putc(0x01, v); /* Number of copies */
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ stp_putc(privdata.h_size == 1240 ? 0x00 :
+ privdata.h_size == 1548 ? 0x07 : 0x06, v);
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v);
+ stp_putc(0x00, v);
+}
+
+/* Kodak 605 */
+static void kodak_605_printer_init(stp_vars_t *v)
+{
+ stp_zfwrite("\x01\x40\x0a\x00\x01", 1, 5, v);
+ stp_putc(0x01, v); /* Number of copies */
+ stp_putc(0x00, v);
+ stp_put16_le(privdata.w_size, v);
+ stp_put16_le(privdata.h_size, v);
+ stp_putc(privdata.h_size == 1240 ? 0x01 : 0x03, v);
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v);
+ stp_putc(0x00, v);
+}
+
+static const laminate_t kodak_605_laminate[] =
+{
+ {"Coated", N_("Coated"), {1, "\x02"}},
+ {"None", N_("None"), {1, "\x01"}},
+};
+
+LIST(laminate_list_t, kodak_605_laminate_list, laminate_t, kodak_605_laminate);
+
+/* Kodak 1400 */
+static const dyesub_resolution_t res_301dpi[] =
+{
+ { "301x301", 301, 301},
+};
+
+LIST(dyesub_resolution_list_t, res_301dpi_list, dyesub_resolution_t, res_301dpi);
+
+static const dyesub_pagesize_t kodak_1400_page[] =
+{
+ /* Printer has 1" non-printable area on top and bottom of page, not part of
+ data sent over.
+
+ Printer requires full-bleed data horizontally. However, not all pixels
+ are actually printed. 35+35 (8x14 paper) or 76+76 (8x12 paper) are
+ effectively discarded (ie ~0.125" and ~0.250" respectively).
+
+ The printer can technically print a little wider but these dimensions are
+ defined by the lamination area, which is fixed.
+ */
+ { "w612h864", "8.5 x 12", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT}, /* 8x12 */
+ { "Legal", "8.5 x 14", PT(2560,301)+1, PT(3612,301)+72*2, PT(35,301)+1, PT(35,301)+1, 72, 72, DYESUB_PORTRAIT}, /* 8x14 */
+ { "A4", "A4", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 0, 0, DYESUB_PORTRAIT}, /* A4, indentical to 8x12 */
+ { "Custom", NULL, PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT},
+};
+
+LIST(dyesub_pagesize_list_t, kodak_1400_page_list, dyesub_pagesize_t, kodak_1400_page);
+
+static const dyesub_media_t kodak_1400_media[] =
+{
+ { "Glossy", N_("Glossy"), {2, "\x00\x3c"}},
+ { "Matte+5", N_("Matte +5"), {2, "\x01\x28"}},
+ { "Matte+4", N_("Matte +4"), {2, "\x01\x2e"}},
+ { "Matte+3", N_("Matte +3"), {2, "\x01\x34"}},
+ { "Matte+2", N_("Matte +2"), {2, "\x01\x3a"}},
+ { "Matte+1", N_("Matte +1"), {2, "\x01\x40"}},
+ { "Matte", N_("Matte"), {2, "\x01\x46"}},
+ { "Matte-1", N_("Matte -1"), {2, "\x01\x52"}},
+ { "Matte-2", N_("Matte -2"), {2, "\x01\x5e"}},
+ { "Matte-3", N_("Matte -3"), {2, "\x01\x6a"}},
+ { "Matte-4", N_("Matte -4"), {2, "\x01\x76"}},
+ { "Matte-5", N_("Matte -5"), {2, "\x01\x82"}},
+};
+LIST(dyesub_media_list_t, kodak_1400_media_list, dyesub_media_t, kodak_1400_media);
+
+static const dyesub_printsize_t kodak_1400_printsize[] =
+{
+ { "301x301", "w612h864", 2560, 3010},
+ { "301x301", "Legal", 2560, 3612},
+ { "301x301", "A4", 2560, 3010},
+ { "301x301", "Custom", 2560, 3010},
+};
+
+LIST(dyesub_printsize_list_t, kodak_1400_printsize_list, dyesub_printsize_t, kodak_1400_printsize);
+
+static void kodak_1400_printer_init(stp_vars_t *v)
+{
+ stp_zfwrite("PGHD", 1, 4, v);
+ stp_put16_le(privdata.w_size, v);
+ dyesub_nputc(v, 0x00, 2);
+ stp_put16_le(privdata.h_size, v);
+ dyesub_nputc(v, 0x00, 2);
+ stp_put32_le(privdata.h_size*privdata.w_size, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_zfwrite((privdata.media->seq).data, 1, 1, v); /* Matte or Glossy? */
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v);
+ stp_putc(0x01, v);
+ stp_zfwrite((const char*)((privdata.media->seq).data) + 1, 1, 1, v); /* Lamination intensity */
+ dyesub_nputc(v, 0x00, 12);
+}
+
+/* Kodak 805 */
+static const dyesub_pagesize_t kodak_805_page[] =
+{
+ /* Identical to the Kodak 1400 except for the lack of A4 support.
+ See the 1400 comments for explanations of this. */
+ { "w612h864", "8.5 x 12", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT}, /* 8x12 */
+ { "Legal", "8.5 x 14", PT(2560,301)+1, PT(3612,301)+72*2, PT(35,301)+1, PT(35,301)+1, 72, 72, DYESUB_PORTRAIT}, /* 8x14 */
+ { "Custom", NULL, PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT},
+};
+
+LIST(dyesub_pagesize_list_t, kodak_805_page_list, dyesub_pagesize_t, kodak_805_page);
+
+static const dyesub_printsize_t kodak_805_printsize[] =
+{
+ { "301x301", "w612h864", 2560, 3010},
+ { "301x301", "Legal", 2560, 3612},
+ { "301x301", "Custom", 2560, 3010},
+};
+
+LIST(dyesub_printsize_list_t, kodak_805_printsize_list, dyesub_printsize_t, kodak_805_printsize);
+
+static void kodak_805_printer_init(stp_vars_t *v)
+{
+ stp_zfwrite("PGHD", 1, 4, v);
+ stp_put16_le(privdata.w_size, v);
+ dyesub_nputc(v, 0x00, 2);
+ stp_put16_le(privdata.h_size, v);
+ dyesub_nputc(v, 0x00, 2);
+ stp_put32_le(privdata.h_size*privdata.w_size, v);
+ dyesub_nputc(v, 0x00, 5);
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v);
+ stp_putc(0x01, v);
+ stp_putc(0x3c, v); /* Lamination intensity; fixed on glossy media */
+ dyesub_nputc(v, 0x00, 12);
+}
+
+/* Kodak 9810 */
+static const dyesub_pagesize_t kodak_9810_page[] =
+{
+ { "c8x10", "8x10", PT(2464,300)+1, PT(3024,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "w576h864", "8x12", PT(2464,300)+1, PT(3624,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "Custom", NULL, PT(2464,300)+1, PT(3024,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+};
+LIST(dyesub_pagesize_list_t, kodak_9810_page_list, dyesub_pagesize_t, kodak_9810_page);
+
+static const dyesub_printsize_t kodak_9810_printsize[] =
+{
+ { "300x300", "c8x10", 2464, 3024},
+ { "300x300", "w576h864", 2464, 3624},
+ { "300x300", "Custom", 2464, 3024},
+};
+
+LIST(dyesub_printsize_list_t, kodak_9810_printsize_list, dyesub_printsize_t, kodak_9810_printsize);
+
+static const laminate_t kodak_9810_laminate[] =
+{
+ {"Coated", N_("Coated"), {3, "\x4f\x6e\x20"}},
+ {"None", N_("None"), {3, "\x4f\x66\x66"}},
+};
+
+LIST(laminate_list_t, kodak_9810_laminate_list, laminate_t, kodak_9810_laminate);
+
+static void kodak_9810_printer_init(stp_vars_t *v)
+{
+ /* Command stream header */
+ stp_putc(0x1b, v);
+ stp_zfwrite("MndROSETTA V001.00100000020525072696E74657242696E4D6F74726C", 1, 59, v);
+
+ /* Begin Job */
+ stp_putc(0x1b, v);
+ stp_zfwrite("MndBgnJob Print ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(8, v);
+ stp_zfwrite("\x56\x30\x30\x31\x2e\x30\x30\x30", 1, 8, v);
+
+ /* Job Definition Start */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsSrtJbDefSetup ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(0, v);
+
+ /* Paper selection */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsJbMkMed Name ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(64, v);
+ if (privdata.h_size == 3624) {
+ stp_zfwrite("YMCX 8x12 Glossy", 1, 16, v);
+ } else {
+ stp_zfwrite("YMCX 8x10 Glossy", 1, 16, v);
+ }
+ dyesub_nputc(v, 0x00, 48);
+
+ /* Paper Selection II */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsPgMedia Name ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(64, v);
+ stp_zfwrite("\x38\x22", 1, 2, v);
+ dyesub_nputc(v, 0x00, 62);
+
+ /* Lamination */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsJbLam ", 1, 11, v);
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v);
+ dyesub_nputc(v, 0x20, 5);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(0, v);
+
+ /* Job Definition End */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsStpJbDef ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(0, v);
+
+ /* Begin Page */
+ stp_putc(0x1b, v);
+ stp_zfwrite("MndBgnLPageNormal ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(4, v);
+ stp_put32_be(1, v);
+
+ /* Page dimensions I -- maybe this is physical media size? */
+ stp_putc(0x1b, v);
+ stp_zfwrite("MndSetLPage ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(8, v);
+ stp_put32_be(privdata.w_size, v);
+ stp_put32_be(privdata.h_size, v);
+
+ /* Page dimensions II -- maybe this is image data size? */
+ stp_putc(0x1b, v);
+ stp_zfwrite("MndImSpec Size ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(16, v);
+ stp_put32_be(privdata.w_size, v);
+ stp_put32_be(privdata.h_size, v);
+ stp_put32_be(privdata.w_size, v);
+ stp_put32_be(0, v);
+
+ /* Positioning within page? */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsImPositnSpecify ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(8, v);
+ stp_put32_be(0, v); /* Presumably X */
+ stp_put32_be(0, v); /* Presumably Y */
+
+ /* Sharpening */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsImSharp SetLevel", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(2, v);
+ stp_putc(0xFF, v);
+ stp_putc(0x12, v); /* SHARPENING -- 0 is off, 0x12 Normal, 0x19 is High */
+
+ /* Number of Copies */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsPgCopies ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(4, v);
+ stp_put32_be(1, v); /* Number of copies, at least 1 */
+
+ /* Mirroring */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsPgMirrorNone ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(0, v);
+
+ /* Rotation */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsPgRotateNone ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(0, v);
+
+ /* Cut list -- seems to be list of be16 row offsets for cuts. */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsCutList ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(4, v);
+
+ /* Cut at start/end of sheet */
+ if (privdata.h_size == 3624) {
+ stp_zfwrite("\x00\x0c\x0e\x1c", 1, 4, v);
+ } else {
+ stp_zfwrite("\x00\x0c\x0b\xc4", 1, 4, v);
+ }
+
+#if 0 /* Additional Known Cut lists */
+ /* Single cut, down the center */
+ stp_put32_be(6, v);
+ if (privdata.h_size == 3624) {
+ stp_zfwrite("\x00\x0c\x07\x14\x0e\x1c", 1, 6, v);
+ } else {
+ stp_zfwrite("\x00\x0c\x05\xe8\x0b\xc4", 1, 6, v);
+ }
+ /* Double-Slug Cut, down the center */
+ stp_put32_be(8, v);
+ if (privdata.h_size == 3624) {
+ stp_zfwrite("\x00\x0c\x07\x01\x07\x27\x0e\x1c", 1, 6, v);
+ } else {
+ stp_zfwrite("\x00\x0c\x05\xd5\x05\xfb\x0b\xc4", 1, 6, v);
+ }
+#endif
+
+}
+
+static void kodak_9810_printer_end(stp_vars_t *v)
+{
+ /* End Page */
+ stp_putc(0x1b, v);
+ stp_zfwrite("MndEndLPage ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(0, v);
+
+ /* End Job */
+ stp_putc(0x1b, v);
+ stp_zfwrite("MndEndJob ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be(0, v);
+}
+
+static void kodak_9810_plane_init(stp_vars_t *v)
+{
+ /* Data block */
+ stp_putc(0x1b, v);
+ stp_zfwrite("FlsData Block ", 1, 19, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_put32_be((privdata.w_size * privdata.h_size) + 8, v);
+ stp_zfwrite("Image ", 1, 8, v);
+}
+
+
+/* Kodak Professional 8500 */
+static const dyesub_pagesize_t kodak_8500_page[] =
+{
+ { "w612h864", "8.5 x 12", PT(2508,314)+1, PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 8.5x12 & A4 */
+ { "Letter", "8.5 x 11", PT(2508,314)+1, PT(2954,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* Letter */
+ { "Custom", NULL, PT(2508,314), PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+};
+
+LIST(dyesub_pagesize_list_t, kodak_8500_page_list, dyesub_pagesize_t, kodak_8500_page);
+
+static const dyesub_printsize_t kodak_8500_printsize[] =
+{
+ { "314x314", "w612h864", 2508, 3134},
+ { "314x314", "Letter", 2508, 2954},
+ { "314x314", "Custom", 2508, 3134},
+};
+
+LIST(dyesub_printsize_list_t, kodak_8500_printsize_list, dyesub_printsize_t, kodak_8500_printsize);
+
+static const dyesub_media_t kodak_8500_media[] =
+{
+ { "Glossy", N_("Glossy"), {2, "\x00\x00"}},
+ { "Matte+5", N_("Matte +5"), {2, "\x01\x05"}},
+ { "Matte+4", N_("Matte +4"), {2, "\x01\x04"}},
+ { "Matte+3", N_("Matte +3"), {2, "\x01\x03"}},
+ { "Matte+2", N_("Matte +2"), {2, "\x01\x02"}},
+ { "Matte+1", N_("Matte +1"), {2, "\x01\x01"}},
+ { "Matte", N_("Matte"), {2, "\x01\x00"}},
+ { "Matte-1", N_("Matte -1"), {2, "\x01\xff"}},
+ { "Matte-2", N_("Matte -2"), {2, "\x01\xfe"}},
+ { "Matte-3", N_("Matte -3"), {2, "\x01\xfd"}},
+ { "Matte-4", N_("Matte -4"), {2, "\x01\xfc"}},
+ { "Matte-5", N_("Matte -5"), {2, "\x01\xfb"}},
+};
+LIST(dyesub_media_list_t, kodak_8500_media_list, dyesub_media_t, kodak_8500_media);
+
+static const laminate_t kodak_8500_laminate[] =
+{
+ {"Coated", N_("Coated"), {1, "\x00"}},
+ {"None", N_("None"), {1, "\x02"}},
+};
+
+LIST(laminate_list_t, kodak_8500_laminate_list, laminate_t, kodak_8500_laminate);
+
+static void kodak_8500_printer_init(stp_vars_t *v)
+{
+ /* Start with NULL block */
+ dyesub_nputc(v, 0x00, 64);
+ /* Number of copies */
+ stp_putc(0x1b, v);
+ stp_putc(0x4e, v);
+ stp_putc(1, v); /* XXX always 1 for now, up to 50 */
+ dyesub_nputc(v, 0x00, 61);
+ /* Paper type. Fixed. */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x46, v);
+ stp_putc(0x00, v); /* Fixed */
+ dyesub_nputc(v, 0x00, 60);
+ /* Print dimensions */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x53, v);
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ dyesub_nputc(v, 0x00, 57);
+ /* Sharpening -- XXX not exported. */
+ stp_putc(0x1b, v);
+ stp_putc(0x46, v);
+ stp_putc(0x50, v);
+ stp_putc(0, v); /* 8-bit signed, range is +- 5. IOW, 0xfb->0x5 */
+ dyesub_nputc(v, 0x00, 60);
+ /* Lamination */
+ stp_putc(0x1b, v);
+ stp_putc(0x59, v);
+ if (*((const char*)((privdata.laminate->seq).data)) == 0x02) { /* None */
+ stp_putc(0x02, v);
+ stp_putc(0x00, v);
+ } else {
+ stp_zfwrite((const char*)((privdata.media->seq).data), 1,
+ (privdata.media->seq).bytes, v);
+ }
+ dyesub_nputc(v, 0x00, 60);
+ /* Unknown */
+ stp_putc(0x1b, v);
+ stp_putc(0x46, v);
+ stp_putc(0x47, v);
+ dyesub_nputc(v, 0x00, 61);
+
+
+ /* Data header */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x54, v);
+ dyesub_nputc(v, 0x00, 2);
+ stp_put16_be(0, v); /* Starting row for this block */
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v); /* Number of rows in this block */
+ dyesub_nputc(v, 0x00, 53);
+}
+
+static void kodak_8500_printer_end(stp_vars_t *v)
+{
+ /* Pad data to 64-byte block */
+ unsigned int length = privdata.w_size * privdata.h_size * 3;
+ length %= 64;
+ if (length) {
+ length = 64 - length;
+ dyesub_nputc(v, 0x00, length);
+ }
+
+ /* Page Footer */
+ stp_putc(0x1b, v);
+ stp_putc(0x50, v);
+ dyesub_nputc(v, 0x00, 62);
+}
+
+/* Mitsubishi CP3020D/DU/DE */
+static const dyesub_pagesize_t mitsu_cp3020d_page[] =
+{
+ { "A4", "A4", PT(2508,314)+1, PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* A4 */
+ { "Legal", "Letter Long", PT(2508,314)+1, PT(3762,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* Letter */
+ { "Custom", NULL, PT(2508,314), PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+};
+
+LIST(dyesub_pagesize_list_t, mitsu_cp3020d_page_list, dyesub_pagesize_t, mitsu_cp3020d_page);
+
+static const dyesub_printsize_t mitsu_cp3020d_printsize[] =
+{
+ { "314x314", "A4", 2508, 3134},
+ { "314x314", "Legal", 2508, 3762},
+ { "314x314", "Custom", 2508, 3134},
+};
+
+LIST(dyesub_printsize_list_t, mitsu_cp3020d_printsize_list, dyesub_printsize_t, mitsu_cp3020d_printsize);
+
+static void mitsu_cp3020d_printer_init(stp_vars_t *v)
+{
+ /* Start with NULL block */
+ dyesub_nputc(v, 0x00, 64);
+ /* Unknown */
+ stp_putc(0x1b, v);
+ stp_putc(0x51, v);
+ dyesub_nputc(v, 0x00, 62);
+ /* Paper type */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x46, v);
+ if (privdata.h_size == 3762)
+ stp_putc(0x04, v);
+ else
+ stp_putc(0x00, v);
+ dyesub_nputc(v, 0x00, 60);
+ /* Number of copies */
+ stp_putc(0x1b, v);
+ stp_putc(0x4e, v);
+ stp_putc(1, v); /* XXX always 1 for now, up to 50 */
+ dyesub_nputc(v, 0x00, 61);
+ /* Unknown */
+ stp_putc(0x1b, v);
+ stp_putc(0x46, v);
+ stp_putc(0x53, v);
+ dyesub_nputc(v, 0x00, 61);
+ /* Lamination. Fixed on. */
+ stp_putc(0x1b, v);
+ stp_putc(0x59, v);
+ dyesub_nputc(v, 0x00, 62);
+ /* High Contrast */
+ stp_putc(0x1b, v);
+ stp_putc(0x46, v);
+ stp_putc(0x43, v);
+ stp_putc(0x00, v); /* XXX or 0x01 for "High Contrast" */
+ dyesub_nputc(v, 0x00, 60);
+ /* Print dimensions */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x53, v);
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ dyesub_nputc(v, 0x00, 57);
+}
+
+static void mitsu_cp3020d_printer_end(stp_vars_t *v)
+{
+ /* Page Footer */
+ stp_putc(0x1b, v);
+ stp_putc(0x50, v);
+ dyesub_nputc(v, 0x00, 62);
+}
+
+static void mitsu_cp3020d_plane_init(stp_vars_t *v)
+{
+ /* Plane data header */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x30 + 4 - privdata.plane, v); /* Y = x31, M = x32, C = x33 */
+ dyesub_nputc(v, 0x00, 2);
+ stp_put16_be(0, v); /* Starting row for this block */
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v); /* Number of rows in this block */
+ dyesub_nputc(v, 0x00, 53);
+}
+
+static void mitsu_cp3020d_plane_end(stp_vars_t *v)
+{
+ /* Pad data to 64-byte block */
+ unsigned int length = privdata.w_size * privdata.h_size;
+ length %= 64;
+ if (length) {
+ length = 64 - length;
+ dyesub_nputc(v, 0x00, length);
+ }
+}
+
+/* Mitsubishi CP3020DA/DAE */
+static void mitsu_cp3020da_printer_init(stp_vars_t *v)
+{
+ /* Init */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x20, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x0a, v);
+ stp_putc(0x10, v);
+ dyesub_nputc(v, 0x00, 7);
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ dyesub_nputc(v, 0x00, 32);
+ /* Page count */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x21, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x80, v);
+ stp_putc(0x00, v);
+ stp_putc(0x20, v);
+ stp_putc(0x00, v);
+ stp_putc(0x02, v);
+ dyesub_nputc(v, 0x00, 19);
+ stp_putc(0x01, v); /* Copies -- 01-50d */
+ dyesub_nputc(v, 0x00, 20);
+ /* Contrast ? */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x22, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0xf0, v);
+ dyesub_nputc(v, 0x00, 4);
+ stp_putc(0x00, v); /* x00 = Photo, x01 = High Contrast, x02 = Natural */
+ dyesub_nputc(v, 0x00, 39);
+ /* Unknown */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x26, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x20, v);
+ dyesub_nputc(v, 0x00, 6);
+ stp_putc(0x01, v);
+ dyesub_nputc(v, 0x00, 37);
+}
+
+static void mitsu_cp3020da_printer_end(stp_vars_t *v)
+{
+ /* Page Footer */
+ stp_putc(0x1b, v);
+ stp_putc(0x50, v);
+ stp_putc(0x51, v);
+ stp_putc(0x50, v);
+}
+
+static void mitsu_cp3020da_plane_init(stp_vars_t *v)
+{
+ /* Plane data header */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x54, v);
+ stp_putc((privdata.bpp > 8) ? 0x10: 0x00, v);
+ dyesub_nputc(v, 0x00, 2);
+ stp_put16_be(0, v); /* Starting row for this block */
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v); /* Number of rows in this block */
+}
+
+/* Mitsubishi 9550D/DW */
+static const dyesub_resolution_t res_346dpi[] =
+{
+ { "346x346", 346, 346},
+};
+
+LIST(dyesub_resolution_list_t, res_346dpi_list, dyesub_resolution_t, res_346dpi);
+
+static const dyesub_pagesize_t mitsu_cp9550_page[] =
+{
+ { "B7", "3.5x5", PT(1240,346)+1, PT(1812,346)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w288h432", "4x6", PT(1416,346)+1, PT(2152,346)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+#ifdef DNPX2
+ { "2x6_x2", "2x6*2", PT(1416,346)+1, PT(2152,346)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+#endif
+ { "w360h504", "5x7", PT(1812,346)+1, PT(2402,346)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h576", "6x8", PT(2152,346)+1, PT(2792,346)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h612", "6x8.5", PT(2152,346)+1, PT(2956,346)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h648", "6x9", PT(2152,346)+1, PT(3146,346)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "Custom", NULL, PT(1416,346)+1, PT(2152,346)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+};
+
+LIST(dyesub_pagesize_list_t, mitsu_cp9550_page_list, dyesub_pagesize_t, mitsu_cp9550_page);
+
+static const dyesub_printsize_t mitsu_cp9550_printsize[] =
+{
+ { "346x346", "B7", 1240, 1812},
+ { "346x346", "w288h432", 1416, 2152},
+#ifdef DNPX2
+ { "346x346", "2x6_x2", 1416, 2152},
+#endif
+ { "346x346", "w360h504", 1812, 2402},
+ { "346x346", "w432h576", 2152, 2792},
+ { "346x346", "w432h612", 2152, 2956},
+ { "346x346", "w432h648", 2152, 3146},
+ { "346x346", "Custom", 1416, 2152},
+};
+
+LIST(dyesub_printsize_list_t, mitsu_cp9550_printsize_list, dyesub_printsize_t, mitsu_cp9550_printsize);
+
+static void mitsu_cp9550_printer_init(stp_vars_t *v)
+{
+ /* Init */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x20, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x0a, v);
+ stp_putc(0x10, v);
+ dyesub_nputc(v, 0x00, 7);
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ dyesub_nputc(v, 0x00, 32);
+ /* Parameters 1 */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x21, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x80, v);
+ stp_putc(0x00, v);
+ stp_putc(0x22, v);
+ stp_putc(0x08, v);
+ stp_putc(0x03, v);
+ dyesub_nputc(v, 0x00, 19);
+ stp_putc(0x01, v); /* This is Copies on other models.. */
+ dyesub_nputc(v, 0x00, 2);
+ if (strcmp(privdata.pagesize,"2x6_x2") == 0)
+ stp_putc(0x83, v);
+ else
+ stp_putc(0x00, v);
+ dyesub_nputc(v, 0x00, 5);
+ stp_putc(0x00, v); /* XXX 00 == normal, 80 = fine */
+ dyesub_nputc(v, 0x00, 10);
+ stp_putc(0x01, v);
+ /* Parameters 2 */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x22, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x40, v);
+ dyesub_nputc(v, 0x00, 5);
+ stp_putc(0x00, v); /* XXX 00 == normal, 01 == finedeep (some models only) */
+ dyesub_nputc(v, 0x00, 38);
+ /* Unknown */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x26, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x70, v);
+ dyesub_nputc(v, 0x00, 6);
+ stp_putc(0x01, v);
+ stp_putc(0x01, v);
+ dyesub_nputc(v, 0x00, 36);
+}
+
+static void mitsu_cp9550_printer_end(stp_vars_t *v)
+{
+ /* Page Footer */
+ stp_putc(0x1b, v);
+ stp_putc(0x50, v);
+ stp_putc(0x46, v);
+ stp_putc(0x00, v);
+}
+
+/* Mitsubishi 9810D/DW */
+static const dyesub_pagesize_t mitsu_cp9810_page[] =
+{
+ { "B7", "3.5x5", PT(1076,300)+1, PT(1572,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w288h432", "4x6", PT(1228,300)+1, PT(1868,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w360h504", "5x7", PT(1572,300)+1, PT(2128,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h576", "6x8", PT(1868,300)+1, PT(2442,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h612", "6x8.5", PT(1868,300)+1, PT(2564,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h648", "6x9", PT(1868,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "Custom", NULL, PT(1220,300)+1, PT(1868,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+};
+
+LIST(dyesub_pagesize_list_t, mitsu_cp9810_page_list, dyesub_pagesize_t, mitsu_cp9810_page);
+
+static const dyesub_printsize_t mitsu_cp9810_printsize[] =
+{
+ { "300x300", "B7", 1076, 1572},
+ { "300x300", "w288h432", 1228, 1868},
+ { "300x300", "w360h504", 1572, 2128},
+ { "300x300", "w432h576", 1868, 2442},
+ { "300x300", "w432h612", 1868, 2564},
+ { "300x300", "w432h648", 1868, 2730},
+ { "300x300", "Custom", 1220, 1868},
+};
+
+LIST(dyesub_printsize_list_t, mitsu_cp9810_printsize_list, dyesub_printsize_t, mitsu_cp9810_printsize);
+
+static const laminate_t mitsu_cp9810_laminate[] =
+{
+ {"Matte", N_("Matte"), {1, "\x01"}},
+ {"None", N_("None"), {1, "\x00"}},
+};
+
+LIST(laminate_list_t, mitsu_cp9810_laminate_list, laminate_t, mitsu_cp9810_laminate);
+
+static void mitsu_cp9810_printer_init(stp_vars_t *v)
+{
+ /* Init */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x20, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x0a, v);
+ stp_putc(0x90, v);
+ dyesub_nputc(v, 0x00, 7);
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v); /* Lamination */
+ dyesub_nputc(v, 0x00, 31);
+ /* Parameters 1 */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x21, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x80, v);
+ stp_putc(0x00, v);
+ stp_putc(0x22, v);
+ stp_putc(0x08, v);
+ stp_putc(0x01, v);
+ dyesub_nputc(v, 0x00, 19);
+ stp_putc(0x01, v); /* Copies */
+ dyesub_nputc(v, 0x00, 8);
+ stp_putc(0x80, v); /* XXX 10 == Fine, 80 = SuperFine (required for lamination) */
+ dyesub_nputc(v, 0x00, 10);
+ stp_putc(0x01, v);
+ /* Unknown */
+ stp_putc(0x1b, v);
+ stp_putc(0x57, v);
+ stp_putc(0x26, v);
+ stp_putc(0x2e, v);
+ stp_putc(0x00, v);
+ stp_putc(0x70, v);
+ dyesub_nputc(v, 0x00, 6);
+ stp_putc(0x01, v);
+ stp_putc(0x01, v);
+ dyesub_nputc(v, 0x00, 36);
+}
+
+static void mitsu_cp9810_printer_end(stp_vars_t *v)
+{
+ /* Job Footer */
+ stp_putc(0x1b, v);
+ stp_putc(0x50, v);
+ stp_putc(0x4c, v);
+ stp_putc(0x00, v);
+
+ if (*((const char*)((privdata.laminate->seq).data)) == 0x01) {
+
+ /* Generate a full plane of lamination data */
+
+ /* The Windows drivers generate a lamination pattern consisting of
+ four values: 0x0202, 0x01f1, 0x0808, 0x0737 in roughly a 16:10:4:1
+ ratio.
+
+ There seem to be some patterns but more analysis is needed.
+ */
+
+ int r, c;
+ unsigned long seed = 1;
+
+ mitsu_cp3020da_plane_init(v); /* First generate plane header */
+
+ /* Now generate lamination pattern */
+ for (c = 0 ; c < privdata.w_size ; c++) {
+ for (r = 0 ; r < privdata.h_size ; r++) {
+ int i = xrand(&seed) & 0x1f;
+ if (i < 16)
+ stp_put16_be(0x0202, v);
+ else if (i < 26)
+ stp_put16_be(0x01f1, v);
+ else if (i < 30)
+ stp_put16_be(0x0808, v);
+ else
+ stp_put16_be(0x0737, v);
+ }
+ }
+
+ /* Lamination Footer */
+ stp_putc(0x1b, v);
+ stp_putc(0x50, v);
+ stp_putc(0x56, v);
+ stp_putc(0x00, v);
+ }
+}
+
+/* Mitsubishi CP-D70D/CP-D707 */
+static const dyesub_pagesize_t mitsu_cpd70x_page[] =
+{
+ { "B7", "3.5x5", PT(1076,300)+1, PT(1568,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w288h432", "4x6", PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w360h504", "5x7", PT(1572,300)+1, PT(2128,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h576", "6x8", PT(1864,300)+1, PT(2422,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h648", "6x9", PT(1864,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "Custom", NULL, PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+};
+
+LIST(dyesub_pagesize_list_t, mitsu_cpd70x_page_list, dyesub_pagesize_t, mitsu_cpd70x_page);
+
+static const dyesub_printsize_t mitsu_cpd70x_printsize[] =
+{
+ { "300x300", "B7", 1076, 1568},
+ { "300x300", "w288h432", 1228, 1864},
+ { "300x300", "w360h504", 1572, 2128},
+ { "300x300", "w432h576", 1864, 2422},
+ { "300x300", "w432h648", 1864, 2730},
+ { "300x300", "Custom", 1220, 1868},
+};
+
+LIST(dyesub_printsize_list_t, mitsu_cpd70x_printsize_list, dyesub_printsize_t, mitsu_cpd70x_printsize);
+
+static const laminate_t mitsu_cpd70x_laminate[] =
+{
+ {"Matte", N_("Matte"), {1, "\x02"}},
+ {"None", N_("None"), {1, "\x00"}},
+};
+
+LIST(laminate_list_t, mitsu_cpd70x_laminate_list, laminate_t, mitsu_cpd70x_laminate);
+
+static void mitsu_cpd70x_printer_init(stp_vars_t *v)
+{
+ /* Printer init */
+ stp_putc(0x1b, v);
+ stp_putc(0x45, v);
+ stp_putc(0x57, v);
+ stp_putc(0x55, v);
+ dyesub_nputc(v, 0x00, 508);
+
+ /* Each copy gets this.. */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x54, v);
+ stp_putc(0x01, v);
+ dyesub_nputc(v, 0x00, 12);
+
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ if (*((const char*)((privdata.laminate->seq).data)) == 0x01) {
+ /* Laminate a slightly larger boundary */
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size + 12, v);
+ stp_putc(0x03, v); /* Trigger Superfine */
+ } else {
+ dyesub_nputc(v, 0x00, 4); /* Ie no Lamination */
+ stp_putc(0x00, v);
+ }
+ dyesub_nputc(v, 0x00, 7);
+
+ stp_putc(0x00, v); /* Auto deck selection, or 0x01 for Lower, 0x02 for Upper */
+ dyesub_nputc(v, 0x00, 8);
+
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v); /* Lamination mode */
+ dyesub_nputc(v, 0x00, 6);
+
+ dyesub_nputc(v, 0x00, 464); /* Pad to 512-byte block */
+}
+
+static void mitsu_cpd70x_printer_end(stp_vars_t *v)
+{
+ /* If lamination is enabled, generate a lamination plane */
+ if (*((const char*)((privdata.laminate->seq).data)) == 0x01) {
+
+ /* The Windows drivers generate a lamination pattern consisting of
+ four values: 0xab58, 0x286a, 0x6c22 */
+
+ int r, c;
+ unsigned long seed = 1;
+
+ /* Now generate lamination pattern */
+ for (c = 0 ; c < privdata.w_size ; c++) {
+ for (r = 0 ; r < privdata.h_size + 12 ; r++) {
+ int i = xrand(&seed) & 0x1f;
+ if (i < 24)
+ stp_put16_be(0xab58, v);
+ else if (i < 29)
+ stp_put16_be(0x286a, v);
+ else
+ stp_put16_be(0x6c22, v);
+ }
+ }
+ /* Pad up to a 512-byte block */
+ dyesub_nputc(v, 0x00, 512 - ((privdata.w_size * (privdata.h_size + 12) * 2) % 512));
+ }
+}
+
+static void mitsu_cpd70x_plane_end(stp_vars_t *v)
+{
+ /* Pad up to a 512-byte block */
+ dyesub_nputc(v, 0x00, 512 - ((privdata.h_size * privdata.w_size * 2) % 512));
+}
+
+/* Mitsubishi CP-K60D */
+static const dyesub_pagesize_t mitsu_cpk60_page[] =
+{
+ { "B7", "3.5x5", PT(1076,300)+1, PT(1568,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w288h432", "4x6", PT(1218,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w360h504", "5x7", PT(1568,300)+1, PT(2128,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h432", "6x6", PT(1864,300)+1, PT(1820,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h576", "6x8", PT(1864,300)+1, PT(2422,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "Custom", NULL, PT(1218,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+};
+
+LIST(dyesub_pagesize_list_t, mitsu_cpk60_page_list, dyesub_pagesize_t, mitsu_cpk60_page);
+
+static const dyesub_printsize_t mitsu_cpk60_printsize[] =
+{
+ { "300x300", "B7", 1076, 1568},
+ { "300x300", "w288h432", 1218, 1864},
+ { "300x300", "w360h504", 1568, 2128},
+ { "300x300", "w432h432", 1864, 1820},
+ { "300x300", "w432h576", 1864, 2422},
+ { "300x300", "Custom", 1218, 1864},
+};
+
+LIST(dyesub_printsize_list_t, mitsu_cpk60_printsize_list, dyesub_printsize_t, mitsu_cpk60_printsize);
+
+static void mitsu_cpk60_printer_init(stp_vars_t *v)
+{
+ /* Printer init */
+ stp_putc(0x1b, v);
+ stp_putc(0x45, v);
+ stp_putc(0x57, v);
+ stp_putc(0x55, v);
+ dyesub_nputc(v, 0x00, 508);
+
+ /* Each copy gets this.. */
+ stp_putc(0x1b, v);
+ stp_putc(0x5a, v);
+ stp_putc(0x54, v);
+ stp_putc(0x00, v);
+ dyesub_nputc(v, 0x00, 12);
+
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size, v);
+ if (*((const char*)((privdata.laminate->seq).data)) == 0x02) {
+ /* Laminate a slightly larger boundary */
+ stp_put16_be(privdata.w_size, v);
+ stp_put16_be(privdata.h_size + 12, v); /* XXX this isn't always true.. */
+ } else {
+ dyesub_nputc(v, 0x00, 4); /* Ie no Lamination */
+ }
+ stp_putc(0x00, v); /* Disable UltraFine for now (0x04 enables it) */
+ dyesub_nputc(v, 0x00, 7);
+
+ stp_putc(0x01, v); /* K60 has a single "lower" deck */
+ dyesub_nputc(v, 0x00, 8);
+
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v); /* Lamination mode */
+ dyesub_nputc(v, 0x00, 6);
+
+ stp_putc(0x01, v); /* Unknown */
+ dyesub_nputc(v, 0x00, 15);
+
+ dyesub_nputc(v, 0x00, 448); /* Pad to 512-byte block */
+}
+
+
/* Shinko CHC-S9045 (experimental) */
static const dyesub_pagesize_t shinko_chcs9045_page[] =
@@ -1491,29 +2685,254 @@ static void shinko_chcs9045_printer_init(stp_vars_t *v)
dyesub_nputc(v, '\0', 4338);
}
+/* Shinko CHC-S2145 */
+static const dyesub_pagesize_t shinko_chcs2145_page[] =
+{
+ { "w144h432", "2x6", PT(634,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w288h432", "4x6", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+#ifdef DNPX2
+ { "2x6_x2", "2x6*2", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+#endif
+ { "B7", "3.5x5", PT(1088,300)+1, PT(1548,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+ { "w360h504", "5x7", PT(1548,300)+1, PT(2140,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "4x6_x2", "4x6*2", PT(1844,300)+1, PT(2492,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+#endif
+ { "w432h648", "6x9", PT(1844,300)+1, PT(2740,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
+ { "Custom", NULL, PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
+};
+
+LIST(dyesub_pagesize_list_t, shinko_chcs2145_page_list, dyesub_pagesize_t, shinko_chcs2145_page);
+
+static const dyesub_printsize_t shinko_chcs2145_printsize[] =
+{
+ { "300x300", "w144h432", 634, 1844},
+ { "300x300", "w288h432", 1240, 1844},
+#ifdef DNPX2
+ { "300x300", "2x6_x2", 1240, 1844},
+#endif
+ { "300x300", "B7", 1088, 1548},
+ { "300x300", "w360h504", 1548, 2140},
+ { "300x300", "w432h576", 1844, 2434},
+#ifdef DNPX2
+ { "300x300", "4x6_x2", 1844, 2492},
+#endif
+ { "300x300", "w432h648", 1844, 2740},
+ { "300x300", "Custom", 1240, 1844},
+};
+
+LIST(dyesub_printsize_list_t, shinko_chcs2145_printsize_list, dyesub_printsize_t, shinko_chcs2145_printsize);
+
+static const laminate_t shinko_chcs2145_laminate[] =
+{
+ {"PrinterDefault", N_("Printer Default"), {4, "\x01\0\0\0"}},
+ {"Glossy", N_("Glossy"), {4, "\x02\0\0\0"}},
+ {"GlossyFine", N_("Glossy Fine"), {4, "\x03\0\0\0"}},
+ {"Matte", N_("Matte"), {4, "\x04\0\0\0"}},
+ {"MatteFine", N_("Matte Fine"), {4, "\x05\0\0\0"}},
+ {"ExtraGlossy", N_("Extra Glossy"), {4, "\x06\0\0\0"}},
+ {"ExtraGlossyFine", N_("Extra Glossy Fine"), {4, "\x07\0\0\0"}},
+};
+
+LIST(laminate_list_t, shinko_chcs2145_laminate_list, laminate_t, shinko_chcs2145_laminate);
+
+static void shinko_chcs2145_printer_init(stp_vars_t *v)
+{
+ int media = 0;
+
+ if (strcmp(privdata.pagesize,"w288h432") == 0)
+ media = '\0';
+ else if (strcmp(privdata.pagesize,"2x6_x2") == 0)
+ media = '\0';
+ else if (strcmp(privdata.pagesize,"B7") == 0)
+ media = '\1';
+ else if (strcmp(privdata.pagesize,"w360h504") == 0)
+ media = '\3';
+ else if (strcmp(privdata.pagesize,"w432h576") == 0)
+ media = '\6';
+ else if (strcmp(privdata.pagesize,"w432h648") == 0)
+ media = '\5';
+ else if (strcmp(privdata.pagesize,"4x6_x2") == 0)
+ media = '\5';
+ else if (strcmp(privdata.pagesize,"w144h432") == 0)
+ media = '\7';
+
+ stp_put32_le(0x10, v);
+ stp_put32_le(2145, v); /* Printer Model */
+ stp_put32_le(0x00, v);
+ stp_put32_le(0x01, v);
+
+ stp_put32_le(0x64, v);
+ stp_put32_le(0x00, v);
+ stp_put32_le(media, v); /* Media Type */
+ stp_put32_le(0x00, v);
+
+ if (strcmp(privdata.pagesize,"4x6_x2") == 0) {
+ stp_put32_le(0x02, v);
+ } else if (strcmp(privdata.pagesize,"2x6_x2") == 0) {
+ stp_put32_le(0x04, v);
+ } else {
+ stp_put32_le(0x00, v); /* Print Method */
+ }
+
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v); /* Print Mode */
+ stp_put32_le(0x00, v);
+ stp_put32_le(0x00, v);
+
+ stp_put32_le(0x00, v);
+ stp_put32_le(privdata.w_size, v); /* Columns */
+ stp_put32_le(privdata.h_size, v); /* Rows */
+ stp_put32_le(0x01, v); /* Copies */
+
+ stp_put32_le(0x00, v);
+ stp_put32_le(0x00, v);
+ stp_put32_le(0x00, v);
+ stp_put32_le(0xffffffce, v);
+
+ stp_put32_le(0x00, v);
+ stp_put32_le(0xffffffce, v);
+ stp_put32_le(privdata.w_dpi, v); /* Dots Per Inch */
+ stp_put32_le(0xffffffce, v);
+
+ stp_put32_le(0x00, v);
+ stp_put32_le(0xffffffce, v);
+ stp_put32_le(0x00, v);
+ stp_put32_le(0x00, v);
+
+ stp_put32_le(0x00, v);
+}
+
+static void shinko_chcs2145_printer_end(stp_vars_t *v)
+{
+ stp_putc(0x04, v);
+ stp_putc(0x03, v);
+ stp_putc(0x02, v);
+ stp_putc(0x01, v);
+}
/* Dai Nippon Printing DS40 */
+static const dyesub_resolution_t res_dnpds40_dpi[] =
+{
+ { "300x300", 300, 300},
+ { "300x600", 300, 600},
+};
+
+LIST(dyesub_resolution_list_t, res_dnpds40_dpi_list, dyesub_resolution_t, res_dnpds40_dpi);
+
+/* Imaging area is wider than print size, we always must supply the
+ printer with the full imaging width. */
static const dyesub_pagesize_t dnpds40_dock_page[] =
{
- { "w288h432", "4x6", PT(1920,300)+1, PT(1240,300)+1, 0, 0, 0, 0,
- DYESUB_PORTRAIT},
- { "w432h576", "6x9", PT(1920,300)+1, PT(2740,300)+1, 0, 0, 0, 0,
- DYESUB_PORTRAIT},
- { "A5", "6x8", PT(1920,300)+1, PT(2436,300)+1, 0, 0, 0, 0,
- DYESUB_PORTRAIT},
+ { "B7", "3.5x5", PT(1920,300)+1, PT(1088,300)+1, PT(112,300), PT(112,300), 0, 0, DYESUB_PORTRAIT},
+ { "w288h432", "4x6", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "2x6_x2", "2x6*2", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#endif
+ { "w360h504", "5x7", PT(1920,300)+1, PT(2138,300)+1, PT(112,300), PT(112,300), 0, 0, DYESUB_PORTRAIT},
+ { "A5", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "4x6_x2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#endif
+ { "w432h576", "6x9", PT(1920,300)+1, PT(2740,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, dnpds40_dock_page_list, dyesub_pagesize_t, dnpds40_dock_page);
static const dyesub_printsize_t dnpds40_dock_printsize[] =
{
+ { "300x300", "B7", 1920, 1088},
+ { "300x600", "B7", 1920, 2176},
{ "300x300", "w288h432", 1920, 1240},
- { "300x300", "w432h576", 1920, 2740},
+ { "300x600", "w288h432", 1920, 2480},
+#ifdef DNPX2
+ { "300x300", "2x6_x2", 1920, 1240},
+ { "300x600", "2x6_x2", 1920, 2480},
+#endif
+ { "300x300", "w360h504", 1920, 2138},
+ { "300x600", "w360h504", 1920, 4276},
{ "300x300", "A5", 1920, 2436},
+ { "300x600", "A5", 1920, 4872},
+#ifdef DNPX2
+ { "300x300", "4x6_x2", 1920, 2498},
+ { "300x600", "4x6_x2", 1920, 4996},
+#endif
+ { "300x300", "w432h576", 1920, 2740},
+ { "300x600", "w432h576", 1920, 5480},
};
LIST(dyesub_printsize_list_t, dnpds40_dock_printsize_list, dyesub_printsize_t, dnpds40_dock_printsize);
+static const laminate_t dnpds40_laminate[] =
+{
+ {"Glossy", N_("Glossy"), {2, "00"}},
+ {"Matte", N_("Matte"), {2, "01"}},
+};
+
+LIST(laminate_list_t, dnpds40_laminate_list, laminate_t, dnpds40_laminate);
+
+
+static void dnpds40ds80_printer_start(stp_vars_t *v)
+{
+ /* XXX Unknown purpose. */
+ stp_zprintf(v, "\033PCNTRL RETENTION 0000000800000000");
+
+ /* Configure Lamination */
+ stp_zprintf(v, "\033PCNTRL OVERCOAT 00000008000000");
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v); /* Lamination mode */
+
+ /* Don't resume after error.. XXX should be in backend */
+ stp_zprintf(v, "\033PCNTRL BUFFCNTRL 0000000800000000");
+
+ /* Set quantity.. Backend overrides as needed. */
+ stp_zprintf(v, "\033PCNTRL QTY 000000080000001\r");
+
+}
+
+static void dnpds40_printer_start(stp_vars_t *v)
+{
+ /* Common code */
+ dnpds40ds80_printer_start(v);
+
+ /* Set cutter option to "normal" */
+ stp_zprintf(v, "\033PCNTRL CUTTER 0000000800000");
+ if (!strcmp(privdata.pagesize, "2x6_x2")) {
+ stp_zprintf(v, "120");
+ } else {
+ stp_zprintf(v, "000");
+ }
+
+ /* Configure multi-cut/page size */
+ stp_zprintf(v, "\033PIMAGE MULTICUT 00000008000000");
+
+ if (!strcmp(privdata.pagesize, "B7")) {
+ stp_zprintf(v, "01");
+ } else if (!strcmp(privdata.pagesize, "w288h432")) {
+ stp_zprintf(v, "02");
+ } else if (!strcmp(privdata.pagesize, "w360h504")) {
+ stp_zprintf(v, "03");
+ } else if (!strcmp(privdata.pagesize, "A5")) {
+ stp_zprintf(v, "04");
+ } else if (!strcmp(privdata.pagesize, "w432h576")) {
+ stp_zprintf(v, "05");
+ } else if (!strcmp(privdata.pagesize, "4x6_x2")) {
+ stp_zprintf(v, "12");
+ } else {
+ stp_zprintf(v, "00");
+ }
+}
+
static void dnpds40_printer_end(stp_vars_t *v)
{
stp_zprintf(v, "\033PCNTRL START"); dyesub_nputc(v, ' ', 19);
@@ -1525,57 +2944,227 @@ static void dnpds40_plane_init(stp_vars_t *v)
(privdata.plane == 2 ? 'M' :
'C' ));
- long RFSize = (privdata.w_size*privdata.h_size) + 1024 + 54;
- long AdSize = (32 - (RFSize % 32));
- long FSize = RFSize + AdSize;
+ long PadSize = 10;
+ long FSize = (privdata.w_size*privdata.h_size) + 1024 + 54 + PadSize;
- stp_zprintf(v, "\033PCNTRL RETENTION 0000000800000000");
- stp_zprintf(v, "\033PIMAGE %cPLANE", p); dyesub_nputc(v, ' ', 10);
+ /* Printer command plus length of data to follow */
+ stp_zprintf(v, "\033PIMAGE %cPLANE %08ld", p, FSize);
- stp_zprintf(v, "0%ld", FSize);
+ /* Each plane is essentially a tweaked BMP file */
+
+ /* BMP header */
stp_zprintf(v, "BM");
stp_put32_le(FSize, v);
dyesub_nputc(v, '\0', 4);
- stp_put32_le(1088, v);
- stp_put32_le(40, v);
+ stp_put32_le(1088, v); /* Offset to pixel data: 1024 + (14+40-10) + 10 */
+
+ /* DIB header */
+ stp_put32_le(40, v); /* DIB header size */
stp_put32_le(privdata.w_size, v);
stp_put32_le(privdata.h_size, v);
- stp_put16_le(1, v);
- stp_put16_le(8, v);
- dyesub_nputc(v, '\0', 24);
- dyesub_nputc(v, '\0', 1024); /*RGB Array*/
- dyesub_nputc(v, '\0', AdSize); /*Locate to 32bit border */
+ stp_put16_le(1, v); /* single channel */
+ stp_put16_le(8, v); /* 8bpp */
+ dyesub_nputc(v, '\0', 8); /* compression + image size are ignored */
+ stp_put32_le(11808, v); /* horizontal pixels per meter, fixed at 300dpi */
+ if (privdata.h_dpi == 600)
+ stp_put32_le(23615, v); /* vertical pixels per meter @ 600dpi */
+ else
+ stp_put32_le(11808, v); /* vertical pixels per meter @ 300dpi */
+ stp_put32_le(256, v); /* entries in color table */
+ stp_put32_le(0, v); /* no important colors */
+ dyesub_nputc(v, '\0', 1024); /* RGB Array, unused by printer */
+ dyesub_nputc(v, '\0', PadSize); /* Pading to align plane data */
}
-
-
/* Dai Nippon Printing DS80 */
+/* Imaging area is wider than print size, we always must supply the
+ printer with the full imaging width. */
static const dyesub_pagesize_t dnpds80_dock_page[] =
{
- { "c8x10", "8x10", PT(2560,300)+1, PT(3036,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "C6", "8x4", PT(2560,300)+1, PT(1236,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},/* 8x4 */
- { "C5", "8x5", PT(2560,300)+1, PT(1536,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "C4", "8x6", PT(2560,300)+1, PT(1836,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "C3", "8x8", PT(2560,300)+1, PT(2436,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "C2", "8x12", PT(2560,300)+1, PT(3636,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "C1", "A4 Length", PT(2560,300)+1, PT(3544,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "w288h576", "8x4", PT(2560,300)+1, PT(1236,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w360h576", "8x5", PT(2560,300)+1, PT(1536,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576", "8x6", PT(2560,300)+1, PT(1836,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h576", "8x8", PT(2560,300)+1, PT(2436,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "8x4_x2", "8x4*2", PT(2560,300)+1, PT(2502,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "8x5_8x4", "8x5+8x4", PT(2560,300)+1, PT(2802,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+#endif
+ { "c8x10", "8x10", PT(2560,300)+1, PT(3036,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "8x5_x2", "8x5*2", PT(2560,300)+1, PT(3036,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "8x6_8x4", "8x6+8x4", PT(2560,300)+1, PT(3036,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "8x6_8x5", "8x6+8x5", PT(2560,300)+1, PT(3402,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+#endif
+ { "A4", "A4 Length", PT(2560,300)+1, PT(3544,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864", "8x12", PT(2560,300)+1, PT(3636,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "8x6_x2", "8x6*2", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "8x8_8x4", "8x8+8x4", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "8x4_x3", "8x4*3", PT(2560,300)+1, PT(3768,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+#endif
};
LIST(dyesub_pagesize_list_t, dnpds80_dock_page_list, dyesub_pagesize_t, dnpds80_dock_page);
static const dyesub_printsize_t dnpds80_dock_printsize[] =
{
+ { "300x300", "w288h576", 2560, 1236},
+ { "300x600", "w288h576", 2560, 2472},
+ { "300x300", "w360h576", 2560, 1536},
+ { "300x600", "w360h576", 2560, 3072},
+ { "300x300", "w432h576", 2560, 1836},
+ { "300x600", "w432h576", 2560, 3672},
+ { "300x300", "w576h576", 2560, 2436},
+ { "300x600", "w576h576", 2560, 4872},
+#ifdef DNPX2
+ { "300x300", "8x4_x2", 2560, 2502},
+ { "300x600", "8x4_x2", 2560, 5004},
+ { "300x300", "8x5_8x4", 2560, 2802},
+ { "300x600", "8x5_8x4", 2560, 5604},
+#endif
{ "300x300", "c8x10", 2560, 3036},
- { "300x300", "C6", 2560, 1236},
- { "300x300", "C5", 2560, 1536},
- { "300x300", "C4", 2560, 1836},
- { "300x300", "C3", 2560, 2436},
- { "300x300", "C2", 2560, 3636},
- { "300x300", "C1", 2560, 3544},
+ { "300x600", "c8x10", 2560, 6072},
+#ifdef DNPX2
+ { "300x300", "8x5_x2", 2560, 3102},
+ { "300x600", "8x5_x2", 2560, 6204},
+ { "300x300", "8x6_8x4", 2560, 3102},
+ { "300x600", "8x6_8x4", 2560, 6204},
+ { "300x300", "8x6_8x5", 2560, 3402},
+ { "300x600", "8x6_8x5", 2560, 6804},
+#endif
+ { "300x300", "A4", 2560, 3544},
+ { "300x600", "A4", 2560, 7088},
+ { "300x300", "w576h864", 2560, 3636},
+ { "300x600", "w576h864", 2560, 7272},
+#ifdef DNPX2
+ { "300x300", "8x6_x2", 2560, 3702},
+ { "300x600", "8x6_x2", 2560, 7404},
+ { "300x300", "8x8_8x4", 2560, 3702},
+ { "300x600", "8x8_8x4", 2560, 7404},
+ { "300x300", "8x4_x3", 2560, 3768},
+ { "300x600", "8x4_x3", 2560, 7536},
+#endif
};
LIST(dyesub_printsize_list_t, dnpds80_dock_printsize_list, dyesub_printsize_t, dnpds80_dock_printsize);
+static void dnpds80_printer_start(stp_vars_t *v)
+{
+ /* Common code */
+ dnpds40ds80_printer_start(v);
+
+ /* Set cutter option to "normal" */
+ stp_zprintf(v, "\033PCNTRL CUTTER 0000000800000000");
+
+ /* Configure multi-cut/page size */
+ stp_zprintf(v, "\033PIMAGE MULTICUT 00000008000000");
+
+ if (!strcmp(privdata.pagesize, "c8x10")) {
+ stp_zprintf(v, "06");
+ } else if (!strcmp(privdata.pagesize, "w576h864")) {
+ stp_zprintf(v, "07");
+ } else if (!strcmp(privdata.pagesize, "w288h576")) {
+ stp_zprintf(v, "08");
+ } else if (!strcmp(privdata.pagesize, "w360h576")) {
+ stp_zprintf(v, "09");
+ } else if (!strcmp(privdata.pagesize, "w432h576")) {
+ stp_zprintf(v, "10");
+ } else if (!strcmp(privdata.pagesize, "w576h576")) {
+ stp_zprintf(v, "11");
+ } else if (!strcmp(privdata.pagesize, "8x4_x2")) {
+ stp_zprintf(v, "13");
+ } else if (!strcmp(privdata.pagesize, "8x5_x2")) {
+ stp_zprintf(v, "14");
+ } else if (!strcmp(privdata.pagesize, "8x6_x2")) {
+ stp_zprintf(v, "15");
+ } else if (!strcmp(privdata.pagesize, "8x5_8x4")) {
+ stp_zprintf(v, "16");
+ } else if (!strcmp(privdata.pagesize, "8x6_8x4")) {
+ stp_zprintf(v, "17");
+ } else if (!strcmp(privdata.pagesize, "8x6_8x5")) {
+ stp_zprintf(v, "18");
+ } else if (!strcmp(privdata.pagesize, "8x8_8x4")) {
+ stp_zprintf(v, "19");
+ } else if (!strcmp(privdata.pagesize, "8x4_x3")) {
+ stp_zprintf(v, "20");
+ } else if (!strcmp(privdata.pagesize, "A4")) {
+ stp_zprintf(v, "21");
+ } else {
+ stp_zprintf(v, "00");
+ }
+}
+
+/* Imaging area is wider than print size, we always must supply the
+ printer with the full imaging width. */
+static const dyesub_pagesize_t dnpsrx1_dock_page[] =
+{
+ { "B7", "3.5x5", PT(1920,300)+1, PT(1088,300)+1, PT(112,300), PT(112,300), 0, 0, DYESUB_PORTRAIT},
+ { "w288h432", "4x6", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "2x6_x2", "2x6*2", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#endif
+ { "w360h504", "5x7", PT(1920,300)+1, PT(2138,300)+1, PT(112,300), PT(112,300), 0, 0, DYESUB_PORTRAIT},
+ { "A5", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#ifdef DNPX2
+ { "4x6_x2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+#endif
+};
+
+LIST(dyesub_pagesize_list_t, dnpsrx1_dock_page_list, dyesub_pagesize_t, dnpsrx1_dock_page);
+
+static const dyesub_printsize_t dnpsrx1_dock_printsize[] =
+{
+ { "300x300", "B7", 1920, 1088},
+ { "300x600", "B7", 1920, 2176},
+ { "300x300", "w288h432", 1920, 1240},
+ { "300x600", "w288h432", 1920, 2480},
+#ifdef DNPX2
+ { "300x300", "2x6_x2", 1920, 1240},
+ { "300x600", "2x6_x2", 1920, 2480},
+#endif
+ { "300x300", "w360h504", 1920, 2138},
+ { "300x600", "w360h504", 1920, 4276},
+ { "300x300", "A5", 1920, 2436},
+ { "300x600", "A5", 1920, 4872},
+#ifdef DNPX2
+ { "300x300", "4x6_x2", 1920, 2498},
+ { "300x600", "4x6_x2", 1920, 4996},
+#endif
+};
+
+LIST(dyesub_printsize_list_t, dnpsrx1_dock_printsize_list, dyesub_printsize_t, dnpsrx1_dock_printsize);
+
+static void dnpdsrx1_printer_start(stp_vars_t *v)
+{
+ /* Common code */
+ dnpds40ds80_printer_start(v);
+
+ /* Set cutter option to "normal" */
+ stp_zprintf(v, "\033PCNTRL CUTTER 0000000800000");
+ if (!strcmp(privdata.pagesize, "2x6_x2")) {
+ stp_zprintf(v, "120");
+ } else {
+ stp_zprintf(v, "000");
+ }
+
+ /* Configure multi-cut/page size */
+ stp_zprintf(v, "\033PIMAGE MULTICUT 00000008000000");
+
+ if (!strcmp(privdata.pagesize, "B7")) {
+ stp_zprintf(v, "01");
+ } else if (!strcmp(privdata.pagesize, "w288h432")) {
+ stp_zprintf(v, "02");
+ } else if (!strcmp(privdata.pagesize, "w360h504")) {
+ stp_zprintf(v, "03");
+ } else if (!strcmp(privdata.pagesize, "A5")) {
+ stp_zprintf(v, "04");
+ } else if (!strcmp(privdata.pagesize, "4x6_x2")) {
+ stp_zprintf(v, "12");
+ } else {
+ stp_zprintf(v, "00");
+ }
+}
+
/* Model capabilities */
static const dyesub_cap_t dyesub_model_capabilities[] =
@@ -1593,7 +3182,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
&p10_block_init_func, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &p10_laminate_list,
+ &p10_laminate_list, NULL,
},
{ /* Olympus P-200 */
4,
@@ -1608,7 +3197,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&p200_plane_init_func, NULL,
NULL, NULL,
p200_adj_any, p200_adj_any, p200_adj_any,
- NULL,
+ NULL, NULL,
},
{ /* Olympus P-300 */
0,
@@ -1623,7 +3212,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, &p300_plane_end_func,
&p300_block_init_func, NULL,
p300_adj_cyan, p300_adj_magenta, p300_adj_yellow,
- NULL,
+ NULL, NULL,
},
{ /* Olympus P-400 */
1,
@@ -1638,7 +3227,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&p400_plane_init_func, &p400_plane_end_func,
&p400_block_init_func, NULL,
p400_adj_cyan, p400_adj_magenta, p400_adj_yellow,
- NULL,
+ NULL, NULL,
},
{ /* Olympus P-440 */
3,
@@ -1652,7 +3241,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
&p440_block_init_func, &p440_block_end_func,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &p10_laminate_list,
+ &p10_laminate_list, NULL,
},
{ /* Olympus P-S100 */
20,
@@ -1666,7 +3255,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL,
+ NULL, NULL,
},
{ /* Canon CP-10 */
1002,
@@ -1678,11 +3267,11 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
| DYESUB_FEATURE_BORDERLESS | DYESUB_FEATURE_WHITE_BORDER
| DYESUB_FEATURE_PLANE_INTERLACE,
- &cpx00_printer_init_func, NULL,
+ &cp10_printer_init_func, NULL,
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
{ /* Canon CP-100, CP-200, CP-300 */
1000,
@@ -1698,11 +3287,12 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
- { /* Canon CP-220, CP-330, SELPHY CP-400, SELPHY CP-500, SELPHY CP-510,
- SELPHY CP-600, SELPHY CP-710, SELPHY CP-720, SELPHY CP-730,
- SELPHY CP-760, SELPHY CP-770, SELPHY CP-780 */
+ { /* Canon CP-220, CP-330, SELPHY CP400, SELPHY CP500, SELPHY CP510,
+ SELPHY CP520, SELPHY CP530, SELPHY CP600, SELPHY CP710,
+ SELPHY CP720, SELPHY CP730, SELPHY CP740, SELPHY CP750,
+ SELPHY CP760, SELPHY CP770, SELPHY CP780 */
1001,
&ymc_ink_list,
&res_300dpi_list,
@@ -1716,25 +3306,9 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
- },
- { /* Canon CP-520, SELPHY CP-530, SELPHY CP-740, SELPHY CP-750 */
- 1004,
- &ymc_ink_list,
- &res_300dpi_list,
- &cp220_page_list,
- &cp220_printsize_list,
- SHRT_MAX,
- DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
- | DYESUB_FEATURE_BORDERLESS | DYESUB_FEATURE_WHITE_BORDER
- | DYESUB_FEATURE_PLANE_INTERLACE,
- &cp520_printer_init_func, NULL,
- &cpx00_plane_init_func, NULL,
NULL, NULL,
- cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
},
- { /* Canon SELPHY ES1 (!experimental) */
+ { /* Canon SELPHY ES1 */
1003,
&ymc_ink_list,
&res_300dpi_list,
@@ -1748,9 +3322,9 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es1_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
- { /* Canon SELPHY ES2, ES20 (!experimental) */
+ { /* Canon SELPHY ES2, SELPHY ES20 */
1005,
&ymc_ink_list,
&res_300dpi_list,
@@ -1764,9 +3338,9 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
- { /* Canon SELPHY ES3, ES30 (!experimental) */
+ { /* Canon SELPHY ES3, SELPHY ES30 */
1006,
&ymc_ink_list,
&res_300dpi_list,
@@ -1780,9 +3354,9 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
- { /* Canon SELPHY ES40 (!experimental) */
+ { /* Canon SELPHY ES40 */
1007,
&ymc_ink_list,
&res_300dpi_list,
@@ -1796,9 +3370,9 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
- { /* Canon SELPHY CP790 (!experimental) */
+ { /* Canon SELPHY CP790 */
1008,
&ymc_ink_list,
&res_300dpi_list,
@@ -1812,9 +3386,9 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
- { /* Canon SELPHY CP-800 */
+ { /* Canon SELPHY CP800 */
1009,
&ymc_ink_list,
&res_300dpi_list,
@@ -1824,27 +3398,27 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
| DYESUB_FEATURE_BORDERLESS | DYESUB_FEATURE_WHITE_BORDER
| DYESUB_FEATURE_PLANE_INTERLACE,
- &cp520_printer_init_func, NULL,
+ &cpx00_printer_init_func, NULL,
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL,
+ NULL, NULL,
},
-
- { /* Sony DPP-EX5, DPP-EX7 */
- 2002,
- &rgb_ink_list,
- &res_403dpi_list,
- &dppex5_page_list,
- &dppex5_printsize_list,
- 100,
+ { /* Canon SELPHY CP900 */
+ 1010,
+ &ymc_ink_list,
+ &res_300dpi_list,
+ &cpx00_page_list,
+ &cpx00_printsize_list,
+ SHRT_MAX,
DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
- | DYESUB_FEATURE_BORDERLESS,
- &dppex5_printer_init, &dppex5_printer_end,
+ | DYESUB_FEATURE_BORDERLESS | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &cpx00_printer_init_func, &cp900_printer_end_func,
+ &cpx00_plane_init_func, NULL,
+ NULL, NULL,
+ cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
NULL, NULL,
- &dppex5_block_init, NULL,
- NULL, NULL, NULL,
- &dppex5_laminate_list,
},
{ /* Sony UP-DP10 */
2000,
@@ -1859,7 +3433,36 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
updp10_adj_cyan, updp10_adj_magenta, updp10_adj_yellow,
- &updp10_laminate_list,
+ &updp10_laminate_list, NULL,
+ },
+ { /* Sony UP-DR150 */
+ 2001,
+ &rgb_ink_list,
+ &res_334dpi_list,
+ &updr150_page_list,
+ &updr150_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
+ &updr150_printer_init_func, &updr150_printer_end_func,
+ NULL, NULL,
+ NULL, NULL,
+ NULL, NULL, NULL,
+ &updp10_laminate_list, NULL,
+ },
+ { /* Sony DPP-EX5, DPP-EX7 */
+ 2002,
+ &rgb_ink_list,
+ &res_403dpi_list,
+ &dppex5_page_list,
+ &dppex5_printsize_list,
+ 100,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_BORDERLESS,
+ &dppex5_printer_init, &dppex5_printer_end,
+ NULL, NULL,
+ &dppex5_block_init, NULL,
+ NULL, NULL, NULL,
+ &dppex5_laminate_list, NULL,
},
{ /* Sony UP-DR100 */
2003,
@@ -1873,21 +3476,21 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &updr100_laminate_list,
+ &updr100_laminate_list, NULL,
},
- { /* Sony UP-DR150 */
- 2001,
+ { /* Sony UP-DR200 */
+ 2004,
&rgb_ink_list,
&res_334dpi_list,
&updr150_page_list,
&updr150_printsize_list,
SHRT_MAX,
DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
- &updr150_printer_init_func, &updr150_printer_end_func,
+ &updr200_printer_init_func, &updr150_printer_end_func,
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL,
+ &updr200_laminate_list, NULL,
},
{ /* Fujifilm Printpix CX-400 */
3000,
@@ -1902,7 +3505,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL,
+ NULL, NULL,
},
{ /* Fujifilm Printpix CX-550 */
3001,
@@ -1917,7 +3520,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL,
+ NULL, NULL,
},
{ /* Fujifilm FinePix NX-500 */
3002,
@@ -1931,7 +3534,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL,
+ NULL, NULL,
},
{ /* Kodak Easyshare Dock family */
4000,
@@ -1946,8 +3549,207 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&kodak_dock_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL,
+ NULL, NULL,
+ },
+ { /* Kodak Photo Printer 6800 */
+ 4001,
+ &rgb_ink_list,
+ &res_300dpi_list,
+ &kodak_6800_page_list,
+ &kodak_6800_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
+ &kodak_6800_printer_init, NULL,
+ NULL, NULL, /* No plane funcs */
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_6800_laminate_list, NULL,
+ },
+ { /* Kodak Photo Printer 6850 */
+ 4002,
+ &rgb_ink_list,
+ &res_300dpi_list,
+ &kodak_6850_page_list,
+ &kodak_6850_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
+ &kodak_6850_printer_init, NULL,
+ NULL, NULL, /* No plane funcs */
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_6800_laminate_list, NULL,
+ },
+ { /* Kodak Photo Printer 605 */
+ 4003,
+ &rgb_ink_list,
+ &res_300dpi_list,
+ &kodak_6800_page_list,
+ &kodak_6800_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
+ &kodak_605_printer_init, NULL,
+ NULL, NULL, /* No plane funcs */
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_605_laminate_list, NULL,
+ },
+ { /* Kodak Professional 1400 */
+ 4004,
+ &bgr_ink_list,
+ &res_301dpi_list,
+ &kodak_1400_page_list,
+ &kodak_1400_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH
+ | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_ROW_INTERLACE,
+ &kodak_1400_printer_init, NULL,
+ NULL, NULL,
+ NULL, NULL,
+ NULL, NULL, NULL,
+ &kodak_6800_laminate_list,
+ &kodak_1400_media_list,
+ },
+ { /* Kodak Photo Printer 805 */
+ 4005,
+ &bgr_ink_list,
+ &res_301dpi_list,
+ &kodak_805_page_list,
+ &kodak_805_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH
+ | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_ROW_INTERLACE,
+ &kodak_805_printer_init, NULL,
+ NULL, NULL, /* No plane funcs */
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_6800_laminate_list, NULL,
+ },
+ { /* Kodak Professional 9810 */
+ 4006,
+ &ymc_ink_list,
+ &res_300dpi_list,
+ &kodak_9810_page_list,
+ &kodak_9810_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &kodak_9810_printer_init, &kodak_9810_printer_end,
+ &kodak_9810_plane_init, NULL,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_9810_laminate_list, NULL,
+ },
+ { /* Kodak Professional 8500 */
+ 4100,
+ &bgr_ink_list,
+ &res_314dpi_list,
+ &kodak_8500_page_list,
+ &kodak_8500_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
+ &kodak_8500_printer_init, &kodak_8500_printer_end,
+ NULL, NULL, /* No plane funcs */
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_8500_laminate_list,
+ &kodak_8500_media_list,
+ },
+ { /* Mitsubishi CP3020D/DU/DE */
+ 4101,
+ &ymc_ink_list,
+ &res_314dpi_list,
+ &mitsu_cp3020d_page_list,
+ &mitsu_cp3020d_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &mitsu_cp3020d_printer_init, &mitsu_cp3020d_printer_end,
+ &mitsu_cp3020d_plane_init, &mitsu_cp3020d_plane_end,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ NULL, NULL,
+ },
+ { /* Mitsubishi CP3020DA/DAE */
+ 4102,
+ &bgr_ink_list,
+ &res_314dpi_list,
+ &mitsu_cp3020d_page_list,
+ &mitsu_cp3020d_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &mitsu_cp3020da_printer_init, &mitsu_cp3020da_printer_end,
+ &mitsu_cp3020da_plane_init, NULL,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ NULL, NULL,
+ },
+ { /* Mitsubishi CP9550D */
+ 4103,
+ &bgr_ink_list,
+ &res_346dpi_list,
+ &mitsu_cp9550_page_list,
+ &mitsu_cp9550_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &mitsu_cp9550_printer_init, &mitsu_cp9550_printer_end,
+ &mitsu_cp3020da_plane_init, NULL,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ NULL, NULL,
+ },
+ { /* Mitsubishi CP9810D */
+ 4104,
+ &bgr_ink_list,
+ &res_300dpi_list,
+ &mitsu_cp9810_page_list,
+ &mitsu_cp9810_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE | DYESUB_FEATURE_12BPP
+ | DYESUB_FEATURE_BIGENDIAN,
+ &mitsu_cp9810_printer_init, &mitsu_cp9810_printer_end,
+ &mitsu_cp3020da_plane_init, NULL,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &mitsu_cp9810_laminate_list, NULL,
+ },
+ { /* Mitsubishi CPD70D/CPD707D */
+ 4105,
+ &bgr_ink_list,
+ &res_300dpi_list,
+ &mitsu_cpd70x_page_list,
+ &mitsu_cpd70x_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE | DYESUB_FEATURE_16BPP
+ | DYESUB_FEATURE_BIGENDIAN,
+ &mitsu_cpd70x_printer_init, &mitsu_cpd70x_printer_end,
+ NULL, &mitsu_cpd70x_plane_end,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &mitsu_cpd70x_laminate_list, NULL,
+ },
+ { /* Mitsubishi CPK60D */
+ 4106,
+ &bgr_ink_list,
+ &res_300dpi_list,
+ &mitsu_cpk60_page_list,
+ &mitsu_cpk60_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE | DYESUB_FEATURE_16BPP
+ | DYESUB_FEATURE_BIGENDIAN,
+ &mitsu_cpk60_printer_init, &mitsu_cpd70x_printer_end,
+ NULL, &mitsu_cpd70x_plane_end,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &mitsu_cpd70x_laminate_list, NULL,
},
+
{ /* Shinko CHC-S9045 (experimental) */
5000,
&rgb_ink_list,
@@ -1960,37 +3762,66 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL,
+ NULL, NULL,
},
- { /* Dai Nippon Printing DS40 */
- 6000,
+ { /* Shinko/Sinfonia CHC-S2145 */
+ 5001,
&rgb_ink_list,
&res_300dpi_list,
+ &shinko_chcs2145_page_list,
+ &shinko_chcs2145_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
+ &shinko_chcs2145_printer_init, &shinko_chcs2145_printer_end,
+ NULL, NULL, /* No planes */
+ NULL, NULL, /* No blocks */
+ NULL, NULL, NULL, /* Color correction in printer */
+ &shinko_chcs2145_laminate_list, NULL,
+ },
+ { /* Dai Nippon Printing DS40 */
+ 6000,
+ &bgr_ink_list,
+ &res_dnpds40_dpi_list,
&dnpds40_dock_page_list,
&dnpds40_dock_printsize_list,
SHRT_MAX,
- DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT | DYESUB_FEATURE_WHITE_BORDER
| DYESUB_FEATURE_PLANE_INTERLACE | DYESUB_FEATURE_PLANE_LEFTTORIGHT,
- NULL, &dnpds40_printer_end,
+ &dnpds40_printer_start, &dnpds40_printer_end,
&dnpds40_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL,
+ &dnpds40_laminate_list, NULL,
},
{ /* Dai Nippon Printing DS80 */
6001,
- &rgb_ink_list,
- &res_300dpi_list,
+ &bgr_ink_list,
+ &res_dnpds40_dpi_list,
&dnpds80_dock_page_list,
&dnpds80_dock_printsize_list,
SHRT_MAX,
- DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT | DYESUB_FEATURE_WHITE_BORDER
| DYESUB_FEATURE_PLANE_INTERLACE | DYESUB_FEATURE_PLANE_LEFTTORIGHT,
- NULL, &dnpds40_printer_end,
+ &dnpds80_printer_start, &dnpds40_printer_end,
&dnpds40_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL,
+ &dnpds40_laminate_list, NULL,
+ },
+ { /* Dai Nippon Printing DSRX1 */
+ 6002,
+ &bgr_ink_list,
+ &res_dnpds40_dpi_list,
+ &dnpsrx1_dock_page_list,
+ &dnpsrx1_dock_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_PLANE_INTERLACE | DYESUB_FEATURE_PLANE_LEFTTORIGHT,
+ &dnpdsrx1_printer_start, &dnpds40_printer_end,
+ &dnpds40_plane_init, NULL,
+ NULL, NULL,
+ NULL, NULL, NULL,
+ &dnpds40_laminate_list, NULL,
},
};
@@ -2133,7 +3964,25 @@ static const laminate_t* dyesub_get_laminate_pattern(stp_vars_t *v)
}
return l;
}
-
+
+static const dyesub_media_t* dyesub_get_mediatype(stp_vars_t *v)
+{
+ const char *mpar = stp_get_string_parameter(v, "MediaType");
+ const dyesub_cap_t *caps = dyesub_get_model_capabilities(
+ stp_get_model_id(v));
+ const dyesub_media_list_t *mlist = caps->media;
+ const dyesub_media_t *m = NULL;
+ int i;
+
+ for (i = 0; i < mlist->n_items; i++)
+ {
+ m = &(mlist->item[i]);
+ if (strcmp(m->name, mpar) == 0)
+ break;
+ }
+ return m;
+}
+
static void
dyesub_printsize(const stp_vars_t *v,
int *width,
@@ -2236,7 +4085,21 @@ dyesub_parameters(const stp_vars_t *v, const char *name,
else if (strcmp(name, "MediaType") == 0)
{
description->bounds.str = stp_string_list_create();
- description->is_active = 0;
+ if (caps->media) {
+ const dyesub_media_list_t *mlist = caps->media;
+
+ for (i = 0; i < mlist->n_items; i++)
+ {
+ const dyesub_media_t *m = &(mlist->item[i]);
+ stp_string_list_add_string(description->bounds.str,
+ m->name, gettext(m->text));
+ }
+ description->deflt.str =
+ stp_string_list_param(description->bounds.str, 0)->name;
+ description->is_active = 1;
+ } else {
+ description->is_active = 0;
+ }
}
else if (strcmp(name, "InputSlot") == 0)
{
@@ -2562,7 +4425,7 @@ dyesub_read_image(stp_vars_t *v,
{
int image_px_width = stp_image_width(image);
int image_px_height = stp_image_height(image);
- int row_size = image_px_width * pv->ink_channels * pv->bytes_per_out_channel;
+ int row_size = image_px_width * pv->ink_channels * sizeof(short);
unsigned short **image_data;
unsigned int zero_mask;
int i;
@@ -2605,7 +4468,6 @@ dyesub_print_pixel(stp_vars_t *v,
int plane)
{
unsigned short ink[MAX_INK_CHANNELS * MAX_BYTES_PER_CHANNEL], *out;
- unsigned char *ink_u8;
int i, j, b;
if (pv->print_mode == DYESUB_LANDSCAPE)
@@ -2635,20 +4497,35 @@ dyesub_print_pixel(stp_vars_t *v,
}
}
- if (pv->bytes_per_ink_channel == 1) /* convert 16bits to 8bit */
+ /* Downscale 16bpp to output bpp */
+ /* FIXME: Do we want to round? */
+ if (pv->bytes_per_ink_channel == 1)
{
- ink_u8 = (unsigned char *) ink;
+ unsigned char *ink_u8 = (unsigned char *) ink;
for (i = 0; i < pv->ink_channels; i++)
- ink_u8[i] = ink[i] / 257;
+ ink_u8[i] = ink[i] / 257;
+ /* FIXME: This really should be corrected to be: */
+ /* ink_u8[i] = ink[i] >> 8; */
+ }
+ else if (pv->bits_per_ink_channel != 16)
+ {
+ for (i = 0; i < pv->ink_channels; i++)
+ ink[i] = ink[i] >> (16 - pv->bits_per_ink_channel);
}
-
- if (pv->plane_interlacing)
- stp_zfwrite((char *) ink + plane, pv->bytes_per_ink_channel, 1, v);
+
+ /* Byteswap as needed */
+ if (pv->bytes_per_ink_channel == 2 && pv->byteswap)
+ for (i = 0; i < pv->ink_channels; i++)
+ ink[i] = ((ink[i] >> 8) & 0xff) | ((ink[i] & 0xff) << 8);
+
+ if (pv->plane_interlacing || pv->row_interlacing)
+ stp_zfwrite((char *) ink + (plane * pv->bytes_per_ink_channel),
+ pv->bytes_per_ink_channel, 1, v);
else
-/* stp_zfwrite((char *) ink, pv->bytes_per_ink_channel, pv->ink_channels, v);*/
- /* print inks in right order, eg. RGB BGR */
+ /* print inks in correct order, eg. RGB BGR */
for (b = 0; b < pv->ink_channels; b++)
- stp_zfwrite((char *) ink + (pv->ink_order[b]-1), pv->bytes_per_ink_channel, 1, v);
+ stp_zfwrite((char *) ink + (pv->bytes_per_ink_channel * (pv->ink_order[b]-1)),
+ pv->bytes_per_ink_channel, 1, v);
return 1;
}
@@ -2682,13 +4559,16 @@ dyesub_print_plane(stp_vars_t *v,
int plane)
{
int ret = 0;
- int h, row;
- int out_bytes = (pv->plane_interlacing ? 1 : pv->ink_channels)
+ int h, row, p;
+ int out_bytes = ((pv->plane_interlacing || pv->row_interlacing) ? 1 : pv->ink_channels)
* pv->bytes_per_ink_channel;
-
for (h = 0; h <= pv->prnb_px - pv->prnt_px; h++)
{
+ p = pv->row_interlacing ? 0 : plane;
+
+ do {
+
if (h % caps->block_size == 0)
{ /* block init */
privdata.block_min_h = h + pv->prnt_px;
@@ -2716,7 +4596,7 @@ dyesub_print_plane(stp_vars_t *v,
pv->outh_px, pv->imgh_px);
stp_deprintf(STP_DBG_DYESUB,
"dyesub_print_plane: h = %d, row = %d\n", h, row);
- ret = dyesub_print_row(v, pv, row, plane);
+ ret = dyesub_print_row(v, pv, row, p);
if (dyesub_feature(caps, DYESUB_FEATURE_FULL_WIDTH)
&& pv->outr_px < pv->prnw_px)
@@ -2730,6 +4610,8 @@ dyesub_print_plane(stp_vars_t *v,
{ /* block end */
dyesub_exec(v, caps->block_end_func, "caps->block_end");
}
+
+ } while (pv->row_interlacing && ++p < pv->ink_channels);
}
return ret;
}
@@ -2787,6 +4669,8 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
privdata.pagesize = stp_get_string_parameter(v, "PageSize");
if (caps->laminate)
privdata.laminate = dyesub_get_laminate_pattern(v);
+ if (caps->media)
+ privdata.media = dyesub_get_mediatype(v);
dyesub_imageable_area_internal(v,
(dyesub_feature(caps, DYESUB_FEATURE_WHITE_BORDER) ? 1 : 0),
@@ -2849,13 +4733,34 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
for (i = 0; i < pv.ink_channels; i++)
stp_channel_add(v, i, 0, 1.0);
pv.out_channels = stp_color_init(v, image, 65536);
- pv.bytes_per_ink_channel = 1; /* FIXME: this is printer dependent */
- pv.bytes_per_out_channel = 2; /* FIXME: this is ??? */
+
+ if (dyesub_feature(caps, DYESUB_FEATURE_12BPP)) {
+ pv.bytes_per_ink_channel = 2;
+ pv.bits_per_ink_channel = 12;
+ } else if (dyesub_feature(caps, DYESUB_FEATURE_16BPP)) {
+ pv.bytes_per_ink_channel = 2;
+ pv.bits_per_ink_channel = 16;
+ } else {
+ pv.bytes_per_ink_channel = 1;
+ pv.bits_per_ink_channel = 8;
+ }
+
+ if (pv.bytes_per_ink_channel > 1) {
+#if defined(__LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__)
+ pv.byteswap = dyesub_feature(caps, DYESUB_FEATURE_BIGENDIAN);
+#elif defined (__BIG_ENDIAN) || defined(__BIG_ENDIAN__)
+ pv.byteswap = !dyesub_feature(caps, DYESUB_FEATURE_BIGENDIAN);
+#else
+#error "Unable to determine endianness, aborting compilation!"
+#endif
+ }
+
pv.image_data = dyesub_read_image(v, &pv, image);
pv.empty_byte = (ink_type &&
(strcmp(ink_type, "RGB") == 0 || strcmp(ink_type, "BGR") == 0)
? '\xff' : '\0');
pv.plane_interlacing = dyesub_feature(caps, DYESUB_FEATURE_PLANE_INTERLACE);
+ pv.row_interlacing = dyesub_feature(caps, DYESUB_FEATURE_ROW_INTERLACE);
pv.plane_lefttoright = dyesub_feature(caps, DYESUB_FEATURE_PLANE_LEFTTORIGHT);
pv.print_mode = page_mode;
if (!pv.image_data)
@@ -2865,7 +4770,7 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
}
/* /FIXME */
-
+ /* FIXME: Provide a way of disabling/altering these curves */
dyesub_adjust_curve(v, caps->adj_cyan, "CyanCurve");
dyesub_adjust_curve(v, caps->adj_magenta, "MagentaCurve");
dyesub_adjust_curve(v, caps->adj_yellow, "YellowCurve");
@@ -2914,12 +4819,13 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
dyesub_swap_ints(&pv.imgh_px, &pv.imgw_px);
}
- /* assign private data *after* swaping image dimensions */
+ /* assign private data *after* swaping image dimensions */
privdata.w_dpi = w_dpi;
privdata.h_dpi = h_dpi;
privdata.w_size = pv.prnw_px;
privdata.h_size = pv.prnh_px;
privdata.print_mode = pv.print_mode;
+ privdata.bpp = pv.bits_per_ink_channel;
/* printer init */
dyesub_exec(v, caps->printer_init_func, "caps->printer_init");
diff --git a/src/main/print-papers.c b/src/main/print-papers.c
index ed1438a..7a7528d 100644
--- a/src/main/print-papers.c
+++ b/src/main/print-papers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-papers.c,v 1.42 2011/12/22 03:07:45 rlk Exp $"
+ * "$Id: print-papers.c,v 1.43 2014/01/12 01:30:44 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -113,6 +113,8 @@ stpi_paper_create(stp_papersize_t *p)
(const stp_papersize_t *) stp_list_item_get_data(paper_item);
if (ep && !strcmp(p->name, ep->name))
{
+ stp_erprintf("Duplicate paper size `%s'\n",
+ p->name);
stpi_paper_freefunc(p);
return 1;
}
diff --git a/src/main/print-pcl.c b/src/main/print-pcl.c
index 7c028c2..68d69d2 100644
--- a/src/main/print-pcl.c
+++ b/src/main/print-pcl.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-pcl.c,v 1.160 2010/12/05 21:38:15 rlk Exp $"
+ * "$Id: print-pcl.c,v 1.162 2014/01/04 23:07:22 rlk Exp $"
*
* Print plug-in HP PCL driver for the GIMP.
*
@@ -1724,7 +1724,7 @@ pcl_papersize_valid(const stp_papersize_t *pt,
return(0);
/*
- * Is it a recognised supported name?
+ * Is it a recognized supported name?
*/
if (pcl_convert_media_size(pt->name, model) != -1)
@@ -2274,23 +2274,19 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
*yellow, /* Yellow bitmap data */
*lcyan, /* Light Cyan bitmap data */
*lmagenta; /* Light Magenta bitmap data */
- int page_width, /* Width of page */
- page_height, /* Height of page */
- page_left,
+ int page_left,
page_top,
page_right,
page_bottom,
out_width, /* Width of image on page */
out_height, /* Height of image on page */
- out_channels, /* Output bytes per pixel */
errdiv, /* Error dividend */
errmod, /* Error modulus */
errval, /* Current error value */
errline, /* Current raster line */
errlast; /* Last raster line loaded */
unsigned zero_mask;
- int image_height,
- image_width;
+ int image_height;
const pcl_cap_t *caps; /* Printer capabilities */
int planes = 3; /* # of output planes */
int pcl_media_size; /* PCL media size code */
@@ -2302,7 +2298,7 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
int extra_left_margin = 0;
stp_curve_t *lum_adjustment;
stp_curve_t *hue_adjustment;
- double density;
+ double density;
if (!stp_verify(v))
{
@@ -2320,7 +2316,6 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
stp_image_init(image);
image_height = stp_image_height(image);
- image_width = stp_image_width(image);
/*
* Figure out the output resolution...
@@ -2379,11 +2374,8 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
&page_bottom, &page_top);
left -= page_left;
top -= page_top;
- page_width = page_right - page_left;
- page_height = page_bottom - page_top;
image_height = stp_image_height(image);
- image_width = stp_image_width(image);
/*
* Set media size here because it is needed by the margin calculation code.
@@ -2813,7 +2805,7 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
if (black && !privdata.do_cretb)
stp_dither_set_inks_simple(v, STP_ECOLOR_K, 3, dot_sizes_use, 1.0, 1.0);
- /* Note: no printer I know of does both CRet (4-level) and 6 colour, but
+ /* Note: no printer I know of does both CRet (4-level) and 6 color, but
what the heck. variable_dither_ranges copied from print-escp2.c */
if (privdata.do_6color) /* Photo for 69x */
@@ -2835,7 +2827,7 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
}
else if (privdata.do_6color)
{
- /* Set light inks for 6 colour printers.
+ /* Set light inks for 6 color printers.
Numbers copied from print-escp2.c */
stp_dither_set_inks_full(v, STP_ECOLOR_C, 2, photo_dither_shades, 1.0,
0.31 / .5);
@@ -2845,29 +2837,29 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
if (black)
stp_channel_set_density_adjustment(v, STP_ECOLOR_K, 0,
get_double_param(v, "BlackDensity") *
- get_double_param(v, "Density"));
+ density);
if (cyan)
stp_channel_set_density_adjustment(v, STP_ECOLOR_C, 0,
get_double_param(v, "CyanDensity") *
- get_double_param(v, "Density"));
+ density);
if (magenta)
stp_channel_set_density_adjustment(v, STP_ECOLOR_M, 0,
get_double_param(v, "MagentaDensity") *
- get_double_param(v, "Density"));
+ density);
if (yellow)
stp_channel_set_density_adjustment(v, STP_ECOLOR_Y, 0,
get_double_param(v, "YellowDensity") *
- get_double_param(v, "Density"));
+ density);
if (lcyan)
stp_channel_set_density_adjustment
(v, STP_ECOLOR_C, 1, (get_double_param(v, "CyanDensity") *
get_double_param(v, "LightCyanTrans") *
- get_double_param(v, "Density")));
+ density));
if (lmagenta)
stp_channel_set_density_adjustment
(v, STP_ECOLOR_M, 1, (get_double_param(v, "MagentaDensity") *
get_double_param(v, "LightMagentaTrans") *
- get_double_param(v, "Density")));
+ density));
if (!stp_check_curve_parameter(v, "HueMap", STP_PARAMETER_ACTIVE))
@@ -2882,7 +2874,7 @@ pcl_do_print(stp_vars_t *v, stp_image_t *image)
stp_curve_destroy(lum_adjustment);
}
- out_channels = stp_color_init(v, image, 65536);
+ (void) stp_color_init(v, image, 65536);
errdiv = image_height / out_height;
errmod = image_height % out_height;
@@ -3082,4 +3074,3 @@ stp_module_t stp_module_data =
print_pcl_module_exit,
(void *) &print_pcl_module_data
};
-
diff --git a/src/main/print-raw.c b/src/main/print-raw.c
index 856dd07..95c0ef2 100644
--- a/src/main/print-raw.c
+++ b/src/main/print-raw.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-raw.c,v 1.42 2010/12/05 21:38:15 rlk Exp $"
+ * "$Id: print-raw.c,v 1.43 2013/09/08 15:35:18 rlk Exp $"
*
* Print plug-in RAW driver for the GIMP.
*
@@ -88,6 +88,12 @@ static const stp_parameter_t the_parameters[] =
STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE,
STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0
},
+ {
+ "PageSize", N_("Page Size"), "Color=No,Category=Basic Printer Setup",
+ N_("Size of the paper being printed to"),
+ STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE,
+ STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0
+ },
};
static const int the_parameter_count =
@@ -138,6 +144,19 @@ raw_parameters(const stp_vars_t *v, const char *name,
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
}
+ else if (strcmp(name, "PageSize") == 0)
+ {
+ int papersizes = stp_known_papersizes();
+ description->bounds.str = stp_string_list_create();
+ for (i = 0; i < papersizes; i++)
+ {
+ const stp_papersize_t *pt = stp_get_papersize_by_index(i);
+ stp_string_list_add_string(description->bounds.str,
+ pt->name, gettext(pt->text));
+ }
+ description->deflt.str =
+ stp_string_list_param(description->bounds.str, 0)->name;
+ }
else
description->is_active = 0;
}
diff --git a/src/main/print-util.c b/src/main/print-util.c
index 9bb46bf..3f1488e 100644
--- a/src/main/print-util.c
+++ b/src/main/print-util.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-util.c,v 1.117 2010/06/26 20:02:02 rlk Exp $"
+ * "$Id: print-util.c,v 1.120 2014/01/13 02:59:14 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -664,5 +664,10 @@ stp_get_parameter_list(const stp_vars_t *v)
void
stp_abort(void)
{
+ if (stp_get_debug_level() > 0)
+ {
+ int i = *((volatile int *) 0);
+ stp_erprintf("Crashing here...%d\n", i);
+ }
abort();
}
diff --git a/src/main/print-vars.c b/src/main/print-vars.c
index 1a5cf5c..27d9545 100644
--- a/src/main/print-vars.c
+++ b/src/main/print-vars.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-vars.c,v 1.94 2012/01/19 13:26:02 m0m Exp $"
+ * "$Id: print-vars.c,v 1.95 2014/01/04 00:31:38 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -129,7 +129,7 @@ value_freefunc(void *item)
case STP_PARAMETER_TYPE_STRING_LIST:
case STP_PARAMETER_TYPE_FILE:
case STP_PARAMETER_TYPE_RAW:
- stp_free((void *) v->value.rval.data);
+ stp_free(stpi_cast_safe(v->value.rval.data));
break;
case STP_PARAMETER_TYPE_CURVE:
if (v->value.cval)
@@ -466,7 +466,7 @@ set_raw_parameter(stp_list_t *list, const char *parameter, const char *value,
val = (value_t *) stp_list_item_get_data(item);
if (val->active == STP_PARAMETER_DEFAULTED)
val->active = STP_PARAMETER_ACTIVE;
- stp_free((void *) val->value.rval.data);
+ stp_free(stpi_cast_safe(val->value.rval.data));
}
else
{
@@ -2061,7 +2061,7 @@ fill_vars_from_xmltree(stp_mxml_node_t *prop, stp_mxml_node_t *root,
type = STP_PARAMETER_TYPE_DOUBLE;
stp_deprintf(STP_DBG_XML, " Set raw '%s' to '%s'\n",
p_name, cnode->value.text.string);
- stp_free((void *) raw->data);
+ stp_free(stpi_cast_safe(raw->data));
stp_free(raw);
}
}
diff --git a/src/main/printers.c b/src/main/printers.c
index 0fa08da..81be870 100644
--- a/src/main/printers.c
+++ b/src/main/printers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.c,v 1.89 2010/08/07 02:30:38 rlk Exp $"
+ * "$Id: printers.c,v 1.91 2014/01/12 01:30:44 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -449,7 +449,7 @@ stp_printer_get_defaults(const stp_printer_t *printer)
{
if (! printer->vars_initialized)
{
- stp_printer_t *nc_printer = (stp_printer_t *) printer;
+ stp_printer_t *nc_printer = (stp_printer_t *) stpi_cast_safe(printer);
stp_deprintf(STP_DBG_PRINTERS, " ==>init %s\n", printer->driver);
set_printer_defaults (nc_printer->printvars, 1, 0);
nc_printer->vars_initialized = 1;
@@ -982,6 +982,9 @@ stp_family_register(stp_list_t *family)
printer = (const stp_printer_t *) stp_list_item_get_data(printer_item);
if (!stp_list_get_item_by_name(printer_list, printer->driver))
stp_list_item_create(printer_list, NULL, printer);
+ else
+ stp_erprintf("Duplicate printer entry `%s' (%s)\n",
+ printer->driver, printer->long_name);
printer_item = stp_list_item_next(printer_item);
}
}
diff --git a/src/main/sequence.c b/src/main/sequence.c
index b6a8d2e..096c0b2 100644
--- a/src/main/sequence.c
+++ b/src/main/sequence.c
@@ -1,5 +1,5 @@
/*
- * "$Id: sequence.c,v 1.29 2011/02/17 02:15:18 rlk Exp $"
+ * "$Id: sequence.c,v 1.30 2014/01/04 00:31:38 rlk Exp $"
*
* Sequence data type. This type is designed to be derived from by
* the curve and dither matrix types.
@@ -63,12 +63,6 @@ struct stp_sequence
#define CHECK_SEQUENCE(sequence) STPI_ASSERT(sequence, NULL)
-static inline stp_sequence_t *
-deconst_sequence(const stp_sequence_t *sequence)
-{
- return (stp_sequence_t *) sequence;
-}
-
static void
sequence_ctor(stp_sequence_t *sequence)
{
@@ -219,7 +213,7 @@ stp_sequence_get_range(const stp_sequence_t *sequence,
{
if (sequence->recompute_range) /* Don't recompute the range if we don't
need to. */
- scan_sequence_range(deconst_sequence(sequence));
+ scan_sequence_range((stp_sequence_t *) stpi_cast_safe(sequence));
*low = sequence->rlo;
*high = sequence->rhi;
}
@@ -535,7 +529,7 @@ stp_sequence_get_##name##_data(const stp_sequence_t *sequence, size_t *count) \
return NULL; \
if (!sequence->name##_data) \
{ \
- stp_sequence_t *seq = deconst_sequence(sequence); \
+ stp_sequence_t *seq = (stp_sequence_t *) stpi_cast_safe(sequence); \
seq->name##_data = stp_zalloc(sizeof(t) * sequence->size); \
for (i = 0; i < sequence->size; i++) \
seq->name##_data[i] = (t) sequence->data[i]; \
diff --git a/src/main/string-list.c b/src/main/string-list.c
index 8d7ac3c..337a717 100644
--- a/src/main/string-list.c
+++ b/src/main/string-list.c
@@ -1,5 +1,5 @@
/*
- * "$Id: string-list.c,v 1.19 2005/06/15 01:13:41 rlk Exp $"
+ * "$Id: string-list.c,v 1.21 2014/01/04 00:31:38 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -33,8 +33,8 @@ static void
free_list_element(void *item)
{
stp_param_string_t *string = (stp_param_string_t *) (item);
- stp_free((char *) string->name);
- stp_free((char *) string->text);
+ stp_free(stpi_cast_safe(string->name));
+ stp_free(stpi_cast_safe(string->text));
stp_free(string);
}
@@ -130,6 +130,31 @@ stp_string_list_add_string(stp_string_list_t *list,
const char *text)
{
stp_param_string_t *new_string = stp_malloc(sizeof(stp_param_string_t));
+ do
+ {
+ const char *xname = name;
+ while (*xname)
+ {
+ if (!isalnum(*xname) &&
+ *xname != '_' && *xname != '-' && *xname != '+')
+ {
+ stp_erprintf("Gutenprint: bad string %s (%s)\n", name, text);
+ break;
+ }
+ xname++;
+ }
+ } while(0);
+ new_string->name = stp_strdup(name);
+ new_string->text = stp_strdup(text);
+ stp_list_item_create((stp_list_t *) list, NULL, new_string);
+}
+
+void
+stp_string_list_add_string_unsafe(stp_string_list_t *list,
+ const char *name,
+ const char *text)
+{
+ stp_param_string_t *new_string = stp_malloc(sizeof(stp_param_string_t));
new_string->name = stp_strdup(name);
new_string->text = stp_strdup(text);
stp_list_item_create((stp_list_t *) list, NULL, new_string);
diff --git a/src/testpattern/Makefile.in b/src/testpattern/Makefile.in
index e25a132..43d6242 100644
--- a/src/testpattern/Makefile.in
+++ b/src/testpattern/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -23,6 +22,51 @@
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
@@ -40,9 +84,11 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/run-testpattern-2.in $(top_srcdir)/scripts/global.mk \
- testpatternl.c testpatterny.c testpatterny.h
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(srcdir)/run-testpattern-2.in testpatterny.h testpatterny.c \
+ testpatternl.c $(top_srcdir)/scripts/depcomp \
+ $(top_srcdir)/scripts/ylwrap $(top_srcdir)/scripts/test-driver
@BUILD_TESTPATTERN_TRUE@bin_PROGRAMS = testpattern$(EXEEXT)
@BUILD_TESTPATTERN_TRUE@noinst_PROGRAMS = printers$(EXEEXT) \
@BUILD_TESTPATTERN_TRUE@ printer_options$(EXEEXT)
@@ -70,6 +116,10 @@ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
printer_options_SOURCES = printer_options.c
printer_options_OBJECTS = printer_options.$(OBJEXT)
printer_options_DEPENDENCIES = $(GUTENPRINT_LIBS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
printers_SOURCES = printers.c
printers_OBJECTS = printers.$(OBJEXT)
printers_DEPENDENCIES = $(GUTENPRINT_LIBS)
@@ -79,30 +129,66 @@ testpattern_OBJECTS = $(am_testpattern_OBJECTS)
am__DEPENDENCIES_1 =
testpattern_DEPENDENCIES = $(GUTENPRINT_LIBS) $(am__DEPENDENCIES_1)
SCRIPTS = $(noinst_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
@MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ ||
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
+LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
+LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS)
+AM_V_LEX = $(am__v_LEX_@AM_V@)
+am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@)
+am__v_LEX_0 = @echo " LEX " $@;
+am__v_LEX_1 =
YLWRAP = $(top_srcdir)/scripts/ylwrap
@MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ ||
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
+am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \
+ -e s/c++$$/h++/ -e s/c$$/h/
+YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
+LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS)
+AM_V_YACC = $(am__v_YACC_@AM_V@)
+am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@)
+am__v_YACC_0 = @echo " YACC " $@;
+am__v_YACC_1 =
SOURCES = printer_options.c printers.c $(testpattern_SOURCES)
DIST_SOURCES = printer_options.c printers.c $(testpattern_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -124,16 +210,215 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
DATA = $(pkgdata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/scripts/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/scripts/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
pkgdatadir = $(datadir)/$(PACKAGE)/samples
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -191,6 +476,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -202,6 +488,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -226,6 +513,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -359,7 +648,7 @@ EXTRA_DIST = testpatterny.h $(pkgdata_DATA) run-testpattern run-testpattern-1
all: all-am
.SUFFIXES:
-.SUFFIXES: .c .l .lo .o .obj .y
+.SUFFIXES: .c .l .lo .log .o .obj .test .test$(EXEEXT) .trs .y
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/scripts/global.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -381,6 +670,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -394,14 +684,19 @@ run-testpattern-2: $(top_builddir)/config.status $(srcdir)/run-testpattern-2.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -422,7 +717,8 @@ uninstall-binPROGRAMS:
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -444,20 +740,21 @@ clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-printer_options$(EXEEXT): $(printer_options_OBJECTS) $(printer_options_DEPENDENCIES)
+
+printer_options$(EXEEXT): $(printer_options_OBJECTS) $(printer_options_DEPENDENCIES) $(EXTRA_printer_options_DEPENDENCIES)
@rm -f printer_options$(EXEEXT)
- $(LINK) $(printer_options_OBJECTS) $(printer_options_LDADD) $(LIBS)
-printers$(EXEEXT): $(printers_OBJECTS) $(printers_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(printer_options_OBJECTS) $(printer_options_LDADD) $(LIBS)
+
+printers$(EXEEXT): $(printers_OBJECTS) $(printers_DEPENDENCIES) $(EXTRA_printers_DEPENDENCIES)
@rm -f printers$(EXEEXT)
- $(LINK) $(printers_OBJECTS) $(printers_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(printers_OBJECTS) $(printers_LDADD) $(LIBS)
testpatterny.h: testpatterny.c
- @if test ! -f $@; then \
- rm -f testpatterny.c; \
- $(MAKE) $(AM_MAKEFLAGS) testpatterny.c; \
- else :; fi
-testpattern$(EXEEXT): $(testpattern_OBJECTS) $(testpattern_DEPENDENCIES)
+ @if test ! -f $@; then rm -f testpatterny.c; else :; fi
+ @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) testpatterny.c; else :; fi
+
+testpattern$(EXEEXT): $(testpattern_OBJECTS) $(testpattern_DEPENDENCIES) $(EXTRA_testpattern_DEPENDENCIES)
@rm -f testpattern$(EXEEXT)
- $(LINK) $(testpattern_OBJECTS) $(testpattern_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(testpattern_OBJECTS) $(testpattern_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -472,31 +769,31 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testpatterny.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
.l.c:
- $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
+ $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
.y.c:
- $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
+ $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE)
mostlyclean-libtool:
-rm -f *.lo
@@ -505,8 +802,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgdataDATA: $(pkgdata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -520,30 +820,17 @@ uninstall-pkgdataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -555,15 +842,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -572,101 +855,194 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- $(am__tty_colors); \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- col=$$red; res=XPASS; \
- ;; \
- *) \
- col=$$grn; res=PASS; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xfail=`expr $$xfail + 1`; \
- col=$$lgn; res=XFAIL; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- col=$$red; res=FAIL; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- col=$$blu; res=SKIP; \
- fi; \
- echo "$${col}$$res$${std}: $$tst"; \
- done; \
- if test "$$all" -eq 1; then \
- tests="test"; \
- All=""; \
- else \
- tests="tests"; \
- All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
fi; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="$$All$$all $$tests passed"; \
- else \
- if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
- banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all $$tests failed"; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ else \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
else \
- if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
- banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- if test "$$skip" -eq 1; then \
- skipped="($$skip test was not run)"; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
else \
- skipped="($$skip tests were not run)"; \
+ color_start= color_end=; \
fi; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- if test "$$failed" -eq 0; then \
- echo "$$grn$$dashes"; \
- else \
- echo "$$red$$dashes"; \
- fi; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes$$std"; \
- test "$$failed" -eq 0; \
- else :; fi
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+run-testpattern-1.log: run-testpattern-1
+ @p='run-testpattern-1'; \
+ b='run-testpattern-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+run-testpattern-2.log: run-testpattern-2
+ @p='run-testpattern-2'; \
+ b='run-testpattern-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -716,11 +1092,19 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
clean-generic:
@@ -808,20 +1192,21 @@ uninstall-am: uninstall-binPROGRAMS uninstall-pkgdataDATA
.MAKE: check-am install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-binPROGRAMS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgdataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-binPROGRAMS uninstall-pkgdataDATA
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-binPROGRAMS install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgdataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ recheck tags tags-am uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-pkgdataDATA
@SET_MAKE@
diff --git a/src/testpattern/run-testpattern-2.in b/src/testpattern/run-testpattern-2.in
index 79e1466..0ab1320 100644
--- a/src/testpattern/run-testpattern-2.in
+++ b/src/testpattern/run-testpattern-2.in
@@ -12,9 +12,16 @@ my $calc_md5_file = undef;
my $calc_md5_dir = undef;
my $dontrun = 0;
my $retval = 0;
+my $halt_on_error = 0;
my $testpattern_command;
my @printer_list = ();
+my @exclude_list = ();
+my @include_patterns = ();
+my @exclude_patterns = ();
my @special_options = ();
+my $include_pattern = '';
+my $exclude_pattern = '';
+my %exclude_list = ();
my @standard_options = qw(InkType InkSet,RawChannels DitherAlgorithm Duplex MediaType InputSlot ColorCorrection ImageType FullBleed Quality UseGloss Weave PrintingDirection Density CyanDensity);
my $global_status = 1;
my $run_installed = 0;
@@ -26,6 +33,13 @@ my $vsize = 0.1;
my $left = 0.15;
my $top = 0.15;
my $geometry = "";
+my $restart = 1;
+my $global_fh;
+my $error = 0;
+my $global_printer;
+my $global_messages;
+my $global_page;
+my $global_case;
my @extras = ();
my @job_extras = ();
@@ -66,11 +80,12 @@ GetOptions("v+" => \$valgrind,
"p:i" => \$std_pages,
"P:i" => \$duplex_pages,
"s!" => \$skip_duplicate_printers,
- "S!" => \$single,
+ "S+" => \$single,
+ "H!" => \$halt_on_error,
"i!" => \$run_installed,
"r!" => \$skip_resolutions,
"R+" => \$use_min_res,
- "q!" => \$quiet,
+ "q+" => \$quiet,
"o=s" => \@special_options,
"f=s" => \@families,
"O=s" => \$output,
@@ -78,9 +93,12 @@ GetOptions("v+" => \$valgrind,
"m:s" => \$calc_md5_dir,
"M:s" => \$calc_md5_file,
"X" => \$rerun,
+ "x=s" => \@exclude_list,
+ "Y=s" => \@include_patterns,
+ "y=s" => \@exclude_patterns,
"l" => \$list_printers,
"L" => \$list_options,
- "V" => \$verbose,
+ "V+" => \$verbose,
"h" => \$help);
sub print_help_and_exit() {
@@ -88,54 +106,73 @@ sub print_help_and_exit() {
print STDERR <<EOF;
Usage: run-testpattern-2 [opts] [model ...]
- Options:
- -c Use callgrind (incompatible with -v)
+ Printer selection options:
-f family Test printers only in the specified family. Multiple
families may be tested. By default, all printer families
are tested.
- -g Attach testpattern job to gdb
- -G geometry Specify geometry (=(HxV)(+L+T))
- -i Use the installed Gutenprint libraries rather than
- source tree
+ -s Skip duplicate printers (with the same model number
+ in printers.xml).
+ -x printer Do not test the specified printer.
+ -y pattern Do not test printers matching the specified pattern(s).
+ -Y pattern Only test printers matching the specified pattern(s).
+
+ Logging options:
-m md5_dir Generate MD5 checksums and place them in the specified
directory, one file per run. Directory will be created
if necessary.
-M md5_file Generate MD5 checksums and place them in the specified
file, one line per run.
- -n Do not actually run testpattern
-O out_dir Generate actual output and place it in the specified
directory, one file per run. Directory will be created
if necessary.
+
+ Control options:
+ -H Halt on any error.
+ -S Run a separate testpattern command for each printer.
+ -SS Run a separate testpattern command for each case (slow).
+
+ Debugging options:
+ -c Use callgrind (incompatible with -v).
+ -g Attach testpattern job to gdb.
+ -v[v[v[v]]] Use valgrind. Number of -v options controls usage:
+ -v Basic valgrind checking, no leak checking
+ -vv Additional leak checking
+ -vvv Show reachable data also
+ -vvvv Minimal checks only
+
+ Test selection options:
+ -d option=value Test this option with only the specified (default) value,
+ if available.
+ -G geometry Specify geometry (=(HxV)(+L+T), as fractions of page).
-o option Test this option. Multiple -o options may be specified.
- option1,option2 indicates to test each value of option1
- in combination with each value of option2. For floating
- point and integer options, a selection of values is
- tested.
+ option1,option2... tests all combinations of each
+ option. For floating point and integer options, a
+ selection of values is tested.
Default:
$options
- -d option=value Test this option with only the specified (default) value,
- if available
-p page count Specify number of pages to print per printer. Default $std_pages.
-P page count Specify number of pages to print per printer when testing
duplex mode. Default $duplex_pages.
- -q Do not print progress messages
- -r Do not test each resolution (test only the default)
+ -r Do not test each resolution (test only the default).
-R Use the minimum resolution (rather than the default)
to test other options.
-RR Use only the minimum resolution, and do not test other
resolutions.
- -s Skip duplicate printers (with the same model number
- in printers.xml)
- -S Run a separate testpattern command for each printer
- -X Repeat specified cases listed on standard input
- -v[v[v[v]]] Use valgrind. Number of -v options controls usage:
- -v Basic valgrind checking, no leak checking
- -vv Additional leak checking
- -vvv Show reachable data also
- -vvvv Minimal checks only
- -l List available printers
- -L List available options for specified printer
- -V List available values for each option
+ -X Repeat specified cases listed on standard input.
+
+ Miscellaneous options:
+ -i Use the installed Gutenprint libraries rather than
+ from source tree.
+ -q Only list each printer as it is tested.
+ -qq Print one dot for every printer.
+ -qqq Do not report any output.
+
+ Information options (do not run tests):
+ -l List available printers.
+ -L List available options for specified printer.
+ -n Do not actually run test (write out input that
+ would be passed to testpattern).
+ -V List available values for each option.
EOF
exit 1;
}
@@ -257,17 +294,19 @@ sub set_message($) {
sub set_global_message($) {
my ($message) = @_;
- push @global_messages, "message \"$message\";\n" if (! $quiet);
+ push @global_messages, "message \"$message\";\n"
}
sub print_one_testpattern($;$) {
my ($printer, $raw) = @_;
my $stuff = join "", @global_messages;
$stuff .= join "", @job_extras;
+ $global_printer = $printer;
foreach my $page (0..$pages - 1) {
+ $global_page = $page;
$stuff .= "printer \"$printer\";\n";
$stuff .= "parameter \"PageSize\" \"Auto\";\n";
- $stuff .= join "", @extras, @messages;
+ $stuff .= join "", @messages, @extras;
if (! $quiet && $pages > 1) {
$stuff .= "message \"(page $page)\";\n";
}
@@ -364,6 +403,9 @@ EOF
return $stuff;
}
+map { $exclude_list{$_} = 1; } @exclude_list;
+$include_pattern = join("|", map {"($_)"} @include_patterns);
+$exclude_pattern = join("|", map {"($_)"} @exclude_patterns);
my $extra_arg = "";
if ($#ARGV >= 0) {
@printer_list = @ARGV;
@@ -373,11 +415,19 @@ if ($#ARGV >= 0) {
while(<PIPE>) {
next if m!^#!;
chomp;
+ next if $exclude_list{$_};
+ next if $exclude_pattern ne '' && /$exclude_pattern/;
+ next if $include_pattern ne '' && ! /$include_pattern/;
push @printer_list, $_;
}
close PIPE;
}
+if ($list_printers) {
+ print join("\n", sort @printer_list), "\n";
+ exit 0;
+}
+
open PIPE, "./printer_options $extra_arg|" or die "Cannot run printer_options: $!\n";
while(<PIPE>) {
next if m!^#!;
@@ -385,13 +435,31 @@ while(<PIPE>) {
}
close PIPE or die "Cannot run printer_options: $!\n";
-sub do_print {
+sub do_print($$) {
my ($output, $fh) = @_;
if ($dontrun) {
print $output;
+ } elsif (! $fh) {
+ restart_testpattern(1);
+ print $global_fh $output;
+ my ($status) = close $global_fh;
+ if (!$status) {
+ if ($? == 2) {
+ stopit();
+ }
+ $error++;
+ if ($single > 1) {
+ warn("\n*** FAIL $global_case ($?)\n");
+ } else {
+ warn("\n*** FAIL ($?)\n");
+ }
+ if ($halt_on_error) { # SIGINT
+ stopit();
+ }
+ }
} else {
print $fh $output;
- }
+ }
}
sub do_output($) {
@@ -478,7 +546,7 @@ sub build_key($$) {
}
sub do_printer($$) {
- my ($printer, $fh) = @_;
+ my ($printer, $global_fh) = @_;
my $tmp;
my $min_res_name;
my $min_res_value = 0;
@@ -522,41 +590,47 @@ sub do_printer($$) {
# We want to do all resolutions and all ink types in both color modes.
# We don't need to do both resolutions and ink types.
my $pmode;
- foreach $pmode (@printing_modes) {
+ foreach $pmode (sort @printing_modes) {
my ($resolution);
$pages = $std_pages;
if (! $skip_resolutions) {
- foreach $resolution (@resolutions) {
+ foreach $resolution (sort @resolutions) {
@extras = ();
@job_extras = ();
@messages = ();
@global_messages = ();
if ($first_time) {
- set_global_message("$printer\n");
+ if ($quiet < 2) {
+ set_global_message("$printer\n");
+ } elsif ($quiet == 2) {
+ set_global_message(".");
+ }
}
set_opt("PrintingMode", $pmode, $printer);
set_opt("Resolution", $resolution, $printer);
- map { set_opt($_, $base_settings{$_}, $printer)} keys %base_settings;
+ map { set_opt($_, $base_settings{$_}, $printer)} sort keys %base_settings;
my ($case) = "${printer}_PrintingMode_${pmode}_Resolution_${resolution}";
+ $global_case = $case;
if (! $rerun || $rerun_cases{$case}) {
$first_time = 0;
+ $global_messages = $case;
do_output($case);
set_message(" ${pmode}+${resolution}");
my $output = print_one_testpattern($printer);
- do_print( $output, $fh );
+ do_print( $output, $global_fh );
}
}
}
- foreach $key (keys %opt_vals) {
+ foreach $key (sort keys %opt_vals) {
next if ($key eq "RawChannels" && $pmode ne "Color");
my (@subkeys) = split (/,/, $key);
$tmp = $opt_vals{$key};
if (defined $tmp && $tmp >= 1) {
- my (@opts) = @$tmp;
+ my (@opts) = sort @$tmp;
my $opt;
my $rawval;
my $set_resolution = 0;
- foreach $opt (@opts) {
+ foreach $opt (sort @opts) {
my (@subopts) = split (/,/, $opt);
@extras = ();
@job_extras = ();
@@ -581,7 +655,11 @@ sub do_printer($$) {
push @ovals, "${k}=${v}";
} (0..$#subkeys);
if ($first_time) {
- set_global_message("$printer\n");
+ if ($quiet < 2) {
+ set_global_message("$printer\n");
+ } elsif ($quiet == 2) {
+ set_global_message(".");
+ }
$first_time = 0;
}
# FIXME! need to handle Duplex as a subkey
@@ -608,7 +686,9 @@ sub do_printer($$) {
} else {
$case = "${printer}_PrintingMode_${pmode}_${mstring}";
}
+ $global_case = $case;
if (! $rerun || $rerun_cases{$case}) {
+ $global_messages = $case;
do_output($case);
if ($use_min_res && ! $set_resolution) {
set_message(" ${ostring}+${pmode}+${min_res_name}");
@@ -616,7 +696,7 @@ sub do_printer($$) {
set_message(" ${ostring}+${pmode}");
}
my $output = print_one_testpattern($printer, $rawval);
- do_print( $output, $fh );
+ do_print( $output, $global_fh );
}
}
}
@@ -646,10 +726,39 @@ foreach my $printer (@printer_list) {
}
@printer_list = @nprinter_list;
-if ($list_printers) {
- print join("\n", sort @printer_list), "\n";
- exit 0;
-} elsif ($list_options) {
+sub restart_testpattern {
+ my ($silent) = @_;
+ if (! $silent) {
+ $error = 1;
+ close($global_fh);
+ my ($err) = $? & 255;
+ if ($single > 1) {
+ warn("\n***TESTPATTERN CRASHED*** ($global_case) ($err)!\n");
+ } else {
+ warn("\n***TESTPATTERN CRASHED*** (cannot determine case) ($err)!\n");
+ }
+ if ($halt_on_error) {
+ stopit();
+ }
+ }
+ open($global_fh, "|$testpattern_command") or
+ die "Can't run $testpattern_command: $!\n";
+}
+
+sub stopit {
+ if ($single > 1) {
+ print "\nStopping, $error case(s) failed.\n";
+ exit 1;
+ } elsif ($error) {
+ print "\nStopping, failures noted.\n";
+ exit 1;
+ } else {
+ print "\nStopping.\n";
+ exit 0;
+ }
+}
+
+if ($list_options) {
if ($#printer_list > 0) {
die "-L must be used with one printer\n";
}
@@ -730,27 +839,42 @@ if ($list_printers) {
$suppress = '-n';
}
my ($qopt) = $quiet ? "-q" : "";
- $testpattern_command = "$valgrind_command ./testpattern -y $suppress $qopt";
- if ($single) {
- $SIG{PIPE} = sub() { die "\ntestpattern crashed!\n" };
+ my ($Hopt) = $halt_on_error ? "-H" : "";
+ $testpattern_command = "$valgrind_command ./testpattern -y $suppress $qopt $Hopt";
+ if ($single > 1) {
+ $SIG{TERM} = sub() { stopit() };
+ $SIG{HUP} = sub() { stopit() };
+ $SIG{INT} = sub() { stopit() };
+ foreach my $printer (@printer_list) {
+ do_printer($printer, undef);
+ }
+ } elsif ($single) {
+ $SIG{PIPE} = sub() { restart_testpattern() };
foreach my $printer (@printer_list) {
- open TESTPATTERN, "|$testpattern_command" or
- die "Can't run $testpattern_command: $!\n";
- do_printer($printer, \*TESTPATTERN);
- $status |= close TESTPATTERN;
+ restart_testpattern(1);
+ do_printer($printer, $global_fh);
+ $status |= close $global_fh;
$status |= ($? & 255);
- last if ($? & 255);
}
} else {
- $SIG{PIPE} = sub() { die "\ntestpattern crashed!\n" };
- open TESTPATTERN, "|$testpattern_command" or
- die "Can't run $testpattern_command: $!\n";
- map { do_printer($_, \*TESTPATTERN) } @printer_list;
- $status = close TESTPATTERN;
+ $SIG{PIPE} = sub() { restart_testpattern() };
+ restart_testpattern(1);
+ map { do_printer($_, $global_fh) } @printer_list;
+ $status = close $global_fh;
+ }
+ if ($quiet == 2) {
+ print STDERR "\n";
}
- if ($status) {
+ if ($status && ! $error) {
exit 0;
} else {
+ if ($error) {
+ if ($single > 1) {
+ print STDERR "$error cases failed\n";
+ } else {
+ print STDERR "Failures noted.\n";
+ }
+ }
exit 1;
}
}
diff --git a/src/testpattern/testpattern.c b/src/testpattern/testpattern.c
index 624d7d6..e4bd63b 100644
--- a/src/testpattern/testpattern.c
+++ b/src/testpattern/testpattern.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testpattern.c,v 1.59 2011/04/01 01:21:12 rlk Exp $"
+ * "$Id: testpattern.c,v 1.60 2014/01/04 00:30:27 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -42,6 +42,8 @@
#include <gutenprint/gutenprint-intl.h>
#include <errno.h>
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+
extern int yyparse(void);
static const char *Image_get_appname(stp_image_t *image);
@@ -71,6 +73,7 @@ double global_levels[STP_CHANNEL_LIMIT];
double global_gammas[STP_CHANNEL_LIMIT];
double global_gamma;
int global_steps;
+int global_halt_on_error = 0;
double global_ink_limit;
int global_noblackline;
int global_printer_width;
@@ -188,7 +191,14 @@ writefunc(void *file, const char *buf, size_t bytes)
FILE *prn = (FILE *)file;
if (! file)
return;
- if (!global_suppress_output || (file == stderr))
+ if (file == stderr)
+ {
+ if (global_quiet)
+ fputc('-', prn);
+ else
+ fwrite(buf, 1, bytes, prn);
+ }
+ else if (!global_suppress_output)
{
fwrite(buf, 1, bytes, prn);
}
@@ -468,6 +478,8 @@ do_print(void)
fputs("FAILED", stderr);
failures++;
status = 2;
+ if (global_halt_on_error)
+ return status;
}
else
passes++;
@@ -485,6 +497,8 @@ do_print(void)
fputs("FAILED", stderr);
failures++;
status = 2;
+ if (global_halt_on_error)
+ return status;
}
else
{
@@ -509,7 +523,7 @@ main(int argc, char **argv)
int global_status = 0;
while (1)
{
- c = getopt(argc, argv, "nqy");
+ c = getopt(argc, argv, "nqyH");
if (c == -1)
break;
switch (c)
@@ -523,6 +537,9 @@ main(int argc, char **argv)
case 'y':
global_fail_verify_ok = 1;
break;
+ case 'H':
+ global_halt_on_error = 1;
+ break;
default:
break;
}
@@ -539,7 +556,7 @@ main(int argc, char **argv)
global_status = 1;
}
close_output();
- if (!global_quiet)
+ if (passes + failures + skipped > 1)
fprintf(stderr, "%d pass, %d fail, %d skipped\n", passes, failures, skipped);
return global_status;
}
diff --git a/src/testpattern/testpattern.h b/src/testpattern/testpattern.h
index 3f96c11..29bd3c3 100644
--- a/src/testpattern/testpattern.h
+++ b/src/testpattern/testpattern.h
@@ -1,5 +1,5 @@
/*
- * "$Id: testpattern.h,v 1.20 2010/09/06 17:08:39 rlk Exp $"
+ * "$Id: testpattern.h,v 1.21 2014/01/23 13:22:41 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -37,10 +37,10 @@ typedef struct
} type;
union {
struct {
- double mins[32];
- double vals[32];
- double gammas[32];
- double levels[32];
+ double mins[STP_CHANNEL_LIMIT];
+ double vals[STP_CHANNEL_LIMIT];
+ double gammas[STP_CHANNEL_LIMIT];
+ double levels[STP_CHANNEL_LIMIT];
double lower;
double upper;
} pattern;
diff --git a/src/testpattern/testpatternl.c b/src/testpattern/testpatternl.c
index e8ec86b..cee5dea 100644
--- a/src/testpattern/testpatternl.c
+++ b/src/testpattern/testpatternl.c
@@ -8,7 +8,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
+#define YY_FLEX_SUBMINOR_VERSION 37
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -53,7 +53,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,6 +83,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
+#endif /* ! C99 */
+
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -152,7 +153,12 @@ typedef unsigned int flex_uint32_t;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
-extern int yyleng;
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
extern FILE *yyin, *yyout;
@@ -178,11 +184,6 @@ extern FILE *yyin, *yyout;
#define unput(c) yyunput( c, (yytext_ptr) )
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
@@ -200,7 +201,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
- int yy_n_chars;
+ yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@@ -270,8 +271,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-int yyleng;
+static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
@@ -299,7 +300,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
void *yyalloc (yy_size_t );
void *yyrealloc (void *,yy_size_t );
@@ -329,7 +330,7 @@ void yyfree (void * );
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-#define yywrap(n) 1
+#define yywrap() 1
#define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR;
@@ -751,7 +752,7 @@ int yy_flex_debug = 0;
char *yytext;
#line 1 "testpatternl.l"
/*
- * "$Id: testpatternl.l,v 1.27 2012/05/11 13:16:12 rlk Exp $"
+ * "$Id: testpatternl.l,v 1.28 2014/01/04 00:30:27 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -782,6 +783,9 @@ char *yytext;
#include <stdlib.h>
#include "testpattern.h"
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#pragma GCC diagnostic ignored "-Wunused-function"
+
#define YY_NO_UNPUT
int mylineno = 1;
@@ -813,7 +817,7 @@ do \
while (0)
-#line 817 "testpatternl.c"
+#line 821 "testpatternl.c"
#define INITIAL 0
@@ -852,7 +856,7 @@ FILE *yyget_out (void );
void yyset_out (FILE * out_str );
-int yyget_leng (void );
+yy_size_t yyget_leng (void );
char *yyget_text (void );
@@ -902,7 +906,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -913,7 +917,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- int n; \
+ size_t n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -995,10 +999,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 79 "testpatternl.l"
+#line 82 "testpatternl.l"
-#line 1002 "testpatternl.c"
+#line 1006 "testpatternl.c"
if ( !(yy_init) )
{
@@ -1083,267 +1087,267 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 81 "testpatternl.l"
+#line 84 "testpatternl.l"
DBG(GAMMA); return GAMMA;
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 82 "testpatternl.l"
+#line 85 "testpatternl.l"
DBG(LEVEL); return LEVEL;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 83 "testpatternl.l"
+#line 86 "testpatternl.l"
DBG(STEPS); return STEPS;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 84 "testpatternl.l"
+#line 87 "testpatternl.l"
DBG(INK_LIMIT); return INK_LIMIT;
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 85 "testpatternl.l"
+#line 88 "testpatternl.l"
DBG(PRINTER); return PRINTER;
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 86 "testpatternl.l"
+#line 89 "testpatternl.l"
DBG(PARAMETER); return PARAMETER;
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 87 "testpatternl.l"
+#line 90 "testpatternl.l"
DBG(PARAMETER_INT); return PARAMETER_INT;
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 88 "testpatternl.l"
+#line 91 "testpatternl.l"
DBG(PARAMETER_BOOL); return PARAMETER_BOOL;
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 89 "testpatternl.l"
+#line 92 "testpatternl.l"
DBG(PARAMETER); return PARAMETER;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 90 "testpatternl.l"
+#line 93 "testpatternl.l"
DBG(PARAMETER_FLOAT); return PARAMETER_FLOAT;
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 91 "testpatternl.l"
+#line 94 "testpatternl.l"
DBG(PARAMETER_CURVE); return PARAMETER_CURVE;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 92 "testpatternl.l"
+#line 95 "testpatternl.l"
DBG(DENSITY); return DENSITY;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 93 "testpatternl.l"
+#line 96 "testpatternl.l"
DBG(TOP); return TOP;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 94 "testpatternl.l"
+#line 97 "testpatternl.l"
DBG(LEFT); return LEFT;
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 95 "testpatternl.l"
+#line 98 "testpatternl.l"
DBG(SIZE_MODE); return SIZE_MODE;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 96 "testpatternl.l"
+#line 99 "testpatternl.l"
DBG(RELATIVE); return RELATIVE;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 97 "testpatternl.l"
+#line 100 "testpatternl.l"
DBG(PT); return PT;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 98 "testpatternl.l"
+#line 101 "testpatternl.l"
DBG(IN); return IN;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 99 "testpatternl.l"
+#line 102 "testpatternl.l"
DBG(MM); return MM;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 100 "testpatternl.l"
+#line 103 "testpatternl.l"
DBG(HSIZE); return HSIZE;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 101 "testpatternl.l"
+#line 104 "testpatternl.l"
DBG(VSIZE); return VSIZE;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 102 "testpatternl.l"
+#line 105 "testpatternl.l"
DBG(BLACKLINE); return BLACKLINE;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 103 "testpatternl.l"
+#line 106 "testpatternl.l"
DBG(PATTERN); return PATTERN;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 104 "testpatternl.l"
+#line 107 "testpatternl.l"
DBG(XPATTERN); return XPATTERN;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 105 "testpatternl.l"
+#line 108 "testpatternl.l"
DBG(IMAGE); return IMAGE;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 106 "testpatternl.l"
+#line 109 "testpatternl.l"
DBG(EXTENDED); return EXTENDED;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 107 "testpatternl.l"
+#line 110 "testpatternl.l"
DBG(GRID); return GRID;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 108 "testpatternl.l"
+#line 111 "testpatternl.l"
DBG(CHANNEL); return CHANNEL;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 109 "testpatternl.l"
+#line 112 "testpatternl.l"
DBG(PAGESIZE); return PAGESIZE;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 110 "testpatternl.l"
+#line 113 "testpatternl.l"
DBG(SEMI); return SEMI;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 111 "testpatternl.l"
+#line 114 "testpatternl.l"
DBG(MODE); return MODE;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 112 "testpatternl.l"
+#line 115 "testpatternl.l"
yylval.ival = CMYK;DBG(CMYK); return CMYK;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 113 "testpatternl.l"
+#line 116 "testpatternl.l"
yylval.ival = CMYK;DBG(KCMY); return KCMY;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 114 "testpatternl.l"
+#line 117 "testpatternl.l"
yylval.ival = RGB;DBG(RGB); return RGB;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 115 "testpatternl.l"
+#line 118 "testpatternl.l"
yylval.ival = RGB;DBG(CMY); return CMY;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 116 "testpatternl.l"
+#line 119 "testpatternl.l"
yylval.ival = GRAY;DBG(GRAY); return GRAY;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 117 "testpatternl.l"
+#line 120 "testpatternl.l"
yylval.ival = GRAY;DBG(GRAY); return GRAY;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 118 "testpatternl.l"
+#line 121 "testpatternl.l"
yylval.ival = WHITE;DBG(WHITE); return WHITE;
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 119 "testpatternl.l"
+#line 122 "testpatternl.l"
DBG(OUTPUT); return OUTPUT;
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 120 "testpatternl.l"
+#line 123 "testpatternl.l"
DBG(MESSAGE); return MESSAGE;
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 121 "testpatternl.l"
+#line 124 "testpatternl.l"
DBG(NOSCALE); return NOSCALE;
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 122 "testpatternl.l"
+#line 125 "testpatternl.l"
DBG(START_JOB); return START_JOB;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 123 "testpatternl.l"
+#line 126 "testpatternl.l"
DBG(END_JOB); return END_JOB;
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 124 "testpatternl.l"
+#line 127 "testpatternl.l"
DBG(END); return END;
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 126 "testpatternl.l"
+#line 129 "testpatternl.l"
yylval.sval = yytext;DBG(COLOR); return COLOR;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 127 "testpatternl.l"
+#line 130 "testpatternl.l"
yylval.ival = strtol(yytext, NULL, 0); yylval.dval = (double) yylval.ival; DBG(tINT); return tINT;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 128 "testpatternl.l"
+#line 131 "testpatternl.l"
yylval.dval = strtod(yytext, NULL); DBG(tDOUBLE); return tDOUBLE;
YY_BREAK
case 48:
/* rule 48 can match eol */
YY_RULE_SETUP
-#line 129 "testpatternl.l"
+#line 132 "testpatternl.l"
yylval.sval = c_strstrip(yytext); DBG(tSTRING); return tSTRING;
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 130 "testpatternl.l"
+#line 133 "testpatternl.l"
DBG(whitespace); /* Skip blanks/tabs */
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 131 "testpatternl.l"
+#line 134 "testpatternl.l"
DBG(comment); /* Skip comments */
YY_BREAK
case 51:
/* rule 51 can match eol */
YY_RULE_SETUP
-#line 132 "testpatternl.l"
+#line 135 "testpatternl.l"
DBG(newline); mylineno++;
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 133 "testpatternl.l"
+#line 136 "testpatternl.l"
ECHO;
YY_BREAK
-#line 1347 "testpatternl.c"
+#line 1351 "testpatternl.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1529,21 +1533,21 @@ static int yy_get_next_buffer (void)
else
{
- int num_to_read =
+ yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
- int new_size = b->yy_buf_size * 2;
+ yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
@@ -1574,7 +1578,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), (size_t) num_to_read );
+ (yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@@ -1669,7 +1673,7 @@ static int yy_get_next_buffer (void)
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 284);
- return yy_is_jam ? 0 : yy_current_state;
+ return yy_is_jam ? 0 : yy_current_state;
}
static void yyunput (int c, register char * yy_bp )
@@ -1684,7 +1688,7 @@ static int yy_get_next_buffer (void)
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
- register int number_to_move = (yy_n_chars) + 2;
+ register yy_size_t number_to_move = (yy_n_chars) + 2;
register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
register char *source =
@@ -1733,7 +1737,7 @@ static int yy_get_next_buffer (void)
else
{ /* need more input */
- int offset = (yy_c_buf_p) - (yytext_ptr);
+ yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
@@ -1893,10 +1897,6 @@ static void yy_load_buffer_state (void)
yyfree((void *) b );
}
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a yyrestart() or at EOF.
@@ -2009,7 +2009,7 @@ void yypop_buffer_state (void)
*/
static void yyensure_buffer_stack (void)
{
- int num_to_alloc;
+ yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
@@ -2101,12 +2101,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
-YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
@@ -2193,7 +2193,7 @@ FILE *yyget_out (void)
/** Get the length of the current token.
*
*/
-int yyget_leng (void)
+yy_size_t yyget_leng (void)
{
return yyleng;
}
@@ -2341,4 +2341,4 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 133 "testpatternl.l"
+#line 136 "testpatternl.l"
diff --git a/src/testpattern/testpatternl.l b/src/testpattern/testpatternl.l
index 16cb38c..f4f6708 100644
--- a/src/testpattern/testpatternl.l
+++ b/src/testpattern/testpatternl.l
@@ -1,5 +1,5 @@
/*
- * "$Id: testpatternl.l,v 1.27 2012/05/11 13:16:12 rlk Exp $"
+ * "$Id: testpatternl.l,v 1.28 2014/01/04 00:30:27 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -31,6 +31,9 @@
#include <stdlib.h>
#include "testpattern.h"
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#pragma GCC diagnostic ignored "-Wunused-function"
+
#define YY_NO_UNPUT
int mylineno = 1;
diff --git a/src/xml/Makefile.in b/src/xml/Makefile.in
index b19ffe6..dfd1747 100644
--- a/src/xml/Makefile.in
+++ b/src/xml/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -22,6 +21,51 @@
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -40,8 +84,9 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
+ $(top_srcdir)/scripts/depcomp
noinst_PROGRAMS = extract-strings$(EXEEXT)
subdir = src/xml
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -66,28 +111,59 @@ PROGRAMS = $(noinst_PROGRAMS)
am_extract_strings_OBJECTS = extract-strings.$(OBJEXT)
extract_strings_OBJECTS = $(am_extract_strings_OBJECTS)
extract_strings_DEPENDENCIES = $(GUTENPRINT_LIBS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
SOURCES = $(extract_strings_SOURCES)
DIST_SOURCES = $(extract_strings_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -109,13 +185,39 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
@@ -148,6 +250,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -205,6 +308,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -216,6 +320,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -240,6 +345,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -399,6 +506,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -417,9 +525,10 @@ clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-extract-strings$(EXEEXT): $(extract_strings_OBJECTS) $(extract_strings_DEPENDENCIES)
+
+extract-strings$(EXEEXT): $(extract_strings_OBJECTS) $(extract_strings_DEPENDENCIES) $(EXTRA_extract_strings_DEPENDENCIES)
@rm -f extract-strings$(EXEEXT)
- $(LINK) $(extract_strings_OBJECTS) $(extract_strings_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(extract_strings_OBJECTS) $(extract_strings_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -430,25 +539,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract-strings.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -457,8 +566,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -472,27 +584,28 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
@@ -507,57 +620,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
-$(RECURSIVE_CLEAN_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -573,12 +641,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -590,15 +653,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -607,6 +666,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -643,13 +717,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -690,10 +761,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -778,13 +854,12 @@ ps-am:
uninstall-am: uninstall-pkgxmldataDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
- install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am all-local check check-am clean clean-generic \
- clean-libtool clean-noinstPROGRAMS ctags ctags-recursive \
- dist-hook distclean distclean-compile distclean-generic \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+ check check-am clean clean-generic clean-libtool \
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am dist-hook \
+ distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
@@ -794,7 +869,7 @@ uninstall-am: uninstall-pkgxmldataDATA
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-pkgxmldataDATA
diff --git a/src/xml/escp2/Makefile.in b/src/xml/escp2/Makefile.in
index 84ed55a..0917eb3 100644
--- a/src/xml/escp2/Makefile.in
+++ b/src/xml/escp2/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -20,6 +19,51 @@
#export STP_MODULE_PATH = $(top_builddir)/src/main/.libs:$(top_builddir)/src/main
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -38,8 +82,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -59,20 +103,58 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
@@ -105,6 +187,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -162,6 +245,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -173,6 +257,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -197,6 +282,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -351,6 +438,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -368,22 +456,25 @@ clean-libtool:
-rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
@@ -398,57 +489,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
-$(RECURSIVE_CLEAN_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -464,12 +510,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -481,15 +522,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -498,6 +535,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -534,13 +586,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -578,10 +627,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -661,22 +715,21 @@ ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
- install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am all-local check check-am clean clean-generic \
- clean-libtool ctags ctags-recursive dist-hook distclean \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-recursive uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+ check check-am clean clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am dist-hook distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
@SET_MAKE@
diff --git a/src/xml/escp2/inks/Makefile.am b/src/xml/escp2/inks/Makefile.am
index cb0e8b0..17ceaa0 100644
--- a/src/xml/escp2/inks/Makefile.am
+++ b/src/xml/escp2/inks/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.13 2011/03/05 18:49:13 rlk Exp $
+## $Id: Makefile.am,v 1.15 2014/01/23 13:22:41 rlk Exp $
## Copyright (C) 2008 Robert Krawitz
##
## This program is free software; you can redistribute it and/or modify
@@ -63,8 +63,10 @@ pkgxmldata_DATA = \
pro_ultrachrome_k34.xml \
pro_ultrachrome_k3v.xml \
pro_ultrachrome_k3v4.xml \
+ pro_ultrachrome_k3v10.xml \
standard.xml \
standard_gen0.xml \
+ sx445.xml \
ultrachrome.xml \
wf40.xml \
wf500.xml \
diff --git a/src/xml/escp2/inks/Makefile.in b/src/xml/escp2/inks/Makefile.in
index 367177b..208bb1f 100644
--- a/src/xml/escp2/inks/Makefile.in
+++ b/src/xml/escp2/inks/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2/inks
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -60,8 +104,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -83,12 +144,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +215,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -157,6 +227,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -181,6 +252,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -339,8 +412,10 @@ pkgxmldata_DATA = \
pro_ultrachrome_k34.xml \
pro_ultrachrome_k3v.xml \
pro_ultrachrome_k3v4.xml \
+ pro_ultrachrome_k3v10.xml \
standard.xml \
standard_gen0.xml \
+ sx445.xml \
ultrachrome.xml \
wf40.xml \
wf500.xml \
@@ -372,6 +447,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -389,8 +465,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -404,14 +483,12 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
-tags: TAGS
-TAGS:
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
@@ -464,10 +541,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -549,16 +631,17 @@ uninstall-am: uninstall-pkgxmldataDATA
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool dist-hook distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgxmldataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am uninstall uninstall-am uninstall-pkgxmldataDATA
+ clean-libtool cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgxmldataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-pkgxmldataDATA
@SET_MAKE@
diff --git a/src/xml/escp2/inks/artisan.xml b/src/xml/escp2/inks/artisan.xml
index 283c12f..3b69f80 100644
--- a/src/xml/escp2/inks/artisan.xml
+++ b/src/xml/escp2/inks/artisan.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="artisan">
+<escp2InkGroup name="artisan">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -281,5 +281,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/b500.xml b/src/xml/escp2/inks/b500.xml
index b05cc3a..9cb8d9d 100644
--- a/src/xml/escp2/inks/b500.xml
+++ b/src/xml/escp2/inks/b500.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="b500">
+<escp2InkGroup name="b500">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -150,5 +150,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/c120.xml b/src/xml/escp2/inks/c120.xml
index 40f360f..3f76227 100644
--- a/src/xml/escp2/inks/c120.xml
+++ b/src/xml/escp2/inks/c120.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="c120">
+<escp2InkGroup name="c120">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -138,5 +138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/c64.xml b/src/xml/escp2/inks/c64.xml
index bcae2c3..add88ab 100644
--- a/src/xml/escp2/inks/c64.xml
+++ b/src/xml/escp2/inks/c64.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="c64">
+<escp2InkGroup name="c64">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -204,5 +204,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/c80.xml b/src/xml/escp2/inks/c80.xml
index 7528a47..91b174d 100644
--- a/src/xml/escp2/inks/c80.xml
+++ b/src/xml/escp2/inks/c80.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="c80">
+<escp2InkGroup name="c80">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -205,5 +205,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/c82.xml b/src/xml/escp2/inks/c82.xml
index 66d6e47..48685a3 100644
--- a/src/xml/escp2/inks/c82.xml
+++ b/src/xml/escp2/inks/c82.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="c82">
+<escp2InkGroup name="c82">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -205,5 +205,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/claria.xml b/src/xml/escp2/inks/claria.xml
index 9c492eb..81747c8 100644
--- a/src/xml/escp2/inks/claria.xml
+++ b/src/xml/escp2/inks/claria.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="claria">
+<escp2InkGroup name="claria">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -399,5 +399,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/cmy.xml b/src/xml/escp2/inks/cmy.xml
index d6d362f..fbaa098 100644
--- a/src/xml/escp2/inks/cmy.xml
+++ b/src/xml/escp2/inks/cmy.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="cmy">
+<escp2InkGroup name="cmy">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -52,5 +52,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/cmykrb.xml b/src/xml/escp2/inks/cmykrb.xml
index c8853c4..f53eec6 100644
--- a/src/xml/escp2/inks/cmykrb.xml
+++ b/src/xml/escp2/inks/cmykrb.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="cmykrb">
+<escp2InkGroup name="cmykrb">
<Curves>
<curve name="cmykrbCyan" wrap="wrap" type="linear" gamma="0" piecewise="false">
<sequence count="48" lower-bound="0" upper-bound="1">
@@ -660,5 +660,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/cmykro.xml b/src/xml/escp2/inks/cmykro.xml
index 8cf8cf1..50decb4 100644
--- a/src/xml/escp2/inks/cmykro.xml
+++ b/src/xml/escp2/inks/cmykro.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="cmykro">
+<escp2InkGroup name="cmykro">
<Curves>
<curve name="cmykroCyan" wrap="wrap" type="linear" gamma="0" piecewise="false">
<sequence count="48" lower-bound="0" upper-bound="1">
@@ -659,5 +659,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/cx3650.xml b/src/xml/escp2/inks/cx3650.xml
index 77d908b..004d6b1 100644
--- a/src/xml/escp2/inks/cx3650.xml
+++ b/src/xml/escp2/inks/cx3650.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="cx3650">
+<escp2InkGroup name="cx3650">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -204,5 +204,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/defaultblack.xml b/src/xml/escp2/inks/defaultblack.xml
index 2d0f6e6..e520b15 100644
--- a/src/xml/escp2/inks/defaultblack.xml
+++ b/src/xml/escp2/inks/defaultblack.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="defaultblack">
+<escp2InkGroup name="defaultblack">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -36,5 +36,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/f360.xml b/src/xml/escp2/inks/f360.xml
index ef33d13..be01d2c 100644
--- a/src/xml/escp2/inks/f360.xml
+++ b/src/xml/escp2/inks/f360.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="f360">
+<escp2InkGroup name="f360">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -205,5 +205,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/f360_photo.xml b/src/xml/escp2/inks/f360_photo.xml
index 0efd6b9..0128197 100644
--- a/src/xml/escp2/inks/f360_photo.xml
+++ b/src/xml/escp2/inks/f360_photo.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="f360_photo">
+<escp2InkGroup name="f360_photo">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -281,5 +281,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/f360_photo7_japan.xml b/src/xml/escp2/inks/f360_photo7_japan.xml
index bc18d1f..50b10c7 100644
--- a/src/xml/escp2/inks/f360_photo7_japan.xml
+++ b/src/xml/escp2/inks/f360_photo7_japan.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="f360_photo7_japan">
+<escp2InkGroup name="f360_photo7_japan">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -415,5 +415,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/f360_ultrachrome.xml b/src/xml/escp2/inks/f360_ultrachrome.xml
index 464e060..c9332cf 100644
--- a/src/xml/escp2/inks/f360_ultrachrome.xml
+++ b/src/xml/escp2/inks/f360_ultrachrome.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="f360_ultrachrome">
+<escp2InkGroup name="f360_ultrachrome">
<InkList translate="text" name="ultraphoto" text="UltraChrome Photo Black">
<Shades>
<shade count="2">1.000000 0.480000</shade>
@@ -786,5 +786,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/f360_ultrachrome_k3.xml b/src/xml/escp2/inks/f360_ultrachrome_k3.xml
index 0d3b142..0036f8b 100644
--- a/src/xml/escp2/inks/f360_ultrachrome_k3.xml
+++ b/src/xml/escp2/inks/f360_ultrachrome_k3.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="f360_ultrachrome_k3">
+<escp2InkGroup name="f360_ultrachrome_k3">
<InkList translate="text" name="ultra3photo" text="Photo Black">
<Shades>
<shade count="3">1.000000 0.480000 0.160000</shade>
@@ -604,5 +604,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/f360_ultrachrome_k3v.xml b/src/xml/escp2/inks/f360_ultrachrome_k3v.xml
index 4660f47..4dd2839 100644
--- a/src/xml/escp2/inks/f360_ultrachrome_k3v.xml
+++ b/src/xml/escp2/inks/f360_ultrachrome_k3v.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="f360_ultrachrome_k3v">
+<escp2InkGroup name="f360_ultrachrome_k3v">
<InkList translate="text" name="ultra3photo" text="Photo Black">
<Shades>
<shade count="3">1.000000 0.480000 0.160000</shade>
@@ -604,5 +604,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/f360_ultrachrome_k3v_2.xml b/src/xml/escp2/inks/f360_ultrachrome_k3v_2.xml
index e759cb1..0281046 100644
--- a/src/xml/escp2/inks/f360_ultrachrome_k3v_2.xml
+++ b/src/xml/escp2/inks/f360_ultrachrome_k3v_2.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="f360_ultrachrome_k3v">
+<escp2InkGroup name="f360_ultrachrome_k3v">
<InkList translate="text" name="ultra3photo" text="Photo Black">
<initSequence>IK\002\000\000\061</initSequence>
<Shades>
@@ -606,5 +606,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/nx100.xml b/src/xml/escp2/inks/nx100.xml
index 7c3538f..6dd412a 100644
--- a/src/xml/escp2/inks/nx100.xml
+++ b/src/xml/escp2/inks/nx100.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="nx100">
+<escp2InkGroup name="nx100">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/photo_gen0.xml b/src/xml/escp2/inks/photo_gen0.xml
index 9231583..e4dcd4c 100644
--- a/src/xml/escp2/inks/photo_gen0.xml
+++ b/src/xml/escp2/inks/photo_gen0.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="photo_gen0">
+<escp2InkGroup name="photo_gen0">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -398,5 +398,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/photo_gen1.xml b/src/xml/escp2/inks/photo_gen1.xml
index 7bf0e59..be7c6ba 100644
--- a/src/xml/escp2/inks/photo_gen1.xml
+++ b/src/xml/escp2/inks/photo_gen1.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="photo_gen1">
+<escp2InkGroup name="photo_gen1">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -398,5 +398,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/photo_gen2.xml b/src/xml/escp2/inks/photo_gen2.xml
index ebddcbc..1d2efc7 100644
--- a/src/xml/escp2/inks/photo_gen2.xml
+++ b/src/xml/escp2/inks/photo_gen2.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="photo_gen2">
+<escp2InkGroup name="photo_gen2">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -398,5 +398,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/photo_gen3.xml b/src/xml/escp2/inks/photo_gen3.xml
index 9b23ff4..e899b4b 100644
--- a/src/xml/escp2/inks/photo_gen3.xml
+++ b/src/xml/escp2/inks/photo_gen3.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="photo_gen3">
+<escp2InkGroup name="photo_gen3">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -398,5 +398,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/photo_gen3_4.xml b/src/xml/escp2/inks/photo_gen3_4.xml
index 7d40057..1b83402 100644
--- a/src/xml/escp2/inks/photo_gen3_4.xml
+++ b/src/xml/escp2/inks/photo_gen3_4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="photo_gen3_4">
+<escp2InkGroup name="photo_gen3_4">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -205,5 +205,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/photo_gen4.xml b/src/xml/escp2/inks/photo_gen4.xml
index 1457e32..2283184 100644
--- a/src/xml/escp2/inks/photo_gen4.xml
+++ b/src/xml/escp2/inks/photo_gen4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="photo_gen3">
+<escp2InkGroup name="photo_gen3">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -281,5 +281,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/photo_pigment.xml b/src/xml/escp2/inks/photo_pigment.xml
index f7781ec..f63cb69 100644
--- a/src/xml/escp2/inks/photo_pigment.xml
+++ b/src/xml/escp2/inks/photo_pigment.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="photo_pigment">
+<escp2InkGroup name="photo_pigment">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -281,5 +281,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/picturemate_4.xml b/src/xml/escp2/inks/picturemate_4.xml
index b48f5f3..602992c 100644
--- a/src/xml/escp2/inks/picturemate_4.xml
+++ b/src/xml/escp2/inks/picturemate_4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="picturemate_4">
+<escp2InkGroup name="picturemate_4">
<InkList translate="text" name="picturemate_4" text="Standard">
<Shades>
<shade count="1">1.000000</shade>
@@ -82,5 +82,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/picturemate_6.xml b/src/xml/escp2/inks/picturemate_6.xml
index fa5068a..418de94 100644
--- a/src/xml/escp2/inks/picturemate_6.xml
+++ b/src/xml/escp2/inks/picturemate_6.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="picturemate_6">
+<escp2InkGroup name="picturemate_6">
<InkList translate="text" name="picturemate_6" text="Standard">
<Shades>
<shade count="1">1.000000</shade>
@@ -216,5 +216,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_gen1.xml b/src/xml/escp2/inks/pro_gen1.xml
index dab731f..d1a2760 100644
--- a/src/xml/escp2/inks/pro_gen1.xml
+++ b/src/xml/escp2/inks/pro_gen1.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_gen1">
+<escp2InkGroup name="pro_gen1">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -398,5 +398,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_gen2.xml b/src/xml/escp2/inks/pro_gen2.xml
index bf21a18..f005b6c 100644
--- a/src/xml/escp2/inks/pro_gen2.xml
+++ b/src/xml/escp2/inks/pro_gen2.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_gen2">
+<escp2InkGroup name="pro_gen2">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -398,5 +398,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_pigment.xml b/src/xml/escp2/inks/pro_pigment.xml
index baf5b93..340688c 100644
--- a/src/xml/escp2/inks/pro_pigment.xml
+++ b/src/xml/escp2/inks/pro_pigment.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_pigment">
+<escp2InkGroup name="pro_pigment">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -281,5 +281,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_ultrachrome.xml b/src/xml/escp2/inks/pro_ultrachrome.xml
index 675aa57..637e58c 100644
--- a/src/xml/escp2/inks/pro_ultrachrome.xml
+++ b/src/xml/escp2/inks/pro_ultrachrome.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_ultrachrome">
+<escp2InkGroup name="pro_ultrachrome">
<InkList translate="text" name="ultraphoto" text="UltraChrome Photo Black">
<Shades>
<shade count="2">1.000000 0.480000</shade>
@@ -786,5 +786,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_ultrachrome_k3.xml b/src/xml/escp2/inks/pro_ultrachrome_k3.xml
index dd9ae97..74e76be 100644
--- a/src/xml/escp2/inks/pro_ultrachrome_k3.xml
+++ b/src/xml/escp2/inks/pro_ultrachrome_k3.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_ultrachrome_k3">
+<escp2InkGroup name="pro_ultrachrome_k3">
<InkList translate="text" name="ultra3photo" text="Photo Black">
<initSequence>IK\002\000\000\061</initSequence>
<Shades>
@@ -606,5 +606,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_ultrachrome_k34.xml b/src/xml/escp2/inks/pro_ultrachrome_k34.xml
index 941ab5d..7077f4c 100644
--- a/src/xml/escp2/inks/pro_ultrachrome_k34.xml
+++ b/src/xml/escp2/inks/pro_ultrachrome_k34.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_ultrachrome_k3">
+<escp2InkGroup name="pro_ultrachrome_k3">
<InkList translate="text" name="ultra3photo" text="Photo Black">
<initSequence>IK\002\000\000\061</initSequence>
<Shades>
@@ -200,5 +200,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_ultrachrome_k3v.xml b/src/xml/escp2/inks/pro_ultrachrome_k3v.xml
index a217f5f..8a7f6a9 100644
--- a/src/xml/escp2/inks/pro_ultrachrome_k3v.xml
+++ b/src/xml/escp2/inks/pro_ultrachrome_k3v.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_ultrachrome_k3v">
+<escp2InkGroup name="pro_ultrachrome_k3v">
<InkList translate="text" name="ultra3photo" text="Photo Black">
<initSequence>IK\002\000\000\061</initSequence>
<Shades>
@@ -606,5 +606,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/pro_ultrachrome_k3v10.xml b/src/xml/escp2/inks/pro_ultrachrome_k3v10.xml
new file mode 100644
index 0000000..6677137
--- /dev/null
+++ b/src/xml/escp2/inks/pro_ultrachrome_k3v10.xml
@@ -0,0 +1,724 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2InkGroup name="pro_ultrachrome_k3v">
+<InkList translate="text" name="ultra3photo" text="Photo Black">
+ <initSequence>IK\002\000\000\061</initSequence>
+ <Shades>
+ <shade count="3">1.000000 0.480000 0.160000</shade>
+ <shade count="2">1.000000 0.340000</shade>
+ <shade count="2">1.000000 0.250000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ </Shades>
+
+ <InkName translate="text" name="PhotoCMYK8" text="Eight Color Photo" InkID="CcMmYKk">
+ <Channels>
+ <channel name="photo3_black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="DarkGrayTrans"/>
+ </subchannel>
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="DarkGrayTrans"/>
+ <SubchannelValueParam name="DarkGrayValue"/>
+ <SubchannelScaleParam name="DarkGrayScale"/>
+ </subchannel>
+ <subchannel color="0" subchannel="3" name="LightLightBlack" text="Light Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="LightGrayTrans"/>
+ <SubchannelValueParam name="LightGrayValue"/>
+ <SubchannelScaleParam name="LightGrayScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhotoCMYK7" text="Seven Color Photo" InkID="CcMmYKk">
+ <Channels>
+ <channel name="photo2_black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="GrayTrans"/>
+ </subchannel>
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="GrayTrans"/>
+ <SubchannelValueParam name="GrayValue"/>
+ <SubchannelScaleParam name="GrayScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhotoCMYK" text="Six Color Photo" InkID="CcMmYK">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhotoCMY" text="Five Color Photo Composite" InkID="CcMmYK">
+ <Channels>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="CMYK" text="Four Color Standard" InkID="CMYK">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="CMY" text="Three Color Composite" InkID="CMYK">
+ <Channels>
+ <channel name="standard_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhysicalCMYKkk" text="Eight Color Raw" InkID="Extended">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_black" index="1">
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_photo3_black" index="2">
+ <subchannel color="0" subchannel="3" name="LightLightBlack" text="Light Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_cyan" index="3">
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_cyan" index="4">
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="5">
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_magenta" index="6">
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="7">
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhysicalCMYKkkOG" text="Ten Color Raw" InkID="Extended">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_black" index="1">
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_photo3_black" index="2">
+ <subchannel color="0" subchannel="3" name="LightLightBlack" text="Light Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_cyan" index="3">
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_cyan" index="4">
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="5">
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_magenta" index="6">
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="7">
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_orange" index="8">
+ <subchannel color="10" name="Orange" text="Orange" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_green" index="9">
+ <subchannel color="11" name="Green" text="Green" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+</InkList>
+
+<InkList translate="text" name="ultra3matte" text="Matte Black">
+ <initSequence>IK\002\000\000\121</initSequence>
+ <Shades>
+ <shade count="3">1.000000 0.278000 0.093000</shade>
+ <shade count="2">1.000000 0.340000</shade>
+ <shade count="2">1.000000 0.250000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ </Shades>
+
+ <InkName translate="text" name="PhotoCMYK8" text="Eight Color Photo" InkID="CcMmYKk">
+ <Channels>
+ <channel name="photo3_black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="DarkGrayTrans"/>
+ </subchannel>
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="DarkGrayTrans"/>
+ <SubchannelValueParam name="DarkGrayValue"/>
+ <SubchannelScaleParam name="DarkGrayScale"/>
+ </subchannel>
+ <subchannel color="0" subchannel="3" name="LightLightBlack" text="Light Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="LightGrayTrans"/>
+ <SubchannelValueParam name="LightGrayValue"/>
+ <SubchannelScaleParam name="LightGrayScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhotoCMYK7" text="Seven Color Photo" InkID="CcMmYKk">
+ <Channels>
+ <channel name="photo2_black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="GrayTrans"/>
+ </subchannel>
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ <SubchannelTransitionParam name="GrayTrans"/>
+ <SubchannelValueParam name="GrayValue"/>
+ <SubchannelScaleParam name="GrayScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhotoCMYK" text="Six Color Photo" InkID="CcMmYK">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhotoCMY" text="Five Color Photo Composite" InkID="CcMmYK">
+ <Channels>
+ <channel name="photo_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ </subchannel>
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ <SubchannelTransitionParam name="LightCyanTrans"/>
+ <SubchannelValueParam name="LightCyanValue"/>
+ <SubchannelScaleParam name="LightCyanScale"/>
+ </subchannel>
+ </channel>
+ <channel name="photo_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" subchannel="0" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ </subchannel>
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ <SubchannelTransitionParam name="LightMagentaTrans"/>
+ <SubchannelValueParam name="LightMagentaValue"/>
+ <SubchannelScaleParam name="LightMagentaScale"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="CMYK" text="Four Color Standard" InkID="CMYK">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="CMY" text="Three Color Composite" InkID="CMYK">
+ <Channels>
+ <channel name="standard_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhysicalCMYKkk" text="Eight Color Raw" InkID="Extended">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_black" index="1">
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_photo3_black" index="2">
+ <subchannel color="0" subchannel="3" name="LightLightBlack" text="Light Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_cyan" index="3">
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_cyan" index="4">
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="5">
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_magenta" index="6">
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="7">
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhysicalCMYKkkOG" text="Ten Color Raw" InkID="Extended">
+ <Channels>
+ <channel name="black" index="0">
+ <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_black" index="1">
+ <subchannel color="0" subchannel="1" name="LightBlack" text="Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_photo3_black" index="2">
+ <subchannel color="0" subchannel="3" name="LightLightBlack" text="Light Light Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_cyan" index="3">
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_cyan" index="4">
+ <subchannel color="2" subchannel="1" name="LightCyan" text="Light Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_magenta" index="5">
+ <subchannel color="1" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="extended_magenta" index="6">
+ <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_yellow" index="7">
+ <subchannel color="4" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_orange" index="8">
+ <subchannel color="10" name="Orange" text="Orange" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="standard_green" index="9">
+ <subchannel color="11" name="Green" text="Green" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+</InkList>
+</escp2InkGroup>
+</gutenprint>
diff --git a/src/xml/escp2/inks/pro_ultrachrome_k3v4.xml b/src/xml/escp2/inks/pro_ultrachrome_k3v4.xml
index b5c3034..df84750 100644
--- a/src/xml/escp2/inks/pro_ultrachrome_k3v4.xml
+++ b/src/xml/escp2/inks/pro_ultrachrome_k3v4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="pro_ultrachrome_k3v4">
+<escp2InkGroup name="pro_ultrachrome_k3v4">
<InkList translate="text" name="ultra3photo" text="Photo Black">
<initSequence>IK\002\000\000\061</initSequence>
<Shades>
@@ -177,5 +177,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/standard.xml b/src/xml/escp2/inks/standard.xml
index 6c811e5..9b13905 100644
--- a/src/xml/escp2/inks/standard.xml
+++ b/src/xml/escp2/inks/standard.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="standard">
+<escp2InkGroup name="standard">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -205,5 +205,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/standard_gen0.xml b/src/xml/escp2/inks/standard_gen0.xml
index 32f36c0..5b7ee5d 100644
--- a/src/xml/escp2/inks/standard_gen0.xml
+++ b/src/xml/escp2/inks/standard_gen0.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="standard_gen0">
+<escp2InkGroup name="standard_gen0">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -205,5 +205,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/sx445.xml b/src/xml/escp2/inks/sx445.xml
new file mode 100644
index 0000000..7abb32f
--- /dev/null
+++ b/src/xml/escp2/inks/sx445.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2InkGroup name="nx100">
+<InkList translate="text" name="None" text="EPSON Standard Inks">
+ <Shades>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ <shade count="1">1.000000</shade>
+ </Shades>
+
+ <InkName translate="text" name="CMYK" text="Four Color Standard" InkID="CMYK">
+ <Channels>
+ <channel name="c64_black" index="0">
+ <subchannel color="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" headOffset="129" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" headOffset="257" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="RGB" text="Three Color Composite" InkID="CMYK">
+ <Channels>
+ <channel name="c64_cyan" index="1">
+ <HueCurveParam name="CyanHueCurve"/>
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_magenta" index="2">
+ <HueCurveParam name="MagentaHueCurve"/>
+ <subchannel color="1" headOffset="129" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_yellow" index="3">
+ <HueCurveParam name="YellowHueCurve"/>
+ <subchannel color="4" headOffset="257" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhysicalBlack" text="One Color Raw" InkID="Extended">
+ <Channels>
+ <channel name="standard_black" index="0">
+ <subchannel color="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhysicalCMY" text="Three Color Raw" InkID="Extended">
+ <Channels>
+ <channel name="c64_cyan" index="0">
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_magenta" index="1">
+ <subchannel color="1" headOffset="129" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_yellow" index="2">
+ <subchannel color="4" headOffset="257" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+
+ <InkName translate="text" name="PhysicalCMYK" text="Four Color Raw" InkID="Extended">
+ <Channels>
+ <channel name="c64_black" index="0">
+ <subchannel color="0" name="Black" text="Black" translate="text">
+ <ChannelDensityParam name="BlackDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_cyan" index="1">
+ <subchannel color="2" name="Cyan" text="Cyan" translate="text">
+ <ChannelDensityParam name="CyanDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_magenta" index="2">
+ <subchannel color="1" headOffset="129" name="Magenta" text="Magenta" translate="text">
+ <ChannelDensityParam name="MagentaDensity"/>
+ </subchannel>
+ </channel>
+ <channel name="c64_yellow" index="3">
+ <subchannel color="4" headOffset="257" name="Yellow" text="Yellow" translate="text">
+ <ChannelDensityParam name="YellowDensity"/>
+ </subchannel>
+ </channel>
+ </Channels>
+ </InkName>
+</InkList>
+</escp2InkGroup>
+</gutenprint>
diff --git a/src/xml/escp2/inks/ultrachrome.xml b/src/xml/escp2/inks/ultrachrome.xml
index e82a5e1..1c180cf 100644
--- a/src/xml/escp2/inks/ultrachrome.xml
+++ b/src/xml/escp2/inks/ultrachrome.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="ultrachrome">
+<escp2InkGroup name="ultrachrome">
<InkList translate="text" name="ultraphoto" text="UltraChrome Photo Black">
<Shades>
<shade count="2">1.000000 0.480000</shade>
@@ -786,5 +786,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/wf40.xml b/src/xml/escp2/inks/wf40.xml
index 72c5a26..177fdc9 100644
--- a/src/xml/escp2/inks/wf40.xml
+++ b/src/xml/escp2/inks/wf40.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="wf40">
+<escp2InkGroup name="wf40">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -138,5 +138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/wf500.xml b/src/xml/escp2/inks/wf500.xml
index 30685b1..073f632 100644
--- a/src/xml/escp2/inks/wf500.xml
+++ b/src/xml/escp2/inks/wf500.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="wf500">
+<escp2InkGroup name="wf500">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inks/x80.xml b/src/xml/escp2/inks/x80.xml
index 5aa670d..80ce8e8 100644
--- a/src/xml/escp2/inks/x80.xml
+++ b/src/xml/escp2/inks/x80.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InkGroup name="x80">
+<escp2InkGroup name="x80">
<InkList translate="text" name="None" text="EPSON Standard Inks">
<Shades>
<shade count="1">1.000000</shade>
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</Channels>
</InkName>
</InkList>
-</escp2:InkGroup>
+</escp2InkGroup>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/Makefile.am b/src/xml/escp2/inputslots/Makefile.am
index d6d85d8..5f12b48 100644
--- a/src/xml/escp2/inputslots/Makefile.am
+++ b/src/xml/escp2/inputslots/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.10 2010/08/11 00:26:09 rlk Exp $
+## $Id: Makefile.am,v 1.12 2013/03/17 21:17:37 rlk Exp $
## Copyright (C) 2008 Robert Krawitz
##
## This program is free software; you can redistribute it and/or modify
@@ -33,6 +33,7 @@ pkgxmldata_DATA = \
cd_roll_feed.xml \
cutter_roll_feed.xml \
default.xml \
+ default-duplex.xml \
pro3880.xml \
pro_roll_feed.xml \
pro_cutter_roll_feed.xml \
@@ -42,7 +43,8 @@ pkgxmldata_DATA = \
rx680.xml \
rx700.xml \
spro5000.xml \
- standard_roll_feed.xml
+ standard_roll_feed.xml \
+ wf7000.xml
xml-stamp: $(pkgxmldata_DATA) Makefile.am
-rm -f $@ $@.tmp
diff --git a/src/xml/escp2/inputslots/Makefile.in b/src/xml/escp2/inputslots/Makefile.in
index 0216513..6a9eb25 100644
--- a/src/xml/escp2/inputslots/Makefile.in
+++ b/src/xml/escp2/inputslots/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2/inputslots
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -60,8 +104,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -83,12 +144,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +215,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -157,6 +227,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -181,6 +252,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -309,6 +382,7 @@ pkgxmldata_DATA = \
cd_roll_feed.xml \
cutter_roll_feed.xml \
default.xml \
+ default-duplex.xml \
pro3880.xml \
pro_roll_feed.xml \
pro_cutter_roll_feed.xml \
@@ -318,7 +392,8 @@ pkgxmldata_DATA = \
rx680.xml \
rx700.xml \
spro5000.xml \
- standard_roll_feed.xml
+ standard_roll_feed.xml \
+ wf7000.xml
CLEANFILES = xmli18n-tmp.h xml-stamp xml-stamp.tmp
EXTRA_DIST = $(pkgxmldata_DATA)
@@ -346,6 +421,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -363,8 +439,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -378,14 +457,12 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
-tags: TAGS
-TAGS:
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
@@ -438,10 +515,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -523,16 +605,17 @@ uninstall-am: uninstall-pkgxmldataDATA
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool dist-hook distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgxmldataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am uninstall uninstall-am uninstall-pkgxmldataDATA
+ clean-libtool cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgxmldataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-pkgxmldataDATA
@SET_MAKE@
diff --git a/src/xml/escp2/inputslots/artisan.xml b/src/xml/escp2/inputslots/artisan.xml
index 96a2418..4ce4872 100644
--- a/src/xml/escp2/inputslots/artisan.xml
+++ b/src/xml/escp2/inputslots/artisan.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="artisan">
+<escp2InputSlots name="artisan">
<slot translate="text" name="LowerFront" text="Main Tray">
<Duplex><Tumble/></Duplex>
@@ -36,5 +36,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CD/>
<InitSequence>PP\003\000\000\002\001</InitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/b500.xml b/src/xml/escp2/inputslots/b500.xml
index 9e9652a..eacb4bd 100644
--- a/src/xml/escp2/inputslots/b500.xml
+++ b/src/xml/escp2/inputslots/b500.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="b500">
+<escp2InputSlots name="b500">
<slot translate="text" name="Rear" text="Rear Tray">
<Duplex><Tumble/></Duplex>
@@ -31,5 +31,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<Duplex><Tumble/></Duplex>
<InitSequence>PP\003\000\000\001\001</InitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/cd.xml b/src/xml/escp2/inputslots/cd.xml
index 9ecb61b..6a69256 100644
--- a/src/xml/escp2/inputslots/cd.xml
+++ b/src/xml/escp2/inputslots/cd.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="cd">
+<escp2InputSlots name="cd">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>PP\003\000\000\001\377</InitSequence>
@@ -30,5 +30,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CD/>
<InitSequence>PP\003\000\000\002\001</InitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/cd_cutter_roll_feed.xml b/src/xml/escp2/inputslots/cd_cutter_roll_feed.xml
index cd702fe..57d8699 100644
--- a/src/xml/escp2/inputslots/cd_cutter_roll_feed.xml
+++ b/src/xml/escp2/inputslots/cd_cutter_roll_feed.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="cd_cutter_roll_feed">
+<escp2InputSlots name="cd_cutter_roll_feed">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000PP\003\000\000\001\377</InitSequence>
@@ -49,5 +49,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\001PP\003\000\000\001\377</InitSequence>
<DeinitSequence>IR\002\000\000\002</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/cd_roll_feed.xml b/src/xml/escp2/inputslots/cd_roll_feed.xml
index 259ac2d..7dd8cd0 100644
--- a/src/xml/escp2/inputslots/cd_roll_feed.xml
+++ b/src/xml/escp2/inputslots/cd_roll_feed.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="cd_roll_feed">
+<escp2InputSlots name="cd_roll_feed">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000PP\003\000\000\001\377</InitSequence>
@@ -43,5 +43,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\001PP\003\000\000\001\377</InitSequence>
<DeinitSequence>IR\002\000\000\002</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/cutter_roll_feed.xml b/src/xml/escp2/inputslots/cutter_roll_feed.xml
index f316783..0e29b78 100644
--- a/src/xml/escp2/inputslots/cutter_roll_feed.xml
+++ b/src/xml/escp2/inputslots/cutter_roll_feed.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="cutter_roll_feed">
+<escp2InputSlots name="cutter_roll_feed">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000</InitSequence>
@@ -38,5 +38,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\001</InitSequence>
<DeinitSequence>IR\002\000\000\002</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/default-duplex.xml b/src/xml/escp2/inputslots/default-duplex.xml
new file mode 100644
index 0000000..7f3acb3
--- /dev/null
+++ b/src/xml/escp2/inputslots/default-duplex.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2InputSlots name="default-duplex">
+ <slot translate="text" name="Main" text="Main Input">
+ <Duplex><Tumble/></Duplex>
+ </slot>
+</escp2InputSlots>
+</gutenprint>
diff --git a/src/xml/escp2/inputslots/default.xml b/src/xml/escp2/inputslots/default.xml
index 44e829c..5070744 100644
--- a/src/xml/escp2/inputslots/default.xml
+++ b/src/xml/escp2/inputslots/default.xml
@@ -20,5 +20,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="default"/>
+<escp2InputSlots name="default"/>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/pro3880.xml b/src/xml/escp2/inputslots/pro3880.xml
index a11765a..7a06e69 100644
--- a/src/xml/escp2/inputslots/pro3880.xml
+++ b/src/xml/escp2/inputslots/pro3880.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="pro3880">
+<escp2InputSlots name="pro3880">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\003PP\003\000\000\001\000</InitSequence>
@@ -38,5 +38,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/pro_cutter_roll_feed.xml b/src/xml/escp2/inputslots/pro_cutter_roll_feed.xml
index 1b4a51d..a617a25 100644
--- a/src/xml/escp2/inputslots/pro_cutter_roll_feed.xml
+++ b/src/xml/escp2/inputslots/pro_cutter_roll_feed.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="pro_cutter_roll_feed">
+<escp2InputSlots name="pro_cutter_roll_feed">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\003\001EX\006\000\000\000\000\000\005\000PP\003\000\000\001\377SN\003\000\000\204\000</InitSequence>
@@ -55,5 +55,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\001PP\003\000\000\003\001SN\003\000\000\204\000</InitSequence>
<DeinitSequence>IR\002\000\000\000</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/pro_roll_feed.xml b/src/xml/escp2/inputslots/pro_roll_feed.xml
index 98cf0b7..abaa4d0 100644
--- a/src/xml/escp2/inputslots/pro_roll_feed.xml
+++ b/src/xml/escp2/inputslots/pro_roll_feed.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="pro_roll_feed">
+<escp2InputSlots name="pro_roll_feed">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>PP\003\000\000\002\000</InitSequence>
@@ -30,5 +30,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<RollFeed/>
<InitSequence>PP\003\000\000\003\000</InitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/r1800.xml b/src/xml/escp2/inputslots/r1800.xml
index f8ad994..a26b60c 100644
--- a/src/xml/escp2/inputslots/r1800.xml
+++ b/src/xml/escp2/inputslots/r1800.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="r1800">
+<escp2InputSlots name="r1800">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000PP\003\000\000\001\377</InitSequence>
@@ -48,5 +48,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>PM\002\000\000\000IR\002\000\000\001EX\006\000\000\000\000\000\005\000FP\003\000\000\000\000PP\003\000\000\002\001</InitSequence>
<DeinitSequence>IR\002\000\000\000</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/r2400.xml b/src/xml/escp2/inputslots/r2400.xml
index 82a2a50..6630a09 100644
--- a/src/xml/escp2/inputslots/r2400.xml
+++ b/src/xml/escp2/inputslots/r2400.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="r2400">
+<escp2InputSlots name="r2400">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000PP\003\000\000\001\377</InitSequence>
@@ -43,5 +43,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\001PP\003\000\000\003\001</InitSequence>
<DeinitSequence>IR\002\000\000\002</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/r2880.xml b/src/xml/escp2/inputslots/r2880.xml
index 17f709a..181cc15 100644
--- a/src/xml/escp2/inputslots/r2880.xml
+++ b/src/xml/escp2/inputslots/r2880.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="r2400">
+<escp2InputSlots name="r2400">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000PP\003\000\000\001\377</InitSequence>
@@ -48,5 +48,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\001PP\003\000\000\003\001</InitSequence>
<DeinitSequence>IR\002\000\000\002</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/rx680.xml b/src/xml/escp2/inputslots/rx680.xml
index 64bf344..a124f46 100644
--- a/src/xml/escp2/inputslots/rx680.xml
+++ b/src/xml/escp2/inputslots/rx680.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="rx680">
+<escp2InputSlots name="rx680">
<slot translate="text" name="Rear" text="Rear Tray">
<Duplex><Tumble/></Duplex>
@@ -36,5 +36,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CD/>
<InitSequence>PP\003\000\000\002\001</InitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/rx700.xml b/src/xml/escp2/inputslots/rx700.xml
index de405dd..c9088d1 100644
--- a/src/xml/escp2/inputslots/rx700.xml
+++ b/src/xml/escp2/inputslots/rx700.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="rx700">
+<escp2InputSlots name="rx700">
<slot translate="text" name="Rear" text="Rear Tray">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000PP\003\000\000\001\000</InitSequence>
@@ -42,5 +42,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000PP\003\000\000\002\000</InitSequence>
<DeinitSequence>IR\002\000\000\000</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/spro5000.xml b/src/xml/escp2/inputslots/spro5000.xml
index 0900d1a..8ce630a 100644
--- a/src/xml/escp2/inputslots/spro5000.xml
+++ b/src/xml/escp2/inputslots/spro5000.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="spro5000">
+<escp2InputSlots name="spro5000">
<slot translate="text" name="CutSheet1" text="Cut Sheet Bin 1">
<InitSequence>PP\003\000\000\001\001</InitSequence>
@@ -37,5 +37,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<slot translate="text" name="ManualSelect" text="Manual Selection">
<InitSequence>PP\003\000\000\002\001</InitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/standard_roll_feed.xml b/src/xml/escp2/inputslots/standard_roll_feed.xml
index 818310e..0396de6 100644
--- a/src/xml/escp2/inputslots/standard_roll_feed.xml
+++ b/src/xml/escp2/inputslots/standard_roll_feed.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:InputSlots name="standard_roll_feed">
+<escp2InputSlots name="standard_roll_feed">
<slot translate="text" name="Standard" text="Standard">
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\000</InitSequence>
@@ -32,5 +32,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<InitSequence>IR\002\000\000\001EX\006\000\000\000\000\000\005\001</InitSequence>
<DeinitSequence>IR\002\000\000\002</DeinitSequence>
</slot>
-</escp2:InputSlots>
+</escp2InputSlots>
</gutenprint>
diff --git a/src/xml/escp2/inputslots/wf7000.xml b/src/xml/escp2/inputslots/wf7000.xml
new file mode 100644
index 0000000..f2fa7c6
--- /dev/null
+++ b/src/xml/escp2/inputslots/wf7000.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2InputSlots name="wf7000">
+
+ <slot translate="text" name="tray1" text="Tray 1">
+ <Duplex><Tumble/></Duplex>
+ <InitSequence>PP\003\000\000\001\001</InitSequence>
+ </slot>
+
+ <slot translate="text" name="tray2" text="Tray 2">
+ <Duplex><Tumble/></Duplex>
+ <InitSequence>PP\003\000\000\001\001</InitSequence>
+ </slot>
+</escp2InputSlots>
+</gutenprint>
diff --git a/src/xml/escp2/media/Makefile.am b/src/xml/escp2/media/Makefile.am
index 56228bc..09ea15b 100644
--- a/src/xml/escp2/media/Makefile.am
+++ b/src/xml/escp2/media/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.15 2010/08/11 00:26:09 rlk Exp $
+## $Id: Makefile.am,v 1.16 2014/01/23 13:22:42 rlk Exp $
## Copyright (C) 2008 Robert Krawitz
##
## This program is free software; you can redistribute it and/or modify
@@ -61,6 +61,7 @@ pkgxmldata_DATA = \
pro_ultrachrome.xml \
pro_ultrachrome_k3.xml \
pro_ultrachrome_k3v.xml \
+ pro_ultrachrome_k3v10.xml \
r800.xml \
standard.xml \
standard_gen0.xml \
diff --git a/src/xml/escp2/media/Makefile.in b/src/xml/escp2/media/Makefile.in
index 50acdf6..11813e8 100644
--- a/src/xml/escp2/media/Makefile.in
+++ b/src/xml/escp2/media/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2/media
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -60,8 +104,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -83,12 +144,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +215,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -157,6 +227,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -181,6 +252,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -337,6 +410,7 @@ pkgxmldata_DATA = \
pro_ultrachrome.xml \
pro_ultrachrome_k3.xml \
pro_ultrachrome_k3v.xml \
+ pro_ultrachrome_k3v10.xml \
r800.xml \
standard.xml \
standard_gen0.xml \
@@ -370,6 +444,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -387,8 +462,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -402,14 +480,12 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
-tags: TAGS
-TAGS:
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
@@ -462,10 +538,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -547,16 +628,17 @@ uninstall-am: uninstall-pkgxmldataDATA
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool dist-hook distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgxmldataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am uninstall uninstall-am uninstall-pkgxmldataDATA
+ clean-libtool cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgxmldataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-pkgxmldataDATA
@SET_MAKE@
diff --git a/src/xml/escp2/media/artisan.xml b/src/xml/escp2/media/artisan.xml
index 576f7cb..8386e0b 100644
--- a/src/xml/escp2/media/artisan.xml
+++ b/src/xml/escp2/media/artisan.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="claria">
+<escp2Papers name="claria">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -1313,5 +1313,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/b500.xml b/src/xml/escp2/media/b500.xml
index 198ec4b..01e6ded 100644
--- a/src/xml/escp2/media/b500.xml
+++ b/src/xml/escp2/media/b500.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="b500">
+<escp2Papers name="b500">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -891,5 +891,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/c120.xml b/src/xml/escp2/media/c120.xml
index 6905b8a..bb3c450 100644
--- a/src/xml/escp2/media/c120.xml
+++ b/src/xml/escp2/media/c120.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="c120">
+<escp2Papers name="c120">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -1138,5 +1138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/c64.xml b/src/xml/escp2/media/c64.xml
index 47ec5e7..a26ac8c 100644
--- a/src/xml/escp2/media/c64.xml
+++ b/src/xml/escp2/media/c64.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="c64">
+<escp2Papers name="c64">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1107,5 +1107,5 @@ class="photo">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/c80.xml b/src/xml/escp2/media/c80.xml
index b9b37d9..6dc4f22 100644
--- a/src/xml/escp2/media/c80.xml
+++ b/src/xml/escp2/media/c80.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="c80">
+<escp2Papers name="c80">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1109,5 +1109,5 @@ class="photo" PreferredInktype="RGB">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/c82.xml b/src/xml/escp2/media/c82.xml
index 1f2b76a..8e0b560 100644
--- a/src/xml/escp2/media/c82.xml
+++ b/src/xml/escp2/media/c82.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="c82">
+<escp2Papers name="c82">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1107,5 +1107,5 @@ class="photo">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/claria.xml b/src/xml/escp2/media/claria.xml
index c54e054..7b14cf7 100644
--- a/src/xml/escp2/media/claria.xml
+++ b/src/xml/escp2/media/claria.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="claria">
+<escp2Papers name="claria">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -2313,5 +2313,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/claria1400.xml b/src/xml/escp2/media/claria1400.xml
index d521ef0..465fc7d 100644
--- a/src/xml/escp2/media/claria1400.xml
+++ b/src/xml/escp2/media/claria1400.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="claria">
+<escp2Papers name="claria">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -2312,5 +2312,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/cmy.xml b/src/xml/escp2/media/cmy.xml
index 300da1e..fe30094 100644
--- a/src/xml/escp2/media/cmy.xml
+++ b/src/xml/escp2/media/cmy.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="cmy">
+<escp2Papers name="cmy">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -442,5 +442,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/cmykrb.xml b/src/xml/escp2/media/cmykrb.xml
index 22ed8c0..376b95e 100644
--- a/src/xml/escp2/media/cmykrb.xml
+++ b/src/xml/escp2/media/cmykrb.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="cmykrb">
+<escp2Papers name="cmykrb">
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
<Curves>
@@ -1462,5 +1462,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="cmykrbMatteSat"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/cmykro.xml b/src/xml/escp2/media/cmykro.xml
index f923a3a..943ec7a 100644
--- a/src/xml/escp2/media/cmykro.xml
+++ b/src/xml/escp2/media/cmykro.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="cmykro">
+<escp2Papers name="cmykro">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -1464,5 +1464,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="cmykroMatteSat"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/cx3650.xml b/src/xml/escp2/media/cx3650.xml
index f1638c1..e87ee30 100644
--- a/src/xml/escp2/media/cx3650.xml
+++ b/src/xml/escp2/media/cx3650.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="cx3650">
+<escp2Papers name="cx3650">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1107,5 +1107,5 @@ class="photo">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/f360.xml b/src/xml/escp2/media/f360.xml
index d9762a1..4a5334d 100644
--- a/src/xml/escp2/media/f360.xml
+++ b/src/xml/escp2/media/f360.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="f360">
+<escp2Papers name="f360">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1107,5 +1107,5 @@ class="photo">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/f360_photo.xml b/src/xml/escp2/media/f360_photo.xml
index 375d452..b1b13f9 100644
--- a/src/xml/escp2/media/f360_photo.xml
+++ b/src/xml/escp2/media/f360_photo.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="f360_photo">
+<escp2Papers name="f360_photo">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -497,5 +497,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/f360_photo7_japan.xml b/src/xml/escp2/media/f360_photo7_japan.xml
index eec937c..19c4f9c 100644
--- a/src/xml/escp2/media/f360_photo7_japan.xml
+++ b/src/xml/escp2/media/f360_photo7_japan.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="f360_photo7_japan">
+<escp2Papers name="f360_photo7_japan">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -497,5 +497,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/f360_ultrachrome.xml b/src/xml/escp2/media/f360_ultrachrome.xml
index 5a0bdbd..8249d00 100644
--- a/src/xml/escp2/media/f360_ultrachrome.xml
+++ b/src/xml/escp2/media/f360_ultrachrome.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="f360_ultrachrome">
+<escp2Papers name="f360_ultrachrome">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -914,5 +914,5 @@ PreferredInkset="UltraMatte">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/f360_ultrachrome_k3.xml b/src/xml/escp2/media/f360_ultrachrome_k3.xml
index ff77158..c43628c 100644
--- a/src/xml/escp2/media/f360_ultrachrome_k3.xml
+++ b/src/xml/escp2/media/f360_ultrachrome_k3.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="f360_ultrachrome_k3">
+<escp2Papers name="f360_ultrachrome_k3">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -1464,5 +1464,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/f360_ultrachrome_k3v.xml b/src/xml/escp2/media/f360_ultrachrome_k3v.xml
index ba9610a..9d91d34 100644
--- a/src/xml/escp2/media/f360_ultrachrome_k3v.xml
+++ b/src/xml/escp2/media/f360_ultrachrome_k3v.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="f360_ultrachrome_k3v">
+<escp2Papers name="f360_ultrachrome_k3v">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -1464,5 +1464,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/nx100.xml b/src/xml/escp2/media/nx100.xml
index e52e1bc..b49dcda 100644
--- a/src/xml/escp2/media/nx100.xml
+++ b/src/xml/escp2/media/nx100.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="c120">
+<escp2Papers name="c120">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -976,5 +976,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/photo_gen0.xml b/src/xml/escp2/media/photo_gen0.xml
index 9db93ed..4856cf1 100644
--- a/src/xml/escp2/media/photo_gen0.xml
+++ b/src/xml/escp2/media/photo_gen0.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="photo_gen0">
+<escp2Papers name="photo_gen0">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1411,5 +1411,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/photo_gen1.xml b/src/xml/escp2/media/photo_gen1.xml
index a2bf3c8..612f070 100644
--- a/src/xml/escp2/media/photo_gen1.xml
+++ b/src/xml/escp2/media/photo_gen1.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="photo_gen1">
+<escp2Papers name="photo_gen1">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1430,5 +1430,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/photo_gen2.xml b/src/xml/escp2/media/photo_gen2.xml
index da3e7c7..17b0851 100644
--- a/src/xml/escp2/media/photo_gen2.xml
+++ b/src/xml/escp2/media/photo_gen2.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="photo_gen2">
+<escp2Papers name="photo_gen2">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1430,5 +1430,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/photo_gen3.xml b/src/xml/escp2/media/photo_gen3.xml
index 5841d9c..6c41472 100644
--- a/src/xml/escp2/media/photo_gen3.xml
+++ b/src/xml/escp2/media/photo_gen3.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="photo_gen3">
+<escp2Papers name="photo_gen3">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1753,5 +1753,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/photo_gen3_4.xml b/src/xml/escp2/media/photo_gen3_4.xml
index 71b2c83..c7af620 100644
--- a/src/xml/escp2/media/photo_gen3_4.xml
+++ b/src/xml/escp2/media/photo_gen3_4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="photo_gen3_4">
+<escp2Papers name="photo_gen3_4">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1430,5 +1430,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/photo_gen4.xml b/src/xml/escp2/media/photo_gen4.xml
index 4b158cf..97a11b8 100644
--- a/src/xml/escp2/media/photo_gen4.xml
+++ b/src/xml/escp2/media/photo_gen4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="photo_gen4">
+<escp2Papers name="photo_gen4">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -999,5 +999,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/photo_pigment.xml b/src/xml/escp2/media/photo_pigment.xml
index ebfea31..46d35ef 100644
--- a/src/xml/escp2/media/photo_pigment.xml
+++ b/src/xml/escp2/media/photo_pigment.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="photo_pigment">
+<escp2Papers name="photo_pigment">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -543,5 +543,5 @@ PreferredInkset="UltraMatte">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/picturemate_4.xml b/src/xml/escp2/media/picturemate_4.xml
index 1cf7b8f..d02ab66 100644
--- a/src/xml/escp2/media/picturemate_4.xml
+++ b/src/xml/escp2/media/picturemate_4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="picturemate_4">
+<escp2Papers name="picturemate_4">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -103,5 +103,5 @@ PreferredInkset="picturemateMatte">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/picturemate_6.xml b/src/xml/escp2/media/picturemate_6.xml
index 5d55fb4..a5dcaf1 100644
--- a/src/xml/escp2/media/picturemate_6.xml
+++ b/src/xml/escp2/media/picturemate_6.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="picturemate_6">
+<escp2Papers name="picturemate_6">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -103,5 +103,5 @@ PreferredInkset="picturemateMatte">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro3880_ultrachrome_k3v.xml b/src/xml/escp2/media/pro3880_ultrachrome_k3v.xml
index 2ed5697..931558a 100644
--- a/src/xml/escp2/media/pro3880_ultrachrome_k3v.xml
+++ b/src/xml/escp2/media/pro3880_ultrachrome_k3v.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="pro3880_ultrachrome_k3v">
+<escp2Papers name="pro3880_ultrachrome_k3v">
<feature name="PlatenGap"/>
<feature name="PaperThickness"/>
<feature name="PaperMedia"/>
@@ -1454,5 +1454,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro_gen1.xml b/src/xml/escp2/media/pro_gen1.xml
index 85bff88..31dd712 100644
--- a/src/xml/escp2/media/pro_gen1.xml
+++ b/src/xml/escp2/media/pro_gen1.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="pro_gen1">
+<escp2Papers name="pro_gen1">
<feature name="PaperThickness"/>
<feature name="VacuumIntensity"/>
<feature name="FeedAdjustment"/>
@@ -1451,5 +1451,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro_gen2.xml b/src/xml/escp2/media/pro_gen2.xml
index 21424e7..49f78d6 100644
--- a/src/xml/escp2/media/pro_gen2.xml
+++ b/src/xml/escp2/media/pro_gen2.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="pro_gen2">
+<escp2Papers name="pro_gen2">
<feature name="PaperThickness"/>
<feature name="VacuumIntensity"/>
<feature name="FeedAdjustment"/>
@@ -1470,5 +1470,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro_pigment.xml b/src/xml/escp2/media/pro_pigment.xml
index ba1df50..105a803 100644
--- a/src/xml/escp2/media/pro_pigment.xml
+++ b/src/xml/escp2/media/pro_pigment.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="pro_pigment">
+<escp2Papers name="pro_pigment">
<feature name="PaperThickness"/>
<feature name="VacuumIntensity"/>
<feature name="FeedAdjustment"/>
@@ -584,5 +584,5 @@ class="photo">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro_ultrachrome.xml b/src/xml/escp2/media/pro_ultrachrome.xml
index fef1cd1..53283f6 100644
--- a/src/xml/escp2/media/pro_ultrachrome.xml
+++ b/src/xml/escp2/media/pro_ultrachrome.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="pro_ultrachrome">
+<escp2Papers name="pro_ultrachrome">
<Curves>
<namedParam name="hue_map">
<curve wrap="wrap" type="linear" gamma="0" piecewise="false">
@@ -937,5 +937,5 @@ PreferredInkset="Ultramatte">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro_ultrachrome_k3.xml b/src/xml/escp2/media/pro_ultrachrome_k3.xml
index 557a4c1..b9c628d 100644
--- a/src/xml/escp2/media/pro_ultrachrome_k3.xml
+++ b/src/xml/escp2/media/pro_ultrachrome_k3.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="pro_ultrachrome_k3">
+<escp2Papers name="pro_ultrachrome_k3">
<feature name="PlatenGap"/>
<feature name="PaperThickness"/>
<feature name="VacuumIntensity"/>
@@ -920,5 +920,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro_ultrachrome_k3v.xml b/src/xml/escp2/media/pro_ultrachrome_k3v.xml
index a48a9c7..1149102 100644
--- a/src/xml/escp2/media/pro_ultrachrome_k3v.xml
+++ b/src/xml/escp2/media/pro_ultrachrome_k3v.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="pro_ultrachrome_k3v">
+<escp2Papers name="pro_ultrachrome_k3v">
<feature name="PlatenGap"/>
<feature name="PaperThickness"/>
<feature name="VacuumIntensity"/>
@@ -921,5 +921,5 @@ PreferredInkset="ultra3matte">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/pro_ultrachrome_k3v10.xml b/src/xml/escp2/media/pro_ultrachrome_k3v10.xml
new file mode 100644
index 0000000..1149102
--- /dev/null
+++ b/src/xml/escp2/media/pro_ultrachrome_k3v10.xml
@@ -0,0 +1,925 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2Papers name="pro_ultrachrome_k3v">
+<feature name="PlatenGap"/>
+<feature name="PaperThickness"/>
+<feature name="VacuumIntensity"/>
+<feature name="FeedAdjustment"/>
+<feature name="PageDryTime"/>
+<feature name="ScanDryTime"/>
+<feature name="ScanMinDryTime"/>
+<Curves>
+ <namedParam name="hue_map">
+ <curve wrap="wrap" type="linear" gamma="0" piecewise="false">
+ <sequence count="48" lower-bound="-6" upper-bound="6">
+ 0 0.06 0.1 0.1 0.06 0 -0.06 -0.12
+ -0.18 -0.21 -0.22 -0.22 -0.22 -0.22 -0.22 -0.22
+ -0.22 -0.28 -0.34 -0.4 -0.5 -0.4 -0.3 -0.2
+ -0.12 -0.07 -0.04 -0.02 0 0 0 0
+ 0 0 -0.03 -0.07 -0.11 -0.15 -0.17 -0.18
+ -0.19 -0.2 -0.19 -0.18 -0.16 -0.12 -0.08 -0.04
+ </sequence>
+ </curve>
+ </namedParam>
+ <namedParam name="lum_map">
+ <curve wrap="wrap" type="linear" gamma="0" piecewise="false">
+ <sequence count="48" lower-bound="0" upper-bound="4">
+ 0.55 0.57 0.61 0.64 0.67 0.69 0.72 0.75
+ 0.83 0.8 0.76 0.76 0.78 0.79 0.83 0.86
+ 0.93 0.95 0.97 0.97 0.97 0.97 0.96 0.96
+ 0.96 0.97 0.97 0.98 0.99 1 1 1
+ 1 0.98 0.97 0.95 0.93 0.91 0.88 0.83
+ 0.83 0.71 0.65 0.61 0.58 0.56 0.55 0.55
+ </sequence>
+ </curve>
+ </namedParam>
+ <namedParam name="sat_map">
+ <curve wrap="wrap" type="linear" gamma="0" piecewise="false">
+ <sequence count="48" lower-bound="0" upper-bound="4">
+ 1 1 1 1.05 1.1 1.15 1.15 1.15
+ 1.15 1.15 1.15 1.1 1.1 1.05 1.05 1
+ 1 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1
+ 1 1.05 1.15 1.25 1.35 1.45 1.5 1.5
+ 1.5 1.5 1.5 1.45 1.35 1.25 1.15 1.05
+ </sequence>
+ </curve>
+ </namedParam>
+ <namedParam name="premium_hue_map">
+ <curve wrap="wrap" type="linear" gamma="0" piecewise="false">
+ <sequence count="48" lower-bound="-6" upper-bound="6">
+ 0 0.06 0.1 0.1 0.06 0 -0.06 -0.12
+ -0.18 -0.21 -0.22 -0.22 -0.22 -0.22 -0.22 -0.22
+ -0.22 -0.28 -0.34 -0.4 -0.5 -0.4 -0.3 -0.2
+ -0.12 -0.07 -0.04 -0.02 0 0 0 0
+ 0 0 -0.03 -0.07 -0.11 -0.15 -0.19 -0.22
+ -0.25 -0.22 -0.19 -0.15 -0.12 -0.1 -0.06 -0.03
+ </sequence>
+ </curve>
+ </namedParam>
+ <namedParam name="premium_lum_map">
+ <curve wrap="wrap" type="linear" gamma="0" piecewise="false">
+ <sequence count="48" lower-bound="0" upper-bound="4">
+ 0.55 0.57 0.61 0.64 0.67 0.69 0.72 0.75
+ 0.75 0.71 0.7 0.7 0.72 0.76 0.81 0.87
+ 0.93 0.95 0.97 0.98 0.98 0.97 0.96 0.96
+ 0.96 0.97 0.98 0.98 0.99 1 1 1
+ 1 0.98 0.97 0.96 0.95 0.93 0.9 0.87
+ 0.83 0.71 0.65 0.61 0.58 0.56 0.55 0.55
+ </sequence>
+ </curve>
+ </namedParam>
+ <namedParam name="premium_sat_map">
+ <curve wrap="wrap" type="linear" gamma="0" piecewise="false">
+ <sequence count="48" lower-bound="0" upper-bound="4">
+ 1 1 1 1.05 1.1 1.15 1.15 1.15
+ 1.15 1.15 1.15 1.1 1.1 1.05 1.05 1
+ 1 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1
+ 1 1.05 1.15 1.25 1.35 1.45 1.5 1.5
+ 1.5 1.5 1.5 1.45 1.35 1.25 1.15 1.05
+ </sequence>
+ </curve>
+ </namedParam>
+</Curves>
+<paper translate="text" name="Plain" text="Plain Paper" class="plain" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">0</parameter>
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">26</parameter>
+ <parameter type="integer" name="FeedAdjustment">107</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.100000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Postcard" text="Postcard" class="plain" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">1</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">0</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.100000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="GlossyFilm" text="Glossy Film" class="photo" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">7</parameter>
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">109</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Transparency" text="Transparencies" class="transparency" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">9</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">109</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.750000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Envelope" text="Envelopes" class="plain" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">1</parameter>
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">26</parameter>
+ <parameter type="integer" name="FeedAdjustment">107</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.100000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="BackFilm" text="Back Light Film" class="transparency" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">10</parameter>
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">109</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.750000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Matte" text="Matte Paper" class="good" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">3</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">0</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="MatteHeavy" text="Matte Paper Heavyweight" class="good" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">5</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">0</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Inkjet" text="Inkjet Paper" class="good" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">1</parameter>
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">26</parameter>
+ <parameter type="integer" name="FeedAdjustment">107</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.300000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Coated" text="Photo Quality Inkjet Paper" class="good" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">3</parameter>
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">26</parameter>
+ <parameter type="integer" name="FeedAdjustment">107</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.400000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Photo" text="Photo Paper" class="photo" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">6</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">103</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">1.000000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">1.000000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="GlossyPhoto" text="Premium Glossy Photo Paper" class="premium" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">11</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">128</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">0.920000</parameter>
+ <parameter type="curve" name="HueMap" ref="premium_hue_map"/>
+ <parameter type="curve" name="LumMap" ref="premium_lum_map"/>
+ <parameter type="curve" name="SatMap" ref="premium_sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">1.000000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">0.920000</parameter>
+ <parameter type="curve" name="HueMap" ref="premium_hue_map"/>
+ <parameter type="curve" name="LumMap" ref="premium_lum_map"/>
+ <parameter type="curve" name="SatMap" ref="premium_sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Semigloss" text="Premium Semigloss Photo Paper" class="premium" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">12</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">128</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">0.920000</parameter>
+ <parameter type="curve" name="HueMap" ref="premium_hue_map"/>
+ <parameter type="curve" name="LumMap" ref="premium_lum_map"/>
+ <parameter type="curve" name="SatMap" ref="premium_sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.800000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">0.920000</parameter>
+ <parameter type="curve" name="HueMap" ref="premium_hue_map"/>
+ <parameter type="curve" name="LumMap" ref="premium_lum_map"/>
+ <parameter type="curve" name="SatMap" ref="premium_sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Luster" text="Premium Luster Photo Paper" class="premium" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">13</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">128</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">0.920000</parameter>
+ <parameter type="curve" name="HueMap" ref="premium_hue_map"/>
+ <parameter type="curve" name="LumMap" ref="premium_lum_map"/>
+ <parameter type="curve" name="SatMap" ref="premium_sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.800000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">0.920000</parameter>
+ <parameter type="curve" name="HueMap" ref="premium_hue_map"/>
+ <parameter type="curve" name="LumMap" ref="premium_lum_map"/>
+ <parameter type="curve" name="SatMap" ref="premium_sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="ArchivalMatte" text="Archival Matte Paper" class="premium" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">15</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">0</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.400000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">0.600000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+ </paper>
+
+<paper translate="text" name="WaterColorRadiant" text="Watercolor Paper - Radiant White" class="premium" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">15</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">0</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.800000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.920000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.400000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="GlossyPaper" text="Photo Quality Glossy Paper" class="photo" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">19</parameter>
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">26</parameter>
+ <parameter type="integer" name="FeedAdjustment">107</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Ilford" text="Ilford Heavy Paper" class="premium" PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperMedia">15</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">128</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="ColorLife" text="ColorLife Paper" class="premium" PreferredInkset="ultra3photo">
+ <parameter type="integer" name="PaperMedia">23</parameter>
+ <parameter type="integer" name="PaperThickness">2</parameter>
+ <parameter type="integer" name="VacuumIntensity">0</parameter>
+ <parameter type="integer" name="FeedAdjustment">103</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.830000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+
+<paper translate="text" name="Other" text="Other" class="plain"
+PreferredInkset="ultra3matte">
+ <parameter type="integer" name="PaperThickness">1</parameter>
+ <parameter type="integer" name="VacuumIntensity">26</parameter>
+ <parameter type="integer" name="FeedAdjustment">107</parameter>
+
+ <ink translate="text" name="ultra3photo" text="UltraChrome Photo Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.500000</parameter>
+ <parameter type="float" name="BlackTrans">1.000000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+
+ <ink translate="text" name="ultra3matte" text="UltraChrome Matte Black">
+ <parameter type="float" name="Density">0.720000</parameter>
+ <parameter type="float" name="SubchannelCutoff">0.100000</parameter>
+ <parameter type="float" name="BlackTrans">0.400000</parameter>
+ <parameter type="float" name="GCRLower">0.000000</parameter>
+ <parameter type="float" name="GCRUpper">0.000000</parameter>
+ <parameter type="float" name="CyanBalance">0.900000</parameter>
+ <parameter type="float" name="MagentaBalance">1.000000</parameter>
+ <parameter type="float" name="YellowBalance">1.000000</parameter>
+ <parameter type="float" name="BlackDensity">1.000000</parameter>
+ <parameter type="float" name="Saturation">1.000000</parameter>
+ <parameter type="float" name="Gamma">1.000000</parameter>
+ <parameter type="curve" name="HueMap" ref="hue_map"/>
+ <parameter type="curve" name="LumMap" ref="lum_map"/>
+ <parameter type="curve" name="SatMap" ref="sat_map"/>
+ </ink>
+</paper>
+</escp2Papers>
+</gutenprint>
diff --git a/src/xml/escp2/media/r800.xml b/src/xml/escp2/media/r800.xml
index 6634d10..52869e7 100644
--- a/src/xml/escp2/media/r800.xml
+++ b/src/xml/escp2/media/r800.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="r800">
+<escp2Papers name="r800">
<Curves>
<namedParam name="cmykrbPhotoHue">
<curve wrap="wrap" type="linear" gamma="0" piecewise="false">
@@ -833,5 +833,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="curve" name="SatMap" ref="cmykrbMatteSat"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/standard.xml b/src/xml/escp2/media/standard.xml
index cdc0e88..c8dfce9 100644
--- a/src/xml/escp2/media/standard.xml
+++ b/src/xml/escp2/media/standard.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="standard">
+<escp2Papers name="standard">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1107,5 +1107,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/standard_gen0.xml b/src/xml/escp2/media/standard_gen0.xml
index a4d5e98..3c10ef9 100644
--- a/src/xml/escp2/media/standard_gen0.xml
+++ b/src/xml/escp2/media/standard_gen0.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="standard_gen0">
+<escp2Papers name="standard_gen0">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -1088,5 +1088,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/ultrachrome.xml b/src/xml/escp2/media/ultrachrome.xml
index 2c093f1..7e844ec 100644
--- a/src/xml/escp2/media/ultrachrome.xml
+++ b/src/xml/escp2/media/ultrachrome.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="ultrachrome">
+<escp2Papers name="ultrachrome">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -914,5 +914,5 @@ PreferredInkset="UltraMatte">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/wf500.xml b/src/xml/escp2/media/wf500.xml
index 4a92aac..fdf8a00 100644
--- a/src/xml/escp2/media/wf500.xml
+++ b/src/xml/escp2/media/wf500.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="c120">
+<escp2Papers name="c120">
<feature name="PlatenGap"/>
<feature name="PaperMedia"/>
<feature name="PrintMethod"/>
@@ -1138,5 +1138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/media/x80.xml b/src/xml/escp2/media/x80.xml
index 4aa8a8f..fe28a20 100644
--- a/src/xml/escp2/media/x80.xml
+++ b/src/xml/escp2/media/x80.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:papers name="x80">
+<escp2Papers name="x80">
<feature name="FeedSequence"/>
<Curves>
<namedParam name="hue_map">
@@ -461,5 +461,5 @@ class="premium">
<parameter type="curve" name="SatMap" ref="sat_map"/>
</ink>
</paper>
-</escp2:papers>
+</escp2Papers>
</gutenprint>
diff --git a/src/xml/escp2/mediasizes/Makefile.in b/src/xml/escp2/mediasizes/Makefile.in
index 162a40a..5e63aaa 100644
--- a/src/xml/escp2/mediasizes/Makefile.in
+++ b/src/xml/escp2/mediasizes/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2/mediasizes
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -60,8 +104,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -83,12 +144,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +215,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -157,6 +227,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -181,6 +252,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -330,6 +403,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -347,8 +421,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -362,14 +439,12 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
-tags: TAGS
-TAGS:
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
@@ -422,10 +497,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -507,16 +587,17 @@ uninstall-am: uninstall-pkgxmldataDATA
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool dist-hook distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgxmldataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am uninstall uninstall-am uninstall-pkgxmldataDATA
+ clean-libtool cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgxmldataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-pkgxmldataDATA
@SET_MAKE@
diff --git a/src/xml/escp2/mediasizes/standard.xml b/src/xml/escp2/mediasizes/standard.xml
index 31cc7e0..630ae66 100644
--- a/src/xml/escp2/mediasizes/standard.xml
+++ b/src/xml/escp2/mediasizes/standard.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:MediaSizes name="default">
+<escp2MediaSizes name="default">
<MediaSize type="sheet" name="A4">
<parameter type="integer" name="PaperMediaSize">0</parameter>
</MediaSize>
@@ -114,5 +114,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<MediaSize type="default">
<parameter type="integer" name="PaperMediaSize">99</parameter>
</MediaSize>
-</escp2:MediaSizes>
+</escp2MediaSizes>
</gutenprint>
diff --git a/src/xml/escp2/model/Makefile.am b/src/xml/escp2/model/Makefile.am
index 479267b..7887eca 100644
--- a/src/xml/escp2/model/Makefile.am
+++ b/src/xml/escp2/model/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.30 2011/12/14 03:02:58 rlk Exp $
+## $Id: Makefile.am,v 1.33 2013/06/23 01:31:40 rlk Exp $
## Copyright (C) 2008 Robert Krawitz
##
## This program is free software; you can redistribute it and/or modify
@@ -143,7 +143,11 @@ pkgxmldata_DATA = \
model_114.xml \
model_115.xml \
model_116.xml \
- model_117.xml
+ model_117.xml \
+ model_118.xml \
+ model_119.xml \
+ model_120.xml \
+ model_121.xml
xml-stamp: $(pkgxmldata_DATA) Makefile.am
-rm -f $@ $@.tmp
diff --git a/src/xml/escp2/model/Makefile.in b/src/xml/escp2/model/Makefile.in
index 4bebb2f..4e8ccdc 100644
--- a/src/xml/escp2/model/Makefile.in
+++ b/src/xml/escp2/model/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2/model
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -60,8 +104,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -83,12 +144,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +215,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -157,6 +227,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -181,6 +252,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -419,7 +492,11 @@ pkgxmldata_DATA = \
model_114.xml \
model_115.xml \
model_116.xml \
- model_117.xml
+ model_117.xml \
+ model_118.xml \
+ model_119.xml \
+ model_120.xml \
+ model_121.xml
CLEANFILES = xmli18n-tmp.h xml-stamp xml-stamp.tmp
EXTRA_DIST = $(pkgxmldata_DATA)
@@ -447,6 +524,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -464,8 +542,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -479,14 +560,12 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
-tags: TAGS
-TAGS:
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
@@ -539,10 +618,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -624,16 +708,17 @@ uninstall-am: uninstall-pkgxmldataDATA
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool dist-hook distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgxmldataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am uninstall uninstall-am uninstall-pkgxmldataDATA
+ clean-libtool cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgxmldataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-pkgxmldataDATA
@SET_MAKE@
diff --git a/src/xml/escp2/model/model_0.xml b/src/xml/escp2/model/model_0.xml
index 4cc765e..48d621c 100644
--- a/src/xml/escp2/model/model_0.xml
+++ b/src/xml/escp2/model/model_0.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="0">
+<escp2Model id="0">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,10 +53,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -122,5 +122,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_1.xml b/src/xml/escp2/model/model_1.xml
index a1dc62b..53b34f6 100644
--- a/src/xml/escp2/model/model_1.xml
+++ b/src/xml/escp2/model/model_1.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="1">
+<escp2Model id="1">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -52,10 +52,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -140,5 +140,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_10.xml b/src/xml/escp2/model/model_10.xml
index a1a2630..be896fd 100644
--- a/src/xml/escp2/model/model_10.xml
+++ b/src/xml/escp2/model/model_10.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="10">
+<escp2Model id="10">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -56,10 +56,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -142,5 +142,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_100.xml b/src/xml/escp2/model/model_100.xml
index a92aa11..17219f8 100644
--- a/src/xml/escp2/model/model_100.xml
+++ b/src/xml/escp2/model/model_100.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="100">
+<escp2Model id="100">
<media src="escp2/media/c120.xml"/>
<inputSlots src="escp2/inputslots/cd.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -80,11 +80,11 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black 1"/>
- <ChannelName translate="name" name="Black 2"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black1" text="Black 1"/>
+ <ChannelName translate="text" name="Black2" text="Black 2"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -213,5 +213,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_101.xml b/src/xml/escp2/model/model_101.xml
index f76e824..93b4903 100644
--- a/src/xml/escp2/model/model_101.xml
+++ b/src/xml/escp2/model/model_101.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="101">
+<escp2Model id="101">
<media src="escp2/media/wf500.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/wf40.xml"/>
@@ -80,10 +80,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -179,5 +179,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_102.xml b/src/xml/escp2/model/model_102.xml
index 393c19b..89ae05f 100644
--- a/src/xml/escp2/model/model_102.xml
+++ b/src/xml/escp2/model/model_102.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="102">
+<escp2Model id="102">
<media src="escp2/media/pro_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_103.xml b/src/xml/escp2/model/model_103.xml
index c6a1016..6ddf923 100644
--- a/src/xml/escp2/model/model_103.xml
+++ b/src/xml/escp2/model/model_103.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="103">
+<escp2Model id="103">
<media src="escp2/media/pro_ultrachrome_k3.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_104.xml b/src/xml/escp2/model/model_104.xml
index 996bac0..60852e2 100644
--- a/src/xml/escp2/model/model_104.xml
+++ b/src/xml/escp2/model/model_104.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="104">
+<escp2Model id="104">
<media src="escp2/media/pro_ultrachrome_k3.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_105.xml b/src/xml/escp2/model/model_105.xml
index 551c2e4..3ef8ac6 100644
--- a/src/xml/escp2/model/model_105.xml
+++ b/src/xml/escp2/model/model_105.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="105">
+<escp2Model id="105">
<media src="escp2/media/pro_ultrachrome_k3.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_106.xml b/src/xml/escp2/model/model_106.xml
index 92bd2d4..bda3a7f 100644
--- a/src/xml/escp2/model/model_106.xml
+++ b/src/xml/escp2/model/model_106.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="106">
+<escp2Model id="106">
<media src="escp2/media/pro_ultrachrome_k3.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_107.xml b/src/xml/escp2/model/model_107.xml
index ee6047b..1856efb 100644
--- a/src/xml/escp2/model/model_107.xml
+++ b/src/xml/escp2/model/model_107.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="107">
+<escp2Model id="107">
<media src="escp2/media/pro_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/pro3880.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -57,8 +57,8 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<minimumMediaSize>144 144</minimumMediaSize>
<maximumMediaSize>1224 86400</maximumMediaSize>
<maximumImageableArea>1224 86400</maximumImageableArea>
- <margins interleave="soft" media="sheet">9 9 9 40</margins>
- <margins interleave="printer" media="sheet">9 9 9 40</margins>
+ <margins interleave="soft" media="sheet">9 9 9 9</margins>
+ <margins interleave="printer" media="sheet">9 9 9 9</margins>
<margins interleave="soft" media="roll">9 9 0 0</margins>
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
@@ -148,5 +148,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_108.xml b/src/xml/escp2/model/model_108.xml
index 1f5d5a1..6c799d0 100644
--- a/src/xml/escp2/model/model_108.xml
+++ b/src/xml/escp2/model/model_108.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="108">
+<escp2Model id="108">
<media src="escp2/media/pro_ultrachrome_k3.xml"/>
<inputSlots src="escp2/inputslots/pro3880.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -58,20 +58,20 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<minimumMediaSize>144 144</minimumMediaSize>
<maximumMediaSize>1224 86400</maximumMediaSize>
<maximumImageableArea>1224 86400</maximumImageableArea>
- <margins interleave="soft" media="sheet">9 9 9 40</margins>
- <margins interleave="printer" media="sheet">9 9 9 40</margins>
+ <margins interleave="soft" media="sheet">9 9 9 9</margins>
+ <margins interleave="printer" media="sheet">9 9 9 9</margins>
<margins interleave="soft" media="roll">9 9 0 0</margins>
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Light Light Black"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Black"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="LightLightBlack" text="Light Light Black"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightBlack" text="Light Black"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180dpi" text="360 x 180 DPI Draft">
@@ -159,5 +159,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_109.xml b/src/xml/escp2/model/model_109.xml
index 768e8f9..ac29d15 100644
--- a/src/xml/escp2/model/model_109.xml
+++ b/src/xml/escp2/model/model_109.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="109">
+<escp2Model id="109">
<media src="escp2/media/pro_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_11.xml b/src/xml/escp2/model/model_11.xml
index 0241387..d40adac 100644
--- a/src/xml/escp2/model/model_11.xml
+++ b/src/xml/escp2/model/model_11.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="11">
+<escp2Model id="11">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -55,10 +55,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -141,5 +141,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_110.xml b/src/xml/escp2/model/model_110.xml
index 15d06c9..09830a0 100644
--- a/src/xml/escp2/model/model_110.xml
+++ b/src/xml/escp2/model/model_110.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="110">
+<escp2Model id="110">
<media src="escp2/media/pro_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_111.xml b/src/xml/escp2/model/model_111.xml
index 5736029..1fa6651 100644
--- a/src/xml/escp2/model/model_111.xml
+++ b/src/xml/escp2/model/model_111.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="111">
+<escp2Model id="111">
<media src="escp2/media/pro_ultrachrome_k3.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,10 +62,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180dpi" text="360 x 180 DPI Draft">
@@ -133,5 +133,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_112.xml b/src/xml/escp2/model/model_112.xml
index fa3b364..0a0d95a 100644
--- a/src/xml/escp2/model/model_112.xml
+++ b/src/xml/escp2/model/model_112.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="112">
+<escp2Model id="112">
<media src="escp2/media/pro_ultrachrome.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,12 +62,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180dpi" text="360 x 180 DPI Draft">
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_113.xml b/src/xml/escp2/model/model_113.xml
index c1c5202..10d0366 100644
--- a/src/xml/escp2/model/model_113.xml
+++ b/src/xml/escp2/model/model_113.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="113">
+<escp2Model id="113">
<media src="escp2/media/pro_ultrachrome.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,12 +62,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180dpi" text="360 x 180 DPI Draft">
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_114.xml b/src/xml/escp2/model/model_114.xml
index 96e04c6..d693f13 100644
--- a/src/xml/escp2/model/model_114.xml
+++ b/src/xml/escp2/model/model_114.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="114">
+<escp2Model id="114">
<media src="escp2/media/pro_ultrachrome.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,12 +62,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180dpi" text="360 x 180 DPI Draft">
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_115.xml b/src/xml/escp2/model/model_115.xml
index a51af5c..dd231d5 100644
--- a/src/xml/escp2/model/model_115.xml
+++ b/src/xml/escp2/model/model_115.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="115">
+<escp2Model id="115">
<media src="escp2/media/f360_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/r2880.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -158,5 +158,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_116.xml b/src/xml/escp2/model/model_116.xml
index f9b7725..d210401 100644
--- a/src/xml/escp2/model/model_116.xml
+++ b/src/xml/escp2/model/model_116.xml
@@ -20,11 +20,11 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="116">
- <media src="escp2/media/pro_ultrachrome_k3v.xml"/>
+<escp2Model id="116">
+ <media src="escp2/media/pro_ultrachrome_k3v10.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/prox900.xml"/>
- <inkGroup src="escp2/inks/pro_ultrachrome_k3v.xml"/>
+ <inkGroup src="escp2/inks/pro_ultrachrome_k3v10.xml"/>
<printerWeaves src="escp2/weaves/pro7600.xml"/>
<preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
<postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
@@ -41,7 +41,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<FirstNozzle>0</FirstNozzle>
<NozzleSeparation>1</NozzleSeparation>
</headConfiguration>
- <physicalChannels>8</physicalChannels>
+ <physicalChannels>10</physicalChannels>
<baseSeparation>360</baseSeparation>
<resolutionScale>14400</resolutionScale>
<minimumResolution>360 180</minimumResolution>
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_117.xml b/src/xml/escp2/model/model_117.xml
index 97b0ea7..980e66b 100644
--- a/src/xml/escp2/model/model_117.xml
+++ b/src/xml/escp2/model/model_117.xml
@@ -20,11 +20,11 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="117">
- <media src="escp2/media/pro_ultrachrome_k3v.xml"/>
+<escp2Model id="117">
+ <media src="escp2/media/pro_ultrachrome_k3v10.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/prox900.xml"/>
- <inkGroup src="escp2/inks/pro_ultrachrome_k3v.xml"/>
+ <inkGroup src="escp2/inks/pro_ultrachrome_k3v10.xml"/>
<printerWeaves src="escp2/weaves/pro7600.xml"/>
<preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
<postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
@@ -41,7 +41,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<FirstNozzle>0</FirstNozzle>
<NozzleSeparation>1</NozzleSeparation>
</headConfiguration>
- <physicalChannels>8</physicalChannels>
+ <physicalChannels>10</physicalChannels>
<baseSeparation>360</baseSeparation>
<resolutionScale>14400</resolutionScale>
<minimumResolution>360 180</minimumResolution>
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_118.xml b/src/xml/escp2/model/model_118.xml
new file mode 100644
index 0000000..1f3d5de
--- /dev/null
+++ b/src/xml/escp2/model/model_118.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2Model id="118">
+ <media src="escp2/media/c120.xml"/>
+ <inputSlots src="escp2/inputslots/default-duplex.xml"/>
+ <qualityPresets src="escp2/qualitypresets/wf40.xml"/>
+ <inkGroup src="escp2/inks/wf40.xml"/>
+ <mediaSizes src="escp2/mediasizes/standard.xml"/>
+ <verticalBorderlessSequence>US\003\000\000\000\002</verticalBorderlessSequence>
+ <preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
+ <preinitRemoteSequence>SN\001\000\000</preinitRemoteSequence>
+ <postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
+ <commandSet>2000</commandSet>
+ <borderless>Yes</borderless>
+ <supportsVariableDropsizes/>
+ <hasFastGraymode/>
+ <sendZeroAdvance/>
+ <supportsD4Mode/>
+ <preferredEnvelopeOrientation>Portrait</preferredEnvelopeOrientation>
+ <headConfiguration type="default">
+ <Nozzles>128</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>3</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="black">
+ <Nozzles>384</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="fast">
+ <Nozzles>384</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <physicalChannels>4</physicalChannels>
+ <baseSeparation>360</baseSeparation>
+ <resolutionScale>14400</resolutionScale>
+ <minimumResolution>360 120</minimumResolution>
+ <maximumResolution>5760 2880</maximumResolution>
+ <extraVerticalFeed>10</extraVerticalFeed>
+ <separationRows>1</separationRows>
+ <zeroMarginOffset>80</zeroMarginOffset>
+ <microLeftMargin>42</microLeftMargin>
+ <initialVerticalOffset>0</initialVerticalOffset>
+ <minHorizontalAlignment>1</minHorizontalAlignment>
+ <baseHorizontalAlignment>28800</baseHorizontalAlignment>
+ <bidirectionalAutoUpperLimit>16588800</bidirectionalAutoUpperLimit>
+ <minimumMediaSize>144 144</minimumMediaSize>
+ <maximumMediaSize>612 86400</maximumMediaSize>
+ <maximumImageableArea>612 86400</maximumImageableArea>
+ <margins interleave="soft" media="sheet">9 9 0 9</margins>
+ <margins interleave="printer" media="sheet">9 9 0 9</margins>
+ <margins interleave="soft" media="roll">9 9 0 0</margins>
+ <margins interleave="printer" media="roll">9 9 0 0</margins>
+ <margins duplex="duplex">-32768 -32768 9 9</margins>
+ <AlignmentChoices>4 15 0 0</AlignmentChoices>
+ <ChannelNames>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ </ChannelNames>
+ <resolutions>
+ <resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
+ <physicalResolution>360 120</physicalResolution>
+ <parameter type="float" name="escp2_density">4.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="360sw" text="360 DPI">
+ <physicalResolution>360 360</physicalResolution>
+ <parameter type="float" name="escp2_density">2.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="360hq" text="360 DPI Enhanced">
+ <physicalResolution>360 360</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">2.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360sw" text="720 x 360 DPI">
+ <physicalResolution>720 360</physicalResolution>
+ <parameter type="float" name="escp2_density">1.560000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360hq" text="720 x 360 DPI Enhanced">
+ <physicalResolution>720 360</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">1.560000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720sw" text="720 DPI">
+ <physicalResolution>720 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.780000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720hq" text="720 DPI High Quality">
+ <physicalResolution>720 720</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">0.780000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x720sw" text="1440 x 720 DPI">
+ <physicalResolution>1440 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.768000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x1440ov" text="1440 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <printedResolution>1440 1440</printedResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x1440sw" text="2880 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.500000</parameter>
+ <parameter type="float" name="DropSize2">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x1440sw" text="5760 x 1440 DPI">
+ <physicalResolution>5760 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x2880sw" text="2880 x 2880 DPI">
+ <physicalResolution>2880 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x2880sw" text="5760 x 2880 DPI">
+ <physicalResolution>5760 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.192000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ </resolutions>
+</escp2Model>
+</gutenprint>
diff --git a/src/xml/escp2/model/model_119.xml b/src/xml/escp2/model/model_119.xml
new file mode 100644
index 0000000..d246afd
--- /dev/null
+++ b/src/xml/escp2/model/model_119.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2Model id="119">
+ <media src="escp2/media/c120.xml"/>
+ <inputSlots src="escp2/inputslots/wf7000.xml"/>
+ <qualityPresets src="escp2/qualitypresets/wf40.xml"/>
+ <inkGroup src="escp2/inks/wf40.xml"/>
+ <mediaSizes src="escp2/mediasizes/standard.xml"/>
+ <verticalBorderlessSequence>US\003\000\000\000\002</verticalBorderlessSequence>
+ <preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
+ <preinitRemoteSequence>SN\001\000\000</preinitRemoteSequence>
+ <postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
+ <commandSet>2000</commandSet>
+ <borderless>Full</borderless>
+ <supportsVariableDropsizes/>
+ <hasFastGraymode/>
+ <sendZeroAdvance/>
+ <supportsD4Mode/>
+ <preferredEnvelopeOrientation>Portrait</preferredEnvelopeOrientation>
+ <headConfiguration type="default">
+ <Nozzles>128</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>3</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="black">
+ <Nozzles>384</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="fast">
+ <Nozzles>384</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <physicalChannels>4</physicalChannels>
+ <baseSeparation>360</baseSeparation>
+ <resolutionScale>14400</resolutionScale>
+ <minimumResolution>360 120</minimumResolution>
+ <maximumResolution>5760 2880</maximumResolution>
+ <extraVerticalFeed>10</extraVerticalFeed>
+ <separationRows>1</separationRows>
+ <zeroMarginOffset>80</zeroMarginOffset>
+ <microLeftMargin>42</microLeftMargin>
+ <initialVerticalOffset>0</initialVerticalOffset>
+ <minHorizontalAlignment>1</minHorizontalAlignment>
+ <baseHorizontalAlignment>28800</baseHorizontalAlignment>
+ <bidirectionalAutoUpperLimit>16588800</bidirectionalAutoUpperLimit>
+ <minimumMediaSize>144 144</minimumMediaSize>
+ <maximumMediaSize>926 86400</maximumMediaSize>
+ <maximumImageableArea>936 86400</maximumImageableArea>
+ <margins interleave="soft" media="sheet">9 9 0 9</margins>
+ <margins interleave="printer" media="sheet">9 9 0 9</margins>
+ <margins interleave="soft" media="roll">9 9 0 0</margins>
+ <margins interleave="printer" media="roll">9 9 0 0</margins>
+ <margins duplex="duplex">-32768 -32768 9 9</margins>
+ <AlignmentChoices>4 15 0 0</AlignmentChoices>
+ <ChannelNames>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ </ChannelNames>
+ <resolutions>
+ <resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
+ <physicalResolution>360 120</physicalResolution>
+ <parameter type="float" name="escp2_density">4.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="360sw" text="360 DPI">
+ <physicalResolution>360 360</physicalResolution>
+ <parameter type="float" name="escp2_density">2.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="360hq" text="360 DPI Enhanced">
+ <physicalResolution>360 360</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">2.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360sw" text="720 x 360 DPI">
+ <physicalResolution>720 360</physicalResolution>
+ <parameter type="float" name="escp2_density">1.560000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360hq" text="720 x 360 DPI Enhanced">
+ <physicalResolution>720 360</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">1.560000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720sw" text="720 DPI">
+ <physicalResolution>720 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.780000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720hq" text="720 DPI High Quality">
+ <physicalResolution>720 720</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">0.780000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x720sw" text="1440 x 720 DPI">
+ <physicalResolution>1440 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.768000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x1440ov" text="1440 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <printedResolution>1440 1440</printedResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x1440sw" text="2880 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.500000</parameter>
+ <parameter type="float" name="DropSize2">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x1440sw" text="5760 x 1440 DPI">
+ <physicalResolution>5760 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x2880sw" text="2880 x 2880 DPI">
+ <physicalResolution>2880 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x2880sw" text="5760 x 2880 DPI">
+ <physicalResolution>5760 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.192000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ </resolutions>
+</escp2Model>
+</gutenprint>
diff --git a/src/xml/escp2/model/model_12.xml b/src/xml/escp2/model/model_12.xml
index 52491fe..f8a3c74 100644
--- a/src/xml/escp2/model/model_12.xml
+++ b/src/xml/escp2/model/model_12.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="12">
+<escp2Model id="12">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -68,10 +68,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -155,5 +155,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_120.xml b/src/xml/escp2/model/model_120.xml
new file mode 100644
index 0000000..28cc4f7
--- /dev/null
+++ b/src/xml/escp2/model/model_120.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2Model id="120">
+ <media src="escp2/media/c120.xml"/>
+ <inputSlots src="escp2/inputslots/wf7000.xml"/>
+ <qualityPresets src="escp2/qualitypresets/wf40.xml"/>
+ <inkGroup src="escp2/inks/wf40.xml"/>
+ <mediaSizes src="escp2/mediasizes/standard.xml"/>
+ <verticalBorderlessSequence>US\003\000\000\000\002</verticalBorderlessSequence>
+ <preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
+ <preinitRemoteSequence>SN\001\000\000</preinitRemoteSequence>
+ <postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
+ <commandSet>2000</commandSet>
+ <borderless>Yes</borderless>
+ <supportsVariableDropsizes/>
+ <hasFastGraymode/>
+ <sendZeroAdvance/>
+ <supportsD4Mode/>
+ <preferredEnvelopeOrientation>Portrait</preferredEnvelopeOrientation>
+ <headConfiguration type="default">
+ <Nozzles>128</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>3</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="black">
+ <Nozzles>384</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="fast">
+ <Nozzles>384</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <physicalChannels>4</physicalChannels>
+ <baseSeparation>360</baseSeparation>
+ <resolutionScale>14400</resolutionScale>
+ <minimumResolution>360 120</minimumResolution>
+ <maximumResolution>5760 2880</maximumResolution>
+ <extraVerticalFeed>10</extraVerticalFeed>
+ <separationRows>1</separationRows>
+ <zeroMarginOffset>80</zeroMarginOffset>
+ <microLeftMargin>42</microLeftMargin>
+ <initialVerticalOffset>0</initialVerticalOffset>
+ <minHorizontalAlignment>1</minHorizontalAlignment>
+ <baseHorizontalAlignment>28800</baseHorizontalAlignment>
+ <bidirectionalAutoUpperLimit>16588800</bidirectionalAutoUpperLimit>
+ <minimumMediaSize>144 144</minimumMediaSize>
+ <maximumMediaSize>926 86400</maximumMediaSize>
+ <maximumImageableArea>936 86400</maximumImageableArea>
+ <margins interleave="soft" media="sheet">9 9 0 9</margins>
+ <margins interleave="printer" media="sheet">9 9 0 9</margins>
+ <margins interleave="soft" media="roll">9 9 0 0</margins>
+ <margins interleave="printer" media="roll">9 9 0 0</margins>
+ <margins duplex="duplex">-32768 -32768 9 9</margins>
+ <AlignmentChoices>4 15 0 0</AlignmentChoices>
+ <ChannelNames>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ </ChannelNames>
+ <resolutions>
+ <resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
+ <physicalResolution>360 120</physicalResolution>
+ <parameter type="float" name="escp2_density">4.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="360sw" text="360 DPI">
+ <physicalResolution>360 360</physicalResolution>
+ <parameter type="float" name="escp2_density">2.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="360hq" text="360 DPI Enhanced">
+ <physicalResolution>360 360</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">2.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360sw" text="720 x 360 DPI">
+ <physicalResolution>720 360</physicalResolution>
+ <parameter type="float" name="escp2_density">1.560000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360hq" text="720 x 360 DPI Enhanced">
+ <physicalResolution>720 360</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">1.560000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720sw" text="720 DPI">
+ <physicalResolution>720 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.780000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720hq" text="720 DPI High Quality">
+ <physicalResolution>720 720</physicalResolution>
+ <verticalPasses>2</verticalPasses>
+ <parameter type="float" name="escp2_density">0.780000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.220000</parameter>
+ <parameter type="float" name="DropSize2">0.320000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x720sw" text="1440 x 720 DPI">
+ <physicalResolution>1440 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.768000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x1440ov" text="1440 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <printedResolution>1440 1440</printedResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.250000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x1440sw" text="2880 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.500000</parameter>
+ <parameter type="float" name="DropSize2">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x1440sw" text="5760 x 1440 DPI">
+ <physicalResolution>5760 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x2880sw" text="2880 x 2880 DPI">
+ <physicalResolution>2880 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.384000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x2880sw" text="5760 x 2880 DPI">
+ <physicalResolution>5760 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.192000</parameter>
+ <parameter type="integer" name="escp2_ink_type">19</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ </resolutions>
+</escp2Model>
+</gutenprint>
diff --git a/src/xml/escp2/model/model_121.xml b/src/xml/escp2/model/model_121.xml
new file mode 100644
index 0000000..7b2d4e7
--- /dev/null
+++ b/src/xml/escp2/model/model_121.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2Model id="121">
+ <media src="escp2/media/wf500.xml"/>
+ <inputSlots src="escp2/inputslots/default.xml"/>
+ <qualityPresets src="escp2/qualitypresets/wf40.xml"/>
+ <inkGroup src="escp2/inks/sx445.xml"/>
+ <mediaSizes src="escp2/mediasizes/standard.xml"/>
+ <verticalBorderlessSequence>US\003\000\000\000\002</verticalBorderlessSequence>
+ <preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
+ <preinitRemoteSequence>JS\014\000\000GUTENPRINT\000SN\001\000\000</preinitRemoteSequence>
+ <postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
+ <commandSet>2000</commandSet>
+ <borderless>Yes</borderless>
+ <supportsVariableDropsizes/>
+ <hasFastGraymode/>
+ <sendZeroAdvance/>
+ <supportsD4Mode/>
+ <preferredEnvelopeOrientation>Portrait</preferredEnvelopeOrientation>
+ <headConfiguration type="default">
+ <Nozzles>42</Nozzles>
+ <MinNozzles>42</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>3</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="black">
+ <Nozzles>128</Nozzles>
+ <MinNozzles>128</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>3</NozzleSeparation>
+ </headConfiguration>
+ <headConfiguration type="fast">
+ <Nozzles>128</Nozzles>
+ <MinNozzles>128</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>3</NozzleSeparation>
+ </headConfiguration>
+ <physicalChannels>4</physicalChannels>
+ <baseSeparation>360</baseSeparation>
+ <resolutionScale>14400</resolutionScale>
+ <minimumResolution>360 120</minimumResolution>
+ <maximumResolution>5760 2880</maximumResolution>
+ <extraVerticalFeed>10</extraVerticalFeed>
+ <separationRows>1</separationRows>
+ <zeroMarginOffset>80</zeroMarginOffset>
+ <initialVerticalOffset>-257</initialVerticalOffset>
+ <microLeftMargin>42</microLeftMargin>
+ <minHorizontalAlignment>1</minHorizontalAlignment>
+ <baseHorizontalAlignment>28800</baseHorizontalAlignment>
+ <bidirectionalAutoUpperLimit>16588800</bidirectionalAutoUpperLimit>
+ <minimumMediaSize>144 144</minimumMediaSize>
+ <maximumMediaSize>612 86400</maximumMediaSize>
+ <maximumImageableArea>612 86400</maximumImageableArea>
+ <margins interleave="soft" media="sheet">9 9 0 9</margins>
+ <margins interleave="printer" media="sheet">9 9 0 9</margins>
+ <margins interleave="soft" media="roll">9 9 0 0</margins>
+ <margins interleave="printer" media="roll">9 9 0 0</margins>
+ <extraBottom>24</extraBottom>
+ <CDOffset>204 191</CDOffset>
+ <CDMediaSize>595 842</CDMediaSize>
+ <AlignmentChoices>4 15 0 0</AlignmentChoices>
+ <ChannelNames>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ </ChannelNames>
+ <resolutions>
+ <resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
+ <physicalResolution>360 120</physicalResolution>
+ <parameter type="float" name="escp2_density">4.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">16</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.200000</parameter>
+ <parameter type="float" name="DropSize2">0.350000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="360sw" text="360 DPI">
+ <physicalResolution>360 360</physicalResolution>
+ <parameter type="float" name="escp2_density">2.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">16</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.200000</parameter>
+ <parameter type="float" name="DropSize2">0.350000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360sw" text="720 x 360 DPI">
+ <physicalResolution>720 360</physicalResolution>
+ <parameter type="float" name="escp2_density">1.560000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.300000</parameter>
+ <parameter type="float" name="DropSize2">0.660000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720sw" text="720 DPI">
+ <physicalResolution>720 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.780000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.300000</parameter>
+ <parameter type="float" name="DropSize2">0.550000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x720sw" text="1440 x 720 DPI">
+ <physicalResolution>1440 720</physicalResolution>
+ <parameter type="float" name="escp2_density">0.778000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.380000</parameter>
+ <parameter type="float" name="DropSize2">0.500000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x1440ov" text="1440 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <printedResolution>1440 1440</printedResolution>
+ <parameter type="float" name="escp2_density">0.512000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.500000</parameter>
+ <parameter type="float" name="DropSize2">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x1440sw" text="2880 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.512</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x1440sw" text="5760 x 1440 DPI">
+ <physicalResolution>5760 1440</physicalResolution>
+ <parameter type="float" name="escp2_density">0.256000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x2880sw" text="2880 x 2880 DPI">
+ <physicalResolution>2880 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.256000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="5760x2880sw" text="5760 x 2880 DPI">
+ <physicalResolution>5760 2880</physicalResolution>
+ <parameter type="float" name="escp2_density">0.128000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">360</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ </resolutions>
+</escp2Model>
+</gutenprint>
diff --git a/src/xml/escp2/model/model_13.xml b/src/xml/escp2/model/model_13.xml
index 18f1b60..480ae88 100644
--- a/src/xml/escp2/model/model_13.xml
+++ b/src/xml/escp2/model/model_13.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="13">
+<escp2Model id="13">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="180sw" text="180 DPI Economy">
@@ -158,5 +158,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_14.xml b/src/xml/escp2/model/model_14.xml
index f4db1ed..24c4cf1 100644
--- a/src/xml/escp2/model/model_14.xml
+++ b/src/xml/escp2/model/model_14.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="14">
+<escp2Model id="14">
<media src="escp2/media/photo_gen1.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -58,12 +58,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -147,5 +147,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_15.xml b/src/xml/escp2/model/model_15.xml
index b905452..ce96f8f 100644
--- a/src/xml/escp2/model/model_15.xml
+++ b/src/xml/escp2/model/model_15.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="15">
+<escp2Model id="15">
<media src="escp2/media/photo_gen1.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -58,12 +58,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -147,5 +147,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_16.xml b/src/xml/escp2/model/model_16.xml
index ba8a29e..ccadc24 100644
--- a/src/xml/escp2/model/model_16.xml
+++ b/src/xml/escp2/model/model_16.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="16">
+<escp2Model id="16">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize3">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_17.xml b/src/xml/escp2/model/model_17.xml
index 44b347f..128bd72 100644
--- a/src/xml/escp2/model/model_17.xml
+++ b/src/xml/escp2/model/model_17.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="17">
+<escp2Model id="17">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize3">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_18.xml b/src/xml/escp2/model/model_18.xml
index 4e8619f..f436655 100644
--- a/src/xml/escp2/model/model_18.xml
+++ b/src/xml/escp2/model/model_18.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="18">
+<escp2Model id="18">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -58,10 +58,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 9 0</margins>
<AlignmentChoices>1 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -144,5 +144,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_19.xml b/src/xml/escp2/model/model_19.xml
index a6d6f3d..b268e98 100644
--- a/src/xml/escp2/model/model_19.xml
+++ b/src/xml/escp2/model/model_19.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="19">
+<escp2Model id="19">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize3">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_2.xml b/src/xml/escp2/model/model_2.xml
index c7502c6..0000b81 100644
--- a/src/xml/escp2/model/model_2.xml
+++ b/src/xml/escp2/model/model_2.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="2">
+<escp2Model id="2">
<media src="escp2/media/cmy.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -52,10 +52,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -140,5 +140,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_20.xml b/src/xml/escp2/model/model_20.xml
index 681c1a7..5091967 100644
--- a/src/xml/escp2/model/model_20.xml
+++ b/src/xml/escp2/model/model_20.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="20">
+<escp2Model id="20">
<media src="escp2/media/photo_gen1.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -58,12 +58,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90sw" text="360 x 90 DPI Fast Economy">
@@ -157,5 +157,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_21.xml b/src/xml/escp2/model/model_21.xml
index a3146df..ea2ae3f 100644
--- a/src/xml/escp2/model/model_21.xml
+++ b/src/xml/escp2/model/model_21.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="21">
+<escp2Model id="21">
<media src="escp2/media/x80.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -74,10 +74,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -153,5 +153,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize3">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_22.xml b/src/xml/escp2/model/model_22.xml
index 387ad1f..cf35f7f 100644
--- a/src/xml/escp2/model/model_22.xml
+++ b/src/xml/escp2/model/model_22.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="22">
+<escp2Model id="22">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -60,12 +60,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -151,5 +151,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize3">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_23.xml b/src/xml/escp2/model/model_23.xml
index d0d93bc..94d2c59 100644
--- a/src/xml/escp2/model/model_23.xml
+++ b/src/xml/escp2/model/model_23.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="23">
+<escp2Model id="23">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -60,12 +60,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -151,5 +151,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize3">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_24.xml b/src/xml/escp2/model/model_24.xml
index a2722b1..0e892e6 100644
--- a/src/xml/escp2/model/model_24.xml
+++ b/src/xml/escp2/model/model_24.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="24">
+<escp2Model id="24">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -54,10 +54,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">8 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="180dpi" text="180 DPI Economy">
@@ -139,5 +139,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_25.xml b/src/xml/escp2/model/model_25.xml
index 101c713..73d2585 100644
--- a/src/xml/escp2/model/model_25.xml
+++ b/src/xml/escp2/model/model_25.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="25">
+<escp2Model id="25">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90sw" text="360 x 90 DPI Fast Economy">
@@ -168,5 +168,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_26.xml b/src/xml/escp2/model/model_26.xml
index 28ca114..1d25396 100644
--- a/src/xml/escp2/model/model_26.xml
+++ b/src/xml/escp2/model/model_26.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="26">
+<escp2Model id="26">
<media src="escp2/media/photo_pigment.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -70,12 +70,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>2 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -153,5 +153,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_27.xml b/src/xml/escp2/model/model_27.xml
index ee67a94..4e7d862 100644
--- a/src/xml/escp2/model/model_27.xml
+++ b/src/xml/escp2/model/model_27.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="27">
+<escp2Model id="27">
<media src="escp2/media/photo_gen0.xml"/>
<inputSlots src="escp2/inputslots/spro5000.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,12 +53,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="180sw" text="180 DPI Economy">
@@ -128,5 +128,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_28.xml b/src/xml/escp2/model/model_28.xml
index 51d2496..cbf66cf 100644
--- a/src/xml/escp2/model/model_28.xml
+++ b/src/xml/escp2/model/model_28.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="28">
+<escp2Model id="28">
<media src="escp2/media/pro_gen1.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -54,12 +54,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 9 9</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -126,5 +126,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_29.xml b/src/xml/escp2/model/model_29.xml
index 767d65d..3d9cdcf 100644
--- a/src/xml/escp2/model/model_29.xml
+++ b/src/xml/escp2/model/model_29.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="29">
+<escp2Model id="29">
<media src="escp2/media/pro_pigment.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -54,12 +54,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 9 9</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -126,5 +126,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_3.xml b/src/xml/escp2/model/model_3.xml
index aa6198c..5026741 100644
--- a/src/xml/escp2/model/model_3.xml
+++ b/src/xml/escp2/model/model_3.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="3">
+<escp2Model id="3">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,10 +53,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">8 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -147,5 +147,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_30.xml b/src/xml/escp2/model/model_30.xml
index a9a3b5e..2246b7c 100644
--- a/src/xml/escp2/model/model_30.xml
+++ b/src/xml/escp2/model/model_30.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="30">
+<escp2Model id="30">
<media src="escp2/media/pro_gen1.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -54,12 +54,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 9 9</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -126,5 +126,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_31.xml b/src/xml/escp2/model/model_31.xml
index c512354..0418908 100644
--- a/src/xml/escp2/model/model_31.xml
+++ b/src/xml/escp2/model/model_31.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="31">
+<escp2Model id="31">
<media src="escp2/media/pro_pigment.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -54,12 +54,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 9 9</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -126,5 +126,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_32.xml b/src/xml/escp2/model/model_32.xml
index 1e27a53..c1f3001 100644
--- a/src/xml/escp2/model/model_32.xml
+++ b/src/xml/escp2/model/model_32.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="32">
+<escp2Model id="32">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -166,5 +166,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_33.xml b/src/xml/escp2/model/model_33.xml
index ec3bdfc..1413325 100644
--- a/src/xml/escp2/model/model_33.xml
+++ b/src/xml/escp2/model/model_33.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="33">
+<escp2Model id="33">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -166,5 +166,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_34.xml b/src/xml/escp2/model/model_34.xml
index 5ed9669..8776905 100644
--- a/src/xml/escp2/model/model_34.xml
+++ b/src/xml/escp2/model/model_34.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="34">
+<escp2Model id="34">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -72,10 +72,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="180sw" text="180 DPI Economy">
@@ -165,5 +165,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_35.xml b/src/xml/escp2/model/model_35.xml
index d31cd5e..4d53dc3 100644
--- a/src/xml/escp2/model/model_35.xml
+++ b/src/xml/escp2/model/model_35.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="35">
+<escp2Model id="35">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,12 +63,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_36.xml b/src/xml/escp2/model/model_36.xml
index 54053d8..868f32e 100644
--- a/src/xml/escp2/model/model_36.xml
+++ b/src/xml/escp2/model/model_36.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="36">
+<escp2Model id="36">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,12 +63,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_37.xml b/src/xml/escp2/model/model_37.xml
index 21f5bb3..6a61c79 100644
--- a/src/xml/escp2/model/model_37.xml
+++ b/src/xml/escp2/model/model_37.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="37">
+<escp2Model id="37">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,12 +63,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_38.xml b/src/xml/escp2/model/model_38.xml
index b76194a..c2753bb 100644
--- a/src/xml/escp2/model/model_38.xml
+++ b/src/xml/escp2/model/model_38.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="38">
+<escp2Model id="38">
<media src="escp2/media/x80.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -74,10 +74,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -161,5 +161,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_39.xml b/src/xml/escp2/model/model_39.xml
index 83e2400..a3c4890 100644
--- a/src/xml/escp2/model/model_39.xml
+++ b/src/xml/escp2/model/model_39.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="39">
+<escp2Model id="39">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -52,10 +52,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -121,5 +121,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_4.xml b/src/xml/escp2/model/model_4.xml
index b683fc8..a64973e 100644
--- a/src/xml/escp2/model/model_4.xml
+++ b/src/xml/escp2/model/model_4.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="4">
+<escp2Model id="4">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,10 +53,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">8 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="180dpi" text="180 DPI Economy">
@@ -138,5 +138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_40.xml b/src/xml/escp2/model/model_40.xml
index f714b0a..6efa562 100644
--- a/src/xml/escp2/model/model_40.xml
+++ b/src/xml/escp2/model/model_40.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="40">
+<escp2Model id="40">
<media src="escp2/media/pro_pigment.xml"/>
<inputSlots src="escp2/inputslots/spro5000.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -54,12 +54,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -126,5 +126,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_41.xml b/src/xml/escp2/model/model_41.xml
index 459c7c1..e79f7d6 100644
--- a/src/xml/escp2/model/model_41.xml
+++ b/src/xml/escp2/model/model_41.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="41">
+<escp2Model id="41">
<media src="escp2/media/pro_gen2.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -54,12 +54,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 9 9</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -133,5 +133,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_42.xml b/src/xml/escp2/model/model_42.xml
index d975822..018e8fd 100644
--- a/src/xml/escp2/model/model_42.xml
+++ b/src/xml/escp2/model/model_42.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="42">
+<escp2Model id="42">
<media src="escp2/media/x80.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -73,10 +73,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -152,5 +152,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize3">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_43.xml b/src/xml/escp2/model/model_43.xml
index a09c4be..8a807f4 100644
--- a/src/xml/escp2/model/model_43.xml
+++ b/src/xml/escp2/model/model_43.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="43">
+<escp2Model id="43">
<media src="escp2/media/x80.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -73,10 +73,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_44.xml b/src/xml/escp2/model/model_44.xml
index 94a230f..e1a3713 100644
--- a/src/xml/escp2/model/model_44.xml
+++ b/src/xml/escp2/model/model_44.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="44">
+<escp2Model id="44">
<media src="escp2/media/c80.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -72,10 +72,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -155,5 +155,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_45.xml b/src/xml/escp2/model/model_45.xml
index fe2c304..12aec03 100644
--- a/src/xml/escp2/model/model_45.xml
+++ b/src/xml/escp2/model/model_45.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="45">
+<escp2Model id="45">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -52,10 +52,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -121,5 +121,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_46.xml b/src/xml/escp2/model/model_46.xml
index 5c04d80..f6a9e86 100644
--- a/src/xml/escp2/model/model_46.xml
+++ b/src/xml/escp2/model/model_46.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="46">
+<escp2Model id="46">
<media src="escp2/media/f360_photo.xml"/>
<inputSlots src="escp2/inputslots/cd_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,13 +71,13 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -138,5 +138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_47.xml b/src/xml/escp2/model/model_47.xml
index f2b71b0..a85b89b 100644
--- a/src/xml/escp2/model/model_47.xml
+++ b/src/xml/escp2/model/model_47.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="47">
+<escp2Model id="47">
<media src="escp2/media/f360_ultrachrome.xml"/>
<inputSlots src="escp2/inputslots/cd_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -70,13 +70,13 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDOffset>204 191</CDOffset>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Light Black"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="LightBlack" text="Light Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -147,5 +147,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_48.xml b/src/xml/escp2/model/model_48.xml
index 402e28d..7d5abc8 100644
--- a/src/xml/escp2/model/model_48.xml
+++ b/src/xml/escp2/model/model_48.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="48">
+<escp2Model id="48">
<media src="escp2/media/pro_ultrachrome.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,12 +62,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180dpi" text="360 x 180 DPI Draft">
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_49.xml b/src/xml/escp2/model/model_49.xml
index 0186d97..376c78f 100644
--- a/src/xml/escp2/model/model_49.xml
+++ b/src/xml/escp2/model/model_49.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="49">
+<escp2Model id="49">
<media src="escp2/media/pro_ultrachrome.xml"/>
<inputSlots src="escp2/inputslots/pro_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,12 +62,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180dpi" text="360 x 180 DPI Draft">
@@ -135,5 +135,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_5.xml b/src/xml/escp2/model/model_5.xml
index e49ebab..412118e 100644
--- a/src/xml/escp2/model/model_5.xml
+++ b/src/xml/escp2/model/model_5.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="5">
+<escp2Model id="5">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,10 +53,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="180dpi" text="180 DPI Economy">
@@ -138,5 +138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_50.xml b/src/xml/escp2/model/model_50.xml
index 01e4e35..563bd1e 100644
--- a/src/xml/escp2/model/model_50.xml
+++ b/src/xml/escp2/model/model_50.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="50">
+<escp2Model id="50">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,12 +63,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -156,5 +156,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_51.xml b/src/xml/escp2/model/model_51.xml
index 2c0c87e..05dc317 100644
--- a/src/xml/escp2/model/model_51.xml
+++ b/src/xml/escp2/model/model_51.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="51">
+<escp2Model id="51">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,12 +63,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -156,5 +156,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_52.xml b/src/xml/escp2/model/model_52.xml
index 30f3abe..c905bac 100644
--- a/src/xml/escp2/model/model_52.xml
+++ b/src/xml/escp2/model/model_52.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="52">
+<escp2Model id="52">
<media src="escp2/media/standard.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -71,10 +71,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -162,5 +162,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_53.xml b/src/xml/escp2/model/model_53.xml
index c197e67..7b03f47 100644
--- a/src/xml/escp2/model/model_53.xml
+++ b/src/xml/escp2/model/model_53.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="53">
+<escp2Model id="53">
<media src="escp2/media/f360_photo7_japan.xml"/>
<inputSlots src="escp2/inputslots/cd_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -70,13 +70,13 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Dark Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="DarkYellow" text="Dark Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -137,5 +137,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_54.xml b/src/xml/escp2/model/model_54.xml
index ccd116a..d11f135 100644
--- a/src/xml/escp2/model/model_54.xml
+++ b/src/xml/escp2/model/model_54.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="54">
+<escp2Model id="54">
<media src="escp2/media/photo_gen1.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -58,12 +58,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90sw" text="360 x 90 DPI Fast Economy">
@@ -157,5 +157,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_55.xml b/src/xml/escp2/model/model_55.xml
index d690c08..56136b9 100644
--- a/src/xml/escp2/model/model_55.xml
+++ b/src/xml/escp2/model/model_55.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="55">
+<escp2Model id="55">
<media src="escp2/media/c82.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -72,10 +72,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -155,5 +155,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_56.xml b/src/xml/escp2/model/model_56.xml
index 44e7936..774c270 100644
--- a/src/xml/escp2/model/model_56.xml
+++ b/src/xml/escp2/model/model_56.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="56">
+<escp2Model id="56">
<media src="escp2/media/x80.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -72,10 +72,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -159,5 +159,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_57.xml b/src/xml/escp2/model/model_57.xml
index da6ef78..e22530a 100644
--- a/src/xml/escp2/model/model_57.xml
+++ b/src/xml/escp2/model/model_57.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="57">
+<escp2Model id="57">
<media src="escp2/media/f360_photo7_japan.xml"/>
<inputSlots src="escp2/inputslots/cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -75,13 +75,13 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Dark Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="DarkYellow" text="Dark Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="720x360sw" text="720 x 360 DPI">
@@ -139,5 +139,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_58.xml b/src/xml/escp2/model/model_58.xml
index d5abbb4..3ddcd9c 100644
--- a/src/xml/escp2/model/model_58.xml
+++ b/src/xml/escp2/model/model_58.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="58">
+<escp2Model id="58">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,12 +62,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="720x360sw" text="720 x 360 DPI">
@@ -125,5 +125,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_59.xml b/src/xml/escp2/model/model_59.xml
index a56aaf4..a395c3d 100644
--- a/src/xml/escp2/model/model_59.xml
+++ b/src/xml/escp2/model/model_59.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="59">
+<escp2Model id="59">
<media src="escp2/media/x80.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -73,10 +73,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_6.xml b/src/xml/escp2/model/model_6.xml
index a83389f..e483625 100644
--- a/src/xml/escp2/model/model_6.xml
+++ b/src/xml/escp2/model/model_6.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="6">
+<escp2Model id="6">
<media src="escp2/media/standard_gen0.xml"/>
<inputSlots src="escp2/inputslots/standard_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,10 +53,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">8 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="180dpi" text="180 DPI Economy">
@@ -138,5 +138,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_60.xml b/src/xml/escp2/model/model_60.xml
index 8e13707..eff87a4 100644
--- a/src/xml/escp2/model/model_60.xml
+++ b/src/xml/escp2/model/model_60.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="60">
+<escp2Model id="60">
<media src="escp2/media/c82.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -76,10 +76,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -159,5 +159,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_61.xml b/src/xml/escp2/model/model_61.xml
index 32c7f04..6abec7f 100644
--- a/src/xml/escp2/model/model_61.xml
+++ b/src/xml/escp2/model/model_61.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="61">
+<escp2Model id="61">
<media src="escp2/media/c64.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -76,10 +76,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -169,5 +169,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_62.xml b/src/xml/escp2/model/model_62.xml
index 4a6afe7..244bb10 100644
--- a/src/xml/escp2/model/model_62.xml
+++ b/src/xml/escp2/model/model_62.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="62">
+<escp2Model id="62">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -65,12 +65,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -162,5 +162,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_63.xml b/src/xml/escp2/model/model_63.xml
index 5e736e3..2eb655b 100644
--- a/src/xml/escp2/model/model_63.xml
+++ b/src/xml/escp2/model/model_63.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="63">
+<escp2Model id="63">
<media src="escp2/media/photo_gen3.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -65,12 +65,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -152,5 +152,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_64.xml b/src/xml/escp2/model/model_64.xml
index 3fe8624..478dedf 100644
--- a/src/xml/escp2/model/model_64.xml
+++ b/src/xml/escp2/model/model_64.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="64">
+<escp2Model id="64">
<media src="escp2/media/r800.xml"/>
<inputSlots src="escp2/inputslots/r1800.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -66,14 +66,14 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Matte Black"/>
- <ChannelName translate="name" name="Photo Black"/>
- <ChannelName translate="name" name="Red"/>
- <ChannelName translate="name" name="Blue"/>
- <ChannelName translate="name" name="Gloss Optimizer"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="MatteBlack" text="Matte Black"/>
+ <ChannelName translate="text" name="PhotoBlack" text="Photo Black"/>
+ <ChannelName translate="text" name="Red" text="Red"/>
+ <ChannelName translate="text" name="Blue" text="Blue"/>
+ <ChannelName translate="text" name="GlossOptimizer" text="Gloss Optimizer"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -170,5 +170,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_65.xml b/src/xml/escp2/model/model_65.xml
index 812355a..556c1af 100644
--- a/src/xml/escp2/model/model_65.xml
+++ b/src/xml/escp2/model/model_65.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="65">
+<escp2Model id="65">
<media src="escp2/media/cx3650.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,10 +63,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -148,5 +148,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_66.xml b/src/xml/escp2/model/model_66.xml
index 776d5b5..c08bd34 100644
--- a/src/xml/escp2/model/model_66.xml
+++ b/src/xml/escp2/model/model_66.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="66">
+<escp2Model id="66">
<media src="escp2/media/c64.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -76,10 +76,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -169,5 +169,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_67.xml b/src/xml/escp2/model/model_67.xml
index 0ee888b..ccb638c 100644
--- a/src/xml/escp2/model/model_67.xml
+++ b/src/xml/escp2/model/model_67.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="67">
+<escp2Model id="67">
<media src="escp2/media/cmykrb.xml"/>
<inputSlots src="escp2/inputslots/r1800.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -67,14 +67,14 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Matte Black"/>
- <ChannelName translate="name" name="Photo Black"/>
- <ChannelName translate="name" name="Red"/>
- <ChannelName translate="name" name="Blue"/>
- <ChannelName translate="name" name="Gloss Optimizer"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="MatteBlack" text="Matte Black"/>
+ <ChannelName translate="text" name="PhotoBlack" text="Photo Black"/>
+ <ChannelName translate="text" name="Red" text="Red"/>
+ <ChannelName translate="text" name="Blue" text="Blue"/>
+ <ChannelName translate="text" name="GlossOptimizer" text="Gloss Optimizer"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -171,5 +171,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_68.xml b/src/xml/escp2/model/model_68.xml
index 0788063..3f82b14 100644
--- a/src/xml/escp2/model/model_68.xml
+++ b/src/xml/escp2/model/model_68.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="68">
+<escp2Model id="68">
<media src="escp2/media/cmykrb.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -66,14 +66,14 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Matte Black"/>
- <ChannelName translate="name" name="Photo Black"/>
- <ChannelName translate="name" name="Red"/>
- <ChannelName translate="name" name="Blue"/>
- <ChannelName translate="name" name="Gloss Optimizer"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="MatteBlack" text="Matte Black"/>
+ <ChannelName translate="text" name="PhotoBlack" text="Photo Black"/>
+ <ChannelName translate="text" name="Red" text="Red"/>
+ <ChannelName translate="text" name="Blue" text="Blue"/>
+ <ChannelName translate="text" name="GlossOptimizer" text="Gloss Optimizer"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -170,5 +170,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_69.xml b/src/xml/escp2/model/model_69.xml
index 1351e9d..d893b06 100644
--- a/src/xml/escp2/model/model_69.xml
+++ b/src/xml/escp2/model/model_69.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="69">
+<escp2Model id="69">
<media src="escp2/media/c82.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -76,10 +76,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -167,5 +167,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_7.xml b/src/xml/escp2/model/model_7.xml
index 7e6b0fa..3392389 100644
--- a/src/xml/escp2/model/model_7.xml
+++ b/src/xml/escp2/model/model_7.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="7">
+<escp2Model id="7">
<media src="escp2/media/photo_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,12 +53,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -149,5 +149,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_70.xml b/src/xml/escp2/model/model_70.xml
index 148a564..8dca4f9 100644
--- a/src/xml/escp2/model/model_70.xml
+++ b/src/xml/escp2/model/model_70.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="70">
+<escp2Model id="70">
<media src="escp2/media/photo_gen4.xml"/>
<inputSlots src="escp2/inputslots/rx700.xml"/>
<qualityPresets src="escp2/qualitypresets/p1_5.xml"/>
@@ -66,12 +66,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -168,5 +168,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_71.xml b/src/xml/escp2/model/model_71.xml
index 898d744..538b19a 100644
--- a/src/xml/escp2/model/model_71.xml
+++ b/src/xml/escp2/model/model_71.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="71">
+<escp2Model id="71">
<media src="escp2/media/f360_ultrachrome_k3.xml"/>
<inputSlots src="escp2/inputslots/r2400.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -67,14 +67,14 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Light Light Black"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Black"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="LightLightBlack" text="Light Light Black"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightBlack" text="Light Black"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -168,5 +168,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_72.xml b/src/xml/escp2/model/model_72.xml
index 5587717..18320a5 100644
--- a/src/xml/escp2/model/model_72.xml
+++ b/src/xml/escp2/model/model_72.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="72">
+<escp2Model id="72">
<media src="escp2/media/c64.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -74,10 +74,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -167,5 +167,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_73.xml b/src/xml/escp2/model/model_73.xml
index 9daba8b..521a1a8 100644
--- a/src/xml/escp2/model/model_73.xml
+++ b/src/xml/escp2/model/model_73.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="73">
+<escp2Model id="73">
<media src="escp2/media/picturemate_6.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/picturemate.xml"/>
@@ -62,12 +62,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Red"/>
- <ChannelName translate="name" name="Blue"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Red" text="Red"/>
+ <ChannelName translate="text" name="Blue" text="Blue"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="1440x720ov" text="1440 x 720 DPI">
@@ -120,5 +120,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_74.xml b/src/xml/escp2/model/model_74.xml
index 55cbbfe..52ed4ba 100644
--- a/src/xml/escp2/model/model_74.xml
+++ b/src/xml/escp2/model/model_74.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="74">
+<escp2Model id="74">
<media src="escp2/media/c64.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,10 +62,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -155,5 +155,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_75.xml b/src/xml/escp2/model/model_75.xml
index 4565e95..ce5e38b 100644
--- a/src/xml/escp2/model/model_75.xml
+++ b/src/xml/escp2/model/model_75.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="75">
+<escp2Model id="75">
<media src="escp2/media/c64.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -62,10 +62,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDOffset>204 191</CDOffset>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -144,5 +144,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_76.xml b/src/xml/escp2/model/model_76.xml
index cf18be9..6d263a1 100644
--- a/src/xml/escp2/model/model_76.xml
+++ b/src/xml/escp2/model/model_76.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="76">
+<escp2Model id="76">
<media src="escp2/media/photo_gen4.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -64,10 +64,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDOffset>204 191</CDOffset>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_77.xml b/src/xml/escp2/model/model_77.xml
index 2ec951b..e43b6d3 100644
--- a/src/xml/escp2/model/model_77.xml
+++ b/src/xml/escp2/model/model_77.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="77">
+<escp2Model id="77">
<media src="escp2/media/photo_gen3_4.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -65,10 +65,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -158,5 +158,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_78.xml b/src/xml/escp2/model/model_78.xml
index 90a5689..f402b11 100644
--- a/src/xml/escp2/model/model_78.xml
+++ b/src/xml/escp2/model/model_78.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="78">
+<escp2Model id="78">
<media src="escp2/media/photo_gen2.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,12 +63,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>3 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -160,5 +160,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_79.xml b/src/xml/escp2/model/model_79.xml
index dc9782a..74f15cb 100644
--- a/src/xml/escp2/model/model_79.xml
+++ b/src/xml/escp2/model/model_79.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="79">
+<escp2Model id="79">
<media src="escp2/media/c82.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -76,10 +76,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -159,5 +159,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_8.xml b/src/xml/escp2/model/model_8.xml
index 5c6ac5b..3c25414 100644
--- a/src/xml/escp2/model/model_8.xml
+++ b/src/xml/escp2/model/model_8.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="8">
+<escp2Model id="8">
<media src="escp2/media/photo_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -52,12 +52,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -148,5 +148,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_80.xml b/src/xml/escp2/model/model_80.xml
index 7e0ab82..b59b49b 100644
--- a/src/xml/escp2/model/model_80.xml
+++ b/src/xml/escp2/model/model_80.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="80">
+<escp2Model id="80">
<media src="escp2/media/c82.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -76,10 +76,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -167,5 +167,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_81.xml b/src/xml/escp2/model/model_81.xml
index cbadcdd..1c7ca95 100644
--- a/src/xml/escp2/model/model_81.xml
+++ b/src/xml/escp2/model/model_81.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="81">
+<escp2Model id="81">
<media src="escp2/media/claria.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -67,12 +67,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90sw" text="360 x 90 DPI Fast Economy">
@@ -183,5 +183,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_82.xml b/src/xml/escp2/model/model_82.xml
index 7cee45e..648a79d 100644
--- a/src/xml/escp2/model/model_82.xml
+++ b/src/xml/escp2/model/model_82.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="82">
+<escp2Model id="82">
<media src="escp2/media/claria1400.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -67,12 +67,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90sw" text="360 x 90 DPI Fast Economy">
@@ -203,5 +203,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_83.xml b/src/xml/escp2/model/model_83.xml
index 3a8b6e5..bd51f8b 100644
--- a/src/xml/escp2/model/model_83.xml
+++ b/src/xml/escp2/model/model_83.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="83">
+<escp2Model id="83">
<media src="escp2/media/photo_gen3_4.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -65,10 +65,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -158,5 +158,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_84.xml b/src/xml/escp2/model/model_84.xml
index bd11e7a..f6e299c 100644
--- a/src/xml/escp2/model/model_84.xml
+++ b/src/xml/escp2/model/model_84.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="84">
+<escp2Model id="84">
<media src="escp2/media/photo_gen3.xml"/>
<inputSlots src="escp2/inputslots/cd_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -65,12 +65,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -152,5 +152,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_85.xml b/src/xml/escp2/model/model_85.xml
index 2cdc01c..ccb8729 100644
--- a/src/xml/escp2/model/model_85.xml
+++ b/src/xml/escp2/model/model_85.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="85">
+<escp2Model id="85">
<media src="escp2/media/c120.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -78,11 +78,11 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black 1"/>
- <ChannelName translate="name" name="Black 2"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black1" text="Black 1"/>
+ <ChannelName translate="text" name="Black2" text="Black 2"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -211,5 +211,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_86.xml b/src/xml/escp2/model/model_86.xml
index 9d04ab5..8728afe 100644
--- a/src/xml/escp2/model/model_86.xml
+++ b/src/xml/escp2/model/model_86.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="86">
+<escp2Model id="86">
<media src="escp2/media/picturemate_4.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/picturemate.xml"/>
@@ -62,10 +62,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="1440x720ov" text="1440 x 720 DPI">
@@ -118,5 +118,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_87.xml b/src/xml/escp2/model/model_87.xml
index ded92ec..9b525be 100644
--- a/src/xml/escp2/model/model_87.xml
+++ b/src/xml/escp2/model/model_87.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="87">
+<escp2Model id="87">
<media src="escp2/media/b500.xml"/>
<inputSlots src="escp2/inputslots/b500.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -64,10 +64,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins duplex="duplex">-32768 -32768 27 27</margins>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutionScale>14400</resolutionScale>
<resolutions>
@@ -189,5 +189,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_88.xml b/src/xml/escp2/model/model_88.xml
index 755938c..092a770 100644
--- a/src/xml/escp2/model/model_88.xml
+++ b/src/xml/escp2/model/model_88.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="88">
+<escp2Model id="88">
<media src="escp2/media/pro_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_89.xml b/src/xml/escp2/model/model_89.xml
index 9866e37..3bbe9f2 100644
--- a/src/xml/escp2/model/model_89.xml
+++ b/src/xml/escp2/model/model_89.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="89">
+<escp2Model id="89">
<media src="escp2/media/pro_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_9.xml b/src/xml/escp2/model/model_9.xml
index 7dccef2..77cb14a 100644
--- a/src/xml/escp2/model/model_9.xml
+++ b/src/xml/escp2/model/model_9.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="9">
+<escp2Model id="9">
<media src="escp2/media/photo_gen0.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -53,12 +53,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<margins interleave="printer" media="roll">9 9 0 0</margins>
<AlignmentChoices>1 7 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90dpi" text="360 x 90 DPI Fast Economy">
@@ -141,5 +141,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_90.xml b/src/xml/escp2/model/model_90.xml
index 0a6962d..4af4ce5 100644
--- a/src/xml/escp2/model/model_90.xml
+++ b/src/xml/escp2/model/model_90.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="90">
+<escp2Model id="90">
<media src="escp2/media/pro_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -146,5 +146,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_91.xml b/src/xml/escp2/model/model_91.xml
index e55cc0b..bfcd899 100644
--- a/src/xml/escp2/model/model_91.xml
+++ b/src/xml/escp2/model/model_91.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="91">
+<escp2Model id="91">
<media src="escp2/media/cmykro.xml"/>
<inputSlots src="escp2/inputslots/r1800.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -67,14 +67,14 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Matte Black"/>
- <ChannelName translate="name" name="Photo Black"/>
- <ChannelName translate="name" name="Red"/>
- <ChannelName translate="name" name="Orange"/>
- <ChannelName translate="name" name="Gloss Optimizer"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="MatteBlack" text="Matte Black"/>
+ <ChannelName translate="text" name="PhotoBlack" text="Photo Black"/>
+ <ChannelName translate="text" name="Red" text="Red"/>
+ <ChannelName translate="text" name="Orange" text="Orange"/>
+ <ChannelName translate="text" name="GlossOptimizer" text="Gloss Optimizer"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -178,5 +178,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize2">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_92.xml b/src/xml/escp2/model/model_92.xml
index c9935a7..516ef1f 100644
--- a/src/xml/escp2/model/model_92.xml
+++ b/src/xml/escp2/model/model_92.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="92">
+<escp2Model id="92">
<media src="escp2/media/c120.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/wf40.xml"/>
@@ -78,10 +78,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Cyan"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -212,5 +212,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_93.xml b/src/xml/escp2/model/model_93.xml
index 49677b3..34c6006 100644
--- a/src/xml/escp2/model/model_93.xml
+++ b/src/xml/escp2/model/model_93.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="93">
+<escp2Model id="93">
<media src="escp2/media/wf500.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/wf40.xml"/>
@@ -68,10 +68,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -200,5 +200,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_94.xml b/src/xml/escp2/model/model_94.xml
index 534cfe2..f2a855e 100644
--- a/src/xml/escp2/model/model_94.xml
+++ b/src/xml/escp2/model/model_94.xml
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:escp2="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
<copyright>
@@ -20,7 +21,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="94">
+<escp2Model id="94">
<media src="escp2/media/wf500.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/wf40.xml"/>
@@ -80,10 +81,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -179,5 +180,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_95.xml b/src/xml/escp2/model/model_95.xml
index d4c0987..2bbf4b5 100644
--- a/src/xml/escp2/model/model_95.xml
+++ b/src/xml/escp2/model/model_95.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="95">
+<escp2Model id="95">
<media src="escp2/media/cx3650.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -63,10 +63,10 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x120sw" text="360 x 120 DPI Economy">
@@ -156,5 +156,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_96.xml b/src/xml/escp2/model/model_96.xml
index e79af9d..14b6b6d 100644
--- a/src/xml/escp2/model/model_96.xml
+++ b/src/xml/escp2/model/model_96.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="96">
+<escp2Model id="96">
<media src="escp2/media/artisan.xml"/>
<inputSlots src="escp2/inputslots/artisan.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -67,12 +67,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Light Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -174,5 +174,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_97.xml b/src/xml/escp2/model/model_97.xml
index 9323c2f..76c428b 100644
--- a/src/xml/escp2/model/model_97.xml
+++ b/src/xml/escp2/model/model_97.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="97">
+<escp2Model id="97">
<media src="escp2/media/claria.xml"/>
<inputSlots src="escp2/inputslots/rx680.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -31,7 +31,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<preinitRemoteSequence>SN\001\000\000</preinitRemoteSequence>
<postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
<commandSet>2000</commandSet>
- <borderless>Yes</borderless>
+ <borderless>Full</borderless>
<supportsVariableDropsizes/>
<hasFastGraymode/>
<sendZeroAdvance/>
@@ -67,12 +67,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Yellow"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Magenta"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightMagenta" text="Light Magenta"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x90sw" text="360 x 90 DPI Fast Economy">
@@ -184,5 +184,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_98.xml b/src/xml/escp2/model/model_98.xml
index ed8eb85..6e117cc 100644
--- a/src/xml/escp2/model/model_98.xml
+++ b/src/xml/escp2/model/model_98.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="98">
+<escp2Model id="98">
<media src="escp2/media/f360_ultrachrome_k3v.xml"/>
<inputSlots src="escp2/inputslots/r2880.xml"/>
<qualityPresets src="escp2/qualitypresets/v2880.xml"/>
@@ -67,14 +67,14 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Light Light Black"/>
- <ChannelName translate="name" name="Vivid Light Magenta"/>
- <ChannelName translate="name" name="Light Cyan"/>
- <ChannelName translate="name" name="Light Black"/>
- <ChannelName translate="name" name="Black"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Vivid Magenta"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="LightLightBlack" text="Light Light Black"/>
+ <ChannelName translate="text" name="VividLightMagenta" text="Vivid Light Magenta"/>
+ <ChannelName translate="text" name="LightCyan" text="Light Cyan"/>
+ <ChannelName translate="text" name="LightBlack" text="Light Black"/>
+ <ChannelName translate="text" name="Black" text="Black"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="VividMagenta" text="Vivid Magenta"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -168,5 +168,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/model/model_99.xml b/src/xml/escp2/model/model_99.xml
index ab0e2a8..a56c405 100644
--- a/src/xml/escp2/model/model_99.xml
+++ b/src/xml/escp2/model/model_99.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:model id="99">
+<escp2Model id="99">
<media src="escp2/media/c120.xml"/>
<inputSlots src="escp2/inputslots/default.xml"/>
<qualityPresets src="escp2/qualitypresets/standard.xml"/>
@@ -78,11 +78,11 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<extraBottom>24</extraBottom>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
<ChannelNames>
- <ChannelName translate="name" name="Black 1"/>
- <ChannelName translate="name" name="Black 2"/>
- <ChannelName translate="name" name="Magenta"/>
- <ChannelName translate="name" name="Cyan"/>
- <ChannelName translate="name" name="Yellow"/>
+ <ChannelName translate="text" name="Black1" text="Black 1"/>
+ <ChannelName translate="text" name="Black2" text="Black 2"/>
+ <ChannelName translate="text" name="Magenta" text="Magenta"/>
+ <ChannelName translate="text" name="Cyan" text="Cyan"/>
+ <ChannelName translate="text" name="Yellow" text="Yellow"/>
</ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
@@ -211,5 +211,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<parameter type="float" name="DropSize1">1.000000</parameter>
</resolution>
</resolutions>
-</escp2:model>
+</escp2Model>
</gutenprint>
diff --git a/src/xml/escp2/qualitypresets/Makefile.in b/src/xml/escp2/qualitypresets/Makefile.in
index e2fd678..cec2145 100644
--- a/src/xml/escp2/qualitypresets/Makefile.in
+++ b/src/xml/escp2/qualitypresets/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2/qualitypresets
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -60,8 +104,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -83,12 +144,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +215,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -157,6 +227,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -181,6 +252,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -335,6 +408,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -352,8 +426,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -367,14 +444,12 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
-tags: TAGS
-TAGS:
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
@@ -427,10 +502,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -512,16 +592,17 @@ uninstall-am: uninstall-pkgxmldataDATA
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool dist-hook distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgxmldataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am uninstall uninstall-am uninstall-pkgxmldataDATA
+ clean-libtool cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgxmldataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-pkgxmldataDATA
@SET_MAKE@
diff --git a/src/xml/escp2/qualitypresets/p1_5.xml b/src/xml/escp2/qualitypresets/p1_5.xml
index a25073c..f232653 100644
--- a/src/xml/escp2/qualitypresets/p1_5.xml
+++ b/src/xml/escp2/qualitypresets/p1_5.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:QualityPresets name="p1_5">
+<escp2QualityPresets name="p1_5">
<quality translate="text" name="FastEconomy" text="Fast Economy">
<minimumResolution>180 90</minimumResolution>
<maximumResolution>360 120</maximumResolution>
@@ -66,5 +66,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<maximumResolution>0 1440</maximumResolution>
<desiredResolution>-1 -1</desiredResolution>
</quality>
-</escp2:QualityPresets>
+</escp2QualityPresets>
</gutenprint>
diff --git a/src/xml/escp2/qualitypresets/picturemate.xml b/src/xml/escp2/qualitypresets/picturemate.xml
index b4b24f8..8fde2f7 100644
--- a/src/xml/escp2/qualitypresets/picturemate.xml
+++ b/src/xml/escp2/qualitypresets/picturemate.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:QualityPresets name="picturemate">
+<escp2QualityPresets name="picturemate">
<quality translate="text" name="Draft" text="Draft">
<minimumResolution>1440 720</minimumResolution>
<maximumResolution>1440 720</maximumResolution>
@@ -56,5 +56,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<maximumResolution>5760 1440</maximumResolution>
<desiredResolution>5760 1440</desiredResolution>
</quality>
-</escp2:QualityPresets>
+</escp2QualityPresets>
</gutenprint>
diff --git a/src/xml/escp2/qualitypresets/prox900.xml b/src/xml/escp2/qualitypresets/prox900.xml
index 35ab6e7..37758df 100644
--- a/src/xml/escp2/qualitypresets/prox900.xml
+++ b/src/xml/escp2/qualitypresets/prox900.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:QualityPresets name="standard">
+<escp2QualityPresets name="standard">
<quality translate="text" name="FastEconomy" text="Fast Economy">
<minimumResolution>180 90</minimumResolution>
<maximumResolution>360 120</maximumResolution>
@@ -66,5 +66,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<maximumResolution>0 1440</maximumResolution>
<desiredResolution>-1 -1</desiredResolution>
</quality>
-</escp2:QualityPresets>
+</escp2QualityPresets>
</gutenprint>
diff --git a/src/xml/escp2/qualitypresets/standard.xml b/src/xml/escp2/qualitypresets/standard.xml
index 0878aad..8875fb8 100644
--- a/src/xml/escp2/qualitypresets/standard.xml
+++ b/src/xml/escp2/qualitypresets/standard.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:QualityPresets name="standard">
+<escp2QualityPresets name="standard">
<quality translate="text" name="FastEconomy" text="Fast Economy">
<minimumResolution>180 90</minimumResolution>
<maximumResolution>360 120</maximumResolution>
@@ -66,5 +66,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<maximumResolution>0 1440</maximumResolution>
<desiredResolution>-1 -1</desiredResolution>
</quality>
-</escp2:QualityPresets>
+</escp2QualityPresets>
</gutenprint>
diff --git a/src/xml/escp2/qualitypresets/v2880.xml b/src/xml/escp2/qualitypresets/v2880.xml
index 82735ce..022cb42 100644
--- a/src/xml/escp2/qualitypresets/v2880.xml
+++ b/src/xml/escp2/qualitypresets/v2880.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:QualityPresets name="v2880">
+<escp2QualityPresets name="v2880">
<quality translate="text" name="FastEconomy" text="Fast Economy">
<minimumResolution>180 90</minimumResolution>
<maximumResolution>360 120</maximumResolution>
@@ -66,5 +66,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<maximumResolution>0 0</maximumResolution>
<desiredResolution>-1 -1</desiredResolution>
</quality>
-</escp2:QualityPresets>
+</escp2QualityPresets>
</gutenprint>
diff --git a/src/xml/escp2/qualitypresets/wf40.xml b/src/xml/escp2/qualitypresets/wf40.xml
index 2f135a4..272190f 100644
--- a/src/xml/escp2/qualitypresets/wf40.xml
+++ b/src/xml/escp2/qualitypresets/wf40.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:QualityPresets name="standard">
+<escp2QualityPresets name="standard">
<quality translate="text" name="Economy" text="Economy">
<minimumResolution>180 90</minimumResolution>
<maximumResolution>360 120</maximumResolution>
@@ -61,5 +61,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<maximumResolution>0 1440</maximumResolution>
<desiredResolution>-1 -1</desiredResolution>
</quality>
-</escp2:QualityPresets>
+</escp2QualityPresets>
</gutenprint>
diff --git a/src/xml/escp2/weaves/Makefile.in b/src/xml/escp2/weaves/Makefile.in
index c2d0c83..c9b6ba7 100644
--- a/src/xml/escp2/weaves/Makefile.in
+++ b/src/xml/escp2/weaves/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -21,6 +20,51 @@
#export STP_DATA_PATH = $(top_srcdir)/src/xml
VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/scripts/global.mk
+DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs
subdir = src/xml/escp2/weaves
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
@@ -60,8 +104,25 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -83,12 +144,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(pkgxmldatadir)"
DATA = $(pkgxmldata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +215,7 @@ GUTENPRINTUI2_INTERFACE_AGE = @GUTENPRINTUI2_INTERFACE_AGE@
GUTENPRINTUI2_LIBDEPS = @GUTENPRINTUI2_LIBDEPS@
GUTENPRINTUI2_LIBS = $(top_builddir)/src/gutenprintui2/libgutenprintui2.la
GUTENPRINTUI2_VERSION = @GUTENPRINTUI2_VERSION@
+GUTENPRINT_BASE_VERSION = @GUTENPRINT_BASE_VERSION@
GUTENPRINT_BINARY_AGE = @GUTENPRINT_BINARY_AGE@
GUTENPRINT_CFLAGS = @GUTENPRINT_CFLAGS@
GUTENPRINT_CURRENT_INTERFACE = @GUTENPRINT_CURRENT_INTERFACE@
@@ -157,6 +227,7 @@ GUTENPRINT_LIBS = $(top_builddir)/src/main/libgutenprint.la
GUTENPRINT_MAJOR_VERSION = @GUTENPRINT_MAJOR_VERSION@
GUTENPRINT_MICRO_VERSION = @GUTENPRINT_MICRO_VERSION@
GUTENPRINT_MINOR_VERSION = @GUTENPRINT_MINOR_VERSION@
+GUTENPRINT_RELEASE_VERSION = @GUTENPRINT_RELEASE_VERSION@
GUTENPRINT_VERSION = @GUTENPRINT_VERSION@
IJS_CFLAGS = @IJS_CFLAGS@
IJS_CONFIG = @IJS_CONFIG@
@@ -181,6 +252,8 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
@@ -333,6 +406,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/scripts/global.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -350,8 +424,11 @@ clean-libtool:
-rm -rf .libs _libs
install-pkgxmldataDATA: $(pkgxmldata_DATA)
@$(NORMAL_INSTALL)
- test -z "$(pkgxmldatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)"
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgxmldatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgxmldatadir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -365,14 +442,12 @@ uninstall-pkgxmldataDATA:
@$(NORMAL_UNINSTALL)
@list='$(pkgxmldata_DATA)'; test -n "$(pkgxmldatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgxmldatadir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgxmldatadir)" && rm -f $$files
-tags: TAGS
-TAGS:
+ dir='$(DESTDIR)$(pkgxmldatadir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
@@ -425,10 +500,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -510,16 +590,17 @@ uninstall-am: uninstall-pkgxmldataDATA
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool dist-hook distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-pkgxmldataDATA install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am uninstall uninstall-am uninstall-pkgxmldataDATA
+ clean-libtool cscopelist-am ctags-am dist-hook distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgxmldataDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-pkgxmldataDATA
@SET_MAKE@
diff --git a/src/xml/escp2/weaves/pro7000.xml b/src/xml/escp2/weaves/pro7000.xml
index b700f82..35cacb1 100644
--- a/src/xml/escp2/weaves/pro7000.xml
+++ b/src/xml/escp2/weaves/pro7000.xml
@@ -20,11 +20,11 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:PrinterWeaves name="pro7000">
+<escp2PrinterWeaves name="pro7000">
<weave translate="text" name="Off" text="Off" command="\033(i\001\000\000"/>
<weave translate="text" name="On" text="Interleave" command="\033(i\001\000\001"/>
<weave translate="text" name="FOL" text="Full Overlap" command="\033(i\001\000\002"/>
<weave translate="text" name="FourPass" text="Four Pass" command="\033(i\001\000\003"/>
<weave translate="text" name="FOL2" text="Full Overlap 2" command="\033(i\001\000\004"/>
-</escp2:PrinterWeaves>
+</escp2PrinterWeaves>
</gutenprint>
diff --git a/src/xml/escp2/weaves/pro7500.xml b/src/xml/escp2/weaves/pro7500.xml
index 9522415..b8f1664 100644
--- a/src/xml/escp2/weaves/pro7500.xml
+++ b/src/xml/escp2/weaves/pro7500.xml
@@ -20,12 +20,12 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:PrinterWeaves name="pro7500">
+<escp2PrinterWeaves name="pro7500">
<weave translate="text" name="Off" text="Off" command="\033(i\001\000\000"/>
<weave translate="text" name="On" text="Interleave" command="\033(i\001\000\001"/>
<weave translate="text" name="FOL" text="Full Overlap" command="\033(i\001\000\002"/>
<weave translate="text" name="FourPass" text="Four Pass" command="\033(i\001\000\003"/>
<weave translate="text" name="FOL2" text="Full Overlap 2" command="\033(i\001\000\004"/>
<weave translate="text" name="MW2" text="Interleave 2" command="\033(i\001\000\005"/>
-</escp2:PrinterWeaves>
+</escp2PrinterWeaves>
</gutenprint>
diff --git a/src/xml/escp2/weaves/pro7600.xml b/src/xml/escp2/weaves/pro7600.xml
index a0b98a3..32c2727 100644
--- a/src/xml/escp2/weaves/pro7600.xml
+++ b/src/xml/escp2/weaves/pro7600.xml
@@ -20,7 +20,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:PrinterWeaves name="pro7600">
+<escp2PrinterWeaves name="pro7600">
<weave translate="text" name="Off" text="Off" command="\033(i\001\000\000"/>
<weave translate="text" name="On" text="Interleave" command="\033(i\001\000\001"/>
<weave translate="text" name="FOL" text="Full Overlap" command="\033(i\001\000\002"/>
@@ -28,5 +28,5 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<weave translate="text" name="FOL2" text="Full Overlap 2" command="\033(i\001\000\004"/>
<weave translate="text" name="MW2" text="Interleave 2" command="\033(i\001\000\005"/>
<weave translate="text" name="EightPass" text="Eight Pass" command="\033(i\001\000\006"/>
-</escp2:PrinterWeaves>
+</escp2PrinterWeaves>
</gutenprint>
diff --git a/src/xml/escp2/weaves/standard.xml b/src/xml/escp2/weaves/standard.xml
index 98112bf..6c82fea 100644
--- a/src/xml/escp2/weaves/standard.xml
+++ b/src/xml/escp2/weaves/standard.xml
@@ -20,8 +20,8 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</copyright>
-<escp2:PrinterWeaves name="standard">
+<escp2PrinterWeaves name="standard">
<weave translate="text" name="Off" text="Off" command="\033(i\001\000\000"/>
<weave translate="text" name="On" text="On" command="\033(i\001\000\001"/>
-</escp2:PrinterWeaves>
+</escp2PrinterWeaves>
</gutenprint>
diff --git a/src/xml/extract-strings.c b/src/xml/extract-strings.c
index e6cecec..0f1b286 100644
--- a/src/xml/extract-strings.c
+++ b/src/xml/extract-strings.c
@@ -1,5 +1,5 @@
/*
- * "$Id: extract-strings.c,v 1.2 2008/06/14 02:25:25 rlk Exp $"
+ * "$Id: extract-strings.c,v 1.3 2013/12/14 19:30:45 rlk Exp $"
*
* Extract translation strings
*
@@ -37,19 +37,25 @@ main(int argc, char **argv)
if (top)
{
stp_mxml_node_t *n = top;
+ stp_string_list_t *sl = stp_string_list_create();
do
{
const char *attr = stp_mxmlElementGetAttr(n, "translate");
if (attr)
{
const char *str = stp_mxmlElementGetAttr(n, attr);
- char *s;
- stp_asprintf(&s, "N_(\"%s\");", str);
- printf("%-40s /* %s */\n", s, *argv);
- stp_free(s);
+ if (! stp_string_list_is_present(sl, str))
+ {
+ char *s;
+ stp_string_list_add_string_unsafe(sl, str, str);
+ stp_asprintf(&s, "N_(\"%s\");", str);
+ printf("%-40s /* %s */\n", s, *argv);
+ stp_free(s);
+ }
}
n = stp_mxmlWalkNext(n, top, STP_MXML_DESCEND);
} while (n);
+ stp_string_list_destroy(sl);
stp_mxmlDelete(top);
}
else
diff --git a/src/xml/papers.xml b/src/xml/papers.xml
index 86e2e5a..a532352 100644
--- a/src/xml/papers.xml
+++ b/src/xml/papers.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
- "$Id: papers.xml,v 1.10 2011/11/06 06:21:15 gernot2270 Exp $"
+ "$Id: papers.xml,v 1.16 2014/01/22 13:52:41 rlk Exp $"
XML description of papers known to libgutenprint.
You can add additional paper sizes here.
@@ -128,6 +128,12 @@
<height value="360"/>
<unit value="english-extended"/>
</paper>
+ <paper name="w144h432">
+ <description translate="value" value="2x6"/>
+ <width value="144"/>
+ <height value="432"/>
+ <unit value="english"/>
+ </paper>
<paper name="w288h432">
<description translate="value" value="4x6"/>
<width value="288"/>
@@ -184,12 +190,30 @@
<height value="576"/>
<unit value="english-extended"/>
</paper>
+ <paper name="w432h432">
+ <description translate="value" value="6x6"/>
+ <width value="432"/>
+ <height value="432"/>
+ <unit value="english-extended"/>
+ </paper>
<paper name="w432h576">
<description translate="value" value="6x8"/>
<width value="432"/>
<height value="576"/>
<unit value="english-extended"/>
</paper>
+ <paper name="w432h612">
+ <description translate="value" value="6x8.5"/>
+ <width value="432"/>
+ <height value="612"/>
+ <unit value="english-extended"/>
+ </paper>
+ <paper name="w432h648">
+ <description translate="value" value="6x9"/>
+ <width value="432"/>
+ <height value="648"/>
+ <unit value="english-extended"/>
+ </paper>
<paper name="c8x10">
<description translate="value" value="8x10"/>
<width value="576"/>
@@ -232,6 +256,12 @@
<!--
Other common photographic paper sizes
-->
+ <paper name="w576h576">
+ <description translate="value" value="8x8"/>
+ <width value="576"/>
+ <height value="576"/>
+ <unit value="english-extended"/>
+ </paper>
<paper name="w576h864">
<description translate="value" value="8x12"/>
<comment value="Sometimes used for 35mm"/>
@@ -239,6 +269,13 @@
<height value="864"/>
<unit value="english-extended"/>
</paper>
+ <paper name="w612h864">
+ <description translate="value" value="8.5x12"/>
+ <comment value="8.5in x 12in"/>
+ <width value="612"/>
+ <height value="864"/>
+ <unit value="english"/>
+ </paper>
<paper name="w720h864J">
<description translate="value" value="YonKire"/>
<comment value="10in x 12in"/>
@@ -1267,14 +1304,14 @@
<unit value="metric-extended"/>
</paper>
<paper name="w155h244">
- <description translate="value" value="Card"/>
+ <description translate="value" value="Credit Card"/>
<comment value="54mm x 86mm"/>
<width value="155"/>
<height value="244"/>
<unit value="metric-extended"/>
</paper>
<paper name="w155h257">
- <description translate="value" value="Card"/>
+ <description translate="value" value="Japanese Business Card"/>
<comment value="55mm x 91mm"/>
<width value="155"/>
<height value="257"/>
diff --git a/src/xml/printers.xml b/src/xml/printers.xml
index d94996f..84f0ce9 100644
--- a/src/xml/printers.xml
+++ b/src/xml/printers.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
- "$Id: printers.xml,v 1.247 2012/05/27 15:11:29 gernot2270 Exp $"
+ "$Id: printers.xml,v 1.354 2014/02/13 04:36:16 speachy Exp $"
XML description of printers known to libgutenprint
You can add additional printers here, but the underlying driver has
@@ -113,6 +113,7 @@
<printer translate="name" name="Canon BJC-4550" driver="bjc-4550" manufacturer="Canon" model="4550" parameters="density_800_params" foomaticid="Canon-BJC-4550" />
<printer translate="name" name="Canon BJC-5100" driver="bjc-5100" manufacturer="Canon" model="5100" parameters="density_800_params" foomaticid="Canon-BJC-5100" />
<printer translate="name" name="Canon BJC-5500" driver="bjc-5500" manufacturer="Canon" model="5500" parameters="density_800_params" foomaticid="Canon-BJC-5500" />
+ <printer translate="name" name="Canon BJC-5500J" driver="bjc-5500j" manufacturer="Canon" model="5500" parameters="density_800_params" foomaticid="Canon-BJC-5500J" />
<printer translate="name" name="Canon BJC-6000" deviceid="MFG:Canon;MDL:BJC-6000;DES:Canon BJC-6000;CMD:BJL,BJRaster3,BSCC,TXT;" driver="bjc-6000" manufacturer="Canon" model="6000" parameters="gamma_750_params" foomaticid="Canon-BJC-6000" />
<printer translate="name" name="Canon BJC-6100" driver="bjc-6100" manufacturer="Canon" model="6100" parameters="density_800_params" foomaticid="Canon-BJC-6100" />
<printer translate="name" name="Canon BJC-6200" deviceid="MFG:Canon;MDL:BJC-6200;DES:Canon BJC-6200;CMD:BJL,BJRaster3,BSCC,TXT01,BJScan2;" driver="bjc-6200" manufacturer="Canon" model="6200" parameters="gamma_750_params" foomaticid="Canon-BJC-6200" />
@@ -148,140 +149,816 @@
<printer translate="name" name="Canon PIXMA iP90v" driver="bjc-PIXMA-iP90v" manufacturer="Canon" model="3000090" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP90v" />
<printer translate="name" name="Canon PIXMA iP100" driver="bjc-PIXMA-iP100" manufacturer="Canon" model="3000100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP100" />
<printer translate="name" name="Canon PIXMA iP2000" driver="bjc-PIXMA-iP2000" manufacturer="Canon" model="3002000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2000" />
+ <!-- Canon iP2700 family -->
+ <printer translate="name" name="Canon iP2700 series" deviceid="MFG:Canon;CMD:BJL,BJRaster3,BSCCe,IVEC,IVECPLI;SOJ:TXT01;MDL:iP2700 series;CLS:PRINTER;DES:Canon iP2700 series;VER:1.030;STA:30;FSI:00;HRI:EU;MSI:AOFF,BOFF,DAT,E3;PDR:4;" driver="bjc-iP2700-series" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP2700-series" />
<printer translate="name" name="Canon PIXMA iP2700" driver="bjc-PIXMA-iP2700" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2700" />
- <printer translate="name" name="Canon PIXMA iP3000" driver="bjc-PIXMA-iP3000" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3000" />
+ <printer translate="name" name="Canon PIXUS iP2700" driver="bjc-PIXUS-iP2700" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP2700" />
+ <printer translate="name" name="Canon PIXMA iP2701" driver="bjc-PIXMA-iP2701" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2701" />
+ <printer translate="name" name="Canon PIXMA iP2702" driver="bjc-PIXMA-iP2702" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2702" />
+ <printer translate="name" name="Canon PIXMA iP2740" driver="bjc-PIXMA-iP2740" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2740" />
+ <printer translate="name" name="Canon PIXMA iP2760" driver="bjc-PIXMA-iP2760" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2760" />
+ <printer translate="name" name="Canon PIXMA iP2770" driver="bjc-PIXMA-iP2770" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2770" />
+ <printer translate="name" name="Canon PIXMA iP2772" driver="bjc-PIXMA-iP2772" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2772" />
+ <printer translate="name" name="Canon PIXMA iP2780" driver="bjc-PIXMA-iP2780" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2780" />
+ <printer translate="name" name="Canon PIXMA iP2788" driver="bjc-PIXMA-iP2788" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2788" />
+ <!-- Canon iP3000 -->
+ <printer translate="name" name="Canon PIXMA iP3000" deviceid="MFG:Canon;CMD:BJL,BJRaster3,BSCCe;SOJ:TXT01;MDL:iP3000;CLS:PRINTER;DES:Canon iP3000;VER:1.06;STA:10;FSI:03;" driver="bjc-PIXMA-iP3000" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3000" />
+ <!-- Canon iP3100 (PIXUS only, PIXMA iP3100 does not exist) -->
<printer translate="name" name="Canon PIXMA iP3100" driver="bjc-PIXMA-iP3100" manufacturer="Canon" model="3003100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3100" />
+ <printer translate="name" name="Canon PIXUS iP3100" driver="bjc-PIXUS-iP3100" manufacturer="Canon" model="3003100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP3100" />
+ <!-- Canon iP3300 family -->
+ <printer translate="name" name="Canon iP3300 series" driver="bjc-iP3300-series" manufacturer="Canon" model="3003300" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP3300-series" />
<printer translate="name" name="Canon PIXMA iP3300" driver="bjc-PIXMA-iP3300" manufacturer="Canon" model="3003300" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3300" />
+ <printer translate="name" name="Canon PIXUS iP3300" driver="bjc-PIXUS-iP3300" manufacturer="Canon" model="3003300" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP3300" />
+ <!-- Canon iP3500 family -->
+ <printer translate="name" name="Canon iP3500 series" driver="bjc-iP3500-series" manufacturer="Canon" model="3003500" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP3500-series" />
<printer translate="name" name="Canon PIXMA iP3500" driver="bjc-PIXMA-iP3500" manufacturer="Canon" model="3003500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3500" />
+ <printer translate="name" name="Canon PIXUS iP3500" driver="bjc-PIXUS-iP3500" manufacturer="Canon" model="3003500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP3500" />
+ <!-- Canon iP3600 family -->
+ <printer translate="name" name="Canon iP3600 series" driver="bjc-iP3600-series" manufacturer="Canon" model="3003600" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP3600-series" />
<printer translate="name" name="Canon PIXMA iP3600" driver="bjc-PIXMA-iP3600" manufacturer="Canon" model="3003600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3600" />
- <printer translate="name" name="Canon PIXMA iP4000" driver="bjc-iP4000" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP4000" />
- <printer translate="name" name="Canon PIXMA iP4000R" driver="bjc-PIXMA-iP4000R" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP4000R" />
+ <printer translate="name" name="Canon PIXUS iP3600" driver="bjc-PIXUS-iP3600" manufacturer="Canon" model="3003600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP3600" />
+ <printer translate="name" name="Canon PIXMA iP3680" driver="bjc-PIXMA-iP3680" manufacturer="Canon" model="3003600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3680" />
+ <!-- Canon iP4000 -->
+ <printer translate="name" name="Canon PIXMA iP4000" deviceid="MFG:Canon;MDL:iP4000;CMD:BJL,BJRaster3,BSCCe;" driver="bjc-iP4000" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP4000" /><!-- driver and foomaticid legacy: missing brand name in both -->
+ <!-- Canon iP4000R -->
+ <printer translate="name" name="Canon PIXMA iP4000R" driver="bjc-PIXMA-iP4000R" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP4000R" /><!-- driver and foomaticid legacy: missing brand name in one -->
+ <!-- Canon iP4100 (PIXUS only, PIXMA iP4100 does not exist) -->
<printer translate="name" name="Canon PIXMA iP4100" driver="bjc-PIXMA-iP4100" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP4100" />
+ <printer translate="name" name="Canon PIXUS iP4100" driver="bjc-PIXUS-iP4100" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP4100" />
+ <!-- Canon iP4100R (PIXUS only, PIXMA iP4100R does not exist) -->
+ <printer translate="name" name="Canon PIXUS iP4100R" driver="bjc-PIXUS-iP4100R" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP4100R" />
<printer translate="name" name="Canon PIXMA iP4100R" driver="bjc-PIXMA-iP4100R" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP4100R" />
- <printer translate="name" name="Canon PIXMA iP4200" driver="bjc-PIXMA-iP4200" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4200_params" foomaticid="Canon-PIXMA-iP4200" />
+ <!-- Canon iP4200 family -->
+ <printer translate="name" name="Canon iP4200 series" deviceid="MFG:Canon;MDL:iP4200;CMD:BJL,BJRaster3,BSCCe;" driver="bjc-iP4200-series" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4200_params" foomaticid="Canon-iP4200-series" />
+ <printer translate="name" name="Canon PIXMA iP4200" driver="bjc-PIXMA-iP4200" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4200_params" foomaticid="Canon-PIXMA-iP4200" />
+ <printer translate="name" name="Canon PIXUS iP4200" driver="bjc-PIXUS-iP4200" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4200_params" foomaticid="Canon-PIXUS-iP4200" />
+ <!-- Canon iP4300 family -->
+ <printer translate="name" name="Canon iP4300 series" driver="bjc-iP4300-series" manufacturer="Canon" model="3004300" parameters="PIXMA_iP4300_params" foomaticid="Canon-iP4300-series" />
<printer translate="name" name="Canon PIXMA iP4300" driver="bjc-PIXMA-iP4300" manufacturer="Canon" model="3004300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4300" />
+ <printer translate="name" name="Canon PIXUS iP4300" driver="bjc-PIXUS-iP4300" manufacturer="Canon" model="3004300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-iP4300" />
+ <!-- Canon iP4500 family -->
+ <printer translate="name" name="Canon iP4500 series" driver="bjc-iP4500-series" manufacturer="Canon" model="3004500" parameters="PIXMA_iP4300_params" foomaticid="Canon-iP4500-series" />
<printer translate="name" name="Canon PIXMA iP4500" driver="bjc-PIXMA-iP4500" manufacturer="Canon" model="3004500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4500" />
+ <printer translate="name" name="Canon PIXUS iP4500" driver="bjc-PIXUS-iP4500" manufacturer="Canon" model="3004500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-iP4500" />
+ <!-- Canon iP4600 family -->
+ <printer translate="name" name="Canon iP4600 series" driver="bjc-iP4600-series" manufacturer="Canon" model="3004600" parameters="PIXMA_iP4300_params" foomaticid="Canon-iP4600-series" />
<printer translate="name" name="Canon PIXMA iP4600" driver="bjc-PIXMA-iP4600" manufacturer="Canon" model="3004600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4600" />
+ <printer translate="name" name="Canon PIXUS iP4600" driver="bjc-PIXUS-iP4600" manufacturer="Canon" model="3004600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-iP4600" />
+ <printer translate="name" name="Canon PIXMA iP4680" driver="bjc-PIXMA-iP4680" manufacturer="Canon" model="3004600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4680" />
+ <!-- Canon iP4700 family -->
+ <printer translate="name" name="Canon iP4700 series" driver="bjc-iP4700-series" manufacturer="Canon" model="3004700" parameters="PIXMA_iP4300_params" foomaticid="Canon-iP4700-series" />
<printer translate="name" name="Canon PIXMA iP4700" driver="bjc-PIXMA-iP4700" manufacturer="Canon" model="3004700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4700" />
+ <printer translate="name" name="Canon PIXUS iP4700" driver="bjc-PIXUS-iP4700" manufacturer="Canon" model="3004700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-iP4700" />
+ <printer translate="name" name="Canon PIXMA iP4760" driver="bjc-PIXMA-iP4760" manufacturer="Canon" model="3004700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4760" />
+ <!-- Canon iP4800 family -->
+ <printer translate="name" name="Canon iP4800 series" driver="bjc-iP4800-series" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-iP4800-series" />
<printer translate="name" name="Canon PIXMA iP4800" driver="bjc-PIXMA-iP4800" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4800" />
+ <printer translate="name" name="Canon PIXMA iP4810" driver="bjc-PIXMA-iP4810" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4810" />
+ <printer translate="name" name="Canon PIXMA iP4820" driver="bjc-PIXMA-iP4820" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4820" />
+ <printer translate="name" name="Canon PIXUS iP4830" driver="bjc-PIXUS-iP4830" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-iP4830" />
+ <printer translate="name" name="Canon PIXMA iP4840" driver="bjc-PIXMA-iP4840" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4840" />
+ <printer translate="name" name="Canon PIXMA iP4850" driver="bjc-PIXMA-iP4850" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4850" />
+ <printer translate="name" name="Canon PIXMA iP4870" driver="bjc-PIXMA-iP4870" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4870" />
+ <printer translate="name" name="Canon PIXMA iP4880" driver="bjc-PIXMA-iP4880" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4880" />
+ <!-- Canon iP4900 family -->
+ <printer translate="name" name="Canon iP4900 series" driver="bjc-iP4900-series" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-iP4900-series" />
<printer translate="name" name="Canon PIXMA iP4900" driver="bjc-PIXMA-iP4900" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4900" />
+ <printer translate="name" name="Canon PIXMA iP4910" driver="bjc-PIXMA-iP4910" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4910" />
+ <printer translate="name" name="Canon PIXMA iP4920" driver="bjc-PIXMA-iP4920" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4920" />
+ <printer translate="name" name="Canon PIXUS iP4930" driver="bjc-PIXUS-iP4930" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-iP4930" />
+ <printer translate="name" name="Canon PIXMA iP4940" driver="bjc-PIXMA-iP4940" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4940" />
+ <printer translate="name" name="Canon PIXMA iP4950" driver="bjc-PIXMA-iP4950" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4950" />
+ <printer translate="name" name="Canon PIXMA iP4970" driver="bjc-PIXMA-iP4970" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4970" />
+ <printer translate="name" name="Canon PIXMA iP4980" driver="bjc-PIXMA-iP4980" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4980" />
+ <!-- Canon iP5000 -->
<printer translate="name" name="Canon PIXMA iP5000" driver="bjc-PIXMA-iP5000" manufacturer="Canon" model="3005000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5000" />
+ <!-- Canon iP5200 -->
<printer translate="name" name="Canon PIXMA iP5200" driver="bjc-PIXMA-iP5200" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5200" />
+ <!-- Canon iP5200R family -->
+ <printer translate="name" name="Canon iP5200R series" driver="bjc-iP5200R-series" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP5200R-series" />
<printer translate="name" name="Canon PIXMA iP5200R" driver="bjc-PIXMA-iP5200R" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5200R" />
+ <printer translate="name" name="Canon PIXUS iP5200R" driver="bjc-PIXUS-iP5200R" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP5200R" />
+ <!-- Canon iP5300 -->
<printer translate="name" name="Canon PIXMA iP5300" driver="bjc-PIXMA-iP5300" manufacturer="Canon" model="3005300" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5300" />
+ <!-- Canon iP6000D -->
<printer translate="name" name="Canon PIXMA iP6000D" driver="bjc-PIXMA-iP6000D" manufacturer="Canon" model="3006000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6000D" />
+ <!-- Canon iP6100D (PIXUS only, PIXMA iP6100D does not exist) -->
<printer translate="name" name="Canon PIXMA iP6100D" driver="bjc-PIXMA-iP6100D" manufacturer="Canon" model="3006100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6100D" />
+ <printer translate="name" name="Canon PIXUS iP6100D" driver="bjc-PIXUS-iP6100D" manufacturer="Canon" model="3006100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP6100D" />
+ <!-- Canon iP6210 -->
<printer translate="name" name="Canon PIXMA iP6210D" driver="bjc-PIXMA-iP6210D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6210D" />
+ <!-- Canon iP6220 -->
<printer translate="name" name="Canon PIXMA iP6220D" driver="bjc-PIXMA-iP6220D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6220D" />
+ <!-- Canon iP6310 -->
<printer translate="name" name="Canon PIXMA iP6310D" driver="bjc-PIXMA-iP6310D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6310D" />
+ <!-- Canon iP6320D -->
<printer translate="name" name="Canon PIXMA iP6320D" driver="bjc-PIXMA-iP6320D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6320D" />
+ <!-- Canon iP6600D family -->
+ <printer translate="name" name="Canon iP6600D series" driver="bjc-iP6600D-series" manufacturer="Canon" model="3006600" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP6600D-series" />
<printer translate="name" name="Canon PIXMA iP6600D" driver="bjc-PIXMA-iP6600D" manufacturer="Canon" model="3006600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6600D" />
- <printer translate="name" name="Canon PIXMA iP6700" driver="bjc-PIXMA-iP6700" manufacturer="Canon" model="3006700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6700" />
+ <printer translate="name" name="Canon PIXUS iP6600D" driver="bjc-PIXUS-iP6600D" manufacturer="Canon" model="3006600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP6600D" />
+ <!-- Canon iP6700D family -->
+ <printer translate="name" name="Canon iP6700D series" driver="bjc-iP6700-series" manufacturer="Canon" model="3006700" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP6700-series" />
+ <printer translate="name" name="Canon PIXMA iP6700D" driver="bjc-PIXMA-iP6700" manufacturer="Canon" model="3006700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6700" />
+ <printer translate="name" name="Canon PIXUS iP6700D" driver="bjc-PIXUS-iP6700" manufacturer="Canon" model="3006700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP6700" />
+ <!-- Canon iP7100 (PIXUS only, PIXMA iP7100 does not exist) -->
<printer translate="name" name="Canon PIXMA iP7100" driver="bjc-PIXMA-iP7100" manufacturer="Canon" model="3007100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7100" />
+ <printer translate="name" name="Canon PIXUS iP7100" driver="bjc-PIXUS-iP7100" manufacturer="Canon" model="3007100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP7100" />
+ <!-- Canon iP7200 family -->
+ <printer translate="name" name="Canon iP7200 series" driver="bjc-iP7200-series" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP7200-series" />
+ <printer translate="name" name="Canon PIXMA iP7210" driver="bjc-PIXMA-iP7210" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7210" />
+ <printer translate="name" name="Canon PIXMA iP7220" driver="bjc-PIXMA-iP7220" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7220" />
+ <printer translate="name" name="Canon PIXUS iP7230" driver="bjc-PIXUS-iP7230" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP7230" />
+ <printer translate="name" name="Canon PIXMA iP7240" driver="bjc-PIXMA-iP7240" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7240" />
+ <printer translate="name" name="Canon PIXMA iP7250" driver="bjc-PIXMA-iP7250" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7250" />
+ <printer translate="name" name="Canon PIXMA iP7260" driver="bjc-PIXMA-iP7260" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7260" />
+ <printer translate="name" name="Canon PIXMA iP7270" driver="bjc-PIXMA-iP7270" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7270" />
+ <printer translate="name" name="Canon PIXMA iP7280" driver="bjc-PIXMA-iP7280" manufacturer="Canon" model="3007200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7280" />
+ <!-- Canon iP7500 (PIXUS only, PIXMA iP7500 does not exist) -->
<printer translate="name" name="Canon PIXMA iP7500" driver="bjc-PIXMA-iP7500" manufacturer="Canon" model="3007500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7500" />
+ <printer translate="name" name="Canon PIXUS iP7500" driver="bjc-PIXUS-iP7500" manufacturer="Canon" model="3007500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP7500" />
+ <!-- Canon iP8100 (PIXUS only, PIXMA iP8100 does not exist) -->
<printer translate="name" name="Canon PIXMA iP8100" driver="bjc-PIXMA-iP8100" manufacturer="Canon" model="3008100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8100" />
+ <printer translate="name" name="Canon PIXUS iP8100" driver="bjc-PIXUS-iP8100" manufacturer="Canon" model="3008100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP8100" />
+ <!-- Canon iP8500 -->
<printer translate="name" name="Canon PIXMA iP8500" driver="bjc-PIXMA-iP8500" manufacturer="Canon" model="3008500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8500" />
+ <!-- Canon iP8600 (PIXUS only, PIXMA iP8600 does not exist) -->
<printer translate="name" name="Canon PIXMA iP8600" driver="bjc-PIXMA-iP8600" manufacturer="Canon" model="3008600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8600" />
+ <printer translate="name" name="Canon PIXUS iP8600" driver="bjc-PIXUS-iP8600" manufacturer="Canon" model="3008600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP8600" />
+ <!-- Canon iP9910 (PIXUS only, PIXMA iP9910 does not exist) -->
<printer translate="name" name="Canon PIXMA iP9910" driver="bjc-PIXMA-iP9910" manufacturer="Canon" model="3009910" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP9910" />
+ <printer translate="name" name="Canon PIXUS iP9910" driver="bjc-PIXUS-iP9910" manufacturer="Canon" model="3009910" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP9910" />
+ <!-- Canon iX4000 -->
<printer translate="name" name="Canon PIXMA iX4000" driver="bjc-PIXMA-iX4000" manufacturer="Canon" model="4004000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX4000" />
+ <!-- Canon iX5000 family -->
+ <printer translate="name" name="Canon iX5000 series" driver="bjc-iX5000-series" manufacturer="Canon" model="4005000" parameters="PIXMA_iX5000_params" foomaticid="Canon-iX5000-series" />
<printer translate="name" name="Canon PIXMA iX5000" driver="bjc-PIXMA-iX5000" manufacturer="Canon" model="4005000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX5000" />
+ <printer translate="name" name="Canon PIXUS iX5000" driver="bjc-PIXUS-iX5000" manufacturer="Canon" model="4005000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXUS-iX5000" />
+ <!-- Canon iX6500 family -->
+ <printer translate="name" name="Canon iX6500 series" driver="bjc-iX6500-series" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-iX6500-series" />
<printer translate="name" name="Canon PIXMA iX6500" driver="bjc-PIXMA-iX6500" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6500" />
+ <printer translate="name" name="Canon PIXMA iX6510" driver="bjc-PIXMA-iX6510" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6510" />
+ <printer translate="name" name="Canon PIXMA iX6520" driver="bjc-PIXMA-iX6520" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6520" />
+ <printer translate="name" name="Canon PIXUS iX6530" driver="bjc-PIXUS-iX6530" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXUS-iX6530" />
+ <printer translate="name" name="Canon PIXMA iX6540" driver="bjc-PIXMA-iX6540" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6540" />
+ <printer translate="name" name="Canon PIXMA iX6550" driver="bjc-PIXMA-iX6550" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6550" />
+ <printer translate="name" name="Canon PIXMA iX6560" driver="bjc-PIXMA-iX6560" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6560" />
+ <printer translate="name" name="Canon PIXMA iX6580" driver="bjc-PIXMA-iX6580" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6580" />
+ <!-- Canon iX7000 family -->
+ <printer translate="name" name="Canon iX7000 series" driver="bjc-iX7000-series" manufacturer="Canon" model="4007000" parameters="PIXMA_iX5000_params" foomaticid="Canon-iX7000-series" />
<printer translate="name" name="Canon PIXMA iX7000" driver="bjc-PIXMA-iX7000" manufacturer="Canon" model="4007000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX7000" />
+ <printer translate="name" name="Canon PIXUS iX7000" driver="bjc-PIXUS-iX7000" manufacturer="Canon" model="4007000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXUS-iX7000" />
+ <!-- Canon Pro9000 family -->
+ <printer translate="name" name="Canon Pro9000 series" driver="bjc-Pro9000-series" manufacturer="Canon" model="7009000" parameters="PIXMA_iP4000_params" foomaticid="Canon-Pro9000-series" />
<printer translate="name" name="Canon PIXMA Pro9000" driver="bjc-PIXMA-Pro9000" manufacturer="Canon" model="7009000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9000" />
+ <printer translate="name" name="Canon PIXUS Pro9000" driver="bjc-PIXUS-Pro9000" manufacturer="Canon" model="7009000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-Pro9000" />
+ <!-- Canon Pro9000 Mk.II family -->
+ <printer translate="name" name="Canon Pro9000 Mk.II series" deviceid="MFG:Canon;MDL:Pro9000II series;CMD:BJL,BJRaster3,BSCCe,PLI;" driver="bjc-Pro9000mk2-series" manufacturer="Canon" model="7009002" parameters="PIXMA_iP4000_params" foomaticid="Canon-Pro9000-Mk2-series" />
<printer translate="name" name="Canon PIXMA Pro9000mk2" driver="bjc-PIXMA-Pro9000mk2" manufacturer="Canon" model="7009002" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9000-Mk2" />
+ <printer translate="name" name="Canon PIXUS Pro9000mk2" driver="bjc-PIXUS-Pro9000mk2" manufacturer="Canon" model="7009002" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-Pro9000-Mk2" />
+ <!-- Canon Pro9500 family -->
+ <printer translate="name" name="Canon Pro9500 series" driver="bjc-Pro9500-series" manufacturer="Canon" model="7009500" parameters="PIXMA_iP4000_params" foomaticid="Canon-Pro9500-series" />
<printer translate="name" name="Canon PIXMA Pro9500" driver="bjc-PIXMA-Pro9500" manufacturer="Canon" model="7009500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9500" />
- <printer translate="name" name="Canon PIXMA Pro9500mk2" driver="bjc-PIXMA-Pro9500mk2" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9500-Mk2" />
- <printer translate="name" name="Canon PIXMA MP140" driver="bjc-MULTIPASS-MP140" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP140" />
- <printer translate="name" name="Canon PIXMA MP150" driver="bjc-MULTIPASS-MP150" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP150" />
- <printer translate="name" name="Canon PIXMA MP160" driver="bjc-MULTIPASS-MP160" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP160" />
- <printer translate="name" name="Canon PIXMA MP170" driver="bjc-MULTIPASS-MP170" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP170" />
- <printer translate="name" name="Canon PIXMA MP180" driver="bjc-MULTIPASS-MP180" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP180" />
- <printer translate="name" name="Canon PIXMA MP190" driver="bjc-MULTIPASS-MP190" manufacturer="Canon" model="5000190" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP190" />
- <printer translate="name" name="Canon PIXMA MP210" driver="bjc-MULTIPASS-MP210" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP210" />
- <printer translate="name" name="Canon PIXMA MP220" driver="bjc-MULTIPASS-MP220" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP220" />
- <printer translate="name" name="Canon PIXMA MP240" driver="bjc-MULTIPASS-MP240" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP240" />
- <printer translate="name" name="Canon PIXMA MP250" driver="bjc-MULTIPASS-MP250" manufacturer="Canon" model="5000250" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP250" />
- <printer translate="name" name="Canon PIXMA MP260" driver="bjc-MULTIPASS-MP260" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP260" />
- <printer translate="name" name="Canon PIXMA MP270" driver="bjc-MULTIPASS-MP270" manufacturer="Canon" model="5000270" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP270" />
- <printer translate="name" name="Canon PIXMA MP280" driver="bjc-MULTIPASS-MP280" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP280" />
- <printer translate="name" name="Canon PIXMA MP360" driver="bjc-MULTIPASS-MP360" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP360" />
- <printer translate="name" name="Canon PIXMA MP370" driver="bjc-MULTIPASS-MP370" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP370" />
- <printer translate="name" name="Canon PIXMA MP375R" driver="bjc-MULTIPASS-MP375R" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP375R" />
- <printer translate="name" name="Canon PIXMA MP390" driver="bjc-MULTIPASS-MP390" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP390" />
- <printer translate="name" name="Canon PIXMA MP450" driver="bjc-MULTIPASS-MP450" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP450" />
- <printer translate="name" name="Canon PIXMA MP460" driver="bjc-MULTIPASS-MP460" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP460" />
- <printer translate="name" name="Canon PIXMA MP470" driver="bjc-MULTIPASS-MP470" manufacturer="Canon" model="5000470" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP470" />
- <printer translate="name" name="Canon PIXMA MP480" driver="bjc-MULTIPASS-MP480" manufacturer="Canon" model="5000480" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP480" />
- <printer translate="name" name="Canon PIXMA MP490" driver="bjc-MULTIPASS-MP490" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP490" />
- <printer translate="name" name="Canon PIXMA MP493" driver="bjc-MULTIPASS-MP493" manufacturer="Canon" model="5000493" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP493" />
- <printer translate="name" name="Canon PIXMA MP495" driver="bjc-MULTIPASS-MP495" manufacturer="Canon" model="5000495" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP495" />
- <printer translate="name" name="Canon PIXMA MP500" driver="bjc-MULTIPASS-MP500" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP500" />
- <printer translate="name" name="Canon PIXMA MP510" driver="bjc-MULTIPASS-MP510" manufacturer="Canon" model="5000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP510" />
- <printer translate="name" name="Canon PIXMA MP520" driver="bjc-MULTIPASS-MP520" manufacturer="Canon" model="5000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP520" />
- <printer translate="name" name="Canon PIXMA MP530" driver="bjc-MULTIPASS-MP530" manufacturer="Canon" model="5000530" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP530" />
- <printer translate="name" name="Canon PIXMA MP540" driver="bjc-MULTIPASS-MP540" manufacturer="Canon" model="5000540" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP540" />
- <printer translate="name" name="Canon PIXMA MP550" driver="bjc-MULTIPASS-MP550" manufacturer="Canon" model="5000550" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP550" />
- <printer translate="name" name="Canon PIXMA MP560" driver="bjc-MULTIPASS-MP560" manufacturer="Canon" model="5000560" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP560" />
- <printer translate="name" name="Canon PIXMA MP600" driver="bjc-MULTIPASS-MP600" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP600" />
- <printer translate="name" name="Canon PIXMA MP600R" driver="bjc-MULTIPASS-MP600R" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP600R" />
- <printer translate="name" name="Canon PIXMA MP610" driver="bjc-MULTIPASS-MP610" manufacturer="Canon" model="5000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP610" />
- <printer translate="name" name="Canon PIXMA MP620" driver="bjc-MULTIPASS-MP620" manufacturer="Canon" model="5000620" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP620" />
- <printer translate="name" name="Canon PIXMA MP630" driver="bjc-MULTIPASS-MP630" manufacturer="Canon" model="5000630" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP630" />
- <printer translate="name" name="Canon PIXMA MP640" driver="bjc-MULTIPASS-MP640" manufacturer="Canon" model="5000640" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP640" />
- <printer translate="name" name="Canon PIXMA MP700" driver="bjc-MULTIPASS-MP700" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP700" />
- <printer translate="name" name="Canon PIXMA MP710" driver="bjc-MULTIPASS-MP710" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP710" />
- <printer translate="name" name="Canon PIXMA MP730" driver="bjc-MULTIPASS-MP730" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP730" />
- <printer translate="name" name="Canon PIXMA MP740" driver="bjc-MULTIPASS-MP740" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP740" />
- <printer translate="name" name="Canon PIXMA MP750" driver="bjc-MULTIPASS-MP750" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP750" />
- <printer translate="name" name="Canon PIXMA MP760" driver="bjc-MULTIPASS-MP760" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP760" />
- <printer translate="name" name="Canon PIXMA MP770" driver="bjc-MULTIPASS-MP770" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP770" />
- <printer translate="name" name="Canon PIXMA MP780" driver="bjc-MULTIPASS-MP780" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP780" />
- <printer translate="name" name="Canon PIXMA MP790" driver="bjc-MULTIPASS-MP790" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP790" />
- <printer translate="name" name="Canon PIXMA MP800" driver="bjc-MULTIPASS-MP800" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP800" />
- <printer translate="name" name="Canon PIXMA MP800R" driver="bjc-MULTIPASS-MP800R" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP800R" />
- <printer translate="name" name="Canon PIXMA MP810" driver="bjc-MULTIPASS-MP810" manufacturer="Canon" model="5000810" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP810" />
- <printer translate="name" name="Canon PIXMA MP830" driver="bjc-MULTIPASS-MP830" manufacturer="Canon" model="5000830" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP830" />
- <printer translate="name" name="Canon PIXMA MP900" driver="bjc-MULTIPASS-MP900" manufacturer="Canon" model="5000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP900" />
- <printer translate="name" name="Canon PIXMA MP950" driver="bjc-MULTIPASS-MP950" manufacturer="Canon" model="5000950" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP950" />
- <printer translate="name" name="Canon PIXMA MP960" driver="bjc-MULTIPASS-MP960" manufacturer="Canon" model="5000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP960" />
- <printer translate="name" name="Canon PIXMA MP970" driver="bjc-MULTIPASS-MP970" manufacturer="Canon" model="5000970" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP970" />
- <printer translate="name" name="Canon PIXMA MP980" driver="bjc-MULTIPASS-MP980" manufacturer="Canon" model="5000980" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP980" />
- <printer translate="name" name="Canon PIXMA MP990" driver="bjc-MULTIPASS-MP990" manufacturer="Canon" model="5000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP990" />
- <printer translate="name" name="Canon PIXUS iP2700" driver="bjc-PIXUS-iP2700" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP2700" />
- <printer translate="name" name="Canon PIXUS iP3100" driver="bjc-PIXUS-iP3100" manufacturer="Canon" model="3003100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP3100" />
- <printer translate="name" name="Canon PIXUS iP4100" driver="bjc-PIXUS-iP4100" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP4100" />
+ <printer translate="name" name="Canon PIXUS Pro9500" driver="bjc-PIXUS-Pro9500" manufacturer="Canon" model="7009500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-Pro9500" />
+ <!-- Canon Pro9500 Mk.II family -->
+ <printer translate="name" name="Canon Pro9500 Mk.II series" driver="bjc-Pro9500mk2-series" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-Pro9500-Mk2-series" />
+ <printer translate="name" name="Canon PIXMA Pro9500mk2" driver="bjc-PIXMA-Pro9500mk2" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9500- Mk2" />
+ <printer translate="name" name="Canon PIXUS Pro9500mk2" driver="bjc-PIXUS-Pro9500mk2" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-Pro9500-Mk2" />
+ <!-- Canon MP140 family -->
+ <printer translate="name" name="Canon MP140 series" driver="bjc-MP140-series" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP140-series" />
+ <printer translate="name" name="Canon PIXMA MP140" driver="bjc-MULTIPASS-MP140" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP140" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP145" driver="bjc-PIXMA-MP145" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP145" />
+ <!-- Canon MP150 family -->
+ <printer translate="name" name="Canon MP150 series" driver="bjc-MP150-series" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP150-series" />
+ <printer translate="name" name="Canon PIXMA MP150" driver="bjc-MULTIPASS-MP150" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP150" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP160 family -->
+ <printer translate="name" name="Canon MP160 series" deviceid="MFG:Canon;CMD:BJL,BJRaster3,BSCCe;SOJ:TXT01;MDL:MP160;CLS:PRINTER;DES:Canon MP160;VER:1.06;STA:10;HRI:OTH;" driver="bjc-MP160-series" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP160-series" />
+ <printer translate="name" name="Canon PIXMA MP160" driver="bjc-MULTIPASS-MP160" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP160" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP170 family -->
+ <printer translate="name" name="Canon MP170 series" driver="bjc-MP170-series" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP170-series" />
+ <printer translate="name" name="Canon PIXMA MP170" driver="bjc-MULTIPASS-MP170" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP170" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP170" driver="bjc-PIXUS-MP170" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP170" />
+ <!-- Canon MP180 family -->
+ <printer translate="name" name="Canon MP180 series" driver="bjc-MP180-series" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP180-series" />
+ <printer translate="name" name="Canon PIXMA MP180" driver="bjc-MULTIPASS-MP180" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP180" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP190 family -->
+ <printer translate="name" name="Canon MP190 series" driver="bjc-MP190-series" manufacturer="Canon" model="5000190" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP190-series" />
+ <printer translate="name" name="Canon PIXMA MP190" driver="bjc-MULTIPASS-MP190" manufacturer="Canon" model="5000190" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP190" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP198" driver="bjc-PIXMA-MP198" manufacturer="Canon" model="5000190" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP198" />
+ <!-- Canon MP210 family -->
+ <printer translate="name" name="Canon MP210 series" driver="bjc-MP210-series" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP210-series" />
+ <printer translate="name" name="Canon PIXMA MP210" driver="bjc-MULTIPASS-MP210" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP210" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP218" driver="bjc-PIXMA-MP218" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP218" />
+ <!-- Canon MP220 family -->
+ <printer translate="name" name="Canon MP220 series" driver="bjc-MP220-series" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP220-series" />
+ <printer translate="name" name="Canon PIXMA MP220" driver="bjc-MULTIPASS-MP220" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP220" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP228" driver="bjc-PIXMA-MP228" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP228" />
+ <!-- Canon MP230 family -->
+ <printer translate="name" name="Canon MP230 series" driver="bjc-MP230-series" manufacturer="Canon" model="5000230" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP230-series" />
+ <printer translate="name" name="Canon PIXMA MP230" driver="bjc-MULTIPASS-MP230" manufacturer="Canon" model="5000230" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP230" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP236" driver="bjc-PIXMA-MP236" manufacturer="Canon" model="5000230" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP236" />
+ <printer translate="name" name="Canon PIXMA MP237" driver="bjc-PIXMA-MP237" manufacturer="Canon" model="5000230" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP237" />
+ <!-- Canon MP240 family -->
+ <printer translate="name" name="Canon MP240 series" driver="bjc-MP240-series" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP240-series" />
+ <printer translate="name" name="Canon PIXMA MP240" driver="bjc-MULTIPASS-MP240" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP240" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP245" driver="bjc-PIXMA-MP245" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP245" />
+ <!-- Canon MP250 family -->
+ <printer translate="name" name="Canon MP250 series" deviceid="MFG:Canon;CMD:BJL,BJRaster3,BSCCe,IVEC,IVECPLI;MDL:MP250 series;DES:Canon MP250 series;" driver="bjc-MP250-series" manufacturer="Canon" model="5000250" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP250-series" />
+ <printer translate="name" name="Canon PIXMA MP250" driver="bjc-MULTIPASS-MP250" manufacturer="Canon" model="5000250" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP250" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP252" driver="bjc-PIXMA-MP252" manufacturer="Canon" model="5000250" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP252" />
+ <printer translate="name" name="Canon PIXMA MP258" driver="bjc-PIXMA-MP258" manufacturer="Canon" model="5000250" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP258" />
+ <printer translate="name" name="Canon PIXMA MP259" driver="bjc-PIXMA-MP259" manufacturer="Canon" model="5000250" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP259" />
+ <!-- Canon MP260 family -->
+ <printer translate="name" name="Canon MP260 series" driver="bjc-MP260-series" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP260-series" />
+ <printer translate="name" name="Canon PIXMA MP260" driver="bjc-MULTIPASS-MP260" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP260" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP268" driver="bjc-PIXMA-MP268" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP268" />
+ <!-- Canon MP270 family -->
+ <printer translate="name" name="Canon MP270 series" driver="bjc-MP270-series" manufacturer="Canon" model="5000270" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP270-series" />
+ <printer translate="name" name="Canon PIXMA MP270" driver="bjc-MULTIPASS-MP270" manufacturer="Canon" model="5000270" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP270" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP270" driver="bjc-PIXUS-MP270" manufacturer="Canon" model="5000270" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP270" />
+ <printer translate="name" name="Canon PIXMA MP272" driver="bjc-PIXMA-MP272" manufacturer="Canon" model="5000270" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP272" />
+ <printer translate="name" name="Canon PIXMA MP276" driver="bjc-PIXMA-MP276" manufacturer="Canon" model="5000270" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP276" />
+ <!-- Canon MP280 family -->
+ <printer translate="name" name="Canon MP280 series" driver="bjc-MP280-series" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP280-series" />
+ <printer translate="name" name="Canon PIXMA MP280" deviceid="MFG:Canon;MDL:MP280 series;" driver="bjc-MULTIPASS-MP280" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP280" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP280" driver="bjc-PIXUS-MP280" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP280" />
+ <printer translate="name" name="Canon PIXMA MP282" driver="bjc-PIXMA-MP282" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP282" />
+ <printer translate="name" name="Canon PIXMA MP287" driver="bjc-PIXMA-MP287" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP287" />
+ <printer translate="name" name="Canon PIXMA MP288" driver="bjc-PIXMA-MP288" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP288" />
+ <!-- Canon MP360 family (PIXMA MP360 does not exist) -->
+ <printer translate="name" name="Canon MP360 series" driver="bjc-MP360-series" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP360-series" />
+ <printer translate="name" name="Canon PIXMA MP360" driver="bjc-PIXMA-MP360" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP360" /><!-- driver and foomaticid legacy names updated since MultiPASS entry added -->
+ <printer translate="name" name="Canon PIXUS MP360" driver="bjc-PIXUS-MP360" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP360" />
+ <printer translate="name" name="Canon SmartBase MP360" driver="bjc-SmartBase-MP360" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MP360" />
+ <printer translate="name" name="Canon SmartBase MP360S" driver="bjc-SmartBase-MP360S" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MP360S" />
+ <printer translate="name" name="Canon MultiPASS MP360" driver="bjc-MULTIPASS-MP360" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP360" /><!-- introduced the MultiPASS entry so changed previous PIXMA MP360 entry to reflect proper brand name -->
+ <!-- Canon MP370 family (PIXMA MP370, MP375R do not exist) -->
+ <printer translate="name" name="Canon MP370 series" driver="bjc-MP370-series" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP370-series" />
+ <printer translate="name" name="Canon PIXMA MP370" driver="bjc-PIXMA-MP370" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP370" /><!-- driver and foomaticid legacy names updated since MultiPASS entry added -->
+ <printer translate="name" name="Canon PIXUS MP370" driver="bjc-PIXUS-MP370" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP370" />
+ <printer translate="name" name="Canon SmartBase MP370" driver="bjc-SmartBase-MP370" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MP370" />
+ <printer translate="name" name="Canon MultiPASS MP370" driver="bjc-MULTIPASS-MP370" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP370" /><!-- introduced the MultiPASS entry so changed previous PIXMA MP370 entry to reflect proper brand name -->
+ <printer translate="name" name="Canon PIXMA MP375R" driver="bjc-MULTIPASS-MP375R" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP375R" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP375R" driver="bjc-PIXUS-MP375R" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP375R" />
+ <!-- Canon MP390 family (PIXMA MP390 does not exist) -->
+ <printer translate="name" name="Canon MP390 series" driver="bjc-MP390-series" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP390-series" />
+ <printer translate="name" name="Canon PIXMA MP390" driver="bjc-PIXMA-MP390" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP390" /><!-- driver and foomaticid legacy names updated since MultiPASS entry added -->
+ <printer translate="name" name="Canon PIXUS MP390" driver="bjc-PIXUS-MP390" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP390" />
+ <printer translate="name" name="Canon SmartBase MP390" driver="bjc-SmartBase-MP390" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MP390" />
+ <printer translate="name" name="Canon MultiPASS MP390" driver="bjc-MULTIPASS-MP390" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP390" /><!-- introduced the MultiPASS entry so changed previous PIXMA MP390 entry to reflect proper brand name -->
+ <!-- Canon MP450 family -->
+ <printer translate="name" name="Canon MP450 series" deviceid="MFG:Canon;CMD:BJL,BJRaster3,BSCCe;MDL:MP450;DES:Canon MP450;CLS:PRINTER;VER:1.08;STA:10;HRI:JP;SOJ:TXT01;" driver="bjc-MP450-series" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP450-series" />
+ <printer translate="name" name="Canon PIXMA MP450" driver="bjc-MULTIPASS-MP450" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP450" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP450" driver="bjc-PIXUS-MP450" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP450" />
+ <!-- Canon MP460 family -->
+ <printer translate="name" name="Canon MP460 series" driver="bjc-MP460-series" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP460-series" />
+ <printer translate="name" name="Canon PIXMA MP460" driver="bjc-MULTIPASS-MP460" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP460" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP460" driver="bjc-PIXUS-MP460" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP460" />
+ <!-- Canon MP470 family -->
+ <printer translate="name" name="Canon MP470 series" driver="bjc-MP470-series" manufacturer="Canon" model="5000470" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP470-series" />
+ <printer translate="name" name="Canon PIXMA MP470" driver="bjc-MULTIPASS-MP470" manufacturer="Canon" model="5000470" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP470" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP470" driver="bjc-PIXUS-MP470" manufacturer="Canon" model="5000470" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP470" />
+ <printer translate="name" name="Canon PIXMA MP476" driver="bjc-PIXMA-MP476" manufacturer="Canon" model="5000470" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP476" />
+ <!-- Canon MP480 family -->
+ <printer translate="name" name="Canon MP480 series" driver="bjc-MP480-series" manufacturer="Canon" model="5000480" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP480-series" />
+ <printer translate="name" name="Canon PIXMA MP480" driver="bjc-MULTIPASS-MP480" manufacturer="Canon" model="5000480" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP480" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP480" driver="bjc-PIXUS-MP480" manufacturer="Canon" model="5000480" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP480" />
+ <printer translate="name" name="Canon PIXMA MP486" driver="bjc-PIXMA-MP486" manufacturer="Canon" model="5000480" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP486" />
+ <!-- Canon MP490 family (TODO: combine separate drivers for 493, 495. PIXMA MP493 does not exist) -->
+ <printer translate="name" name="Canon MP490 series" driver="bjc-MP490-series" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP490-series" />
+ <printer translate="name" name="Canon PIXMA MP490" driver="bjc-MULTIPASS-MP490" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP490" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP490" driver="bjc-PIXUS-MP490" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP490" />
+ <printer translate="name" name="Canon PIXMA MP492" driver="bjc-PIXMA-MP492" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP492" />
+ <printer translate="name" name="Canon PIXMA MP493" driver="bjc-MULTIPASS-MP493" manufacturer="Canon" model="5000493" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP493" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP493" driver="bjc-PIXUS-MP493" manufacturer="Canon" model="5000493" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP493" />
+ <printer translate="name" name="Canon PIXMA MP495" driver="bjc-MULTIPASS-MP495" manufacturer="Canon" model="5000495" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP495" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MP496" driver="bjc-PIXMA-MP496" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP496" />
+ <printer translate="name" name="Canon PIXMA MP497" driver="bjc-PIXMA-MP497" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP497" />
+ <printer translate="name" name="Canon PIXMA MP498" driver="bjc-PIXMA-MP498" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP498" />
+ <printer translate="name" name="Canon PIXMA MP499" driver="bjc-PIXMA-MP499" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP499" />
+ <!-- Canon MP500 family -->
+ <printer translate="name" name="Canon MP500 series" deviceid="MFG:Canon;MDL:MP500;CMD:BJL,BJRaster3,BSCCe;" driver="bjc-MP500-series" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP500-series" />
+ <printer translate="name" name="Canon PIXMA MP500" driver="bjc-MULTIPASS-MP500" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP500" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP500" driver="bjc-PIXUS-MP500" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP500" />
+ <!-- Canon MP510 family -->
+ <printer translate="name" name="Canon MP510 series" driver="bjc-MP510-series" manufacturer="Canon" model="5000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP510-series" />
+ <printer translate="name" name="Canon PIXMA MP510" driver="bjc-MULTIPASS-MP510" manufacturer="Canon" model="5000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP510" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP510" driver="bjc-PIXUS-MP510" manufacturer="Canon" model="5000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP510" />
+ <!-- Canon MP520 family -->
+ <printer translate="name" name="Canon MP520 series" driver="bjc-MP520-series" manufacturer="Canon" model="5000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP520-series" />
+ <printer translate="name" name="Canon PIXMA MP520" driver="bjc-MULTIPASS-MP520" manufacturer="Canon" model="5000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP520" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP520" driver="bjc-PIXUS-MP520" manufacturer="Canon" model="5000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP520" />
+ <!-- Canon MP530 family -->
+ <printer translate="name" name="Canon MP530 series" driver="bjc-MP530-series" manufacturer="Canon" model="5000530" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP530-series" />
+ <printer translate="name" name="Canon PIXMA MP530" driver="bjc-MULTIPASS-MP530" manufacturer="Canon" model="5000530" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP530" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP540 family -->
+ <printer translate="name" name="Canon MP540 series" driver="bjc-MP540-series" manufacturer="Canon" model="5000540" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP540-series" />
+ <printer translate="name" name="Canon PIXMA MP540" driver="bjc-MULTIPASS-MP540" manufacturer="Canon" model="5000540" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP540" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP540" driver="bjc-PIXUS-MP540" manufacturer="Canon" model="5000540" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP540" />
+ <printer translate="name" name="Canon PIXMA MP545" driver="bjc-PIXMA-MP545" manufacturer="Canon" model="5000540" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP545" />
+ <!-- Canon MP550 family -->
+ <printer translate="name" name="Canon MP550 series" driver="bjc-MP550-series" manufacturer="Canon" model="5000550" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP550-series" />
+ <printer translate="name" name="Canon PIXMA MP550" driver="bjc-MULTIPASS-MP550" manufacturer="Canon" model="5000550" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP550" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP550" driver="bjc-PIXUS-MP550" manufacturer="Canon" model="5000550" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP550" />
+ <printer translate="name" name="Canon PIXMA MP558" driver="bjc-PIXMA-MP558" manufacturer="Canon" model="5000550" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP558" />
+ <!-- Canon MP560 family -->
+ <printer translate="name" name="Canon MP560 series" driver="bjc-MP560-series" manufacturer="Canon" model="5000560" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP560-series" />
+ <printer translate="name" name="Canon PIXMA MP560" driver="bjc-MULTIPASS-MP560" manufacturer="Canon" model="5000560" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP560" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP560" driver="bjc-PIXUS-MP560" manufacturer="Canon" model="5000560" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP560" />
+ <printer translate="name" name="Canon PIXMA MP568" driver="bjc-PIXMA-MP568" manufacturer="Canon" model="5000560" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP568" />
+ <!-- Canon MP600 family -->
+ <printer translate="name" name="Canon MP600 series" driver="bjc-MP600-series" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP600-series" />
+ <printer translate="name" name="Canon PIXMA MP600" driver="bjc-MULTIPASS-MP600" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP600" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP600" driver="bjc-PIXUS-MP600" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP600" />
+ <printer translate="name" name="Canon PIXMA MP600R" driver="bjc-MULTIPASS-MP600R" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP600R" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP610 family -->
+ <printer translate="name" name="Canon MP610 series" driver="bjc-MP610-series" manufacturer="Canon" model="5000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP610-series" />
+ <printer translate="name" name="Canon PIXMA MP610" driver="bjc-MULTIPASS-MP610" manufacturer="Canon" model="5000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP610" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP610" driver="bjc-PIXUS-MP610" manufacturer="Canon" model="5000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP610" />
+ <!-- Canon MP620 family -->
+ <printer translate="name" name="Canon MP620 series" driver="bjc-MP620-series" manufacturer="Canon" model="5000620" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP620-series" />
+ <printer translate="name" name="Canon PIXMA MP620" driver="bjc-MULTIPASS-MP620" manufacturer="Canon" model="5000620" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP620" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP620" driver="bjc-PIXUS-MP620" manufacturer="Canon" model="5000620" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP620" />
+ <printer translate="name" name="Canon PIXMA MP628" driver="bjc-PIXMA-MP628" manufacturer="Canon" model="5000620" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP628" />
+ <!-- Canon MP630 family -->
+ <printer translate="name" name="Canon MP630 series" driver="bjc-MP630-series" manufacturer="Canon" model="5000630" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP630-series" />
+ <printer translate="name" name="Canon PIXMA MP630" driver="bjc-MULTIPASS-MP630" manufacturer="Canon" model="5000630" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP630" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP630" driver="bjc-PIXUS-MP630" manufacturer="Canon" model="5000630" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP630" />
+ <printer translate="name" name="Canon PIXMA MP638" driver="bjc-PIXMA-MP638" manufacturer="Canon" model="5000630" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP638" />
+ <!-- Canon MP640 family -->
+ <printer translate="name" name="Canon MP640 series" driver="bjc-MP640-series" manufacturer="Canon" model="5000640" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP640-series" />
+ <printer translate="name" name="Canon PIXMA MP640" driver="bjc-MULTIPASS-MP640" manufacturer="Canon" model="5000640" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP640" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP640" driver="bjc-PIXUS-MP640" manufacturer="Canon" model="5000640" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP640" />
+ <printer translate="name" name="Canon PIXMA MP648" driver="bjc-PIXMA-MP648" manufacturer="Canon" model="5000640" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP648" />
+ <!-- Canon MP700 family -->
+ <printer translate="name" name="Canon MP700 series" driver="bjc-MP700-series" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP700-series" />
+ <printer translate="name" name="Canon PIXMA MP700" driver="bjc-PIXMA-MP700" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP700" /><!-- driver and foomaticid legacy names updated since MultiPASS entry added -->
+ <printer translate="name" name="Canon PIXUS MP700" driver="bjc-PIXUS-MP700" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP700" />
+ <printer translate="name" name="Canon SmartBase MP700" driver="bjc-SmartBase-MP700" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MP700" />
+ <printer translate="name" name="Canon MultiPASS MP700" driver="bjc-MULTIPASS-MP700" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP700" /><!-- introduced the MultiPASS entry so changed previous PIXMA MP700 entry to reflect proper brand name -->
+ <!-- Canon MP710 family (PIXMA MP710 does not exit) -->
+ <printer translate="name" name="Canon MP710 series" driver="bjc-MP710-series" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP710-series" />
+ <printer translate="name" name="Canon PIXMA MP710" driver="bjc-MULTIPASS-MP710" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP710" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP710" driver="bjc-PIXUS-MP710" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP710" />
+ <!-- Canon MP730 family -->
+ <printer translate="name" name="Canon MP730 series" driver="bjc-MP730-series" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP730-series" />
+ <printer translate="name" name="Canon PIXMA MP730" driver="bjc-PIXMA-MP730" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP730" /><!-- driver and foomaticid legacy names updated since MultiPASS entry added -->
+ <printer translate="name" name="Canon PIXUS MP730" driver="bjc-PIXUS-MP730" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP730" />
+ <printer translate="name" name="Canon SmartBase MP730" driver="bjc-SmartBasw-MP730" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MP730" />
+ <printer translate="name" name="Canon MultiPASS MP730" driver="bjc-MULTIPASS-MP730" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP730" /><!-- introduced the MultiPASS entry so changed previous PIXMA MP730 entry to reflect proper brand name -->
+ <!-- Canon MP740 family (PIXMA MP740 does not exit) -->
+ <printer translate="name" name="Canon MP740 series" driver="bjc-MP740-series" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP740-series" />
+ <printer translate="name" name="Canon PIXMA MP740" driver="bjc-MULTIPASS-MP740" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP740" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP740" driver="bjc-PIXUS-MP740" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP740" />
+ <!-- Canon MP750 family -->
+ <printer translate="name" name="Canon MP750 series" driver="bjc-MP750-series" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP750-series" />
+ <printer translate="name" name="Canon PIXMA MP750" driver="bjc-MULTIPASS-MP750" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP750" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP760 family -->
+ <printer translate="name" name="Canon MP760 series" driver="bjc-MULTIPASS-MP760-series" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP760-series" />
+ <printer translate="name" name="Canon PIXMA MP760" driver="bjc-MULTIPASS-MP760" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP760" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP770 family (PIXMA MP770 does not exist) -->
+ <printer translate="name" name="Canon MP770 series" driver="bjc-MULTIPASS-MP770-series" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP770-series" />
+ <printer translate="name" name="Canon PIXMA MP770" driver="bjc-MULTIPASS-MP770" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP770" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP770" driver="bjc-PIXUS-MP770" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP770" />
+ <!-- Canon MP780 family -->
+ <printer translate="name" name="Canon MP780 series" driver="bjc-MP780-series" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP780-series" />
+ <printer translate="name" name="Canon PIXMA MP780" driver="bjc-MULTIPASS-MP780" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP780" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP790 family (PIXMA MP770 does not exist) -->
+ <printer translate="name" name="Canon MP790 series" driver="bjc-MP790-series" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP790-series" />
+ <printer translate="name" name="Canon PIXMA MP790" driver="bjc-MULTIPASS-MP790" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP790" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP790" driver="bjc-PIXUS-MP790" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP790" />
+ <!-- Canon MP800 family -->
+ <printer translate="name" name="Canon MP800 series" driver="bjc-MP800-series" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP800-series" />
+ <printer translate="name" name="Canon PIXMA MP800" driver="bjc-MULTIPASS-MP800" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP800" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP800" driver="bjc-PIXUS-MP800" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP800" />
+ <printer translate="name" name="Canon PIXMA MP800R" driver="bjc-MULTIPASS-MP800R" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP800R" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MP810 family -->
+ <printer translate="name" name="Canon MP810 series" driver="bjc-MP810-series" manufacturer="Canon" model="5000810" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP810-series" />
+ <printer translate="name" name="Canon PIXMA MP810" driver="bjc-MULTIPASS-MP810" manufacturer="Canon" model="5000810" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP810" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP810" driver="bjc-PIXUS-MP810" manufacturer="Canon" model="5000810" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP810" />
+ <!-- Canon MP830 family -->
+ <printer translate="name" name="Canon MP830 series" driver="bjc-MP830-series" manufacturer="Canon" model="5000830" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP830-series" />
+ <printer translate="name" name="Canon PIXMA MP830" driver="bjc-MULTIPASS-MP830" manufacturer="Canon" model="5000830" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP830" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP830" driver="bjc-PIXUS-MP830" manufacturer="Canon" model="5000830" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP830" />
+ <!-- Canon MP900 family -->
+ <printer translate="name" name="Canon MP900 series" driver="bjc-MP900-series" manufacturer="Canon" model="5000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP900-series" />
+ <printer translate="name" name="Canon PIXMA MP900" driver="bjc-MULTIPASS-MP900" manufacturer="Canon" model="5000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP900" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP900" driver="bjc-PIXUS-MP900" manufacturer="Canon" model="5000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP900" />
+ <!-- Canon MP950 family -->
+ <printer translate="name" name="Canon MP950 series" driver="bjc-MP950-series" manufacturer="Canon" model="5000950" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP950-series" />
+ <printer translate="name" name="Canon PIXMA MP950" driver="bjc-MULTIPASS-MP950" manufacturer="Canon" model="5000950" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP950" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP950" driver="bjc-PIXUS-MP950" manufacturer="Canon" model="5000950" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP950" />
+ <!-- Canon MP960 family -->
+ <printer translate="name" name="Canon MP960 series" driver="bjc-MP960-series" manufacturer="Canon" model="5000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP960-series" />
+ <printer translate="name" name="Canon PIXMA MP960" driver="bjc-MULTIPASS-MP960" manufacturer="Canon" model="5000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP960" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP960" driver="bjc-PIXUS-MP960" manufacturer="Canon" model="5000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP960" />
+ <!-- Canon MP970 family -->
+ <printer translate="name" name="Canon MP970 series" driver="bjc-MP970-series" manufacturer="Canon" model="5000970" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP970-series" />
+ <printer translate="name" name="Canon PIXMA MP970" driver="bjc-MULTIPASS-MP970" manufacturer="Canon" model="5000970" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP970" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP970" driver="bjc-PIXUS-MP970" manufacturer="Canon" model="5000970" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP970" />
+ <!-- Canon MP980 family -->
+ <printer translate="name" name="Canon MP980 series" driver="bjc-MP980-series" manufacturer="Canon" model="5000980" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP980-series" />
+ <printer translate="name" name="Canon PIXMA MP980" driver="bjc-MULTIPASS-MP980" manufacturer="Canon" model="5000980" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP980" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP980" driver="bjc-PIXUS-MP980" manufacturer="Canon" model="5000980" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP980" />
+ <printer translate="name" name="Canon PIXMA MP988" driver="bjc-PIXMA-MP988" manufacturer="Canon" model="5000980" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP988" />
+ <!-- Canon MP990 family -->
+ <printer translate="name" name="Canon MP990 series" driver="bjc-MP990-series" manufacturer="Canon" model="5000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP990-series" />
+ <printer translate="name" name="Canon PIXMA MP990" driver="bjc-MULTIPASS-MP990" manufacturer="Canon" model="5000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP990" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MP990" driver="bjc-PIXUS-MP990" manufacturer="Canon" model="5000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP990" />
+ <printer translate="name" name="Canon PIXMA MP996" driver="bjc-PIXMA-MP996" manufacturer="Canon" model="5000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MP996" />
+ <!-- Canon MG2100 family -->
+ <printer translate="name" name="Canon MG2100 series" driver="bjc-MG2100-series" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG2100-series" />
<printer translate="name" name="Canon PIXMA MG2100" driver="bjc-PIXMA-MG2100" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2100" />
+ <printer translate="name" name="Canon PIXMA MG2110" driver="bjc-PIXMA-MG2110" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2110" />
+ <printer translate="name" name="Canon PIXMA MG2120" driver="bjc-PIXMA-MG2120" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2120" />
+ <printer translate="name" name="Canon PIXUS MG2130" driver="bjc-PIXUS-MG2130" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG2130" />
+ <printer translate="name" name="Canon PIXMA MG2140" driver="bjc-PIXMA-MG2140" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2140" />
+ <printer translate="name" name="Canon PIXMA MG2150" driver="bjc-PIXMA-MG2150" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2150" />
+ <printer translate="name" name="Canon PIXMA MG2160" driver="bjc-PIXMA-MG2160" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2160" />
+ <printer translate="name" name="Canon PIXMA MG2170" driver="bjc-PIXMA-MG2170" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2170" />
+ <printer translate="name" name="Canon PIXMA MG2180" driver="bjc-PIXMA-MG2180" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2180" />
+ <!-- Canon MG2200 family -->
+ <printer translate="name" name="Canon MG2200 series" driver="bjc-MG2200-series" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG2200-series" />
+ <printer translate="name" name="Canon PIXMA MG2210" driver="bjc-PIXMA-MG2210" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2210" />
+ <printer translate="name" name="Canon PIXMA MG2220" driver="bjc-PIXMA-MG2220" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2220" />
+ <printer translate="name" name="Canon PIXMA MG2240" driver="bjc-PIXMA-MG2240" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2240" />
+ <printer translate="name" name="Canon PIXMA MG2250" driver="bjc-PIXMA-MG2250" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2250" />
+ <printer translate="name" name="Canon PIXMA MG2260" driver="bjc-PIXMA-MG2260" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2260" />
+ <printer translate="name" name="Canon PIXMA MG2270" driver="bjc-PIXMA-MG2270" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2270" />
+ <printer translate="name" name="Canon PIXMA MG2280" driver="bjc-PIXMA-MG2280" manufacturer="Canon" model="8002200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2280" />
+ <!-- Canon MG2400 family -->
+ <printer translate="name" name="Canon MG2400 series" driver="bjc-MG2400-series" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG2400-series" />
+ <printer translate="name" name="Canon PIXMA MG2400" driver="bjc-PIXMA-MG2400" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2400" />
+ <printer translate="name" name="Canon PIXMA MG2410" driver="bjc-PIXMA-MG2410" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2410" />
+ <printer translate="name" name="Canon PIXMA MG2420" driver="bjc-PIXMA-MG2420" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2420" />
+ <printer translate="name" name="Canon PIXMA MG2440" driver="bjc-PIXMA-MG2440" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2440" />
+ <printer translate="name" name="Canon PIXMA MG2450" driver="bjc-PIXMA-MG2450" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2450" />
+ <printer translate="name" name="Canon PIXMA MG2470" driver="bjc-PIXMA-MG2470" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2470" />
+ <!-- Canon MG2500 family -->
+ <printer translate="name" name="Canon MG2500 series" driver="bjc-MG2500-series" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG2500-series" />
+ <printer translate="name" name="Canon PIXMA MG2510" driver="bjc-PIXMA-MG2510" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2510" />
+ <printer translate="name" name="Canon PIXMA MG2520" driver="bjc-PIXMA-MG2520" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2520" />
+ <printer translate="name" name="Canon PIXMA MG2540" driver="bjc-PIXMA-MG2540" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2540" />
+ <printer translate="name" name="Canon PIXMA MG2550" driver="bjc-PIXMA-MG2550" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2550" />
+ <printer translate="name" name="Canon PIXMA MG2560" driver="bjc-PIXMA-MG2560" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2560" />
+ <printer translate="name" name="Canon PIXMA MG2570" driver="bjc-PIXMA-MG2570" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2570" />
+ <printer translate="name" name="Canon PIXMA MG2580" driver="bjc-PIXMA-MG2580" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2580" />
+ <!-- Canon MG3100 family -->
+ <printer translate="name" name="Canon MG3100 series" driver="bjc-MG3100-series" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG3100-series" />
<printer translate="name" name="Canon PIXMA MG3100" driver="bjc-PIXMA-MG3100" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3100" />
+ <printer translate="name" name="Canon PIXMA MG3110" driver="bjc-PIXMA-MG3110" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3110" />
+ <printer translate="name" name="Canon PIXMA MG3120" driver="bjc-PIXMA-MG3120" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3120" />
+ <printer translate="name" name="Canon PIXMA MG3122" driver="bjc-PIXMA-MG3122" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3122" />
+ <printer translate="name" name="Canon PIXUS MG3130" driver="bjc-PIXUS-MG3130" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG3130" />
+ <printer translate="name" name="Canon PIXMA MG3140" driver="bjc-PIXMA-MG3140" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3140" />
+ <printer translate="name" name="Canon PIXMA MG3150" driver="bjc-PIXMA-MG3150" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3150" />
+ <printer translate="name" name="Canon PIXMA MG3160" driver="bjc-PIXMA-MG3160" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3160" />
+ <printer translate="name" name="Canon PIXMA MG3170" driver="bjc-PIXMA-MG3170" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3170" />
+ <printer translate="name" name="Canon PIXMA MG3180" driver="bjc-PIXMA-MG3180" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3180" />
+ <!-- Canon MG3200 family -->
+ <printer translate="name" name="Canon MG3200 series" driver="bjc-MG3200-series" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG3200-series" />
+ <printer translate="name" name="Canon PIXMA MG3210" driver="bjc-PIXMA-MG3210" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3210" />
+ <printer translate="name" name="Canon PIXMA MG3220" driver="bjc-PIXMA-MG3220" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3220" />
+ <printer translate="name" name="Canon PIXMA MG3222" driver="bjc-PIXMA-MG3222" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3222" />
+ <printer translate="name" name="Canon PIXUS MG3230" driver="bjc-PIXUS-MG3230" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG3230" />
+ <printer translate="name" name="Canon PIXMA MG3240" driver="bjc-PIXMA-MG3240" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3240" />
+ <printer translate="name" name="Canon PIXMA MG3250" driver="bjc-PIXMA-MG3250" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3250" />
+ <printer translate="name" name="Canon PIXMA MG3260" driver="bjc-PIXMA-MG3260" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3260" />
+ <printer translate="name" name="Canon PIXMA MG3270" driver="bjc-PIXMA-MG3270" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3270" />
+ <!-- Canon MG3500 family -->
+ <printer translate="name" name="Canon MG3500 series" driver="bjc-MG3500-series" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG3500-series" />
+ <printer translate="name" name="Canon PIXMA MG3510" driver="bjc-PIXMA-MG3510" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3510" />
+ <printer translate="name" name="Canon PIXMA MG3520" driver="bjc-PIXMA-MG3520" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3520" />
+ <printer translate="name" name="Canon PIXUS MG3530" driver="bjc-PIXUS-MG3530" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG3530" />
+ <printer translate="name" name="Canon PIXMA MG3540" driver="bjc-PIXMA-MG3540" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3540" />
+ <printer translate="name" name="Canon PIXMA MG3550" driver="bjc-PIXMA-MG3550" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3550" />
+ <printer translate="name" name="Canon PIXMA MG3560" driver="bjc-PIXMA-MG3560" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3560" />
+ <printer translate="name" name="Canon PIXMA MG3570" driver="bjc-PIXMA-MG3570" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3570" />
+ <printer translate="name" name="Canon PIXMA MG3580" driver="bjc-PIXMA-MG3580" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3580" />
+ <!-- Canon MG4100 family -->
+ <printer translate="name" name="Canon MG4100 series" driver="bjc-MG4100-series" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG4100-series" />
<printer translate="name" name="Canon PIXMA MG4100" driver="bjc-PIXMA-MG4100" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4100" />
+ <printer translate="name" name="Canon PIXMA MG4110" driver="bjc-PIXMA-MG4110" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4110" />
+ <printer translate="name" name="Canon PIXMA MG4120" driver="bjc-PIXMA-MG4120" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4120" />
+ <printer translate="name" name="Canon PIXUS MG4130" driver="bjc-PIXUS-MG4130" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG4130" />
+ <printer translate="name" name="Canon PIXMA MG4140" driver="bjc-PIXMA-MG4140" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4140" />
+ <printer translate="name" name="Canon PIXMA MG4150" driver="bjc-PIXMA-MG4150" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4150" />
+ <printer translate="name" name="Canon PIXMA MG4160" driver="bjc-PIXMA-MG4160" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4160" />
+ <printer translate="name" name="Canon PIXMA MG4170" driver="bjc-PIXMA-MG4170" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4170" />
+ <printer translate="name" name="Canon PIXMA MG4180" driver="bjc-PIXMA-MG4180" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4180" />
+ <!-- Canon MG4200 family -->
+ <printer translate="name" name="Canon MG4200 series" driver="bjc-MG4200-series" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG4200-series" />
+ <printer translate="name" name="Canon PIXMA MG4210" driver="bjc-PIXMA-MG4210" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4210" />
+ <printer translate="name" name="Canon PIXMA MG4220" driver="bjc-PIXMA-MG4220" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4220" />
+ <printer translate="name" name="Canon PIXUS MG4230" driver="bjc-PIXUS-MG4230" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG4230" />
+ <printer translate="name" name="Canon PIXMA MG4240" driver="bjc-PIXMA-MG4240" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4240" />
+ <printer translate="name" name="Canon PIXMA MG4250" driver="bjc-PIXMA-MG4250" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4250" />
+ <printer translate="name" name="Canon PIXMA MG4260" driver="bjc-PIXMA-MG4260" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4260" />
+ <printer translate="name" name="Canon PIXMA MG4270" driver="bjc-PIXMA-MG4270" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4270" />
+ <printer translate="name" name="Canon PIXMA MG4280" driver="bjc-PIXMA-MG4280" manufacturer="Canon" model="8003200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4280" />
+ <!-- Canon MG5100 family -->
+ <printer translate="name" name="Canon MG5100 series" driver="bjc-MG5100-series" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG5100-series" />
<printer translate="name" name="Canon PIXMA MG5100" driver="bjc-PIXMA-MG5100" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5100" />
+ <printer translate="name" name="Canon PIXMA MG5120" driver="bjc-PIXMA-MG5120" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5120" />
+ <printer translate="name" name="Canon PIXUS MG5130" driver="bjc-PIXUS-MG5130" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG5130" />
+ <printer translate="name" name="Canon PIXMA MG5140" driver="bjc-PIXMA-MG5140" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5140" />
+ <printer translate="name" name="Canon PIXMA MG5150" driver="bjc-PIXMA-MG5150" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5150" />
+ <printer translate="name" name="Canon PIXMA MG5170" driver="bjc-PIXMA-MG5170" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5170" />
+ <printer translate="name" name="Canon PIXMA MG5180" driver="bjc-PIXMA-MG5180" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5180" />
+ <!-- Canon MG5200 family -->
+ <printer translate="name" name="Canon MG5200 series" driver="bjc-MG5200-series" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG5200-series" />
<printer translate="name" name="Canon PIXMA MG5200" driver="bjc-PIXMA-MG5200" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5200" />
+ <printer translate="name" name="Canon PIXMA MG5210" driver="bjc-PIXMA-MG5210" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5210" />
+ <printer translate="name" name="Canon PIXMA MG5220" driver="bjc-PIXMA-MG5220" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5220" />
+ <printer translate="name" name="Canon PIXUS MG5230" driver="bjc-PIXUS-MG5230" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG5230" />
+ <printer translate="name" name="Canon PIXMA MG5240" driver="bjc-PIXMA-MG5240" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5240" />
+ <printer translate="name" name="Canon PIXMA MG5250" driver="bjc-PIXMA-MG5250" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5250" />
+ <printer translate="name" name="Canon PIXMA MG5270" driver="bjc-PIXMA-MG5270" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5270" />
+ <printer translate="name" name="Canon PIXMA MG5280" driver="bjc-PIXMA-MG5280" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5280" />
+ <!-- Canon MG5300 family -->
+ <printer translate="name" name="Canon MG5300 series" driver="bjc-MG5300-series" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG5300-series" />
<printer translate="name" name="Canon PIXMA MG5300" driver="bjc-PIXMA-MG5300" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5300" />
+ <printer translate="name" name="Canon PIXMA MG5310" driver="bjc-PIXMA-MG5310" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5310" />
+ <printer translate="name" name="Canon PIXMA MG5320" driver="bjc-PIXMA-MG5320" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5320" />
+ <printer translate="name" name="Canon PIXUS MG5330" driver="bjc-PIXUS-MG5330" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG5330" />
+ <printer translate="name" name="Canon PIXMA MG5340" driver="bjc-PIXMA-MG5340" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5340" />
+ <printer translate="name" name="Canon PIXMA MG5350" driver="bjc-PIXMA-MG5350" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5350" />
+ <printer translate="name" name="Canon PIXMA MG5370" driver="bjc-PIXMA-MG5370" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5370" />
+ <printer translate="name" name="Canon PIXMA MG5380" driver="bjc-PIXMA-MG5380" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5380" />
+ <!-- Canon MG5400 family -->
+ <printer translate="name" name="Canon MG5400 series" driver="bjc-MG5400-series" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG5400-series" />
+ <printer translate="name" name="Canon PIXMA MG5410" driver="bjc-PIXMA-MG5410" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5410" />
+ <printer translate="name" name="Canon PIXMA MG5420" driver="bjc-PIXMA-MG5420" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5420" />
+ <printer translate="name" name="Canon PIXMA MG5422" driver="bjc-PIXMA-MG5422" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5422" />
+ <printer translate="name" name="Canon PIXUS MG5430" driver="bjc-PIXUS-MG5430" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG5430" />
+ <printer translate="name" name="Canon PIXMA MG5440" driver="bjc-PIXMA-MG5440" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5440" />
+ <printer translate="name" name="Canon PIXMA MG5450" driver="bjc-PIXMA-MG5450" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5450" />
+ <printer translate="name" name="Canon PIXMA MG5460" driver="bjc-PIXMA-MG5460" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5460" />
+ <printer translate="name" name="Canon PIXMA MG5470" driver="bjc-PIXMA-MG5470" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5470" />
+ <printer translate="name" name="Canon PIXMA MG5480" driver="bjc-PIXMA-MG5480" manufacturer="Canon" model="8005400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5480" />
+ <!-- Canon MG5500 family -->
+ <printer translate="name" name="Canon MG5500 series" driver="bjc-MG5500-series" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG5500-series" />
+ <printer translate="name" name="Canon PIXMA MG5510" driver="bjc-PIXMA-MG5510" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5510" />
+ <printer translate="name" name="Canon PIXMA MG5520" driver="bjc-PIXMA-MG5520" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5520" />
+ <printer translate="name" name="Canon PIXMA MG5522" driver="bjc-PIXMA-MG5522" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5522" />
+ <printer translate="name" name="Canon PIXUS MG5530" driver="bjc-PIXUS-MG5530" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG5530" />
+ <printer translate="name" name="Canon PIXMA MG5540" driver="bjc-PIXMA-MG5540" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5540" />
+ <printer translate="name" name="Canon PIXMA MG5550" driver="bjc-PIXMA-MG5550" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5550" />
+ <printer translate="name" name="Canon PIXMA MG5560" driver="bjc-PIXMA-MG5560" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5560" />
+ <printer translate="name" name="Canon PIXMA MG5570" driver="bjc-PIXMA-MG5570" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5570" />
+ <printer translate="name" name="Canon PIXMA MG5580" driver="bjc-PIXMA-MG5580" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5580" />
+ <!-- Canon MG6100 family -->
+ <printer translate="name" name="Canon MG6100 series" driver="bjc-MG6100-series" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6100-series" />
<printer translate="name" name="Canon PIXMA MG6100" driver="bjc-PIXMA-MG6100" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6100" />
+ <printer translate="name" name="Canon PIXMA MG6110" driver="bjc-PIXMA-MG6110" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6110" />
+ <printer translate="name" name="Canon PIXMA MG6120" driver="bjc-PIXMA-MG6120" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6120" />
+ <printer translate="name" name="Canon PIXUS MG6130" driver="bjc-PIXUS-MG6130" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG6130" />
+ <printer translate="name" name="Canon PIXMA MG6140" driver="bjc-PIXMA-MG6140" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6140" />
+ <printer translate="name" name="Canon PIXMA MG6150" driver="bjc-PIXMA-MG6150" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6150" />
+ <printer translate="name" name="Canon PIXMA MG6170" driver="bjc-PIXMA-MG6170" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6170" />
+ <printer translate="name" name="Canon PIXMA MG6180" driver="bjc-PIXMA-MG6180" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6180" />
+ <!-- Canon MG6200 family -->
+ <printer translate="name" name="Canon MG6200 series" driver="bjc-MG6200-series" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6200-series" />
<printer translate="name" name="Canon PIXMA MG6200" driver="bjc-PIXMA-MG6200" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6200" />
+ <printer translate="name" name="Canon PIXMA MG6210" driver="bjc-PIXMA-MG6210" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6210" />
+ <printer translate="name" name="Canon PIXMA MG6220" driver="bjc-PIXMA-MG6220" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6220" />
+ <printer translate="name" name="Canon PIXUS MG6230" driver="bjc-PIXUS-MG6230" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG6230" />
+ <printer translate="name" name="Canon PIXMA MG6240" driver="bjc-PIXMA-MG6240" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6240" />
+ <printer translate="name" name="Canon PIXMA MG6250" driver="bjc-PIXMA-MG6250" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6250" />
+ <printer translate="name" name="Canon PIXMA MG6270" driver="bjc-PIXMA-MG6270" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6270" />
+ <printer translate="name" name="Canon PIXMA MG6280" driver="bjc-PIXMA-MG6280" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6280" />
+ <!-- Canon MG6300 family -->
+ <printer translate="name" name="Canon MG6300 series" driver="bjc-MG6300-series" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6300-series" />
+ <printer translate="name" name="Canon PIXMA MG6310" driver="bjc-PIXMA-MG6310" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6310" />
+ <printer translate="name" name="Canon PIXMA MG6320" driver="bjc-PIXMA-MG6320" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6320" />
+ <printer translate="name" name="Canon PIXUS MG6330" driver="bjc-PIXUS-MG6330" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG6330" />
+ <printer translate="name" name="Canon PIXMA MG6340" driver="bjc-PIXMA-MG6340" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6340" />
+ <printer translate="name" name="Canon PIXMA MG6350" driver="bjc-PIXMA-MG6350" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6350" />
+ <printer translate="name" name="Canon PIXMA MG6360" driver="bjc-PIXMA-MG6360" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6360" />
+ <printer translate="name" name="Canon PIXMA MG6370" driver="bjc-PIXMA-MG6370" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6370" />
+ <printer translate="name" name="Canon PIXMA MG6380" driver="bjc-PIXMA-MG6380" manufacturer="Canon" model="8006300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6380" />
+ <!-- Canon MG6400 family -->
+ <printer translate="name" name="Canon MG6400 series" driver="bjc-MG6400-series" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6400-series" />
+ <printer translate="name" name="Canon PIXMA MG6400" driver="bjc-PIXMA-MG6400" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6400" />
+ <printer translate="name" name="Canon PIXMA MG6410" driver="bjc-PIXMA-MG6410" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6410" />
+ <printer translate="name" name="Canon PIXMA MG6420" driver="bjc-PIXMA-MG6420" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6420" />
+ <printer translate="name" name="Canon PIXMA MG6440" driver="bjc-PIXMA-MG6440" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6440" />
+ <printer translate="name" name="Canon PIXMA MG6450" driver="bjc-PIXMA-MG6450" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6450" />
+ <printer translate="name" name="Canon PIXMA MG6470" driver="bjc-PIXMA-MG6470" manufacturer="Canon" model="8005500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6470" />
+ <!-- Canon MG6500 family -->
+ <printer translate="name" name="Canon MG6500 series" driver="bjc-MG6500-series" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6500-series" />
+ <printer translate="name" name="Canon PIXUS MG6530" driver="bjc-PIXUS-MG6530" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG6530" />
+ <!-- Canon MG7100 family -->
+ <printer translate="name" name="Canon MG7100 series" driver="bjc-MG7100-series" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG7100-series" />
+ <printer translate="name" name="Canon PIXMA MG7110" driver="bjc-PIXMA-MG7110" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7110" />
+ <printer translate="name" name="Canon PIXMA MG7120" driver="bjc-PIXMA-MG7120" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7120" />
+ <printer translate="name" name="Canon PIXUS MG7130" driver="bjc-PIXUS-MG7130" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG7130" />
+ <printer translate="name" name="Canon PIXMA MG7140" driver="bjc-PIXMA-MG7140" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7140" />
+ <printer translate="name" name="Canon PIXMA MG7150" driver="bjc-PIXMA-MG7150" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7150" />
+ <printer translate="name" name="Canon PIXMA MG7170" driver="bjc-PIXMA-MG7170" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7170" />
+ <printer translate="name" name="Canon PIXMA MG7180" driver="bjc-PIXMA-MG7180" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7180" />
+ <!-- Canon MG8100 family -->
+ <printer translate="name" name="Canon MG8100 series" driver="bjc-MG8100-series" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG8100-series" />
<printer translate="name" name="Canon PIXMA MG8100" driver="bjc-PIXMA-MG8100" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8100" />
+ <printer translate="name" name="Canon PIXMA MG8120" driver="bjc-PIXMA-MG8120" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8120" />
+ <printer translate="name" name="Canon PIXUS MG8130" driver="bjc-PIXUS-MG8130" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG8130" />
+ <printer translate="name" name="Canon PIXMA MG8140" driver="bjc-PIXMA-MG8140" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8140" />
+ <printer translate="name" name="Canon PIXMA MG8150" driver="bjc-PIXMA-MG8150" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8150" />
+ <printer translate="name" name="Canon PIXMA MG8170" driver="bjc-PIXMA-MG8170" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8170" />
+ <printer translate="name" name="Canon PIXMA MG8180" driver="bjc-PIXMA-MG8180" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8180" />
+ <!-- Canon MG8200 family -->
+ <printer translate="name" name="Canon MG8200 series" driver="bjc-MG8200-series" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG8200-series" />
<printer translate="name" name="Canon PIXMA MG8200" driver="bjc-PIXMA-MG8200" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8200" />
- <printer translate="name" name="Canon PIXMA MX300" driver="bjc-MULTIPASS-MX300" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX300" />
- <printer translate="name" name="Canon PIXMA MX310" driver="bjc-MULTIPASS-MX310" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX310" />
- <printer translate="name" name="Canon PIXMA MX320" driver="bjc-MULTIPASS-MX320" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX320" />
- <printer translate="name" name="Canon PIXMA MX330" driver="bjc-MULTIPASS-MX330" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX330" />
- <printer translate="name" name="Canon PIXMA MX340" driver="bjc-MULTIPASS-MX340" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX340" />
- <printer translate="name" name="Canon PIXMA MX350" driver="bjc-MULTIPASS-MX350" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX350" />
- <printer translate="name" name="Canon PIXMA MX360" driver="bjc-MULTIPASS-MX360" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX360" />
- <printer translate="name" name="Canon PIXMA MX370" driver="bjc-MULTIPASS-MX370" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX370" />
- <printer translate="name" name="Canon PIXMA MX410" driver="bjc-MULTIPASS-MX410" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX410" />
- <printer translate="name" name="Canon PIXMA MX420" driver="bjc-MULTIPASS-MX420" manufacturer="Canon" model="9000420" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX420" />
- <printer translate="name" name="Canon PIXMA MX430" driver="bjc-MULTIPASS-MX430" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX430" />
- <printer translate="name" name="Canon PIXMA MX510" driver="bjc-MULTIPASS-MX510" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX510" />
- <printer translate="name" name="Canon PIXMA MX700" driver="bjc-MULTIPASS-MX700" manufacturer="Canon" model="9000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX700" />
- <printer translate="name" name="Canon PIXMA MX710" driver="bjc-MULTIPASS-MX710" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX710" />
- <printer translate="name" name="Canon PIXMA MX850" driver="bjc-MULTIPASS-MX850" manufacturer="Canon" model="9000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX850" />
- <printer translate="name" name="Canon PIXMA MX860" driver="bjc-MULTIPASS-MX860" manufacturer="Canon" model="9000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX860" />
- <printer translate="name" name="Canon PIXMA MX870" driver="bjc-MULTIPASS-MX870" manufacturer="Canon" model="9000870" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX870" />
- <printer translate="name" name="Canon PIXMA MX880" driver="bjc-MULTIPASS-MX880" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX880" />
- <printer translate="name" name="Canon PIXMA MX890" driver="bjc-MULTIPASS-MX890" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX890" />
- <printer translate="name" name="Canon PIXMA MX7600" driver="bjc-MULTIPASS-MX7600" manufacturer="Canon" model="9007600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX7600" />
- <printer translate="name" name="Canon PIXMA E500" driver="bjc-MULTIPASS-E500" manufacturer="Canon" model="12000500" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-E500" />
- <printer translate="name" name="Canon PIXMA E600" driver="bjc-MULTIPASS-E600" manufacturer="Canon" model="12000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-E600" />
+ <printer translate="name" name="Canon PIXMA MG8220" driver="bjc-PIXMA-MG8220" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8220" />
+ <printer translate="name" name="Canon PIXUS MG8230" driver="bjc-PIXUS-MG8230" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG8230" />
+ <printer translate="name" name="Canon PIXMA MG8240" driver="bjc-PIXMA-MG8240" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8240" />
+ <printer translate="name" name="Canon PIXMA MG8250" driver="bjc-PIXMA-MG8250" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8250" />
+ <printer translate="name" name="Canon PIXMA MG8270" driver="bjc-PIXMA-MG8270" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8270" />
+ <printer translate="name" name="Canon PIXMA MG8280" driver="bjc-PIXMA-MG8280" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8280" />
+ <!-- Canon MX300 family -->
+ <printer translate="name" name="Canon MX300 series" driver="bjc-MX300-series" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX300-series" />
+ <printer translate="name" name="Canon PIXMA MX300" driver="bjc-MULTIPASS-MX300" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX300" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX308" driver="bjc-PIXMA-MX308" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX308" />
+ <!-- Canon MX310 family-->
+ <printer translate="name" name="Canon MX310 series" driver="bjc-MX310-series" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX310-series" />
+ <printer translate="name" name="Canon PIXMA MX310" driver="bjc-MULTIPASS-MX310" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX310" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX318" driver="bjc-PIXMA-MX318" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX318" />
+ <!-- Canon MX320 family-->
+ <printer translate="name" name="Canon MX320 series" driver="bjc-MX320-series" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX320-series" />
+ <printer translate="name" name="Canon PIXMA MX320" driver="bjc-MULTIPASS-MX320" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX320" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX328" driver="bjc-PIXMA-MX328" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX328" />
+ <!-- Canon MX330 family-->
+ <printer translate="name" name="Canon MX330 series" driver="bjc-MX330-series" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX330-series" />
+ <printer translate="name" name="Canon PIXMA MX330" driver="bjc-MULTIPASS-MX330" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX330" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX338" driver="bjc-PIXMA-MX338" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX338" />
+ <!-- Canon MX340 family -->
+ <printer translate="name" name="Canon MX340 series" driver="bjc-MX340-series" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX340-series" />
+ <printer translate="name" name="Canon PIXMA MX340" driver="bjc-MULTIPASS-MX340" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX340" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX347" driver="bjc-PIXMA-MX347" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX347" />
+ <printer translate="name" name="Canon PIXMA MX348" driver="bjc-PIXMA-MX348" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX348" />
+ <!-- Canon MX350 family -->
+ <printer translate="name" name="Canon MX350 series" driver="bjc-MX350-series" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX350-series" />
+ <printer translate="name" name="Canon PIXMA MX350" driver="bjc-MULTIPASS-MX350" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX350" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MX350" driver="bjc-PIXUS-MX350" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX350" />
+ <printer translate="name" name="Canon PIXMA MX357" driver="bjc-PIXMA-MX357" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX357" />
+ <printer translate="name" name="Canon PIXMA MX358" driver="bjc-PIXMA-MX358" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX358" />
+ <!-- Canon MX360 family -->
+ <printer translate="name" name="Canon MX360 series" driver="bjc-MX360-series" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX360-series" />
+ <printer translate="name" name="Canon PIXMA MX360" driver="bjc-MULTIPASS-MX360" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX360" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX366" driver="bjc-PIXMA-MX366" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX366" />
+ <printer translate="name" name="Canon PIXMA MX368" driver="bjc-PIXMA-MX368" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX368" />
+ <!-- Canon MX370 family -->
+ <printer translate="name" name="Canon MX370 series" driver="bjc-MX370-series" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX370-series" />
+ <printer translate="name" name="Canon PIXMA MX370" driver="bjc-MULTIPASS-MX370" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX370" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX371" driver="bjc-PIXMA-MX371" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX371" />
+ <printer translate="name" name="Canon PIXMA MX372" driver="bjc-PIXMA-MX372" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX372" />
+ <printer translate="name" name="Canon PIXMA MX374" driver="bjc-PIXMA-MX374" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX374" />
+ <printer translate="name" name="Canon PIXMA MX375" driver="bjc-PIXMA-MX375" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX375" />
+ <printer translate="name" name="Canon PIXMA MX376" driver="bjc-PIXMA-MX376" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX376" />
+ <printer translate="name" name="Canon PIXMA MX377" driver="bjc-PIXMA-MX377" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX377" />
+ <printer translate="name" name="Canon PIXMA MX378" driver="bjc-PIXMA-MX378" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX378" />
+ <!-- Canon MX390 family -->
+ <printer translate="name" name="Canon MX390 series" driver="bjc-MX390-series" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX390-series" />
+ <printer translate="name" name="Canon PIXMA MX391" driver="bjc-PIXMA-MX391" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX391" />
+ <printer translate="name" name="Canon PIXMA MX392" driver="bjc-PIXMA-MX392" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX392" />
+ <printer translate="name" name="Canon PIXMA MX394" driver="bjc-PIXMA-MX394" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX394" />
+ <printer translate="name" name="Canon PIXMA MX395" driver="bjc-PIXMA-MX395" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX395" />
+ <printer translate="name" name="Canon PIXMA MX396" driver="bjc-PIXMA-MX396" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX396" />
+ <printer translate="name" name="Canon PIXMA MX397" driver="bjc-PIXMA-MX397" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX397" />
+ <printer translate="name" name="Canon PIXMA MX398" driver="bjc-PIXMA-MX398" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX398" />
+ <!-- Canon MX410 family -->
+ <printer translate="name" name="Canon MX410 series" driver="bjc-MX410-series" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX410-series" />
+ <printer translate="name" name="Canon PIXMA MX410" driver="bjc-MULTIPASS-MX410" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX410" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX416" driver="bjc-PIXMA-MX416" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX416" />
+ <printer translate="name" name="Canon PIXMA MX418" driver="bjc-PIXMA-MX418" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX418" />
+ <!-- Canon MX420 family -->
+ <printer translate="name" name="Canon MX420 series" driver="bjc-MX420-series" manufacturer="Canon" model="9000420" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX420-series" />
+ <printer translate="name" name="Canon PIXMA MX420" driver="bjc-MULTIPASS-MX420" manufacturer="Canon" model="9000420" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX420" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MX420" driver="bjc-PIXUS-MX420" manufacturer="Canon" model="9000420" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX420" />
+ <printer translate="name" name="Canon PIXMA MX426" driver="bjc-PIXMA-MX426" manufacturer="Canon" model="9000420" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX426" />
+ <printer translate="name" name="Canon PIXMA MX428" driver="bjc-PIXMA-MX428" manufacturer="Canon" model="9000420" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX428" />
+ <!-- Canon MX430 family -->
+ <printer translate="name" name="Canon MX430 series" driver="bjc-MX430-series" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX430-series" />
+ <printer translate="name" name="Canon PIXMA MX430" driver="bjc-MULTIPASS-MX430" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX430" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX431" driver="bjc-PIXMA-MX431" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX431" />
+ <printer translate="name" name="Canon PIXMA MX432" driver="bjc-PIXMA-MX432" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX432" />
+ <printer translate="name" name="Canon PIXMA MX434" driver="bjc-PIXMA-MX434" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX434" />
+ <printer translate="name" name="Canon PIXMA MX435" driver="bjc-PIXMA-MX435" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX435" />
+ <printer translate="name" name="Canon PIXMA MX436" driver="bjc-PIXMA-MX436" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX436" />
+ <printer translate="name" name="Canon PIXMA MX437" driver="bjc-PIXMA-MX437" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX437" />
+ <printer translate="name" name="Canon PIXMA MX438" driver="bjc-PIXMA-MX438" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX438" />
+ <printer translate="name" name="Canon PIXMA MX439" driver="bjc-PIXMA-MX439" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX439" />
+ <!-- Canon MX450 family -->
+ <printer translate="name" name="Canon MX450 series" driver="bjc-MX450-series" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX450-series" />
+ <printer translate="name" name="Canon PIXMA MX451" driver="bjc-PIXMA-MX451" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX451" />
+ <printer translate="name" name="Canon PIXMA MX452" driver="bjc-PIXMA-MX452" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX452" />
+ <printer translate="name" name="Canon PIXMA MX454" driver="bjc-PIXMA-MX454" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX454" />
+ <printer translate="name" name="Canon PIXMA MX455" driver="bjc-PIXMA-MX455" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX455" />
+ <printer translate="name" name="Canon PIXMA MX456" driver="bjc-PIXMA-MX456" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX456" />
+ <printer translate="name" name="Canon PIXMA MX457" driver="bjc-PIXMA-MX457" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX457" />
+ <printer translate="name" name="Canon PIXMA MX458" driver="bjc-PIXMA-MX458" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX458" />
+ <printer translate="name" name="Canon PIXMA MX459" driver="bjc-PIXMA-MX459" manufacturer="Canon" model="9000390" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX459" />
+ <!-- Canon MX510 family -->
+ <printer translate="name" name="Canon MX510 series" driver="bjc-MX510-series" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX510-series" />
+ <printer translate="name" name="Canon PIXMA MX510" driver="bjc-MULTIPASS-MX510" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX510" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX511" driver="bjc-PIXMA-MX511" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX511" />
+ <printer translate="name" name="Canon PIXMA MX512" driver="bjc-PIXMA-MX512" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX512" />
+ <printer translate="name" name="Canon PIXUS MX513" driver="bjc-PIXUS-MX513" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX513" />
+ <printer translate="name" name="Canon PIXMA MX514" driver="bjc-PIXMA-MX514" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX514" />
+ <printer translate="name" name="Canon PIXMA MX515" driver="bjc-PIXMA-MX515" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX515" />
+ <printer translate="name" name="Canon PIXMA MX516" driver="bjc-PIXMA-MX516" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX516" />
+ <printer translate="name" name="Canon PIXMA MX517" driver="bjc-PIXMA-MX517" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX517" />
+ <printer translate="name" name="Canon PIXMA MX518" driver="bjc-PIXMA-MX518" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX518" />
+ <!-- Canon MX520 family -->
+ <printer translate="name" name="Canon MX520 series" driver="bjc-MX520-series" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX520-series" />
+ <printer translate="name" name="Canon PIXMA MX521" driver="bjc-PIXMA-MX521" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX521" />
+ <printer translate="name" name="Canon PIXMA MX522" driver="bjc-PIXMA-MX522" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX522" />
+ <printer translate="name" name="Canon PIXUS MX523" driver="bjc-PIXUS-MX523" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX523" />
+ <printer translate="name" name="Canon PIXMA MX524" driver="bjc-PIXMA-MX524" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX524" />
+ <printer translate="name" name="Canon PIXMA MX525" driver="bjc-PIXMA-MX525" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX525" />
+ <printer translate="name" name="Canon PIXMA MX526" driver="bjc-PIXMA-MX526" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX526" />
+ <printer translate="name" name="Canon PIXMA MX527" driver="bjc-PIXMA-MX527" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX527" />
+ <printer translate="name" name="Canon PIXMA MX528" driver="bjc-PIXMA-MX528" manufacturer="Canon" model="9000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX528" />
+ <!-- Canon MX700 family -->
+ <printer translate="name" name="Canon MX700 series" driver="bjc-MX700-series" manufacturer="Canon" model="9000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX700-series" />
+ <printer translate="name" name="Canon PIXMA MX700" driver="bjc-MULTIPASS-MX700" manufacturer="Canon" model="9000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX700" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon MX710 family -->
+ <printer translate="name" name="Canon MX710 series" driver="bjc-MX710-series" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX710-series" />
+ <printer translate="name" name="Canon PIXMA MX710" driver="bjc-MULTIPASS-MX710" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX710" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX711" driver="bjc-PIXMA-MX711" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX711" />
+ <printer translate="name" name="Canon PIXMA MX712" driver="bjc-PIXMA-MX712" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX712" />
+ <printer translate="name" name="Canon PIXMA MX714" driver="bjc-PIXMA-MX714" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX714" />
+ <printer translate="name" name="Canon PIXMA MX715" driver="bjc-PIXMA-MX715" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX715" />
+ <!-- Canon MX720 family -->
+ <printer translate="name" name="Canon MX720 series" driver="bjc-MX720-series" manufacturer="Canon" model="9000720" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX720-series" />
+ <printer translate="name" name="Canon PIXMA MX721" driver="bjc-PIXMA-MX721" manufacturer="Canon" model="9000720" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX721" />
+ <printer translate="name" name="Canon PIXMA MX722" driver="bjc-PIXMA-MX722" manufacturer="Canon" model="9000720" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX722" />
+ <printer translate="name" name="Canon PIXMA MX725" driver="bjc-PIXMA-MX725" manufacturer="Canon" model="9000720" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX725" />
+ <printer translate="name" name="Canon PIXMA MX726" driver="bjc-PIXMA-MX726" manufacturer="Canon" model="9000720" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX726" />
+ <printer translate="name" name="Canon PIXMA MX727" driver="bjc-PIXMA-MX727" manufacturer="Canon" model="9000720" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX727" />
+ <printer translate="name" name="Canon PIXMA MX728" driver="bjc-PIXMA-MX728" manufacturer="Canon" model="9000720" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX728" />
+ <!-- Canon MX850 family-->
+ <printer translate="name" name="Canon MX850 series" driver="bjc-MX850-series" manufacturer="Canon" model="9000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX850-series" />
+ <printer translate="name" name="Canon PIXMA MX850" driver="bjc-MULTIPASS-MX850" manufacturer="Canon" model="9000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX850" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MX850" driver="bjc-PIXUS-MX850" manufacturer="Canon" model="9000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX850" />
+ <!-- Canon MX860 family -->
+ <printer translate="name" name="Canon MX860 series" driver="bjc-MX860-series" manufacturer="Canon" model="9000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX860-series" />
+ <printer translate="name" name="Canon PIXMA MX860" driver="bjc-MULTIPASS-MX860" manufacturer="Canon" model="9000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX860" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MX860" driver="bjc-PIXUS-MX860" manufacturer="Canon" model="9000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX860" />
+ <printer translate="name" name="Canon PIXMA MX868" driver="bjc-PIXMA-MX868" manufacturer="Canon" model="9000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX868" />
+ <!-- Canon MX870 family -->
+ <printer translate="name" name="Canon MX870 series" driver="bjc-MX870-series" manufacturer="Canon" model="9000870" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX870-series" />
+ <printer translate="name" name="Canon PIXMA MX870" driver="bjc-MULTIPASS-MX870" manufacturer="Canon" model="9000870" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX870" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MX870" driver="bjc-PIXUS-MX870" manufacturer="Canon" model="9000870" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX870" />
+ <printer translate="name" name="Canon PIXMA MX876" driver="bjc-PIXMA-MX876" manufacturer="Canon" model="9000870" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX876" />
+ <!-- Canon MX880 family -->
+ <printer translate="name" name="Canon MX880 series" driver="bjc-MX880-series" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX880-series" />
+ <printer translate="name" name="Canon PIXMA MX880" driver="bjc-MULTIPASS-MX880" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX880" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX882" driver="bjc-PIXMA-MX882" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX882" />
+ <printer translate="name" name="Canon PIXUS MX883" driver="bjc-PIXUS-MX883" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX883" />
+ <printer translate="name" name="Canon PIXMA MX884" driver="bjc-PIXMA-MX884" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX884" />
+ <printer translate="name" name="Canon PIXMA MX885" driver="bjc-PIXMA-MX885" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX885" />
+ <printer translate="name" name="Canon PIXMA MX886" driver="bjc-PIXMA-MX886" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX886" />
+ <printer translate="name" name="Canon PIXMA MX888" driver="bjc-PIXMA-MX888" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX888" />
+ <!-- Canon MX890 family -->
+ <printer translate="name" name="Canon MX890 series" driver="bjc-MX890-series" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX890-series" />
+ <printer translate="name" name="Canon PIXMA MX890" driver="bjc-MULTIPASS-MX890" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX890" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA MX892" driver="bjc-PIXMA-MX892" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX892" />
+ <printer translate="name" name="Canon PIXUS MX893" driver="bjc-PIXUS-MX893" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX893" />
+ <printer translate="name" name="Canon PIXMA MX894" driver="bjc-PIXMA-MX894" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX894" />
+ <printer translate="name" name="Canon PIXMA MX895" driver="bjc-PIXMA-MX895" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX895" />
+ <printer translate="name" name="Canon PIXMA MX897" driver="bjc-PIXMA-MX897" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX897" />
+ <printer translate="name" name="Canon PIXMA MX898" driver="bjc-PIXMA-MX898" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX898" />
+ <!-- Canon MX920 family -->
+ <printer translate="name" name="Canon MX920 series" driver="bjc-MX920-series" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX920-series" />
+ <printer translate="name" name="Canon PIXMA MX922" driver="bjc-PIXMA-MX922" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX922" />
+ <printer translate="name" name="Canon PIXUS MX923" driver="bjc-PIXUS-MX923" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX923" />
+ <printer translate="name" name="Canon PIXMA MX924" driver="bjc-PIXMA-MX924" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX924" />
+ <printer translate="name" name="Canon PIXMA MX925" driver="bjc-PIXMA-MX925" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX925" />
+ <printer translate="name" name="Canon PIXMA MX926" driver="bjc-PIXMA-MX926" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX926" />
+ <printer translate="name" name="Canon PIXMA MX927" driver="bjc-PIXMA-MX927" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX927" />
+ <printer translate="name" name="Canon PIXMA MX928" driver="bjc-PIXMA-MX928" manufacturer="Canon" model="9000920" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-MX928" />
+ <!-- Canon MX7600 family -->
+ <printer translate="name" name="Canon MX7600 series" driver="bjc-MX7600-series" manufacturer="Canon" model="9007600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MX7600-series" />
+ <printer translate="name" name="Canon PIXMA MX7600" driver="bjc-MULTIPASS-MX7600" manufacturer="Canon" model="9007600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX7600" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXUS MX7600" driver="bjc-PIXUS-MX7600" manufacturer="Canon" model="9007600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MX7600" />
+ <!-- Canon E500 family -->
+ <printer translate="name" name="Canon E500 series" driver="bjc-E500-series" manufacturer="Canon" model="12000500" parameters="PIXMA_iP4000_params" foomaticid="Canon-E500-series" />
+ <printer translate="name" name="Canon PIXMA E500" driver="bjc-MULTIPASS-E500" manufacturer="Canon" model="12000500" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-E500" /><!-- driver and foomaticid legacy names used -->
+ <!-- Canon E510 family -->
+ <printer translate="name" name="Canon E510 series" driver="bjc-E510-series" manufacturer="Canon" model="12000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-E510-series" />
+ <printer translate="name" name="Canon PIXMA E510" driver="bjc-PIXMA-E510" manufacturer="Canon" model="12000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-E510" />
+ <printer translate="name" name="Canon PIXMA E518" driver="bjc-PIXMA-E518" manufacturer="Canon" model="12000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-E518" />
+ <!-- Canon E600 family -->
+ <printer translate="name" name="Canon E600 series" driver="bjc-E600-series" manufacturer="Canon" model="12000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-E600-series" />
+ <printer translate="name" name="Canon PIXMA E600" driver="bjc-MULTIPASS-E600" manufacturer="Canon" model="12000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-E600" /><!-- driver and foomaticid legacy names used -->
+ <printer translate="name" name="Canon PIXMA E608" driver="bjc-PIXMA-E608" manufacturer="Canon" model="12000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-E608" />
+ <!-- Canon E610 family -->
+ <printer translate="name" name="Canon E610 series" driver="bjc-E610-series" manufacturer="Canon" model="12000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-E610-series" />
+ <printer translate="name" name="Canon PIXMA E610" driver="bjc-PIXMA-E610" manufacturer="Canon" model="12000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-E610" />
+ <printer translate="name" name="Canon PIXMA E618" driver="bjc-PIXMA-E618" manufacturer="Canon" model="12000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-E618" />
+ <!-- -->
<printer translate="name" name="Canon 50i" driver="bjc-50i" manufacturer="Canon" model="2000050" parameters="density_800_params" foomaticid="Canon-50i" />
<printer translate="name" name="Canon 80i" driver="bjc-80i" manufacturer="Canon" model="2000080" parameters="density_800_params" foomaticid="Canon-80i" />
<printer translate="name" name="Canon 450i" driver="bjc-450i" manufacturer="Canon" model="2000450" parameters="density_800_params" foomaticid="Canon-450i" />
@@ -407,6 +1084,7 @@
<printer translate="name" name="Epson Stylus C86" deviceid="MFG:EPSON;MDL:Stylus C86;DES:EPSON Stylus C86;CMD:ESCPL2,BDC,D4;" driver="escp2-c86" manufacturer="Epson" model="69" parameters="standard_params" foomaticid="Epson-Stylus_C86" />
<printer translate="name" name="Epson Stylus C87" driver="escp2-c87" manufacturer="Epson" model="69" parameters="standard_params" foomaticid="Epson-Stylus_C87" />
<printer translate="name" name="Epson Stylus C88" deviceid="MFG:EPSON;MDL:Stylus C88;DES:EPSON Stylus C88;CMD:ESCPL2,BDC,D4;" driver="escp2-c88" manufacturer="Epson" model="69" parameters="standard_params" foomaticid="Epson-Stylus_C88" />
+ <printer translate="name" name="Epson Stylus C92" deviceid="MFG:EPSON;MDL:Stylus C92;DES:EPSON Stylus C92;CMD:ESCPL2,BDC,D4,D4PX;" driver="escp2-c92" manufacturer="Epson" model="66" parameters="standard_params" foomaticid="Epson-Stylus_C92" />
<printer translate="name" name="Epson Stylus C110" driver="escp2-c110" manufacturer="Epson" model="85" parameters="standard_params" foomaticid="Epson-Stylus_C110" />
<printer translate="name" name="Epson Stylus C120" driver="escp2-c120" manufacturer="Epson" model="85" parameters="standard_params" foomaticid="Epson-Stylus_C120" />
<printer translate="name" name="Epson Stylus Color" driver="escp2" manufacturer="Epson" model="0" parameters="standard_params" foomaticid="Epson-Stylus_Color" />
@@ -425,7 +1103,7 @@
<printer translate="name" name="Epson Stylus Color 640" driver="escp2-640" manufacturer="Epson" model="11" parameters="standard_params" foomaticid="Epson-Stylus_Color_640" />
<printer translate="name" name="Epson Stylus Color 660" driver="escp2-660" manufacturer="Epson" model="18" parameters="standard_params" foomaticid="Epson-Stylus_Color_660" />
<printer translate="name" name="Epson Stylus Color 670" deviceid="MFG:EPSON;MDL:Stylus COLOR 670;DES:EPSON Stylus COLOR 670;CMD:ESCPL2,BDC,D4;" driver="escp2-670" manufacturer="Epson" model="25" parameters="standard_params" foomaticid="Epson-Stylus_Color_670" />
- <printer translate="name" name="Epson Stylus Color 680" driver="escp2-680" manufacturer="Epson" model="32" parameters="standard_params" foomaticid="Epson-Stylus_Color_680" />
+ <printer translate="name" name="Epson Stylus Color 680" deviceid="MFG:EPSON;MDL:Stylus COLOR 680;DES:EPSON Stylus COLOR 680;CMD:ESCPL2,BDC,D4;" driver="escp2-680" manufacturer="Epson" model="32" parameters="standard_params" foomaticid="Epson-Stylus_Color_680" />
<printer translate="name" name="Epson Stylus Color 740" deviceid="MFG:EPSON;MDL:Stylus COLOR 740;DES:EPSON Stylus COLOR 740;CMD:ESCPL2,BDC,D4;" driver="escp2-740" manufacturer="Epson" model="12" parameters="standard_params" foomaticid="Epson-Stylus_Color_740" />
<printer translate="name" name="Epson Stylus Color 760" deviceid="MFG:EPSON;MDL:Stylus COLOR 760;DES:EPSON Stylus COLOR 760;CMD:ESCPL2,BDC,D4;" driver="escp2-760" manufacturer="Epson" model="19" parameters="standard_params" foomaticid="Epson-Stylus_Color_760" />
<printer translate="name" name="Epson Stylus Color 777" deviceid="MFG:EPSON;MDL:Stylus COLOR 777;DES:EPSON Stylus COLOR 777;CMD:ESCPL2,BDC,D4;" driver="escp2-777" manufacturer="Epson" model="32" parameters="standard_params" foomaticid="Epson-Stylus_Color_777" />
@@ -487,7 +1165,7 @@
<printer translate="name" name="Epson Stylus Photo 950" driver="escp2-950" manufacturer="Epson" model="46" parameters="standard_params" foomaticid="Epson-Stylus_Photo_950" />
<printer translate="name" name="Epson Stylus Photo 960" driver="escp2-960" manufacturer="Epson" model="46" parameters="standard_params" foomaticid="Epson-Stylus_Photo_960" />
<printer translate="name" name="Epson Stylus Photo 1200" driver="escp2-1200" manufacturer="Epson" model="15" parameters="standard_params" foomaticid="Epson-Stylus_Photo_1200" />
- <printer translate="name" name="Epson Stylus Photo 1270" driver="escp2-1270" manufacturer="Epson" model="23" parameters="standard_params" foomaticid="Epson-Stylus_Photo_1270" />
+ <printer translate="name" name="Epson Stylus Photo 1270" deviceid="MFG:EPSON;MDL:Stylus Photo 1270;DES:EPSON Stylus Photo 1270;CMD:ESCPL2,BDC,D4;CLS:PRINTER;" driver="escp2-1270" manufacturer="Epson" model="23" parameters="standard_params" foomaticid="Epson-Stylus_Photo_1270" />
<printer translate="name" name="Epson Stylus Photo 1280" driver="escp2-1280" manufacturer="Epson" model="37" parameters="standard_params" foomaticid="Epson-Stylus_Photo_1280" />
<printer translate="name" name="Epson Stylus Photo 1290" driver="escp2-1290" manufacturer="Epson" model="37" parameters="standard_params" foomaticid="Epson-Stylus_Photo_1290" />
<printer translate="name" name="Epson Stylus Photo 1290s" driver="escp2-1290s" manufacturer="Epson" model="37" parameters="standard_params" foomaticid="Epson-Stylus_Photo_1290s" />
@@ -521,7 +1199,7 @@
<printer translate="name" name="Epson Stylus Photo R1800" driver="escp2-r1800" manufacturer="Epson" model="67" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R1800" />
<printer translate="name" name="Epson Stylus Photo R1900" driver="escp2-r1900" manufacturer="Epson" model="91" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R1900" />
<printer translate="name" name="Epson Stylus Photo R2000" driver="escp2-r2000" manufacturer="Epson" model="91" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R2000" />
- <printer translate="name" name="Epson Stylus Photo R2400" driver="escp2-r2400" manufacturer="Epson" model="71" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R2400" />
+ <printer translate="name" name="Epson Stylus Photo R2400" deviceid="MFG:EPSON;MDL:Stylus Photo R2400;DES:EPSON Stylus Photo R2400;CMD:ESCPL2,BDC,D4;" driver="escp2-r2400" manufacturer="Epson" model="71" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R2400" />
<printer translate="name" name="Epson Stylus Photo R2880" driver="escp2-r2880" manufacturer="Epson" model="98" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R2880" />
<printer translate="name" name="Epson Stylus Photo R3000" driver="escp2-r3000" manufacturer="Epson" model="115" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R3000" />
<printer translate="name" name="Epson Stylus Photo RX400" deviceid="MFG:EPSON;MDL:Stylus Photo RX400;DES:EPSON Stylus Photo RX400;CMD:ESCPL2,BDC,D4;" driver="escp2-rx400" manufacturer="Epson" model="84" parameters="standard_params" foomaticid="Epson-Stylus_Photo_RX400" />
@@ -615,6 +1293,7 @@
<printer translate="name" name="Epson Stylus CX6500" deviceid="MFG:EPSON;MDL:Stylus CX6500;DES:EPSON Stylus CX6500;CMD:ESCPL2,BDC,D4;" driver="escp2-cx6500" manufacturer="Epson" model="80" parameters="cx3500_params" foomaticid="Epson-Stylus_CX6500" />
<printer translate="name" name="Epson Stylus CX6600" deviceid="MFG:EPSON;MDL:Stylus CX6600;DES:EPSON Stylus CX6600;CMD:ESCPL2,BDC,D4;" driver="escp2-cx6600" manufacturer="Epson" model="80" parameters="cx3500_params" foomaticid="Epson-Stylus_CX6600" />
<printer translate="name" name="Epson Stylus CX7000F" driver="escp2-cx7000f" manufacturer="Epson" model="65" parameters="cx3500_params" foomaticid="Epson-Stylus_CX7000F" />
+ <printer translate="name" name="Epson Stylus CX7300" driver="escp2-cx7300" manufacturer="Epson" model="65" parameters="cx3500_params" foomaticid="Epson-Stylus_CX7300" />
<printer translate="name" name="Epson Stylus CX7400" driver="escp2-cx7400" manufacturer="Epson" model="65" parameters="cx3500_params" foomaticid="Epson-Stylus_CX7400" />
<printer translate="name" name="Epson Stylus CX7700" deviceid="MFG:EPSON;MDL:Stylus CX7700;DES:EPSON Stylus CX7700;CMD:ESCPL2,BDC,D4;" driver="escp2-cx7700" manufacturer="Epson" model="95" parameters="cx3500_params" foomaticid="Epson-Stylus_CX7700" />
<printer translate="name" name="Epson Stylus CX7800" deviceid="MFG:EPSON;MDL:Stylus CX7800;DES:EPSON Stylus CX7800;CMD:ESCPL2,BDC,D4;" driver="escp2-cx7800" manufacturer="Epson" model="95" parameters="cx3500_params" foomaticid="Epson-Stylus_CX7800" />
@@ -625,6 +1304,7 @@
<printer translate="name" name="Epson Stylus CX9400F" driver="escp2-cx9400f" manufacturer="Epson" model="65" parameters="cx3500_params" foomaticid="Epson-Stylus_CX9400F" />
<printer translate="name" name="Epson Stylus CX9475F" driver="escp2-cx9475f" manufacturer="Epson" model="65" parameters="cx3500_params" foomaticid="Epson-Stylus_CX9475F" />
<printer translate="name" name="Epson Stylus D68" deviceid="MFG:EPSON;MDL:Stylus D68;DES:EPSON Stylus D68;CMD:ESCPL2,BDC,D4;" driver="escp2-d68" manufacturer="Epson" model="66" parameters="standard_params" foomaticid="Epson-Stylus_D68" />
+ <printer translate="name" name="Epson Stylus D78" deviceid="MFG:EPSON;MDL:Stylus D78;DES:EPSON Stylus D78;CMD:ESCPL2,BDC,D4,D4PX;" driver="escp2-d78" manufacturer="Epson" model="66" parameters="standard_params" foomaticid="Epson-Stylus_D78" />
<printer translate="name" name="Epson Stylus D88" deviceid="MFG:EPSON;MDL:Stylus D88;DES:EPSON Stylus D88;CMD:ESCPL2,BDC,D4;" driver="escp2-d88" manufacturer="Epson" model="69" parameters="standard_params" foomaticid="Epson-Stylus_D88" />
<printer translate="name" name="Epson Stylus D92" deviceid="MFG:EPSON;CMD:ESCPL2,BDC,D4,D4PX;MDL:Stylus D92;DES:EPSON Stylus D92;" driver="escp2-d92" manufacturer="Epson" model="66" parameters="standard_params" foomaticid="Epson-Stylus_D92" />
<printer translate="name" name="Epson Stylus D120" driver="escp2-d120" manufacturer="Epson" model="85" parameters="standard_params" foomaticid="Epson-Stylus_D120" />
@@ -677,6 +1357,7 @@
<printer translate="name" name="Epson Stylus SX410" driver="escp2-sx410" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX410" />
<printer translate="name" name="Epson Stylus SX415" driver="escp2-sx415" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX415" />
<printer translate="name" name="Epson Stylus SX420" driver="escp2-sx420" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX420" />
+ <printer translate="name" name="Epson Stylus SX445W" driver="escp2-sx445w" manufacturer="Epson" model="121" parameters="standard_params" foomaticid="Epson-Stylus_SX445w" />
<printer translate="name" name="Epson Stylus SX510W" driver="escp2-sx510w" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX510W" />
<printer translate="name" name="Epson Stylus SX515" driver="escp2-sx515" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX515" />
<printer translate="name" name="Epson Stylus SX525" driver="escp2-sx525" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX525" />
@@ -705,6 +1386,7 @@
<printer translate="name" name="Epson Stylus TX106" driver="escp2-tx106" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_TX106" />
<printer translate="name" name="Epson Stylus TX109" driver="escp2-tx109" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_TX109" />
<printer translate="name" name="Epson Stylus TX110" driver="escp2-tx110" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_TX110" />
+ <printer translate="name" name="Epson Stylus TX125" driver="escp2-tx125" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_TX125" />
<printer translate="name" name="Epson Stylus TX200" driver="escp2-tx200" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_TX200" />
<!-- The TX210 has the same head configuration as the TX100, not TX200 -->
<printer translate="name" name="Epson Stylus TX210" driver="escp2-tx210" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_TX210" />
@@ -747,8 +1429,18 @@
<printer translate="name" name="Epson WorkForce 615" driver="escp2-wf615" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_615" />
<printer translate="name" name="Epson WorkForce 630" driver="escp2-wf630" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_630" />
<printer translate="name" name="Epson WorkForce 635" driver="escp2-wf636" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_635" />
- <printer translate="name" name="Epson WorkForce 645" driver="escp2-wf645" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_645" />
+ <printer translate="name" name="Epson WorkForce 645" driver="escp2-wf645" manufacturer="Epson" model="118" parameters="standard_params" foomaticid="Epson-WorkForce_645" />
<printer translate="name" name="Epson WorkForce 1100" driver="escp2-wf1100" manufacturer="Epson" model="99" parameters="standard_params" foomaticid="Epson-WorkForce_1100" />
+ <printer translate="name" name="Epson WF-7010 Series" driver="escp2-wf7010" manufacturer="Epson" model="119" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7010" />
+ <printer translate="name" name="Epson WF-7011 Series" driver="escp2-wf7011" manufacturer="Epson" model="119" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7011" />
+ <printer translate="name" name="Epson WF-7015 Series" driver="escp2-wf7015" manufacturer="Epson" model="119" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7015" />
+ <printer translate="name" name="Epson WF-7018 Series" driver="escp2-wf7018" manufacturer="Epson" model="119" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7018" />
+ <printer translate="name" name="Epson WF-7510 Series" driver="escp2-wf7510" manufacturer="Epson" model="119" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7510" />
+ <printer translate="name" name="Epson WF-7511 Series" driver="escp2-wf7511" manufacturer="Epson" model="119" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7511" />
+ <printer translate="name" name="Epson WF-7515 Series" driver="escp2-wf7515" manufacturer="Epson" model="119" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7515" />
+ <printer translate="name" name="Epson WF-7520 Series" driver="escp2-wf7520" manufacturer="Epson" model="120" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7520" />
+ <printer translate="name" name="Epson WF-7521 Series" driver="escp2-wf7521" manufacturer="Epson" model="120" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7521" />
+ <printer translate="name" name="Epson WF-7525 Series" driver="escp2-wf7525" manufacturer="Epson" model="120" parameters="standard_params" foomaticid="Epson-WorkForce_WF-7525" />
<printer translate="name" name="Epson CL 700" driver="escp2-cl700" manufacturer="Epson" model="38" parameters="480_params" foomaticid="Epson-CL_700" />
<printer translate="name" name="Epson CL 750" driver="escp2-cl750" manufacturer="Epson" model="43" parameters="480_params" foomaticid="Epson-CL_750" />
<printer translate="name" name="Epson CL 760" driver="escp2-cl760" manufacturer="Epson" model="56" parameters="480_params" foomaticid="Epson-CL_760" />
@@ -847,6 +1539,9 @@
<printer translate="name" name="Epson PX 504A" driver="escp2-px504a" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-PX_504A" />
<printer translate="name" name="Epson PX 601F" driver="escp2-px601f" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-PX_601F" />
<printer translate="name" name="Epson PX 1001" driver="escp2-px1001" manufacturer="Epson" model="100" parameters="standard_params" foomaticid="Epson-PX_1001" />
+ <printer translate="name" name="Epson PX 1200" driver="escp2-px1200" manufacturer="Epson" model="120" parameters="standard_params" foomaticid="Epson-PX_1200" />
+ <printer translate="name" name="Epson PX 1600F" driver="escp2-px1600f" manufacturer="Epson" model="120" parameters="standard_params" foomaticid="Epson-PX_1600F" />
+ <printer translate="name" name="Epson PX 1700F" driver="escp2-px1700f" manufacturer="Epson" model="120" parameters="standard_params" foomaticid="Epson-PX_1700F" />
<printer translate="name" name="Epson PX G900" driver="escp2-pxg900" manufacturer="Epson" model="64" parameters="standard_params" foomaticid="Epson-PX_G900" />
<printer translate="name" name="Epson PX G920" driver="escp2-pxg920" manufacturer="Epson" model="64" parameters="standard_params" foomaticid="Epson-PX_G920" />
<printer translate="name" name="Epson PX G5000" driver="escp2-pxg5000" manufacturer="Epson" model="67" parameters="standard_params" foomaticid="Epson-PX_G5000" />
@@ -902,8 +1597,10 @@
<printer translate="name" name="Brother HL-1670N" driver="brother-hl-1670n" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-1670N" />
<printer translate="name" name="Brother HL-1850" driver="brother-hl-1850" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-1850" />
<printer translate="name" name="Brother HL-1870N" driver="brother-hl-1870n" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-1870N" />
- <printer translate="name" name="Brother HL-2030" driver="brother-hl-2030" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2030" />
+ <!-- Brother HL-2030 series -->
+ <printer translate="name" name="Brother HL-2030" deviceid="MFG:Brother;MDL:HL-2030 series;CMD:PJL,HBP;" driver="brother-hl-2030" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2030" />
<printer translate="name" name="Brother HL-2035" driver="brother-hl-2035" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2035" />
+ <!-- -->
<printer translate="name" name="Brother HL-2060" driver="brother-hl-2060" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2060" />
<printer translate="name" name="Brother HL-2460" deviceid="MFG:Brother;MDL:Brother HL-2460 series;" driver="brother-hl-2460" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2460" />
<printer translate="name" name="Brother HL-2460N" driver="brother-hl-2460n" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2460N" />
@@ -1036,9 +1733,9 @@
<printer translate="name" name="HP Business Inkjet 2280" deviceid="MFG:HEWLETT-PACKARD;MDL:HP BUSINESS INKJET 2280;DES:Hewlett-Packard Business Inkjet 2280;CMD:MLC,PML,PJL,PCL5,POSTSCRIPT;" driver="hp-bij_2280" manufacturer="HP" model="900" parameters="pcl_inkjet_params" foomaticid="HP-Business_Inkjet_2280" />
<printer translate="name" name="HP Color Inkjet Printer CP1160" driver="hp-cij_cp1160" manufacturer="HP" model="900" parameters="pcl_inkjet_params" foomaticid="HP-Color_Inkjet_Printer_CP1160" />
<printer translate="name" name="HP Color Inkjet Printer CP1700" deviceid="MFG:HEWLETT-PACKARD;MDL:HP Color Inkjet CP1700;DES:HP Color Inkjet CP1700;" driver="hp-cij_cp1700" manufacturer="HP" model="901" parameters="pcl_inkjet_params" foomaticid="HP-Color_Inkjet_Printer_CP1700" />
- <printer translate="name" name="HP Color LaserJet 2500" driver="hp-clj_2500" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_2500" />
+ <printer translate="name" name="HP Color LaserJet 2500" deviceid="MFG:Hewlett-Packard;MDL:hp color LaserJet 2500;CMD:PJL,MLC,BIDI-ECP,POSTSCRIPT,PJL,PCLXL,PCL;" driver="hp-clj_2500" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_2500" />
<printer translate="name" name="HP Color LaserJet 4500" deviceid="MFG:Hewlett-Packard;MDL:LaserJet Color 4500;" driver="hp-clj_4500" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_4500" />
- <printer translate="name" name="HP Color LaserJet 4550" deviceid="MFG:Hewlett-Packard;MDL:HP Color LaserJet 4550;DES:Hewlett-Packard Color LaserJet 4550;CMD:PJL,MLC,PCL,POSTSCRIPT,PCLXL,PJL;" driver="hp-clj_4550" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_4550" />
+ <printer translate="name" name="HP Color LaserJet 4550" deviceid="MFG:Hewlett-Packard;MDL:HP Color LaserJet 4550 ;DES:Hewlett-Packard Color LaserJet 4550;CMD:PJL,MLC,PCL,POSTSCRIPT,PCLXL,PJL;" driver="hp-clj_4550" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_4550" />
<printer translate="name" name="HP Color LaserJet 4600" deviceid="MFG:Hewlett-Packard;MDL:hp color LaserJet 4600;DES:Hewlett-Packard color LaserJet 4600;" driver="hp-clj_4600" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_4600" />
<printer translate="name" name="HP Color LaserJet 5" driver="hp-clj_5" manufacturer="HP" model="3" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_5" />
<printer translate="name" name="HP Color LaserJet 5000" driver="hp-clj_5000" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Color_LaserJet_5000" />
@@ -1208,19 +1905,19 @@
<printer translate="name" name="HP LaserJet 3390" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 3390;DES:Hewlett-Packard LaserJet 3390;CMD:PJL,MLC,PCL,POSTSCRIPT,PCLXL;" driver="hp-lj_3390" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_3390" />
<printer translate="name" name="HP LaserJet 3392" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 3390;DES:Hewlett-Packard LaserJet 3390;CMD:PJL,MLC,PCL,POSTSCRIPT,PCLXL;" driver="hp-lj_3392" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_3392" />
<printer translate="name" name="HP LaserJet 4000" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 4000 Series;DES:Hewlett-Packard LaserJet 4000 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_4000" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4000" />
- <printer translate="name" name="HP LaserJet 4050" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 4050 Series;DES:Hewlett-Packard LaserJet 4050 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_4050" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4050" />
- <printer translate="name" name="HP LaserJet 4100" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 4100 Series;DES:Hewlett-Packard LaserJet 4100 Series;CMD:PJL,MLC,PCL,POSTSCRIPT,PCLXL,PJL;" driver="hp-lj_4100" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4100" />
+ <printer translate="name" name="HP LaserJet 4050" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 4050 Series ;DES:Hewlett-Packard LaserJet 4050 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_4050" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4050" />
+ <printer translate="name" name="HP LaserJet 4100" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 4100 Series ;DES:Hewlett-Packard LaserJet 4100 Series;CMD:PJL,MLC,PCL,POSTSCRIPT,PCLXL,PJL;" driver="hp-lj_4100" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4100" />
<printer translate="name" name="HP LaserJet 4200" deviceid="MFG:Hewlett-Packard;MDL:hp LaserJet 4200;DES:Hewlett-Packard LaserJet 4200;CMD:PJL,MLC,POSTSCRIPT,PJL,PCLXL,PCL;" driver="hp-lj_4200" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4200" />
<printer translate="name" name="HP LaserJet 4240" driver="hp-lj_4240" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4240" />
<printer translate="name" name="HP LaserJet 4250" deviceid="MFG:Hewlett-Packard;MDL:hp LaserJet 4250;DES:Hewlett-Packard LaserJet 4250;CMD:PJL,MLC,PCLXL,PCL,PJL,POSTSCRIPT;" driver="hp-lj_4250" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4250" />
<printer translate="name" name="HP LaserJet 4300" deviceid="MFG:Hewlett-Packard;MDL:hp LaserJet 4300;CMD:PJL,MLC,POSTSCRIPT,PJL,PCLXL,PCL;" driver="hp-lj_4300" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4300" />
<printer translate="name" name="HP LaserJet 4345 mfp" driver="hp-lj_4345_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4345_mfp" />
- <printer translate="name" name="HP LaserJet 4350" deviceid="MFG:HP;MDL:hp LaserJet 4350L;" driver="hp-lj_4350" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4350" />
+ <printer translate="name" name="HP LaserJet 4350" deviceid="MFG:Hewlett-Packard;MDL:hp LaserJet 4350;CMD:PJL,MLC,PCLXL,PCL,PJL,POSTSCRIPT,PDF;" driver="hp-lj_4350" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_4350" />
<printer translate="name" name="HP LaserJet 5000" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 5000 Series;DES:Hewlett-Packard LaserJet 5000 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_5000" manufacturer="HP" model="63" parameters="pcl_laser_params" foomaticid="HP-LaserJet_5000" />
- <printer translate="name" name="HP LaserJet 5100" driver="hp-lj_5100" manufacturer="HP" model="63" parameters="pcl_laser_params" foomaticid="HP-LaserJet_5100" />
+ <printer translate="name" name="HP LaserJet 5100" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 5100 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_5100" manufacturer="HP" model="63" parameters="pcl_laser_params" foomaticid="HP-LaserJet_5100" />
<printer translate="name" name="HP LaserJet 5200" driver="hp-lj_5200" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_5200" />
<printer translate="name" name="HP LaserJet 5200L" driver="hp-lj_5200l" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_5200L" />
- <printer translate="name" name="HP LaserJet 8000" driver="hp-lj_8000" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_8000" />
+ <printer translate="name" name="HP LaserJet 8000" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 8000 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_8000" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_8000" />
<printer translate="name" name="HP LaserJet 8100" driver="hp-lj_8100" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_8100" />
<printer translate="name" name="HP LaserJet 8150" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 8150 Series;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_8150" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_8150" />
<printer translate="name" name="HP LaserJet 9000" driver="hp-lj_9000" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_9000" />
@@ -1228,15 +1925,15 @@
<printer translate="name" name="HP LaserJet 9040 MFP" driver="hp-lj_9040_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_9040_MFP" />
<printer translate="name" name="HP LaserJet 9050" driver="hp-lj_9050" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_9050" />
<printer translate="name" name="HP LaserJet 9050 MFP" driver="hp-lj_9050_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_9050_MFP" />
- <printer translate="name" name="HP LaserJet M3027 MFP" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 8150 Series;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_m3027_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_M3027_MFP" />
- <printer translate="name" name="HP LaserJet M3035 MFP" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 8150 Series;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_m3035_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_M3035_MFP" />
+ <printer translate="name" name="HP LaserJet M3027 MFP" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet M3027 MFP;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,BIDI-ECP,PCLXL,PCL,PDF,PJL,POSTSCRIPT;" driver="hp-lj_m3027_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_M3027_MFP" />
+ <printer translate="name" name="HP LaserJet M3035 MFP" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet M3035 MFP;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,BIDI-ECP,PJL,PCLXL,PCL,PDF,POSTSCRIPT;" driver="hp-lj_m3035_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_M3035_MFP" />
<printer translate="name" name="HP LaserJet M4345 MFP" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 8150 Series;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_m4345_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_M4345_MFP" />
<printer translate="name" name="HP LaserJet M5025 MFP" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 8150 Series;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_m5025_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_M5025_MFP" />
<printer translate="name" name="HP LaserJet M5035 MFP" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet 8150 Series;DES:Hewlett-Packard LaserJet 8150 Series;CMD:PJL,MLC,PCL,PCLXL,POSTSCRIPT;" driver="hp-lj_m5035_mfp" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_M5035_MFP" />
<printer translate="name" name="HP LaserJet P2010" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet P2010 series;DES:Hewlett-Packard LaserJet P2010 series;CMD:PJL,MLC,BIDI-ECP,PCL,DW-PCL;" driver="hp-lj_p2010" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_P2010" />
<printer translate="name" name="HP LaserJet P2015" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet P2015 Series;DES:Hewlett-Packard LaserJet P2015 series;CMD:PJL,MLC,BIDI-ECP,PCL,POSTSCRIPT,PCLXL;" driver="hp-lj_p2015" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_P2015" />
<printer translate="name" name="HP LaserJet P3004" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet P3004 Series;DES:Hewlett-Packard LaserJet P3004 Series;CMD:PJL,MLC,BIDI-ECP,PCL,POSTSCRIPT,PCLXL;" driver="hp-lj_p3004" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_P3004" />
- <printer translate="name" name="HP LaserJet P3005" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet P3005 Series;DES:Hewlett-Packard LaserJet P3005 Series;CMD:PJL,MLC,BIDI-ECP,PCL,POSTSCRIPT,PCLXL;" driver="hp-lj_p3005" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_P3005" />
+ <printer translate="name" name="HP LaserJet P3005" deviceid="MFG:Hewlett-Packard;MDL:HP LaserJet P3005;DES:Hewlett-Packard LaserJet P3005 Series;CMD:PJL,MLC,BIDI-ECP,POSTSCRIPT,PJL,PCLXL,PCL;" driver="hp-lj_p3005" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-LaserJet_P3005" />
<printer translate="name" name="HP Mopier 240" driver="hp-mopier_240" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Mopier_240" />
<printer translate="name" name="HP Mopier 320" driver="hp-mopier_320" manufacturer="HP" model="6" parameters="pcl_laser_params" foomaticid="HP-Mopier_320" />
<printer translate="name" name="HP OfficeJet 300" deviceid="MFG:Hewlett-Packard;MDL:OfficeJet Series 300;DES:Hewlett-Packard OfficeJet Series 300;CMD:MLC,PCL,PML;" driver="hp-oj_300" manufacturer="HP" model="500" parameters="pcl_inkjet_params" foomaticid="HP-OfficeJet_300" />
@@ -1384,7 +2081,7 @@
<printer translate="name" name="Kyocera FS-1020D" driver="kyocera-fs-1020d" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1020D" />
<printer translate="name" name="Kyocera FS-1030D" driver="kyocera-fs-1030d" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1030D" />
<printer translate="name" name="Kyocera FS-1050" deviceid="MFG:Kyocera Mita;MDL:Kyocera Mita FS-1050;DES:Kyocera FS-1050;CMD:POSTSCRIPT,PJL,PCL;" driver="kyocera-fs-1050" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1050" />
- <printer translate="name" name="Kyocera FS-1118MFP" driver="kyocera-fs-1118mfp" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1118MFP" />
+ <printer translate="name" name="Kyocera FS-1118MFP" deviceid="MFG:Kyocera;MDL:FS-1118MFP;CMD:PCLXL,PostScript Emulation,PCL5E,PJL;" driver="kyocera-fs-1118mfp" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1118MFP" />
<printer translate="name" name="Kyocera FS-1200" deviceid="MFG:Kyocera;MDL:Kyocera FS-1200;DES:Kyocera FS-1200;CMD:POSTSCRIPT,PJL,PCL;" driver="kyocera-fs-1200" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1200" />
<printer translate="name" name="Kyocera FS-1600" deviceid="MFG:Kyocera;MDL:FS-1600;DES:Kyocera FS-1600;" driver="kyocera-fs-1600" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1600" />
<printer translate="name" name="Kyocera FS-1600+" driver="kyocera-fs-1600plus" manufacturer="Kyocera" model="62" parameters="pcl_laser_params" foomaticid="Kyocera-FS-1600plus" />
@@ -1571,6 +2268,7 @@
<printer translate="name" name="NRG MP 6500" driver="nrg-mp_6500" manufacturer="NRG" model="61" parameters="pcl_laser_params" foomaticid="NRG-MP_6500" />
<printer translate="name" name="NRG MP 7500" driver="nrg-mp_7500" manufacturer="NRG" model="61" parameters="pcl_laser_params" foomaticid="NRG-MP_7500" />
<printer translate="name" name="NRG MP 9000" driver="nrg-mp_9000" manufacturer="NRG" model="61" parameters="pcl_laser_params" foomaticid="NRG-MP_9000" />
+ <printer translate="name" name="Oki B401d" driver="oki-b401d" manufacturer="Oki" model="6" parameters="pcl_laser_params" foomaticid="Oki-B4401d" />
<printer translate="name" name="Oki B4350" driver="oki-b4350" manufacturer="Oki" model="6" parameters="pcl_laser_params" foomaticid="Oki-B4350" />
<printer translate="name" name="Oki OL400" driver="okidata-ol400" manufacturer="Oki" model="2" parameters="pcl_laser_params" foomaticid="Oki-OL400" />
<printer translate="name" name="Oki OL400e" driver="okidata-ol400e" manufacturer="Oki" model="2" parameters="pcl_laser_params" foomaticid="Oki-OL400e" />
@@ -1652,7 +2350,7 @@
<printer translate="name" name="Ricoh Aficio MP 9000" driver="ricoh-afc_mp_9000" manufacturer="Ricoh" model="61" parameters="pcl_laser_params" foomaticid="Ricoh-Aficio_MP_9000" />
<printer translate="name" name="Samsung ML-85" driver="samsung-ml-85" manufacturer="Samsung" model="6" parameters="pcl_laser_params" foomaticid="Samsung-ML-85" />
<printer translate="name" name="Samsung ML-1250" driver="samsung-ml-1250" manufacturer="Samsung" model="6" parameters="pcl_laser_params" foomaticid="Samsung-ML-1250" />
- <printer translate="name" name="Samsung ML-1450" driver="samsung-ml-1450" manufacturer="Samsung" model="6" parameters="pcl_laser_params" foomaticid="Samsung-ML-1450" />
+ <printer translate="name" name="Samsung ML-1450" deviceid="MFG:Samsung;MDL:ML-1450;" driver="samsung-ml-1450" manufacturer="Samsung" model="6" parameters="pcl_laser_params" foomaticid="Samsung-ML-1450" />
<printer translate="name" name="Samsung ML-1450PS" driver="samsung-ml-1450ps" manufacturer="Samsung" model="6" parameters="pcl_laser_params" foomaticid="Samsung-ML-1450PS" />
<printer translate="name" name="Samsung ML-1650" deviceid="MFG:Samsung;MDL:ML-1650;CMD:PCL5E,PCL6;" driver="samsung-ml-1650" manufacturer="Samsung" model="6" parameters="pcl_laser_params" foomaticid="Samsung-ML-1650" />
<printer translate="name" name="Samsung ML-1651N" driver="samsung-ml-1651n" manufacturer="Samsung" model="6" parameters="pcl_laser_params" foomaticid="Samsung-ML-1651N" />
@@ -1846,47 +2544,42 @@
<printer translate="name" name="Olympus P-400" driver="olympus-p400" manufacturer="Olympus" model="1" foomaticid="Olympus-P-400" />
<printer translate="name" name="Olympus P-440" driver="olympus-p440" manufacturer="Olympus" model="3" foomaticid="Olympus-P-440" />
<printer translate="name" name="Olympus P-S100" driver="olympus-ps100" manufacturer="Olympus" model="20" foomaticid="Olympus-P-S100" />
- <printer translate="name" name="Canon CP-10" driver="canon-cp10" manufacturer="Canon" model="1002" foomaticid="Canon-CP-10" />
- <printer translate="name" name="Canon CP-100" driver="canon-cp100" manufacturer="Canon" model="1000" foomaticid="Canon-CP-100" />
- <printer translate="name" name="Canon CP-200" driver="canon-cp200" manufacturer="Canon" model="1000" foomaticid="Canon-CP-200" />
- <printer translate="name" name="Canon CP-220" driver="canon-cp220" manufacturer="Canon" model="1001" foomaticid="Canon-CP-220" />
- <printer translate="name" name="Canon CP-300" driver="canon-cp300" manufacturer="Canon" model="1000" foomaticid="Canon-CP-300" />
- <printer translate="name" name="Canon CP-330" driver="canon-cp330" manufacturer="Canon" model="1001" foomaticid="Canon-CP-330" />
- <printer translate="name" name="Canon SELPHY-CP400" driver="canon-cp400" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-400" />
- <printer translate="name" name="Canon SELPHY-CP500" driver="canon-cp500" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-500" />
- <printer translate="name" name="Canon SELPHY-CP510" driver="canon-cp510" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-510" />
- <printer translate="name" name="Canon SELPHY-CP520" driver="canon-cp520" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-520" />
- <printer translate="name" name="Canon SELPHY-CP530" driver="canon-cp530" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-530" />
-<!--
- <printer translate="name" name="Canon SELPHY-CP600" driver="canon-cp600" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-600" />
--->
- <printer translate="name" name="Canon SELPHY-CP710" driver="canon-cp710" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-710" />
-<!--
- <printer translate="name" name="Canon SELPHY-CP720" driver="canon-cp720" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-720" />
--->
- <printer translate="name" name="Canon SELPHY-CP730" driver="canon-cp730" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-730" />
- <printer translate="name" name="Canon SELPHY-CP740" driver="canon-cp740" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-740" />
- <printer translate="name" name="Canon SELPHY-CP750" driver="canon-cp750" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-750" />
- <printer translate="name" name="Canon SELPHY-CP760" driver="canon-cp760" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-760" />
- <printer translate="name" name="Canon SELPHY-CP770" driver="canon-cp770" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-770" />
-<!--
- <printer translate="name" name="Canon SELPHY-CP780" driver="canon-cp780" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-780" />
--->
- <printer translate="name" name="Canon SELPHY-CP790" driver="canon-cp790" manufacturer="Canon" model="1008" foomaticid="Canon-SELPHY-CP-790" />
-<!--
- <printer translate="name" name="Canon SELPHY-CP800" driver="canon-cp800" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP-800" />
- <printer translate="name" name="Canon SELPHY ES1" driver="canon-es1" manufacturer="Canon" model="1003" foomaticid="Canon-SELPHY-ES1" />
- <printer translate="name" name="Canon SELPHY ES2" driver="canon-es2" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES2" />
- <printer translate="name" name="Canon SELPHY ES3" driver="canon-es3" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES3" />
+ <printer translate="name" name="Canon CP-10" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-10;CLS:PRINTER;DES:Canon CP-10;VER:1.00;" driver="canon-cp10" manufacturer="Canon" model="1002" foomaticid="Canon-CP-10" />
+ <printer translate="name" name="Canon CP-100" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-100;CLS:PRINTER;DES:Canon CP-100;VER:1.00;" driver="canon-cp100" manufacturer="Canon" model="1000" foomaticid="Canon-CP-100" />
+ <printer translate="name" name="Canon CP-200" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-200;CLS:PRINTER;DES:Canon CP-200;VER:1.00;" driver="canon-cp200" manufacturer="Canon" model="1000" foomaticid="Canon-CP-200" />
+ <printer translate="name" name="Canon CP-220" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-220;CLS:PRINTER;DES:Canon CP-220;VER:1.00;" driver="canon-cp220" manufacturer="Canon" model="1001" foomaticid="Canon-CP-220" />
+ <printer translate="name" name="Canon CP-300" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-300;CLS:PRINTER;DES:Canon CP-300;VER:1.00;" driver="canon-cp300" manufacturer="Canon" model="1000" foomaticid="Canon-CP-300" />
+ <printer translate="name" name="Canon CP-330" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-330;CLS:PRINTER;DES:Canon CP-330;VER:1.00;" driver="canon-cp330" manufacturer="Canon" model="1001" foomaticid="Canon-CP-330" />
+ <printer translate="name" name="Canon SELPHY CP400" deviceid="MFG:Canon;CMD:Raster3;MDL:CP400;CLS:PRINTER;DES:Canon CP400;VER:1.00;" driver="canon-cp400" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP400" />
+ <printer translate="name" name="Canon SELPHY CP500" deviceid="MFG:Canon;CMD:Raster3;MDL:CP500;CLS:PRINTER;DES:Canon CP500;VER:1.00;" driver="canon-cp500" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP500" />
+ <printer translate="name" name="Canon SELPHY CP510" deviceid="MFG:Canon;CMD:Raster3;MDL:CP510;CLS:PRINTER;DES:Canon CP510;VER:1.00;" driver="canon-cp510" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP510" />
+ <printer translate="name" name="Canon SELPHY CP520" driver="canon-cp520" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP520" />
+ <printer translate="name" name="Canon SELPHY CP530" deviceid="MFG:Canon;CMD:Raster3;MDL:CP530;CLS:PRINTER;DES:Canon CP530;VER:1.00;" driver="canon-cp530" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP530" />
+ <printer translate="name" name="Canon SELPHY CP600" deviceid="MFG:Canon;CMD:Raster3;MDL:CP600;CLS:PRINTER;DES:Canon CP600;VER:1.00;" driver="canon-cp600" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP600" />
+ <printer translate="name" name="Canon SELPHY CP710" deviceid="MFG:Canon;CMD:Raster3;MDL:CP710;CLS:PRINTER;DES:Canon CP710;VER:1.00;" driver="canon-cp710" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP710" />
+ <printer translate="name" name="Canon SELPHY CP720" deviceid="MFG:Canon;CMD:Raster3;MDL:CP720;CLS:PRINTER;DES:Canon CP720;VER:1.00;" driver="canon-cp720" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP720" />
+ <printer translate="name" name="Canon SELPHY CP730" deviceid="MFG:Canon;CMD:Raster3;MDL:CP730;CLS:PRINTER;DES:Canon CP730;VER:1.00;" driver="canon-cp730" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP730" />
+ <printer translate="name" name="Canon SELPHY CP740" driver="canon-cp740" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP740" />
+ <printer translate="name" name="Canon SELPHY CP750" deviceid="MFG:Canon;CMD:Raster3;MDL:CP750;CLS:PRINTER;DES:Canon CP750;VER:1.00;" driver="canon-cp750" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP750" />
+ <printer translate="name" name="Canon SELPHY CP760" deviceid="MFG:Canon;CMD:Raster3;MDL:CP760;CLS:PRINTER;DES:Canon CP760;VER:1.00;" driver="canon-cp760" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP760" />
+ <printer translate="name" name="Canon SELPHY CP770" driver="canon-cp770" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP770" />
+ <printer translate="name" name="Canon SELPHY CP780" deviceid="MFG:Canon;CMD:Raster3;MDL:CP780;CLS:PRINTER;DES:Canon CP780;VER:1.00;" driver="canon-cp780" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP780" />
+ <printer translate="name" name="Canon SELPHY CP790" deviceid="MFG:Canon;CMD:Raster3;MDL:CP790;CLS:PRINTER;DES:Canon CP790;VER:1.00;" driver="canon-cp790" manufacturer="Canon" model="1008" foomaticid="Canon-SELPHY-CP790" />
+ <printer translate="name" name="Canon SELPHY CP800" deviceid="MFG:Canon;CMD:Raster3;MDL:CP800;CLS:PRINTER;DES:Canon CP800;VER:1.00;" driver="canon-cp800" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP800" />
+ <printer translate="name" name="Canon SELPHY CP810" deviceid="MFG:Canon;CMD:Raster3;MDL:CP810;CLS:PRINTER;DES:Canon CP810;VER:3.05;" driver="canon-cp810" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP810" />
+ <printer translate="name" name="Canon SELPHY CP900" driver="canon-cp900" manufacturer="Canon" model="1010" foomaticid="Canon-SELPHY-CP900" />
+ <printer translate="name" name="Canon SELPHY ES1" deviceid="MFG:Canon;CMD:Raster3;MDL:ES1;CLS:PRINTER;DES:Canon SELPHY ES1;VER:1.00;" driver="canon-es1" manufacturer="Canon" model="1003" foomaticid="Canon-SELPHY-ES1" />
+ <printer translate="name" name="Canon SELPHY ES2" deviceid="MFG:Canon;CMD:Raster3;MDL:ES2;CLS:PRINTER;DES:Canon SELPHY ES2;VER:1.00;" driver="canon-es2" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES2" />
+ <printer translate="name" name="Canon SELPHY ES3" deviceid="MFG:Canon;CMD:Raster3;MDL:ES3;CLS:PRINTER;DES:Canon SELPHY ES3;VER:1.00;" driver="canon-es3" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES3" />
<printer translate="name" name="Canon SELPHY ES20" driver="canon-es20" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES20" />
- <printer translate="name" name="Canon SELPHY ES30" driver="canon-es30" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES30" />
- <printer translate="name" name="Canon SELPHY ES40" driver="canon-es40" manufacturer="Canon" model="1007" foomaticid="Canon-SELPHY-ES40" />
--->
+ <printer translate="name" name="Canon SELPHY ES30" deviceid="MFG:Canon;CMD:Raster3;MDL:ES30;CLS:PRINTER;DES:Canon SELPHY ES30;VER:1.00;" driver="canon-es30" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES30" />
+ <printer translate="name" name="Canon SELPHY ES40" deviceid="MFG:Canon;CMD:Raster3;MDL:ES40;CLS:PRINTER;DES:Canon SELPHY ES40;VER:1.00;" driver="canon-es40" manufacturer="Canon" model="1007" foomaticid="Canon-SELPHY-ES40" />
+ <printer translate="name" name="Sony UP-DP10" driver="sony-updp10" manufacturer="Sony" model="2000" foomaticid="Sony-UP-DP10" />
+ <printer translate="name" name="Sony UP-DR150" deviceid="MFG:Sony;MDL:UP-DR150;DES:Sony UP-DR150;CMD:SONY-Original;CLS:PRINTER" driver="sony-updr150" manufacturer="Sony" model="2001" foomaticid="Sony-UP-DR150" />
<printer translate="name" name="Sony DPP-EX5" driver="sony-dppex5" manufacturer="Sony" model="2002" foomaticid="Sony-DPP-EX5" />
<printer translate="name" name="Sony DPP-EX7" driver="sony-dppex7" manufacturer="Sony" model="2002" foomaticid="Sony-DPP-EX7" />
- <printer translate="name" name="Sony UP-DP10" driver="sony-updp10" manufacturer="Sony" model="2000" foomaticid="Sony-UP-DP10" />
<printer translate="name" name="Sony UP-DR100" driver="sony-updr100" manufacturer="Sony" model="2003" foomaticid="Sony-UP-DR100" />
- <printer translate="name" name="Sony UP-DR150" driver="sony-updr150" manufacturer="Sony" model="2001" foomaticid="Sony-UP-DR150" />
+ <printer translate="name" name="Sony UP-DR200" driver="sony-updr200" manufacturer="Sony" model="2004" foomaticid="Sony-UP-DR200" />
<printer translate="name" name="Fujifilm Printpix-CX-400" driver="fujifilm-cx400" manufacturer="Fujifilm" model="3000" foomaticid="Fujifilm-Printpix-CX-400" />
<printer translate="name" name="Fujifilm Printpix-CX-550" driver="fujifilm-cx550" manufacturer="Fujifilm" model="3001" foomaticid="Fujifilm-Printpix-CX-550" />
<printer translate="name" name="Fujifilm FinePix-NX-500" driver="fujifilm-nx500" manufacturer="Fujifilm" model="3002" foomaticid="Fujifilm-FinePix-NX-500" />
@@ -1898,9 +2591,39 @@
<printer translate="name" name="Kodak Photo-Printer-500" driver="kodak-photo-printer-500" manufacturer="Kodak" model="4000" foomaticid="Kodak-Photo-Printer-500" />
<printer translate="name" name="Kodak Printer-Dock-Plus" driver="kodak-dock-plus" manufacturer="Kodak" model="4000" foomaticid="Kodak-Printer-Dock-Plus" />
<printer translate="name" name="Kodak Printer-Dock-Plus-S3" driver="kodak-dock-plus-s3" manufacturer="Kodak" model="4000" foomaticid="Kodak-Printer-Dock-Plus-S3" />
+ <printer translate="name" name="Kodak 6800" deviceid="MFG:Eastman Kodak Company;CMD:ESC;MDL:Photo Printer 6800;CLS:PRINTER;DES:KODAK Photo Printer 6800;" driver="kodak-6800" manufacturer="Kodak" model="4001" foomaticid="Kodak-6800" />
+ <printer translate="name" name="Kodak 6850" deviceid="MFG:Eastman Kodak Company;CMD:ESC;MDL:Photo Printer 6850;CLS:PRINTER;DES:KODAK Photo Printer 6850;" driver="kodak-6850" manufacturer="Kodak" model="4002" foomaticid="Kodak-6850" />
+ <printer translate="name" name="Kodak 605" deviceid="MFG:Eastman Kodak Company;CMD:SUPCC;MCL:KODAK 605 Photo Printer;CLS:PRINTER;DES:Thermal Dye Photo Printer;" driver="kodak-605" manufacturer="Kodak" model="4003" foomaticid="Kodak-605" />
+ <printer translate="name" name="Kodak 1400" deviceid="MFG:Eastman Kodak Company;CMD:EK1;MDL: 1400 Printer;CLS:Printer;DES:Kodak 1400 Printer;`" driver="kodak-1400" manufacturer="Kodak" model="4004" foomaticid="Kodak-1400" />
+ <printer translate="name" name="Kodak 805" deviceid="MFG:Eastman Kodak Company;CMD:EK2;MDL: KODAK 805 Photo Printer;CLS:Printer;DES:Kodak 805 Photo Printer;" driver="kodak-805" manufacturer="Kodak" model="4005" foomaticid="Kodak-805" />
+ <printer translate="name" name="Kodak 9810" driver="kodak-9810" manufacturer="Kodak" model="4006" foomaticid="Kodak-9810" />
+ <printer translate="name" name="Kodak 8500" driver="kodak-8500" manufacturer="Kodak" model="4100" foomaticid="Kodak-8500" />
+ <printer translate="name" name="Mitsubishi CP-3020D" driver="mitsubishi-3020d" manufacturer="Mitsubishi" model="4101" foomaticid="Mitsubishi-3020D" />
+ <printer translate="name" name="Mitsubishi CP-3020DU" driver="mitsubishi-3020du" manufacturer="Mitsubishi" model="4101" foomaticid="Mitsubishi-3020DU" />
+ <printer translate="name" name="Mitsubishi CP-3020DE" driver="mitsubishi-3020de" manufacturer="Mitsubishi" model="4101" foomaticid="Mitsubishi-3020DE" />
+ <printer translate="name" name="Mitsubishi CP-3020DA" driver="mitsubishi-3020da" manufacturer="Mitsubishi" model="4102" foomaticid="Mitsubishi-3020DA" />
+ <printer translate="name" name="Mitsubishi CP-3020DAE" driver="mitsubishi-3020dae" manufacturer="Mitsubishi" model="4102" foomaticid="Mitsubishi-3020DAE" />
+ <printer translate="name" name="Mitsubishi CP-9550D" driver="mitsubishi-9550d" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550D" />
+ <printer translate="name" name="Mitsubishi CP-9550DW" driver="mitsubishi-9550dw" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550DW" />
+ <printer translate="name" name="Mitsubishi CP-9810D" driver="mitsubishi-9810d" manufacturer="Mitsubishi" model="4104" foomaticid="Mitsubishi-9810D" />
+ <printer translate="name" name="Mitsubishi CP-9810DW" driver="mitsubishi-9810dw" manufacturer="Mitsubishi" model="4104" foomaticid="Mitsubishi-9810DW" />
+ <printer translate="name" name="Mitsubishi CP-D70DW" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP60D70D707D;CLS:PRINTER;DES:MITSUBISHI CP60D70D707D" driver="mitsubishi-d70dw" manufacturer="Mitsubishi" model="4105" foomaticid="Mitsubishi-D70DW" />
+ <printer translate="name" name="Mitsubishi CP-D707DW" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP60D70D707D;CLS:PRINTER;DES:MITSUBISHI CP60D70D707D" driver="mitsubishi-d707dw" manufacturer="Mitsubishi" model="4105" foomaticid="Mitsubishi-D707DW" />
+ <printer translate="name" name="Mitsubishi CP-K60DW" driver="mitsubishi-k60dw" manufacturer="Mitsubishi" model="4106" foomaticid="Mitsubishi-K60DW" />
<printer translate="name" name="Shinko CHC-S9045" driver="shinko-chcs9045" manufacturer="Shinko" model="5000" foomaticid="Shinko-CHC-S9045" />
- <printer translate="name" name="Dai Nippon Printing DS40" driver="dnp-ds40" manufacturer="DNP" model="6000" foomaticid="DNP-DS40" />
- <printer translate="name" name="Dai Nippon Printing DS80" driver="dnp-ds80" manufacturer="DNP" model="6001" foomaticid="DNP-DS80" />
+ <printer translate="name" name="Shinko CHC-S2145" deviceid="MFG:SHINKO;CMD:SUPCC;MDL:CHC-S2145;CLS:PRINTER;DES:SHINKO CHC-S2145;" driver="shinko-chcs2145" manufacturer="Shinko" model="5001" foomaticid="Shinko-CHC-S2145" />
+ <printer translate="name" name="Sinfonia CHC-S2145" driver="sinfonia-chcs2145" manufacturer="Sinfonia" model="5001" foomaticid="Sinfonia-CHC-S2145" />
+ <printer translate="name" name="Dai Nippon Printing DS40" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS40;" driver="dnp-ds40" manufacturer="DNP" model="6000" foomaticid="DNP-DS40" />
+ <printer translate="name" name="Dai Nippon Printing DS80" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS80;" driver="dnp-ds80" manufacturer="DNP" model="6001" foomaticid="DNP-DS80" />
+ <printer translate="name" name="Dai Nippon Printing DSRX1" driver="dnp-dsrx1" manufacturer="DNP" model="6002" foomaticid="DNP-DSRX1" />
+ <printer translate="name" name="Citizen CX" driver="citizen-cx" deviceid="MANUFACTURER:CITIZEN SYSTEMS ;MODEL:CX;" manufacturer="Citizen" model="6000" foomaticid="Citizen-CX" />
+ <printer translate="name" name="Citizen CX-W" driver="citizen-cx-w" manufacturer="Citizen" model="6001" foomaticid="Citizen-CX-W" />
+ <printer translate="name" name="Citizen CY" driver="citizen-cy" manufacturer="Citizen" model="6002" foomaticid="Citizen-CY" />
+ <printer translate="name" name="Citizen CW-01" driver="citizen-cw-01" manufacturer="Citizen" model="6000" foomaticid="Citizen-CW-01" />
+ <printer translate="name" name="Citizen OP900" driver="citizen-op900" manufacturer="Citizen" model="6000" foomaticid="Citizen-OP900" />
+ <printer translate="name" name="Citizen CW-02" driver="citizen-cw-02" manufacturer="Citizen" model="6000" foomaticid="Citizen-CW-02" />
+ <printer translate="name" name="Citizen OP900II" driver="citizen-op900ii" manufacturer="Citizen" model="6000" foomaticid="Citizen-OP900II" />
+ <printer translate="name" name="Mitsubishi CP-3800DW" driver="mitsubishi-cp-3800dw" manufacturer="Mitsubishi" model="6001" foomaticid="Mitsubishi-CP-3800DW" />
</family>
<family name="raw">
<printer translate="name" name="RAW DATA 16 bit" driver="raw-data-16" manufacturer="" model="0" />