diff options
author | Didier Raboud <odyx@debian.org> | 2014-04-16 08:13:23 +0200 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2014-04-16 08:13:23 +0200 |
commit | d7d42f6c969dc54157d85b7b6b611581bbfa7595 (patch) | |
tree | dfa630457b374b77f1f128cbc9104ea2d6963575 /src/main | |
parent | ccd50c2bd4db57503722816aa23a5092cbe69f40 (diff) |
Imported Upstream version 5.2.10~pre1
Diffstat (limited to 'src/main')
30 files changed, 16940 insertions, 11633 deletions
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); |