summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2014-04-16 08:13:23 +0200
committerDidier Raboud <odyx@debian.org>2014-04-16 08:13:23 +0200
commitd7d42f6c969dc54157d85b7b6b611581bbfa7595 (patch)
treedfa630457b374b77f1f128cbc9104ea2d6963575 /src/main
parentccd50c2bd4db57503722816aa23a5092cbe69f40 (diff)
Imported Upstream version 5.2.10~pre1
Diffstat (limited to 'src/main')
-rw-r--r--src/main/Makefile.in389
-rw-r--r--src/main/canon-inks.h362
-rw-r--r--src/main/canon-media-mode.h22417
-rw-r--r--src/main/canon-media.h156
-rw-r--r--src/main/canon-modes.h473
-rw-r--r--src/main/canon-printers.h286
-rw-r--r--src/main/curve.c11
-rw-r--r--src/main/dither-inks.c6
-rw-r--r--src/main/escp2-channels.c4
-rw-r--r--src/main/escp2-papers.c6
-rw-r--r--src/main/escp2-resolutions.c8
-rw-r--r--src/main/gutenprint-internal.h16
-rw-r--r--src/main/print-canon.c1242
-rw-r--r--src/main/print-canon.h520
-rw-r--r--src/main/print-color.c100
-rw-r--r--src/main/print-dither-matrices.c21
-rw-r--r--src/main/print-escp2-data.c7
-rw-r--r--src/main/print-escp2.c61
-rw-r--r--src/main/print-escp2.h6
-rw-r--r--src/main/print-lexmark.c95
-rw-r--r--src/main/print-list.c6
-rw-r--r--src/main/print-olympus.c2254
-rw-r--r--src/main/print-papers.c4
-rw-r--r--src/main/print-pcl.c37
-rw-r--r--src/main/print-raw.c21
-rw-r--r--src/main/print-util.c7
-rw-r--r--src/main/print-vars.c8
-rw-r--r--src/main/printers.c7
-rw-r--r--src/main/sequence.c12
-rw-r--r--src/main/string-list.c31
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);