summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@debian.org>2012-06-21 23:30:20 +0100
committerRoger Leigh <rleigh@debian.org>2012-06-21 23:30:20 +0100
commit3514df18b289ec827cb6e4c446419feab1813231 (patch)
tree0fe6a3d1afbe720aac197918c6f4fb3583b240e1 /src
parent15578e218035547ca17e25ef351fbe56bc55a4ae (diff)
Imported Upstream version 5.2.8
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in6
-rw-r--r--src/cups/Makefile.am18
-rw-r--r--src/cups/Makefile.in21
-rw-r--r--src/cups/commandtocanon.c1
-rw-r--r--src/cups/commandtoepson.c5
-rw-r--r--src/cups/cups-genppdupdate.in49
-rw-r--r--src/cups/genppd.c45
-rw-r--r--src/cups/rastertoprinter.c491
-rwxr-xr-xsrc/cups/test-ppds2
-rwxr-xr-xsrc/cups/test-rastertogutenprint.in15
-rw-r--r--src/escputil/Makefile.in6
-rw-r--r--src/escputil/d4lib.c81
-rw-r--r--src/escputil/escputil.c178
-rw-r--r--src/foomatic/Makefile.am6
-rw-r--r--src/foomatic/Makefile.in10
-rw-r--r--src/foomatic/foomatic-generator.in25
-rw-r--r--src/foomatic/foomatic-templates-ijs/gutenprint.xml2
-rw-r--r--src/foomatic/printer_options.c3
-rw-r--r--src/ghost/Makefile.in6
-rw-r--r--src/gimp2/Makefile.in6
-rw-r--r--src/gimp2/print.c3
-rw-r--r--src/gutenprintui2/Makefile.in6
-rw-r--r--src/gutenprintui2/printrcl.c94
-rw-r--r--src/gutenprintui2/printrcl.l4
-rw-r--r--src/gutenprintui2/ui-utils.c6
-rw-r--r--src/main/Makefile.am5
-rw-r--r--src/main/Makefile.in18
-rw-r--r--src/main/bit-ops.c105
-rw-r--r--src/main/canon-inks.h1316
-rw-r--r--src/main/canon-media-mode.h10663
-rw-r--r--src/main/canon-media.h1572
-rw-r--r--src/main/canon-modes.h4326
-rw-r--r--src/main/canon-printers.h2418
-rw-r--r--src/main/channel.c8
-rw-r--r--src/main/escp2-driver.c4
-rw-r--r--src/main/gutenprint-internal.h6
-rw-r--r--src/main/module.c5
-rw-r--r--src/main/mxml-file.c40
-rw-r--r--src/main/print-canon.c3410
-rw-r--r--src/main/print-canon.h23
-rw-r--r--src/main/print-color.c8
-rw-r--r--src/main/print-escp2.c34
-rw-r--r--src/main/print-lexmark.c4
-rw-r--r--src/main/print-list.c10
-rw-r--r--src/main/print-olympus.c209
-rw-r--r--src/main/print-papers.c10
-rw-r--r--src/main/print-ps.c6
-rw-r--r--src/main/print-vars.c160
-rw-r--r--src/main/print-weave.c31
-rw-r--r--src/main/xmlppd.c2
-rw-r--r--src/testpattern/Makefile.in6
-rw-r--r--src/testpattern/printer_options.c3
-rw-r--r--src/testpattern/run-testpattern-2.in53
-rw-r--r--src/testpattern/testpatternl.c118
-rw-r--r--src/testpattern/testpatternl.l4
-rw-r--r--src/xml/Makefile.in6
-rw-r--r--src/xml/escp2/Makefile.in6
-rw-r--r--src/xml/escp2/inks/Makefile.in6
-rw-r--r--src/xml/escp2/inputslots/Makefile.in6
-rw-r--r--src/xml/escp2/media/Makefile.in6
-rw-r--r--src/xml/escp2/mediasizes/Makefile.in6
-rw-r--r--src/xml/escp2/model/Makefile.am6
-rw-r--r--src/xml/escp2/model/Makefile.in10
-rw-r--r--src/xml/escp2/model/model_115.xml2
-rw-r--r--src/xml/escp2/model/model_116.xml139
-rw-r--r--src/xml/escp2/model/model_117.xml139
-rw-r--r--src/xml/escp2/qualitypresets/Makefile.am3
-rw-r--r--src/xml/escp2/qualitypresets/Makefile.in7
-rw-r--r--src/xml/escp2/qualitypresets/prox900.xml70
-rw-r--r--src/xml/escp2/weaves/Makefile.in6
-rw-r--r--src/xml/papers.xml39
-rw-r--r--src/xml/printers.xml267
72 files changed, 23402 insertions, 2988 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index 557cefd..30dc171 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -128,6 +128,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -204,6 +205,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -224,6 +226,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -247,6 +251,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -293,7 +298,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
index f395aa0..1e27ae0 100644
--- a/src/cups/Makefile.am
+++ b/src/cups/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.120 2011/01/17 23:20:51 rlk Exp $
+## $Id: Makefile.am,v 1.122 2012/03/25 17:54:32 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -27,6 +27,8 @@ include $(top_srcdir)/scripts/global.mk
empty=
PACKAGE = cups
+BASE_VERSION = \"@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@.@GUTENPRINT_MICRO_VERSION@\"
+
bindir = @cups_bindir@
sbindir = @cups_sbindir@
@@ -43,7 +45,7 @@ else
cups_modeldir = $(pkgdatadir)/model/gutenprint/@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@/
endif
-LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS) $(CUPS_CFLAGS)
+LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS) $(CUPS_CFLAGS) -DBASE_VERSION=$(BASE_VERSION)
STP_NONLS_ENV= STP_MODULE_PATH=$(top_builddir)/src/main/.libs:$(top_builddir)/src/main STP_DATA_PATH=$(top_srcdir)/src/xml
@@ -95,12 +97,12 @@ commandtoepson_SOURCES = commandtoepson.c
commandtoepson_LDADD = $(CUPS_LIBS)
cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DALL_LINGUAS='"@ALL_LINGUAS@"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GENPPD_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"@ALL_LINGUAS@"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
@@ -209,20 +211,20 @@ ppd-catalog: ppd-catalog-clean
ppd-nonls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
$(mkdir_p) ppd/C
$(MAKE) ppd-catalog-clean
- LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -l C -p ppd/C
+ LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ $(EXTRA_GENPPD_OPTS) -l C -p ppd/C
ppd-global: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
@echo "Global PPDs:"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -p ppd/Global
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global
$(MAKE) ppd-catalog-clean
ppd-global-ln: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
@echo "Global PPDs (localized numbers for testing):"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -p ppd/Global -N
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global -N
$(MAKE) ppd-catalog-clean
ppd-nls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ppd-nonls
@@ -231,7 +233,7 @@ ppd-nls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ppd-n
for language in `$(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ -L` ; do \
mkdir ppd/$$language ; \
echo "$$language:" ; \
- LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -l $$language -p ppd/$$language; \
+ LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -l $$language -p ppd/$$language; \
done
$(MAKE) ppd-catalog-clean
diff --git a/src/cups/Makefile.in b/src/cups/Makefile.in
index 50a1c36..8f5418c 100644
--- a/src/cups/Makefile.in
+++ b/src/cups/Makefile.in
@@ -199,6 +199,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -275,6 +276,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -295,6 +297,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -318,6 +322,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -364,7 +369,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -383,13 +387,14 @@ top_srcdir = @top_srcdir@
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS)
GUTENPRINTUI_LIBS = $(top_builddir)/src/gutenprintui/libgutenprintui.la
empty =
+BASE_VERSION = \"@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@.@GUTENPRINT_MICRO_VERSION@\"
pkgsysconfdir = $(cups_conf_serverroot)
cupsexec_driverdir = $(pkglibdir)/driver
cupsexec_filterdir = $(pkglibdir)/filter
@CUPS_PPDS_AT_TOP_LEVEL_FALSE@cups_modeldir = $(pkgdatadir)/model/gutenprint/@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@/
@CUPS_PPDS_AT_TOP_LEVEL_TRUE@cups_modeldir = $(pkgdatadir)/model/
@CUPS_PPDS_AT_TOP_LEVEL_TRUE@DONT_UNINSTALL_PPDS = true
-LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS) $(CUPS_CFLAGS)
+LOCAL_CPPFLAGS = $(GUTENPRINT_CFLAGS) $(CUPS_CFLAGS) -DBASE_VERSION=$(BASE_VERSION)
STP_NONLS_ENV = STP_MODULE_PATH=$(top_builddir)/src/main/.libs:$(top_builddir)/src/main STP_DATA_PATH=$(top_srcdir)/src/xml
STP_ENV = $(STP_NONLS_ENV) STP_LOCALEDIR=$(top_srcdir)/src/cups/catalog
@BUILD_GLOBALIZED_CUPS_PPDS_FALSE@@BUILD_TRANSLATED_CUPS_PPDS_TRUE@PPD = $(PPD_NLS_1)
@@ -409,11 +414,11 @@ commandtocanon_LDADD = $(CUPS_LIBS)
commandtoepson_SOURCES = commandtoepson.c
commandtoepson_LDADD = $(CUPS_LIBS)
cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DALL_LINGUAS='"@ALL_LINGUAS@"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GENPPD_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
cups_genppd_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = genppd.c i18n.c i18n.h
-gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"@ALL_LINGUAS@"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
+gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_CFLAGS = -DCUPS_DRIVER_INTERFACE -DALL_LINGUAS='"$(ALL_LINGUAS)"' $(BUILD_SIMPLE_PPDS) $(TRANSLATE_PPDS)
gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDADD = $(CUPS_LIBS) $(GUTENPRINT_LIBS) @LIBICONV@
gutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_LDFLAGS = $(STATIC_LDOPTS)
rastertogutenprint_@GUTENPRINT_MAJOR_VERSION@_@GUTENPRINT_MINOR_VERSION@_SOURCES = rastertoprinter.c i18n.c i18n.h
@@ -1255,20 +1260,20 @@ ppd-catalog: ppd-catalog-clean
ppd-nonls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
$(mkdir_p) ppd/C
$(MAKE) ppd-catalog-clean
- LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -l C -p ppd/C
+ LC_ALL= LANG= LANGUAGE= $(STP_NONLS_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ $(EXTRA_GENPPD_OPTS) -l C -p ppd/C
ppd-global: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
@echo "Global PPDs:"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -p ppd/Global
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global
$(MAKE) ppd-catalog-clean
ppd-global-ln: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
@echo "Global PPDs (localized numbers for testing):"
$(mkdir_p) ppd/Global
$(MAKE) ppd-catalog
- LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -p ppd/Global -N
+ LC_ALL= LANG= LANGUAGE= $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -p ppd/Global -N
$(MAKE) ppd-catalog-clean
ppd-nls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ppd-nonls
@@ -1277,7 +1282,7 @@ ppd-nls: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ ppd-n
for language in `$(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ -L` ; do \
mkdir ppd/$$language ; \
echo "$$language:" ; \
- LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ @WHICH_PPDS@ -l $$language -p ppd/$$language; \
+ LC_ALL=$$language LANG=$$language LANGUAGE=$$language $(STP_ENV) ./cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(EXTRA_GENPPD_OPTS) @WHICH_PPDS@ -l $$language -p ppd/$$language; \
done
$(MAKE) ppd-catalog-clean
diff --git a/src/cups/commandtocanon.c b/src/cups/commandtocanon.c
index db5bc92..b7b7ef2 100644
--- a/src/cups/commandtocanon.c
+++ b/src/cups/commandtocanon.c
@@ -14,6 +14,7 @@
#include <cups/cups.h>
#include <ctype.h>
#include <stdlib.h>
+#include <stdio.h>
/*
diff --git a/src/cups/commandtoepson.c b/src/cups/commandtoepson.c
index b907a2d..e2d03b2 100644
--- a/src/cups/commandtoepson.c
+++ b/src/cups/commandtoepson.c
@@ -1,5 +1,5 @@
/*
- * "$Id: commandtoepson.c,v 1.3 2007/12/23 17:31:51 easysw Exp $"
+ * "$Id: commandtoepson.c,v 1.4 2011/08/13 16:24:17 rlk Exp $"
*
* EPSON ESC/P2 command filter for the Common UNIX Printing System.
*
@@ -32,6 +32,7 @@
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
+#include <stdio.h>
/*
* Macros...
@@ -229,5 +230,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: commandtoepson.c,v 1.3 2007/12/23 17:31:51 easysw Exp $".
+ * End of "$Id: commandtoepson.c,v 1.4 2011/08/13 16:24:17 rlk Exp $".
*/
diff --git a/src/cups/cups-genppdupdate.in b/src/cups/cups-genppdupdate.in
index adf27e9..66d0a46 100644
--- a/src/cups/cups-genppdupdate.in
+++ b/src/cups/cups-genppdupdate.in
@@ -1,5 +1,5 @@
#! @PERL@ -w
-# $Id: cups-genppdupdate.in,v 1.58 2010/01/01 19:22:18 rlk Exp $
+# $Id: cups-genppdupdate.in,v 1.60 2012/02/14 23:11:41 tillkamppeter Exp $
# Update CUPS PPDs for Gutenprint queues.
# Copyright (C) 2002-2003 Roger Leigh (rleigh@debian.org)
#
@@ -18,7 +18,7 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
use strict;
-use Getopt::Std;
+use Getopt::Long;
use Fcntl qw(:mode);
use FileHandle;
use IPC::Open2;
@@ -78,8 +78,6 @@ if (-x $driver_bin) {
get_driver_version();
}
-$Getopt::Std::STANDARD_HELP_VERSION = 1;
-
my @ppd_files; # A list of in-use Gutenprint PPD files
# Used to convert a language name to its two letter code
@@ -175,7 +173,14 @@ if (!$quiet || $verbose) {
print STDOUT "No Gutenprint PPD files to update.\n";
} elsif ($updated_ppd_count > 0) {
my $plural = $updated_ppd_count == 1 ? "" : "s";
- print STDOUT "Updated $updated_ppd_count PPD file${plural}.";
+ print STDOUT "Updated $updated_ppd_count PPD file${plural}";
+ if ($failed_ppd_count > 0) {
+ print STDOUT ", $failed_ppd_count failed";
+ }
+ if ($skipped_ppd_count > 0) {
+ print STDOUT ", $skipped_ppd_count skipped";
+ }
+ print STDOUT ".";
if (!defined $opt_o || $opt_o ne "") {
print STDOUT " Restart cupsd for the changes to take effect.";
}
@@ -247,7 +252,23 @@ sub get_driver_version() {
}
sub parse_options () {
- if (!getopts('d:hnqs:vNo:p:P:r:ifl:')) {
+ Getopt::Long::Configure("bundling");
+ if (!GetOptions("d=i" => \$opt_d,
+ "h" => \$opt_h,
+ "n" => \$opt_n,
+ "q" => \$opt_q,
+ "s=s" => \$opt_s,
+ "p=s" => \$opt_p,
+ "P=s" => \$opt_P,
+ "v" => \$opt_v,
+ "N" => \$opt_N,
+ "o=s" => \$opt_o,
+ "r=s" => \$opt_r,
+ "f" => \$opt_f,
+ "i" => \$opt_i,
+ "l=s" => \$opt_l,
+ "version" => sub { VERSION_MESSAGE(\*STDOUT) },
+ "help" => sub { VERSION_MESSAGE(\*STDOUT); HELP_MESSAGE(\*STDOUT) })) {
help();
}
if ($opt_n) {
@@ -514,7 +535,15 @@ sub update_ppd ($) {
get_ppd_fh($ppd_source_filename, $filename, $driver, $locale, $region);
if (! defined $source_fd) {
- print "Unable to retrieve PPD file!\n";
+ print "Unable to retrieve PPD file for $ppd_source_filename!\n";
+ close ORIG;
+ return 0;
+ }
+
+ my ($ndt, $nopt, $nres, $ndef, $source_data) = get_ppd_data($source_fd, 1, 1, 1, 1, 1);
+ if (! defined $ndt) {
+ print "Unable to retrieve PPD file for $ppd_source_filename!\n";
+ close ORIG;
return 0;
}
@@ -537,14 +566,13 @@ sub update_ppd ($) {
seek(ORIG, 0, 0);
my ($odt, $oopt, $ores, $odef) = get_ppd_data(ORIG, 1, 0, 1, 1, 0);
- my ($ndt, $nopt, $nres, $ndef, $source_data) = get_ppd_data($source_fd, 1, 1, 1, 1, 1);
# Close original and temporary files...
close ORIG;
if (! $server_multicat && ! close $source_fd) {
print "Unable to retrieve new PPD file: $!\n";
- return 0;
+ return -1;
}
my %orig_default_types = %$odt;
@@ -827,6 +855,7 @@ sub find_ppd ($$$$) {
sub get_ppd_data(*$$$$$) {
my ($fh, $types, $opts, $resolutions, $defaults, $data) = @_;
my (%options, %defaults, %resolution_map, %default_types);
+ my ($fileversion_found) = 0;
my $cur_opt = "";
my (@optionlist);
my ($source_data) = "";
@@ -840,6 +869,7 @@ sub get_ppd_data(*$$$$$) {
if ($resolutions || $types || $opts || $defaults || $data) {
while (<$fh>) {
last if $_ eq "*%*%EOFEOF\n";
+ $fileversion_found = 1 if (/^\*FileVersion:/);
$source_data .= $_ if ($data);
chomp;
if (($types || $opts) && m/^\*OpenUI/) {
@@ -870,5 +900,6 @@ sub get_ppd_data(*$$$$$) {
}
}
}
+ return (undef, undef, undef, undef, undef) if (! $fileversion_found);
return (\%default_types, \%options, \%resolution_map, \%defaults, $source_data);
}
diff --git a/src/cups/genppd.c b/src/cups/genppd.c
index 4e85388..f2dded8 100644
--- a/src/cups/genppd.c
+++ b/src/cups/genppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: genppd.c,v 1.186 2011/03/13 19:28:50 rlk Exp $"
+ * "$Id: genppd.c,v 1.192 2012/03/25 17:54:32 rlk Exp $"
*
* PPD file generation program for the CUPS drivers.
*
@@ -81,6 +81,8 @@ static const char *gzext = "";
#include "i18n.h"
+static int use_base_version = 0;
+
/*
* Some applications use the XxYdpi tags rather than the actual
* hardware resolutions to decide what resolution to print at. Some
@@ -249,18 +251,17 @@ main(int argc, /* I - Number of command-line arguments */
{
char buf[1024];
int status = 0;
- while (status == 0 && fgets(buf, sizeof(buf) - 1, stdin))
+ while (fgets(buf, sizeof(buf) - 1, stdin))
{
size_t len = strlen(buf);
if (len == 0)
continue;
if (buf[len - 1] == '\n')
buf[len - 1] = '\0';
- status = cat_ppd(buf);
+ status |= cat_ppd(buf);
fputs("*%*%EOFEOF\n", stdout);
(void) fflush(stdout);
}
- return status;
}
else if (argc == 2 && !strcmp(argv[1], "VERSION"))
{
@@ -273,11 +274,12 @@ main(int argc, /* I - Number of command-line arguments */
return (0);
}
else
- {
- fprintf(stderr, "Usage: %s list\n", argv[0]);
- fprintf(stderr, " %s cat URI\n", argv[0]);
- return (1);
- }
+ {
+ fprintf(stderr, "Usage: %s list\n", argv[0]);
+ fprintf(stderr, " %s cat URI\n", argv[0]);
+ return (1);
+ }
+ return (0);
}
@@ -457,7 +459,7 @@ main(int argc, /* I - Number of command-line arguments */
for (;;)
{
- if ((i = getopt(argc, argv, "23hvqc:p:l:LMVd:saNC")) == -1)
+ if ((i = getopt(argc, argv, "23hvqc:p:l:LMVd:saNCb")) == -1)
break;
switch (i)
@@ -528,6 +530,9 @@ main(int argc, /* I - Number of command-line arguments */
"GNU General Public License for more details.\n");
exit(EXIT_SUCCESS);
break;
+ case 'b':
+ use_base_version = 1;
+ break;
default:
usage();
exit(EXIT_FAILURE);
@@ -944,7 +949,10 @@ print_ppd_header(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
gzputs(fp, "*% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n");
gzputs(fp, "*%\n");
gzputs(fp, "*FormatVersion: \"4.3\"\n");
- gzputs(fp, "*FileVersion: \"" VERSION "\"\n");
+ if (use_base_version)
+ gzputs(fp, "*FileVersion: \"" BASE_VERSION "\"\n");
+ else
+ gzputs(fp, "*FileVersion: \"" VERSION "\"\n");
/* Specify language of PPD translation */
/* TRANSLATORS: Specify the language of the PPD translation.
* Use the English name of your language here, e.g. "Swedish" instead of
@@ -988,11 +996,6 @@ print_ppd_header(gzFile fp, ppd_type_t ppd_type, int model, const char *driver,
gzprintf(fp, "*ShortNickName: \"%s\"\n", short_long_name);
/*
- * The Windows driver download stuff has problems with NickName fields
- * with commas. Now use a dash instead...
- */
-
- /*
* NOTE - code in rastertoprinter looks for this version string.
* If this is changed, the corresponding change must be made in
* rastertoprinter.c. Look for "ppd->nickname"
@@ -1245,7 +1248,7 @@ print_color_setup(gzFile fp, int simplified, int printer_is_color,
gzputs(fp, "*ColorKeyWords: \"ColorModel\"\n");
gzprintf(fp, "*OpenUI *ColorModel/%s: PickOne\n", _("Color Model"));
gzputs(fp, "*OPOptionHints ColorModel: \"radiobuttons\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *ColorModel\n");
+ gzputs(fp, "*OrderDependency: 2 AnySetup *ColorModel\n");
if (printer_is_color)
{
@@ -1314,7 +1317,7 @@ print_color_setup(gzFile fp, int simplified, int printer_is_color,
gzputs(fp, "*ColorKeyWords: \"StpColorPrecision\"\n");
gzprintf(fp, "*OpenUI *StpColorPrecision/%s: PickOne\n", _("Color Precision"));
gzputs(fp, "*OPOptionHints StpColorPrecision: \"radiobuttons\"\n");
- gzputs(fp, "*OrderDependency: 10 AnySetup *StpColorPrecision\n");
+ gzputs(fp, "*OrderDependency: 1 AnySetup *StpColorPrecision\n");
gzputs(fp, "*DefaultStpColorPrecision: Normal\n");
gzputs(fp, "*StpDefaultStpColorPrecision: Normal\n");
gzprintf(fp, "*StpColorPrecision Normal/%s:\t\"<<"
@@ -1874,12 +1877,15 @@ write_ppd(
all_langs);
/* Macintosh color management */
+
+#ifdef __APPLE__
gzputs(fp, "*cupsICCProfile Gray../Grayscale: \"/System/Library/ColorSync/Profiles/sRGB Profile.icc\"\n");
gzputs(fp, "*cupsICCProfile RGB../Color: \"/System/Library/ColorSync/Profiles/sRGB Profile.icc\"\n");
gzputs(fp, "*cupsICCProfile CMYK../Color: \"/System/Library/ColorSync/Profiles/Generic CMYK Profile.icc\"\n");
gzputs(fp, "*APSupportsCustomColorMatching: true\n");
gzputs(fp, "*APDefaultCustomColorMatchingProfile: sRGB\n");
gzputs(fp, "*APCustomColorMatchingProfile: sRGB\n");
+#endif
gzputs(fp, "\n");
@@ -2157,6 +2163,7 @@ write_ppd(
}
stp_string_list_destroy(res_list);
+ stp_clear_string_parameter(v, "Resolution");
gzputs(fp, "*CloseUI: *Resolution\n\n");
}
@@ -2563,5 +2570,5 @@ write_ppd(
/*
- * End of "$Id: genppd.c,v 1.186 2011/03/13 19:28:50 rlk Exp $".
+ * End of "$Id: genppd.c,v 1.192 2012/03/25 17:54:32 rlk Exp $".
*/
diff --git a/src/cups/rastertoprinter.c b/src/cups/rastertoprinter.c
index 38b685e..065aa9b 100644
--- a/src/cups/rastertoprinter.c
+++ b/src/cups/rastertoprinter.c
@@ -1,5 +1,5 @@
/*
- * "$Id: rastertoprinter.c,v 1.137 2011/04/09 00:19:59 rlk Exp $"
+ * "$Id: rastertoprinter.c,v 1.139 2011/12/18 16:20:31 rlk Exp $"
*
* Gutenprint based raster filter for the Common UNIX Printing System.
*
@@ -36,6 +36,10 @@
* Include necessary headers...
*/
+#if 0
+#define ENABLE_CUPS_LOAD_SAVE_OPTIONS
+#endif
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -53,6 +57,7 @@
#include <limits.h>
#endif
#include "i18n.h"
+#include <gutenprint/xml.h>
/* Solaris with gcc has problems because gcc's limits.h doesn't #define */
/* this */
@@ -64,6 +69,14 @@
* Structure for page raster data...
*/
+#if (CUPS_VERSION_MAJOR > 1 || (CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR > 1))
+#define CUPS_HEADER_T cups_page_header2_t
+#define CUPS_READ_HEADER cupsRasterReadHeader2
+#else
+#define CUPS_HEADER_T cups_page_header_t
+#define CUPS_READ_HEADER cupsRasterReadHeader
+#endif
+
typedef struct
{
cups_raster_t *ras; /* Raster stream to read from */
@@ -83,7 +96,7 @@ typedef struct
int adjusted_height;
int last_percent;
int shrink_to_fit;
- cups_page_header_t header; /* Page header from file */
+ CUPS_HEADER_T header; /* Page header from file */
} cups_image_t;
static void cups_writefunc(void *file, const char *buf, size_t bytes);
@@ -114,7 +127,14 @@ static volatile stp_image_status_t Image_status = STP_IMAGE_STATUS_OK;
static double total_bytes_printed = 0;
static int print_messages_as_errors = 0;
static int suppress_messages = 0;
-static stp_string_list_t *po = NULL;
+static int suppress_verbose_messages = 0;
+static const stp_string_list_t *po = NULL;
+#ifdef ENABLE_CUPS_LOAD_SAVE_OPTIONS
+static const char *save_file_name = NULL;
+static const char *load_file_name = NULL;
+#endif /* ENABLE_CUPS_LOAD_SAVE_OPTIONS */
+
+extern void stpi_vars_print_error(const stp_vars_t *v, const char *prefix);
static void
set_string_parameter(stp_vars_t *v, const char *name, const char *val)
@@ -132,7 +152,16 @@ set_special_parameter(stp_vars_t *v, const char *name, int choice)
stp_describe_parameter(v, name, &desc);
if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
{
- if (choice < 0)
+#if 0
+ if (stp_check_string_parameter(v, name, STP_PARAMETER_ACTIVE))
+ {
+ if (! suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: Not overriding special parameter %s (%s)\n",
+ name, stp_get_string_parameter(v, name));
+ }
+ else
+#endif
+ if (choice < 0)
{
stp_clear_string_parameter(v, name);
if (! suppress_messages)
@@ -168,9 +197,6 @@ set_special_parameter(stp_vars_t *v, const char *name, int choice)
static void
print_debug_block(const stp_vars_t *v, const cups_image_t *cups)
{
- stp_parameter_list_t params;
- int nparams;
- int i;
fprintf(stderr, "DEBUG: Gutenprint: Page data:\n");
fprintf(stderr, "DEBUG: Gutenprint: MediaClass = \"%s\"\n", cups->header.MediaClass);
fprintf(stderr, "DEBUG: Gutenprint: MediaColor = \"%s\"\n", cups->header.MediaColor);
@@ -221,54 +247,9 @@ print_debug_block(const stp_vars_t *v, const cups_image_t *cups)
fprintf(stderr, "DEBUG: Gutenprint: cupsRowCount = %d\n", cups->header.cupsRowCount);
fprintf(stderr, "DEBUG: Gutenprint: cupsRowFeed = %d\n", cups->header.cupsRowFeed);
fprintf(stderr, "DEBUG: Gutenprint: cupsRowStep = %d\n", cups->header.cupsRowStep);
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_driver(v) |%s|\n", stp_get_driver(v));
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_left(v) %d\n", stp_get_left(v));
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_top(v) %d\n", stp_get_top(v));
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_page_width(v) %d\n", stp_get_page_width(v));
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_page_height(v) %d\n", stp_get_page_height(v));
fprintf(stderr, "DEBUG: Gutenprint: shrink page to fit %d\n", cups->shrink_to_fit);
- params = stp_get_parameter_list(v);
- nparams = stp_parameter_list_count(params);
- for (i = 0; i < nparams; i++)
- {
- const stp_parameter_t *p = stp_parameter_list_param(params, i);
- switch (p->p_type)
- {
- case STP_PARAMETER_TYPE_STRING_LIST:
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_string %s(v) |%s| %d\n",
- p->name, stp_get_string_parameter(v, p->name) ?
- stp_get_string_parameter(v, p->name) : "NULL",
- stp_get_string_parameter_active(v, p->name));
- break;
- case STP_PARAMETER_TYPE_DOUBLE:
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_float %s(v) |%.3f| %d\n",
- p->name, stp_get_float_parameter(v, p->name),
- stp_get_float_parameter_active(v, p->name));
- break;
- case STP_PARAMETER_TYPE_DIMENSION:
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_dimension %s(v) |%d| %d\n",
- p->name, stp_get_dimension_parameter(v, p->name),
- stp_get_dimension_parameter_active(v, p->name));
- break;
- case STP_PARAMETER_TYPE_INT:
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_int %s(v) |%d| %d\n",
- p->name, stp_get_int_parameter(v, p->name),
- stp_get_int_parameter_active(v, p->name));
- break;
- case STP_PARAMETER_TYPE_BOOLEAN:
- fprintf(stderr, "DEBUG: Gutenprint: stp_get_boolean %s(v) |%d| %d\n",
- p->name, stp_get_boolean_parameter(v, p->name),
- stp_get_boolean_parameter_active(v, p->name));
- break;
- /*
- * We don't handle raw, curve, or filename arguments.
- */
- default:
- break;
- }
- }
+ stpi_vars_print_error(v, "DEBUG");
fprintf(stderr, "DEBUG: Gutenprint: End page data\n");
- stp_parameter_list_destroy(params);
}
static int
@@ -290,7 +271,7 @@ validate_options(stp_vars_t *v, cups_image_t *cups)
int nparams = stp_parameter_list_count(params);
int i;
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Validating options\n");
+ fprintf(stderr, "DEBUG: Gutenprint: Validating options\n");
for (i = 0; i < nparams; i++)
{
const stp_parameter_t *param = stp_parameter_list_param(params, i);
@@ -304,14 +285,14 @@ validate_options(stp_vars_t *v, cups_image_t *cups)
if (! suppress_messages)
{
const char *val = stp_get_string_parameter(v, desc.name);
- fprintf(stderr, "DEBUG: Gutenprint: Clearing string %s (%s)\n",
+ fprintf(stderr, "DEBUG: Gutenprint: Clearing string %s (%s)\n",
desc.name, val ? val : "(null)");
}
stp_clear_string_parameter(v, desc.name);
if (!desc.read_only && desc.is_mandatory && desc.is_active)
{
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Setting default string %s to %s\n",
+ fprintf(stderr, "DEBUG: Gutenprint: Setting default string %s to %s\n",
desc.name, desc.deflt.str ? desc.deflt.str : "(null)");
stp_set_string_parameter(v, desc.name, desc.deflt.str);
if (strcmp(desc.name, "PageSize") == 0)
@@ -321,7 +302,7 @@ validate_options(stp_vars_t *v, cups_image_t *cups)
if (ps->width > 0)
{
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Setting page width to %d\n",
+ fprintf(stderr, "DEBUG: Gutenprint: Setting page width to %d\n",
ps->width);
if (ps->width < stp_get_page_width(v))
stp_set_page_width(v, ps->width);
@@ -329,7 +310,7 @@ validate_options(stp_vars_t *v, cups_image_t *cups)
if (ps->height > 0)
{
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Setting page height to %d\n",
+ fprintf(stderr, "DEBUG: Gutenprint: Setting page height to %d\n",
ps->height);
if (ps->height < stp_get_page_height(v))
stp_set_page_height(v, ps->height);
@@ -341,7 +322,7 @@ validate_options(stp_vars_t *v, cups_image_t *cups)
stp_parameter_description_destroy(&desc);
}
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Done validating options\n");
+ fprintf(stderr, "DEBUG: Gutenprint: Done validating options\n");
stp_parameter_list_destroy(params);
}
@@ -472,7 +453,9 @@ initialize_page(cups_image_t *cups, const stp_vars_t *default_settings,
set_string_parameter(v, "Duplex", "DuplexNoTumble");
}
- cups->shrink_to_fit = stp_get_int_parameter(v, "CUPSShrinkPage");
+ cups->shrink_to_fit =
+ (stp_check_int_parameter(v, "CUPSShrinkPage", STP_PARAMETER_ACTIVE) ?
+ stp_get_int_parameter(v, "CUPSShrinkPage") : 0);
set_string_parameter(v, "JobMode", "Job");
validate_options(v, cups);
@@ -483,9 +466,9 @@ initialize_page(cups_image_t *cups, const stp_vars_t *default_settings,
&(cups->bottom), &(cups->top));
if (! suppress_messages)
{
- fprintf(stderr, "DEBUG: Gutenprint: limits w %d l %d r %d h %d t %d b %d\n",
+ fprintf(stderr, "DEBUG: Gutenprint: limits w %d l %d r %d h %d t %d b %d\n",
cups->width, cups->left, cups->right, cups->height, cups->top, cups->bottom);
- fprintf(stderr, "DEBUG: Gutenprint: max limits l %d r %d t %d b %d\n",
+ fprintf(stderr, "DEBUG: Gutenprint: max limits l %d r %d t %d b %d\n",
tmp_left, tmp_right, tmp_top, tmp_bottom);
}
@@ -509,7 +492,7 @@ initialize_page(cups_image_t *cups, const stp_vars_t *default_settings,
else
cups->left_trim = 0;
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: left margin %d\n", cups->left_trim);
+ fprintf(stderr, "DEBUG: Gutenprint: left margin %d\n", cups->left_trim);
}
else
{
@@ -625,9 +608,14 @@ initialize_page(cups_image_t *cups, const stp_vars_t *default_settings,
if (cups->adjusted_height > cups->header.cupsHeight)
cups->adjusted_height = cups->header.cupsHeight;
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: CUPS settings w %d (%d) l %d r %d h %d (%d) t %d b %d\n",
- cups->width, cups->adjusted_width, cups->left, cups->right,
- cups->height, cups->adjusted_height, cups->top, cups->bottom);
+ {
+ fprintf(stderr, "DEBUG: Gutenprint: CUPS settings w %d l %d r %d h %d t %d b %d\n",
+ cups->width, cups->left, cups->right,
+ cups->height, cups->top, cups->bottom);
+ fprintf(stderr, "DEBUG: Gutenprint: adjusted w %d h %d\n",
+ cups->adjusted_width, cups->adjusted_height);
+
+ }
if (! suppress_messages)
fprintf(stderr, "DEBUG: Gutenprint: End initialize page\n");
@@ -641,8 +629,9 @@ purge_excess_data(cups_image_t *cups)
if (buffer)
{
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Purging %d rows\n",
- cups->header.cupsHeight - cups->row);
+ fprintf(stderr, "DEBUG: Gutenprint: Purging %d row%s\n",
+ cups->header.cupsHeight - cups->row,
+ ((cups->header.cupsHeight - cups->row) == 1 ? "" : "s"));
while (cups->row < cups->header.cupsHeight)
{
cupsRasterReadPixels(cups->ras, (unsigned char *)buffer,
@@ -758,6 +747,8 @@ set_all_options(stp_vars_t *v, cups_option_t *options, int num_options,
if (val && ((strlen(val) > 0 && strcmp(val, "None") != 0) ||
(desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)))
{
+ stp_curve_t *curve;
+ stp_raw_t *raw;
switch (desc.p_type)
{
case STP_PARAMETER_TYPE_STRING_LIST:
@@ -792,9 +783,30 @@ set_all_options(stp_vars_t *v, cups_option_t *options, int num_options,
stp_set_boolean_parameter
(v, desc.name, strcasecmp(val, "true") == 0 ? 1 : 0);
break;
- case STP_PARAMETER_TYPE_CURVE: /* figure this out later... */
- case STP_PARAMETER_TYPE_FILE: /* Probably not, security hole */
+ case STP_PARAMETER_TYPE_CURVE:
+ curve = stp_curve_create_from_string(val);
+ if (! suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: Set curve %s to %s\n",
+ desc.name, curve ? val : "(NULL)");
+ if (curve)
+ {
+ stp_set_curve_parameter(v, desc.name, curve);
+ stp_curve_destroy(curve);
+ }
+ break;
case STP_PARAMETER_TYPE_RAW: /* figure this out later, too */
+ raw = stp_xmlstrtoraw(val);
+ if (! suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: Set raw %s to %s\n",
+ desc.name, raw ? val : "(NULL)");
+ if (raw)
+ {
+ stp_set_raw_parameter(v, desc.name, raw->data, raw->bytes);
+ stp_free((void *)raw->data);
+ stp_free(raw);
+ }
+ break;
+ case STP_PARAMETER_TYPE_FILE: /* Probably not, security hole */
if (! suppress_messages)
fprintf(stderr, "DEBUG: Gutenprint: Ignoring option %s %s type %d\n",
desc.name, val, desc.p_type);
@@ -806,13 +818,13 @@ set_all_options(stp_vars_t *v, cups_option_t *options, int num_options,
else if (val)
{
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Not setting %s to '%s'\n",
+ fprintf(stderr, "DEBUG: Gutenprint: Not setting %s to '%s'\n",
desc.name, val);
}
else
{
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Not setting %s to (null)\n",
+ fprintf(stderr, "DEBUG: Gutenprint: Not setting %s to (null)\n",
desc.name);
}
}
@@ -824,6 +836,233 @@ set_all_options(stp_vars_t *v, cups_option_t *options, int num_options,
stp_parameter_list_destroy(params);
}
+#ifdef ENABLE_CUPS_LOAD_SAVE_OPTIONS
+static void
+save_options(const char *save_name, const stp_vars_t *v)
+{
+ FILE *f_options;
+ int i;
+ stp_vars_t *c = stp_vars_create();
+ stp_parameter_list_t params = stp_get_parameter_list(v);
+ stp_parameter_t desc;
+ stp_mxml_node_t *mxml = NULL;
+ int param_count;
+
+ if (!params)
+ {
+ stp_vars_destroy(c);
+ return;
+ }
+ f_options = fopen(save_name, "w");
+ if (!f_options)
+ {
+ stp_parameter_list_destroy(params);
+ stp_vars_destroy(c);
+ return;
+ }
+ param_count = stp_parameter_list_count(params);
+ stp_set_driver(c, stp_get_driver(v));
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: Saving parameters to %s\n", save_name);
+ for (i = 0; i < param_count; i++)
+ {
+ const stp_parameter_t *lparam =
+ stp_parameter_list_param(params, i);
+ stp_describe_parameter(v, lparam->name, &desc);
+ if (desc.read_only || !strcmp(desc.name, "ChannelBitDepth") ||
+ !stp_parameter_has_category_value(v, &desc, "Color", "Yes"))
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping non-color %s\n",
+ desc.name);
+ stp_parameter_description_destroy(&desc);
+ continue;
+ }
+ switch (desc.p_type)
+ {
+ case STP_PARAMETER_TYPE_STRING_LIST:
+ if (stp_check_string_parameter(v, desc.name,
+ STP_PARAMETER_DEFAULTED))
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING string %s %s\n",
+ desc.name, stp_get_string_parameter(v, desc.name));
+ stp_set_string_parameter(c, desc.name,
+ stp_get_string_parameter(v, desc.name));
+ }
+ else if (desc.is_mandatory)
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted string %s %s\n",
+ desc.name, desc.deflt.str);
+ stp_set_string_parameter(c, desc.name, desc.deflt.str);
+ }
+ else if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping string %s\n", desc.name);
+ break;
+ case STP_PARAMETER_TYPE_RAW:
+ if (stp_check_raw_parameter(v, desc.name,
+ STP_PARAMETER_DEFAULTED))
+ {
+ const stp_raw_t *raw = stp_get_raw_parameter(v, desc.name);
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING raw %s\n", desc.name);
+ stp_set_raw_parameter(c, desc.name, raw->data, raw->bytes);
+ }
+ else if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping raw %s\n",
+ desc.name);
+ break;
+ case STP_PARAMETER_TYPE_BOOLEAN:
+ if (stp_check_boolean_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING bool %s %d\n",
+ desc.name, stp_get_boolean_parameter(v, desc.name));
+ stp_set_boolean_parameter(c, desc.name,
+ stp_get_boolean_parameter(v, desc.name));
+ }
+ else if (desc.is_mandatory)
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted bool %s %d\n",
+ desc.name, desc.deflt.boolean);
+ stp_set_boolean_parameter(c, desc.name, desc.deflt.boolean);
+ }
+ else if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping bool %s\n", desc.name);
+ break;
+ case STP_PARAMETER_TYPE_INT:
+ if (stp_check_int_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING int %s %d\n",
+ desc.name, stp_get_int_parameter(v, desc.name));
+ stp_set_int_parameter(c, desc.name, stp_get_int_parameter(v, desc.name));
+ }
+ else if (desc.is_mandatory)
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted int %s %d\n",
+ desc.name, desc.deflt.integer);
+ stp_set_int_parameter(c, desc.name, desc.deflt.integer);
+ }
+ else if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping int %s\n", desc.name);
+ break;
+ case STP_PARAMETER_TYPE_DOUBLE:
+ if (stp_check_float_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING float %s %f\n",
+ desc.name, stp_get_float_parameter(v, desc.name));
+ stp_set_float_parameter(c, desc.name,
+ stp_get_float_parameter(v, desc.name));
+ }
+ else if (desc.is_mandatory)
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted float %s %f\n",
+ desc.name, desc.deflt.dbl);
+ stp_set_float_parameter(c, desc.name, desc.deflt.dbl);
+ }
+ else if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping float %s\n", desc.name);
+ break;
+ case STP_PARAMETER_TYPE_DIMENSION:
+ if (stp_check_dimension_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING dimension %s %d\n",
+ desc.name, stp_get_dimension_parameter(v, desc.name));
+ stp_set_dimension_parameter(c, desc.name,
+ stp_get_dimension_parameter(v, desc.name));
+ }
+ else if (desc.is_mandatory)
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted dimension %s %d\n",
+ desc.name, desc.deflt.dimension);
+ stp_set_dimension_parameter(c, desc.name, desc.deflt.dimension);
+ }
+ else if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping dimension %s\n", desc.name);
+ break;
+ case STP_PARAMETER_TYPE_CURVE:
+ if (stp_check_curve_parameter(v, desc.name, STP_PARAMETER_DEFAULTED))
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING curve %s\n", desc.name);
+ stp_set_curve_parameter(c, desc.name,
+ stp_get_curve_parameter(v, desc.name));
+ }
+ else if (desc.is_mandatory)
+ {
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: SAVING defaulted curve %s\n", desc.name);
+ stp_set_curve_parameter(c, desc.name, desc.deflt.curve);
+ }
+ else if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: skipping curve %s\n",
+ desc.name);
+ break;
+ default:
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: Ignoring unknown type parameter %s (%d)\n",
+ desc.name, desc.p_type);
+ break;
+ }
+ stp_parameter_description_destroy(&desc);
+ }
+ stp_parameter_list_destroy(params);
+ mxml = stp_xmltree_create_from_vars(c);
+ if (mxml)
+ {
+ fputs("<?xml version=\"1.0\"?>\n\n", f_options);
+ stp_mxmlSaveFile(mxml, f_options, STP_MXML_NO_CALLBACK);
+ stp_mxmlDelete(mxml);
+ }
+ (void) fclose(f_options);
+ stp_vars_destroy(c);
+ if (!suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: Done saving parameters to %s\n", save_name);
+}
+
+static stp_vars_t *
+load_options(const char *load_name)
+{
+ FILE *f_options = fopen(load_name, "r");
+ if (f_options)
+ {
+ stp_vars_t *settings = NULL;
+ stp_mxml_node_t *mxml;
+ mxml = stp_mxmlLoadFile(NULL, f_options, STP_MXML_NO_CALLBACK);
+ if (mxml)
+ {
+ stp_mxml_node_t *nxml =
+ stp_mxmlFindElement(mxml, mxml, "vars", NULL, NULL,
+ STP_MXML_DESCEND);
+ if (nxml)
+ {
+ settings = stp_vars_create_from_xmltree_ref(nxml->child, mxml);
+ if (! suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: loading options from %s\n",
+ load_file_name);
+ if (! suppress_messages)
+ stpi_vars_print_error(settings, "DEBUG");
+ }
+ }
+ else
+ fprintf(stderr, "DEBUG: Unable to load options from %s\n",
+ load_file_name);
+ fclose(f_options);
+ return settings;
+ }
+ return NULL;
+}
+
+#endif /* ENABLE_CUPS_LOAD_SAVE_OPTIONS */
+
/*
* 'main()' - Main entry and processing of driver.
*/
@@ -851,6 +1090,10 @@ main(int argc, /* I - Number of command-line arguments */
struct timeval t1, t2;
struct timezone tz;
char *page_size_name = NULL;
+ int aborted = 0;
+#ifdef ENABLE_CUPS_LOAD_SAVE_OPTIONS
+ stp_vars_t *loaded_settings = NULL;
+#endif /* ENABLE_CUPS_LOAD_SAVE_OPTIONS */
/*
@@ -862,6 +1105,9 @@ main(int argc, /* I - Number of command-line arguments */
if (getenv("STP_SUPPRESS_MESSAGES"))
suppress_messages = 1;
+ if (getenv("STP_SUPPRESS_VERBOSE_MESSAGES"))
+ suppress_verbose_messages = 1;
+
/*
* Initialize libgutenprint
*/
@@ -893,8 +1139,10 @@ main(int argc, /* I - Number of command-line arguments */
if (! suppress_messages)
{
- fprintf(stderr, "DEBUG: Gutenprint %s Starting\n", version_id);
- fprintf(stderr, "DEBUG: Gutenprint command line: %s '%s' '%s' '%s' '%s' %s%s%s%s\n",
+ fprintf(stderr, "DEBUG: Gutenprint: ============================================================\n");
+ fprintf(stderr, "DEBUG: Gutenprint: VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n");
+ fprintf(stderr, "DEBUG: Gutenprint: %s Starting\n", version_id);
+ fprintf(stderr, "DEBUG: Gutenprint: command line: %s '%s' '%s' '%s' '%s' %s%s%s%s\n",
argv[0], argv[1], argv[2], argv[3], argv[4], "<args>",
argc >= 7 ? " '" : "",
argc >= 7 ? argv[6] : "",
@@ -911,7 +1159,7 @@ main(int argc, /* I - Number of command-line arguments */
return (1);
}
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint using PPD file %s\n", ppdfile);
+ fprintf(stderr, "DEBUG: Gutenprint: using PPD file %s\n", ppdfile);
if ((ppd = ppdOpenFile(ppdfile)) == NULL)
{
@@ -960,7 +1208,7 @@ main(int argc, /* I - Number of command-line arguments */
fprintf(stderr, "DEBUG: Gutenprint: If you have upgraded your version of Gutenprint\n");
fprintf(stderr, "DEBUG: Gutenprint: recently, you must reinstall all printer queues.\n");
fprintf(stderr, "DEBUG: Gutenprint: If the previous installed version of Gutenprint\n");
- fprintf(stderr, "DEBUG: Gutenprint: was 4.3.19 or higher, you can use the `cups-genppdupdate.%s'\n", release_version_id);
+ fprintf(stderr, "DEBUG: Gutenprint: was 5.0.0 or higher, you can use the `cups-genppdupdate.%s'\n", release_version_id);
fprintf(stderr, "DEBUG: Gutenprint: program to do this; if the previous installed version\n");
fprintf(stderr, "DEBUG: Gutenprint: was older, you can use the Modify Printer command via\n");
fprintf(stderr, "DEBUG: Gutenprint: the CUPS web interface: http://localhost:631/printers.\n");
@@ -988,9 +1236,17 @@ main(int argc, /* I - Number of command-line arguments */
{
int i;
for (i = 0; i < num_options; i++)
- if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: CUPS option %d %s = %s\n",
- i, options[i].name, options[i].value);
+ {
+ if (! suppress_messages)
+ fprintf(stderr, "DEBUG: Gutenprint: CUPS option %d %s = %s\n",
+ i, options[i].name, options[i].value);
+#ifdef ENABLE_CUPS_LOAD_SAVE_OPTIONS
+ if (!strcmp(options[i].name, "SaveFileName"))
+ save_file_name = options[i].value;
+ if (!strcmp(options[i].name, "LoadFileName"))
+ load_file_name = options[i].value;
+#endif /* ENABLE_CUPS_LOAD_SAVE_OPTIONS */
+ }
}
/*
@@ -1031,9 +1287,13 @@ main(int argc, /* I - Number of command-line arguments */
fprintf(stderr, "DEBUG: Gutenprint: Using fd %d\n", fd);
stp_set_printer_defaults(default_settings, printer);
+#ifdef ENABLE_CUPS_LOAD_SAVE_OPTIONS
+ if (load_file_name)
+ loaded_settings = load_options(load_file_name);
+#endif /* ENABLE_CUPS_LOAD_SAVE_OPTIONS */
stp_set_float_parameter(default_settings, "AppGamma", 1.0);
set_all_options(default_settings, options, num_options, ppd);
- stp_merge_printvars(default_settings, stp_printer_get_defaults(printer));
+
ppdClose(ppd);
cups.ras = cupsRasterOpen(fd, CUPS_RASTER_READ);
@@ -1052,7 +1312,7 @@ main(int argc, /* I - Number of command-line arguments */
* the page.
*/
signal(SIGTERM, cancel_job);
- while (cupsRasterReadHeader(cups.ras, &cups.header))
+ while (CUPS_READ_HEADER(cups.ras, &cups.header))
{
/*
* We don't know how many pages we're going to print, and
@@ -1070,10 +1330,25 @@ main(int argc, /* I - Number of command-line arguments */
*/
if (! suppress_messages)
{
- fprintf(stderr, "DEBUG: Gutenprint: Printing page %d\n", cups.page + 1);
+ fprintf(stderr, "DEBUG: Gutenprint: ================ Printing page %d ================\n", cups.page + 1);
fprintf(stderr, "PAGE: %d 1\n", cups.page + 1);
}
v = initialize_page(&cups, default_settings, page_size_name);
+#ifdef ENABLE_CUPS_LOAD_SAVE_OPTIONS
+ if (loaded_settings)
+ stp_copy_vars_from(v, loaded_settings);
+ if (save_file_name)
+ {
+ save_options(save_file_name, v);
+ save_file_name = NULL;
+ }
+#endif /* ENABLE_CUPS_LOAD_SAVE_OPTIONS */
+ if (! suppress_messages)
+ {
+ fprintf(stderr, "DEBUG: Gutenprint: Interim page settings:\n");
+ stpi_vars_print_error(v, "DEBUG");
+ }
+ stp_merge_printvars(v, stp_printer_get_defaults(printer));
stp_set_int_parameter(v, "PageNumber", cups.page);
cups.row = 0;
if (! suppress_messages)
@@ -1085,7 +1360,8 @@ main(int argc, /* I - Number of command-line arguments */
fprintf(stderr, "DEBUG: Gutenprint: Make sure that you are using ESP Ghostscript rather\n");
fprintf(stderr, "DEBUG: Gutenprint: than GNU or AFPL Ghostscript with CUPS.\n");
fprintf(stderr, "DEBUG: Gutenprint: If this is not the cause, set LogLevel to debug to identify the problem.\n");
- goto cups_abort;
+ aborted = 1;
+ break;
}
if (!initialized_job)
@@ -1095,7 +1371,10 @@ main(int argc, /* I - Number of command-line arguments */
}
if (!stp_print(v, &theImage))
- goto cups_abort;
+ {
+ aborted = 1;
+ break;
+ }
print_messages_as_errors = 0;
fflush(stdout);
@@ -1106,13 +1385,14 @@ main(int argc, /* I - Number of command-line arguments */
if (cups.row < cups.header.cupsHeight)
purge_excess_data(&cups);
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Done printing page %d\n", cups.page + 1);
+ fprintf(stderr, "DEBUG: Gutenprint: ================ Done printing page %d ================\n", cups.page + 1);
cups.page ++;
}
if (v)
{
if (! suppress_messages)
- fprintf(stderr, "DEBUG: Gutenprint: Ending job\n");
+ fprintf(stderr, "DEBUG: Gutenprint: %s job\n",
+ aborted ? "Aborted" : "Ending");
stp_end_job(v, &theImage);
fflush(stdout);
stp_vars_destroy(v);
@@ -1123,43 +1403,22 @@ main(int argc, /* I - Number of command-line arguments */
clocks_per_sec = sysconf(_SC_CLK_TCK);
fprintf(stderr, "DEBUG: Gutenprint: Printed total %.0f bytes\n",
total_bytes_printed);
- fprintf(stderr, "DEBUG: Gutenprint: Used %.3f seconds user, %.3f seconds system, %.3f seconds elapsed\n",
+ fprintf(stderr, "DEBUG: Gutenprint: Time %.3f user, %.3f sys, %.3f elapsed\n",
(double) tms.tms_utime / clocks_per_sec,
(double) tms.tms_stime / clocks_per_sec,
(double) (t2.tv_sec - t1.tv_sec) +
((double) (t2.tv_usec - t1.tv_usec)) / 1000000.0);
- stp_vars_destroy(default_settings);
- if (page_size_name)
- stp_free(page_size_name);
- if (fd != 0)
- close(fd);
- return 0;
-
-cups_abort:
- if (v)
+ if (!suppress_messages)
{
- stp_end_job(v, &theImage);
- fflush(stdout);
- stp_vars_destroy(v);
+ fprintf(stderr, "DEBUG: Gutenprint: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
+ fprintf(stderr, "DEBUG: Gutenprint: ============================================================\n");
}
- cupsRasterClose(cups.ras);
- clk = times(&tms);
- (void) gettimeofday(&t2, &tz);
- clocks_per_sec = sysconf(_SC_CLK_TCK);
- fprintf(stderr, "DEBUG: Gutenprint: Printed total %.0f bytes\n",
- total_bytes_printed);
- fprintf(stderr, "DEBUG: Gutenprint: Used %.3f seconds user, %.3f seconds system, %.3f seconds elapsed\n",
- (double) tms.tms_utime / clocks_per_sec,
- (double) tms.tms_stime / clocks_per_sec,
- (double) (t2.tv_sec - t1.tv_sec) +
- ((double) (t2.tv_usec - t1.tv_usec)) / 1000000.0);
- stp_i18n_printf(po, _("ERROR: Invalid Gutenprint driver settings!\n"));
stp_vars_destroy(default_settings);
if (page_size_name)
stp_free(page_size_name);
if (fd != 0)
close(fd);
- return 1;
+ return aborted ? 1 : 0;
}
@@ -1282,14 +1541,14 @@ Image_get_row(stp_image_t *image, /* I - Image */
if (cups->row < cups->header.cupsHeight)
{
- if (! suppress_messages)
+ if (! suppress_messages && ! suppress_verbose_messages)
fprintf(stderr, "DEBUG2: Gutenprint: Reading %d %d\n",
bytes_per_line, cups->row);
while (cups->row <= row && cups->row < cups->header.cupsHeight)
{
if (left_margin > 0)
{
- if (! suppress_messages)
+ if (! suppress_messages && ! suppress_verbose_messages)
fprintf(stderr, "DEBUG2: Gutenprint: Tossing left %d (%d)\n",
left_margin, cups->left_trim);
throwaway_data(left_margin, cups);
@@ -1298,7 +1557,7 @@ Image_get_row(stp_image_t *image, /* I - Image */
cups->row ++;
if (margin + right_margin > 0)
{
- if (!suppress_messages)
+ if (! suppress_messages && ! suppress_verbose_messages)
fprintf(stderr, "DEBUG2: Gutenprint: Tossing right %d (%d) + %d\n",
right_margin, cups->right_trim, margin);
throwaway_data(margin + right_margin, cups);
@@ -1445,5 +1704,5 @@ Image_width(stp_image_t *image) /* I - Image */
/*
- * End of "$Id: rastertoprinter.c,v 1.137 2011/04/09 00:19:59 rlk Exp $".
+ * End of "$Id: rastertoprinter.c,v 1.139 2011/12/18 16:20:31 rlk Exp $".
*/
diff --git a/src/cups/test-ppds b/src/cups/test-ppds
index 4e60d2b..4044b02 100755
--- a/src/cups/test-ppds
+++ b/src/cups/test-ppds
@@ -1,6 +1,6 @@
#!/bin/sh
-make ppd-clean ppd-global ppd-nls ppd-nonls
+make EXTRA_GENPPD_OPTS=-b ppd-clean ppd-global ppd-nls ppd-nonls
# Most non-Macintosh systems won't have the Macintosh-specific profiles
# installed in Macintosh-specific locations.
diff --git a/src/cups/test-rastertogutenprint.in b/src/cups/test-rastertogutenprint.in
index 97ae27d..9e4f07d 100755
--- a/src/cups/test-rastertogutenprint.in
+++ b/src/cups/test-rastertogutenprint.in
@@ -27,6 +27,7 @@ make_ppds=1
md5dir=''
outdir=''
cupsargs=''
+npages=3
usage() {
echo "Usage: test-rastertogutenprint [-s] [-v|--valgrind]"
@@ -46,6 +47,7 @@ set_args() {
-O|--output) shift; outdir="$1" ;;
-o|--option) shift; cupsargs="$cupsargs $1" ;;
-m|--md5dir) shift; md5dir="$1" ;;
+ -p|--pages) shift; npages="$1" ;;
--) shift; args="$@"; return ;;
*) return ;;
esac
@@ -53,7 +55,7 @@ set_args() {
done
}
-set_args `getopt vcgsVnO:m:o: "$@"`
+set_args `getopt hvcgsVnO:m:o:p: "$@"`
if [ -n "$outdir" -a ! -d "$outdir" ] ; then
mkdir -p "$outdir"
@@ -65,7 +67,7 @@ fi
version="@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@";
cupsdir="@cups_conf_serverbin@/filter"
if [ -x "$cupsdir/pstoraster" -o -x "$cupsdir/cgpdftoraster" ] ; then
- pages='page-ranges=24-26 '
+ pages="page-ranges=24-`expr 24 + $npages - 1` "
else
pages=''
fi
@@ -91,7 +93,7 @@ fi
if [ -n "$pdftops" -a ! -x "$cupsdir/cgpdftoraster" ] ; then
tfile=`mktemp`
trap cleanup 1 2 3 6 14 15 30
- $pdftops -f 24 -l 26 "$sdir/../../doc/gutenprint-users-manual.pdf" $tfile
+ $pdftops -f 24 -l `expr 24 + $npages - 1` "$sdir/../../doc/gutenprint-users-manual.pdf" $tfile
fi
if [ -z "$verbose" ] ; then
@@ -118,10 +120,11 @@ is_duplicate() {
run_rastertogp() {
case "$valgrind" in
- 1) valgrind $valopts -q --num-callers=100 --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
- 2) valgrind $valopts --num-callers=100 --leak-resolution=high --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
- 3) valgrind $valopts --error-limit=no --num-callers=100 --show-reachable=yes --leak-resolution=high --leak-check=yes ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 1) valgrind $valopts -q --num-callers=50 --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 2) valgrind $valopts --num-callers=50 --leak-resolution=high --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 3) valgrind $valopts --error-limit=no --num-callers=50 --show-reachable=yes --leak-resolution=high --leak-check=yes ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
4) valgrind $valopts ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 5) cat ;;
*) ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
esac
if [ $? -ne 0 ] ; then
diff --git a/src/escputil/Makefile.in b/src/escputil/Makefile.in
index 67c3f69..eeb6b13 100644
--- a/src/escputil/Makefile.in
+++ b/src/escputil/Makefile.in
@@ -111,6 +111,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -187,6 +188,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -207,6 +209,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -230,6 +234,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -276,7 +281,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/escputil/d4lib.c b/src/escputil/d4lib.c
index 04ed24d..0ba46b6 100644
--- a/src/escputil/d4lib.c
+++ b/src/escputil/d4lib.c
@@ -201,7 +201,7 @@ static void printHexValues(const char *dir, const unsigned char *buf, int len)
#if 0
len = len > 30 ? 30 : len;
#endif
- printf("%s\n",dir);
+ printf("+++%s\n",dir);
for (i = 0; i < len; i++)
{
if (isprint(buf[i]))
@@ -223,11 +223,17 @@ static void printHexValues(const char *dir, const unsigned char *buf, int len)
print_strings = 1;
if (print_strings)
{
+ int print_prefix = 1;
for (i = 0; i < len; i++)
{
- printf("%c",isprint(buf[i])||isspace(buf[i])?buf[i]:'*');
+ printf("%s%c", (print_prefix ? "+++" : ""),
+ isprint(buf[i])||isblank(buf[i])?buf[i]:'*');
+ print_prefix = 0;
if (buf[i] == ';' && i < len - 1)
- printf("\n");
+ {
+ printf("\n");
+ print_prefix = 1;
+ }
}
printf("\n");
}
@@ -237,7 +243,7 @@ static void printHexValues(const char *dir, const unsigned char *buf, int len)
int count = len;
if (count > baseidx + 16)
count = baseidx + 16;
- printf("%4d: ", baseidx);
+ printf("+++ %4d: ", baseidx);
for ( i = baseidx; i < count;i++)
{
if (i % 4 == 0)
@@ -246,7 +252,7 @@ static void printHexValues(const char *dir, const unsigned char *buf, int len)
}
if (print_strings)
{
- printf("\n ");
+ printf("\n+++ ");
for ( i = baseidx; i < count;i++)
{
if (i % 4 == 0)
@@ -312,7 +318,7 @@ static int printError(unsigned char errorNb)
if ( msg->result == errorNb )
{
if (debugD4)
- printf("%s\n", msg->message);
+ printf("+++ %s\n", msg->message);
return msg->errorClass;
}
msg++;
@@ -333,6 +339,7 @@ static int printError(unsigned char errorNb)
static void printCmdType(unsigned char *cmd)
{
+ printf("+++");
if (cmd[6] & 0x80)
printf(">>>");
if ( cmd[0] == 0 && cmd[1] == 0 )
@@ -420,15 +427,15 @@ static int writeCmd(int fd, unsigned char *cmd, int len)
i += w;
}
+# if PTIME
if ( debugD4 )
{
-# if PTIME
gettimeofday(&end, NULL);
dt = (end.tv_sec - beg.tv_sec) * 1000000;
dt += end.tv_usec - beg.tv_usec;
- printf("Write time %5.3f s\n",(double)dt/1000000);
-# endif
+ printf("+++Write time %5.3f s\n",(double)dt/1000000);
}
+# endif
if ( timeoutGot )
return -1;
@@ -469,7 +476,7 @@ int readAnswer(int fd, unsigned char *buf, int len, int allowExtra)
gettimeofday(&beg, NULL);
if (debugD4)
- printf("length: %i\n", len);
+ printf("+++length: %i\n", len);
while ( total < len )
{
SET_TIMER(ti,oti, d4RdTimeout);
@@ -478,7 +485,7 @@ int readAnswer(int fd, unsigned char *buf, int len, int allowExtra)
{
if (first_read)
{
- printf("read: ");
+ printf("+++read: ");
first_read = 0;
}
if (rd < 0)
@@ -498,7 +505,7 @@ int readAnswer(int fd, unsigned char *buf, int len, int allowExtra)
if ( dt > d4RdTimeout * 2 )
{
if ( debugD4 )
- printf("Timeout 1 at readAnswer() rcv %d bytes\n",total);
+ printf("\n+++Timeout 1 at readAnswer() rcv %d bytes",total);
timeoutGot = 1;
break;
}
@@ -523,20 +530,22 @@ int readAnswer(int fd, unsigned char *buf, int len, int allowExtra)
if (len > newlen)
{
if (debugD4)
- printf("Changing len from %d to %d\n", len, newlen);
+ printf("\n+++Changing len from %d to %d", len, newlen);
len = newlen;
}
else if (len < newlen)
{
excess = newlen - len;
if (debugD4)
- printf("Expected %d, getting %d, %sflushing %d\n",
+ printf("\n+++Expected %d, getting %d, %sflushing %d",
len, newlen, allowExtra ? "not " : "", excess);
}
}
}
usleep(d4RdTimeout);
}
+ if (debugD4)
+ printf("\n");
if (! allowExtra)
{
int retry_count = 0;
@@ -567,18 +576,18 @@ int readAnswer(int fd, unsigned char *buf, int len, int allowExtra)
# if PTIME
gettimeofday(&end, NULL);
# endif
- printf("total: %i\n", total);
+ printf("+++total: %i\n", total);
printHexValues("Recv: ",buf,total);
# if PTIME
dt = (end.tv_sec - beg.tv_sec) * 1000000;
dt += end.tv_usec - beg.tv_usec;
- printf("Read time %5.3f s\n",(double)dt/1000000);
+ printf("+++Read time %5.3f s\n",(double)dt/1000000);
# endif
}
if ( timeoutGot )
{
if ( debugD4 )
- printf("Timeout 2 at readAnswer()\n");
+ printf("+++Timeout 2 at readAnswer()\n");
return -1;
}
return total;
@@ -601,14 +610,14 @@ static void _flushData(int fd)
errno = 0;
if (debugD4)
- printf("flush data: length: %i\n", len);
+ printf("+++flush data: length: %i\n", len);
do
{
usleep(d4RdTimeout);
SET_TIMER(ti,oti, d4RdTimeout);
rd = read(fd, buf, len);
if (debugD4)
- printf("flush: read: %i %s\n", rd,
+ printf("+++flush: read: %i %s\n", rd,
rd < 0 && errno != 0 ?strerror(errno) : "");
RESET_TIMER(ti,oti);
count--;
@@ -655,7 +664,7 @@ static int _readData(int fd, unsigned char *buf, int len)
if ( dt > d4RdTimeout*3 )
{
if ( debugD4 )
- printf("Timeout at _readData(), dt = %ld ms\n", dt);
+ printf("+++Timeout at _readData(), dt = %ld ms\n", dt);
return -1;
break;
}
@@ -674,7 +683,7 @@ static int _readData(int fd, unsigned char *buf, int len)
{
toGet = (header[2] >> 8) + header[3] - 6;
if (debugD4)
- printf("toGet: %i\n", toGet);
+ printf("+++toGet: %i\n", toGet);
total = 0;
gettimeofday(&beg, NULL);
while ( total < toGet )
@@ -690,7 +699,7 @@ static int _readData(int fd, unsigned char *buf, int len)
if ( dt > d4RdTimeout*3 )
{
if ( debugD4 )
- printf("Timeout at _readData(), dt = %ld ms\n",dt);
+ printf("+++Timeout at _readData(), dt = %ld ms\n",dt);
return -1;
break;
}
@@ -739,7 +748,7 @@ static int sendReceiveCmd(int fd, unsigned char *cmd, int len, unsigned char *an
{
/* interrupted write call */
if ( debugD4 )
- printf("interrupt received\n");
+ printf("+++interrupt received\n");
return -1;
}
else
@@ -797,13 +806,13 @@ Loop:
{
/* no answer from device */
if (debugD4)
- printf(">>>No answer from printer\n");
+ printf("+++>>>No answer from printer\n");
return 0;
}
else if ( rd < 0 )
{
if (debugD4)
- printf(">>>Interrupted write\n");
+ printf("+++>>>Interrupted write\n");
/* interrupted write call */
return 0;
}
@@ -953,11 +962,11 @@ int OpenChannel(int fd, unsigned char sockId, int *sndSz, int *rcvSz)
if ( rd == -1 )
{
if (debugD4)
- printf("OpenChannel %d fails, error %d\n", sockId, d4Errno);
+ printf("+++OpenChannel %d fails, error %d\n", sockId, d4Errno);
if (d4Errno == 6) /* channel already open */
{
if ( debugD4 )
- printf("Channel %d already open, closing\n", sockId);
+ printf("+++Channel %d already open, closing\n", sockId);
CloseChannel(fd, sockId);
continue;
}
@@ -974,7 +983,7 @@ int OpenChannel(int fd, unsigned char sockId, int *sndSz, int *rcvSz)
else if ( buf[7] != 0 )
{
if (debugD4)
- printf("OpenChannel %d fails, hard error\n", sockId);
+ printf("+++OpenChannel %d fails, hard error\n", sockId);
/* hard error */
return -1;
}
@@ -987,13 +996,13 @@ int OpenChannel(int fd, unsigned char sockId, int *sndSz, int *rcvSz)
if (d4Errno == 6) /* channel already open */
{
if ( debugD4 )
- printf("Channel %d already open, closing\n", sockId);
+ printf("+++Channel %d already open, closing\n", sockId);
CloseChannel(fd, sockId);
continue;
}
/* at this stage we can only have an error */
if (debugD4)
- printf("OpenChannel %d fails, wrong count %d\n", sockId, rd);
+ printf("+++OpenChannel %d fails, wrong count %d\n", sockId, rd);
return -1;
}
}
@@ -1150,7 +1159,7 @@ int askForCredit(int fd, unsigned char socketID, int *sndSize, int *rcvSize)
if ( Init(fd) )
{
if (debugD4)
- printf("askForCredit init succeeded, now try to open\n");
+ printf("+++askForCredit init succeeded, now try to open\n");
OpenChannel(fd, socketID, sndSize, rcvSize);
}
}
@@ -1187,7 +1196,7 @@ int writeData(int fd, unsigned char socketID, const unsigned char *buf, int len,
static int bLen = 0;
if ( debugD4 )
{
- printf("--- Send Data ---\n");
+ printf("+++--- Send Data ---\n");
gettimeofday(&beg, NULL);
}
len += 6;
@@ -1232,15 +1241,15 @@ int writeData(int fd, unsigned char socketID, const unsigned char *buf, int len,
dt = (end.tv_sec - beg.tv_sec) * 1000000;
dt += end.tv_usec - beg.tv_usec;
# endif
- printf("Send: ");
+ printf("+++Send: ");
for ( ret = 0; (wr > 0) && (ret < ((wr > 20) ? 20 : wr)) ; ret++ )
printf("%02x ", buffer[ret]);
- printf("\n ");
+ printf("\n+++ ");
for ( ret = 0; (wr > 0) && (ret < ((wr > 20) ? 20 : wr)) ; ret++ )
printf("%c ", isprint(buffer[ret])&&!isspace(buffer[ret])?buffer[ret]:' ');
printf("\n");
# if PTIME
- printf("Write time %5.3f s\n",(double)dt/1000000);
+ printf("+++Write time %5.3f s\n",(double)dt/1000000);
# endif
}
@@ -1350,7 +1359,7 @@ int writeAndReadData(int fd, unsigned char socketID,
void flushData(int fd, unsigned char socketID)
{
if (debugD4)
- printf("flushData %d\n", socketID);
+ printf("+++flushData %d\n", socketID);
/* give credit */
if (socketID != (unsigned char) -1)
{
diff --git a/src/escputil/escputil.c b/src/escputil/escputil.c
index ffe4d19..2abec6e 100644
--- a/src/escputil/escputil.c
+++ b/src/escputil/escputil.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escputil.c,v 1.104 2010/12/11 22:04:07 rlk Exp $"
+ * "$Id: escputil.c,v 1.108 2012/01/19 13:26:57 m0m Exp $"
*
* Printer maintenance utility for EPSON Stylus (R) printers
*
@@ -264,7 +264,7 @@ exit_packet_mode_old(int do_init)
{
static char hdr[] = "\000\000\000\033\001@EJL 1284.4\n@EJL \n\033@";
memcpy(printer_cmd + bufpos, hdr, sizeof(hdr) - 1); /* DON'T include null! */
- STP_DEBUG(printf("Exit packet mode (%d)\n", do_init));
+ STP_DEBUG(printf("***Exit packet mode (%d)\n", do_init));
bufpos += sizeof(hdr) - 1;
if (!do_init)
bufpos -= 2;
@@ -274,7 +274,7 @@ static void
initialize_print_cmd(int do_init)
{
bufpos = 0;
- STP_DEBUG(printf("Initialize print command\n"));
+ STP_DEBUG(printf("***Initialize print command\n"));
if (isnew)
exit_packet_mode_old(do_init);
}
@@ -283,7 +283,7 @@ static void
initialize_print_cmd_new(int do_init)
{
bufpos = 0;
- STP_DEBUG(printf("Initialize print command (force new)\n"));
+ STP_DEBUG(printf("***Initialize print command (force new)\n"));
exit_packet_mode_old(do_init);
}
@@ -445,7 +445,7 @@ print_debug_data(const char *buf, size_t count)
for (i = 0; i < count; i++)
{
if (i % 16 == 0)
- printf("\n%4d: ", i);
+ printf("\n***%4d: ", i);
else if (i % 4 == 0)
printf(" ");
if (isgraph(buf[i]))
@@ -498,7 +498,7 @@ do_print_cmd(void)
return 1;
}
}
- STP_DEBUG(printf("Sending print command to %s:",
+ STP_DEBUG(printf("***Sending print command to %s:",
raw_device ? raw_device : command));
STP_DEBUG(print_debug_data(printer_cmd, bufpos));
while (bytes < bufpos)
@@ -573,7 +573,7 @@ read_from_printer(int fd, char *buf, int bufsize, int quiet)
if (status > 0)
{
- STP_DEBUG(printf("read_from_printer returns %d\n", status));
+ STP_DEBUG(printf("***read_from_printer returns %d\n", status));
STP_DEBUG(print_debug_data(buf, status));
}
else if (status == 0 && retry == 0)
@@ -596,7 +596,7 @@ start_remote_sequence(void)
static char remote_hdr[] = "\033@\033(R\010\000\000REMOTE1";
memcpy(printer_cmd + bufpos, remote_hdr, sizeof(remote_hdr) - 1);
bufpos += sizeof(remote_hdr) - 1;
- STP_DEBUG(printf("Start remote sequence\n"));
+ STP_DEBUG(printf("***Start remote sequence\n"));
}
static void
@@ -605,7 +605,7 @@ end_remote_sequence(void)
static char remote_trailer[] = "\033\000\000\000\033\000";
memcpy(printer_cmd + bufpos, remote_trailer, sizeof(remote_trailer) - 1);
bufpos += sizeof(remote_trailer) - 1;
- STP_DEBUG(printf("End remote sequence\n"));
+ STP_DEBUG(printf("***End remote sequence\n"));
}
static void
@@ -617,7 +617,7 @@ do_remote_cmd(const char *cmd, int nargs, ...)
start_remote_sequence();
memcpy(printer_cmd + bufpos, cmd, 2);
- STP_DEBUG(printf("Remote command: %s", cmd));
+ STP_DEBUG(printf("***Remote command: %s", cmd));
bufpos += 2;
printer_cmd[bufpos] = nargs % 256;
printer_cmd[bufpos + 1] = (nargs >> 8) % 256;
@@ -634,6 +634,7 @@ do_remote_cmd(const char *cmd, int nargs, ...)
STP_DEBUG(printf("\n"));
bufpos += 2 + nargs;
end_remote_sequence();
+ va_end(args);
}
static void
@@ -644,7 +645,7 @@ do_remote_cmd_only(const char *cmd, int nargs, ...)
va_start(args, nargs);
memcpy(printer_cmd + bufpos, cmd, 2);
- STP_DEBUG(printf("Remote command: %s", cmd));
+ STP_DEBUG(printf("***Remote command: %s", cmd));
bufpos += 2;
printer_cmd[bufpos] = nargs % 256;
printer_cmd[bufpos + 1] = (nargs >> 8) % 256;
@@ -660,13 +661,14 @@ do_remote_cmd_only(const char *cmd, int nargs, ...)
}
STP_DEBUG(printf("\n"));
bufpos += 2 + nargs;
+ va_end(args);
}
static void
add_resets(int count)
{
int i;
- STP_DEBUG(printf("Add %d resets\n", count));
+ STP_DEBUG(printf("***Add %d resets\n", count));
for (i = 0; i < count; i++)
{
printer_cmd[bufpos++] = '\033';
@@ -674,7 +676,7 @@ add_resets(int count)
}
}
-static int
+static void
send_nulls(int fd)
{
char buf[16384];
@@ -687,35 +689,35 @@ init_packet(int fd, int force)
{
int status;
int tries = 0;
- STP_DEBUG(printf("Init packet mode %d\n", force));
+ STP_DEBUG(printf("***Init packet mode %d\n", force));
Loop:
if (!force)
{
- STP_DEBUG(printf("Flushing early data...\n"));
+ STP_DEBUG(printf("***Flushing early data...\n"));
flushData(fd, (unsigned char) -1);
}
- STP_DEBUG(printf("EnterIEEE...\n"));
+ STP_DEBUG(printf("***EnterIEEE...\n"));
if (!EnterIEEE(fd))
{
- STP_DEBUG(printf("EnterIEEE failed!\n"));
+ STP_DEBUG(printf("***EnterIEEE failed!\n"));
if (tries++ < 5)
{
- STP_DEBUG(printf("Retrying\n"));
+ STP_DEBUG(printf("***Retrying\n"));
send_nulls(fd);
flushData(fd, (unsigned char) -1);
goto Loop;
}
return 1;
}
- STP_DEBUG(printf("Init...\n"));
+ STP_DEBUG(printf("***Init...\n"));
if (!Init(fd))
{
- STP_DEBUG(printf("Init failed!\n"));
+ STP_DEBUG(printf("***Init failed!\n"));
if (tries++ < 5)
{
- STP_DEBUG(printf("Retrying\n"));
+ STP_DEBUG(printf("***Retrying\n"));
send_nulls(fd);
flushData(fd, (unsigned char) -1);
goto Loop;
@@ -723,28 +725,28 @@ init_packet(int fd, int force)
return 1;
}
- STP_DEBUG(printf("GetSocket...\n"));
+ STP_DEBUG(printf("***GetSocket...\n"));
socket_id = GetSocketID(fd, "EPSON-CTRL");
if (!socket_id)
{
- STP_DEBUG(printf("GetSocket failed!\n"));
+ STP_DEBUG(printf("***GetSocket failed!\n"));
return 1;
}
- STP_DEBUG(printf("OpenChannel...\n"));
+ STP_DEBUG(printf("***OpenChannel...\n"));
switch ( OpenChannel(fd, socket_id, &send_size, &receive_size) )
{
case -1:
- STP_DEBUG(printf("Fatal Error return 1\n"));
+ STP_DEBUG(printf("***Fatal Error return 1\n"));
return 1; /* unrecoverable error */
break;
case 0:
- STP_DEBUG(printf("Error\n")); /* recoverable error ? */
+ STP_DEBUG(printf("***Error\n")); /* recoverable error ? */
return 1;
break;
}
status = 1;
- STP_DEBUG(printf("Flushing data...\n"));
+ STP_DEBUG(printf("***Flushing data...\n"));
flushData(fd, socket_id);
return 0;
}
@@ -813,7 +815,7 @@ set_printer_model(void)
if (desc.p_type == STP_PARAMETER_TYPE_BOOLEAN)
interchangeable_inks = desc.deflt.boolean;
stp_parameter_description_destroy(&desc);
- STP_DEBUG(printf("Found it! %s\n", printer_model));
+ STP_DEBUG(printf("***Found it! %s\n", printer_model));
return;
}
}
@@ -870,14 +872,14 @@ initialize_printer(int quiet, int fail_if_not_found)
status = SafeWrite(fd, init_str, sizeof(init_str) - 1);
alarm(0);
signal(SIGALRM, SIG_DFL);
- STP_DEBUG(printf("status %d alarm %d\n", status, alarm_interrupt));
+ STP_DEBUG(printf("***status %d alarm %d\n", status, alarm_interrupt));
if (status != sizeof(init_str) - 1 && (status != -1 || !alarm_interrupt))
{
fprintf(stderr, _("Cannot write to %s: %s\n"), raw_device,
strerror(errno));
exit(1);
}
- STP_DEBUG(printf("Try old command %d alarm %d\n",
+ STP_DEBUG(printf("***Try old command %d alarm %d\n",
tries, alarm_interrupt));
status = read_from_printer(fd, (char*)buf, 1024, 1);
if (status <= 0 && tries > 0)
@@ -888,7 +890,7 @@ initialize_printer(int quiet, int fail_if_not_found)
if (!forced_packet_mode &&
status > 0 && !strstr((char *) buf, "@EJL ID") && tries < 3)
{
- STP_DEBUG(printf("Found bad data: %s\n", buf));
+ STP_DEBUG(printf("***Found bad data: %s\n", buf));
/*
* We know the printer's not dead. Try to turn off status
* and try again.
@@ -914,7 +916,7 @@ initialize_printer(int quiet, int fail_if_not_found)
(void) SafeWrite(fd, printer_cmd, bufpos);
flushData(fd, (unsigned char) -1);
forced_packet_mode = !init_packet(fd, 1);
- STP_DEBUG(printf("Printer in packet mode....\n"));
+ STP_DEBUG(printf("***Printer in packet mode....\n"));
packet_initialized = 1;
isnew = 1;
/* request status command */
@@ -930,24 +932,38 @@ initialize_printer(int quiet, int fail_if_not_found)
return NULL;
}
}
- STP_DEBUG(printf("status: %i\n", status));
- STP_DEBUG(printf("Buf: %s\n", buf));
+ STP_DEBUG(printf("***status: %i\n", status));
+ STP_DEBUG(printf("***Buf: %s\n", buf));
if (status > 0)
{
+ char *xpos;
pos = strstr((char*)buf, "@EJL ID");
- STP_DEBUG(printf("pos: %s\n", pos ? pos : "(null)"));
- if (pos)
- pos = strchr(pos, (int) ';');
- STP_DEBUG(printf("pos: %s\n", pos ? pos : "(null)"));
- if (pos)
- pos = strchr(pos + 1, (int) ';');
- STP_DEBUG(printf("pos: %s\n", pos ? pos : "(null)"));
- if (pos)
- pos = strchr(pos, (int) ':');
- STP_DEBUG(printf("pos: %s\n", pos ? pos : "(null)"));
+ STP_DEBUG(printf("***pos: %s\n", pos ? pos : "(null)"));
if (pos)
{
- spos = strchr(pos, (int) ';');
+ if (((xpos = strstr((char *)pos, "MDL:")) != NULL) ||
+ ((xpos = strstr((char *)pos, "DES:")) != NULL))
+ {
+ STP_DEBUG(printf("***xpos: %s\n", xpos ? xpos : "(null)"));
+ pos = xpos + 4;
+ STP_DEBUG(printf("***pos: %s\n", pos ? pos : "(null)"));
+ }
+ else
+ {
+ if (pos)
+ pos = strchr(pos, (int) ';');
+ STP_DEBUG(printf("***pos: %s\n", pos ? pos : "(null)"));
+ if (pos)
+ pos = strchr(pos + 1, (int) ';');
+ STP_DEBUG(printf("***pos: %s\n", pos ? pos : "(null)"));
+ if (pos)
+ pos = strchr(pos, (int) ':');
+ STP_DEBUG(printf("***pos: %s\n", pos ? pos : "(null)"));
+ if (pos)
+ pos++;
+ }
+ if (pos)
+ spos = strchr(pos, (int) ';');
}
if (!pos)
{
@@ -972,12 +988,12 @@ initialize_printer(int quiet, int fail_if_not_found)
* However, make it clear that this is a dummy,
* so we don't actually try to print it out.
*/
- STP_DEBUG(printf("Can't find printer name, assuming Stylus Photo\n"));
+ STP_DEBUG(printf("***Can't find printer name, assuming Stylus Photo\n"));
printer_model = c_strdup("escp2-photo");
}
else
{
- STP_DEBUG(printf("Can't get response to @EJL ID\n"));
+ STP_DEBUG(printf("***Can't get response to @EJL ID\n"));
close(fd);
return NULL;
}
@@ -986,8 +1002,8 @@ initialize_printer(int quiet, int fail_if_not_found)
{
if (spos)
*spos = '\000';
- printer_model = pos + 1;
- STP_DEBUG(printf("printer model: %s\n", printer_model));
+ printer_model = pos;
+ STP_DEBUG(printf("***printer model: %s\n", printer_model));
}
}
}
@@ -1000,7 +1016,7 @@ initialize_printer(int quiet, int fail_if_not_found)
}
close(fd);
- STP_DEBUG(printf("new? %s\n", isnew ? "yes" : "no"));
+ STP_DEBUG(printf("***new? %s\n", isnew ? "yes" : "no"));
return the_printer_t;
}
@@ -1013,7 +1029,7 @@ get_printer(int quiet, int fail_if_not_found)
{
const stp_printer_t *printer =
initialize_printer(quiet, fail_if_not_found);
- STP_DEBUG(printf("init done, printer found? %s...\n",
+ STP_DEBUG(printf("***init done, printer found? %s...\n",
printer ? "yes" : "no"));
return printer;
}
@@ -1303,7 +1319,7 @@ do_old_status(status_cmd_t cmd, const char *buf, const stp_printer_t *printer)
if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
{
color_list = stp_string_list_create_copy(desc.bounds.str);
- STP_DEBUG(printf("Using color list from driver (%ld %ld)\n",
+ STP_DEBUG(printf("***Using color list from driver (%ld %ld)\n",
(long)stp_string_list_count(desc.bounds.str),
(long)stp_string_list_count(color_list)));
stp_parameter_description_destroy(&desc);
@@ -1327,7 +1343,7 @@ do_old_status(status_cmd_t cmd, const char *buf, const stp_printer_t *printer)
if (cmd == CMD_STATUS)
printf("\n");
}
- STP_DEBUG(printf("looking at %s\n", buf));
+ STP_DEBUG(printf("***looking at %s\n", buf));
} while ((buf = find_group(buf)) != NULL);
}
@@ -1340,11 +1356,16 @@ do_new_status(status_cmd_t cmd, char *buf, int bytes,
const char *ind;
const stp_string_list_t *color_list = NULL;
stp_parameter_t desc;
- const stp_vars_t *printvars = stp_printer_get_defaults(printer);
- stp_describe_parameter(printvars, "ChannelNames", &desc);
- if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
- color_list = desc.bounds.str;
- STP_DEBUG(printf("New format bytes: %d bytes\n", bytes));
+
+ const stp_vars_t *printvars = NULL;
+ if (printer)
+ {
+ printvars = stp_printer_get_defaults(printer);
+ stp_describe_parameter(printvars, "ChannelNames", &desc);
+ if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
+ color_list = desc.bounds.str;
+ }
+ STP_DEBUG(printf("***New format bytes: %d bytes\n", bytes));
if (cmd == CMD_STATUS)
printf(_("Printer Name: %s\n"),
printer ? stp_printer_get_long_name(printer) : _("Unknown"));
@@ -1353,7 +1374,7 @@ do_new_status(status_cmd_t cmd, char *buf, int bytes,
unsigned hdr = buf[i];
unsigned total_param_count = buf[i + 1];
unsigned param = buf[i + 2];
- STP_DEBUG(printf("Header: %x param count: %d\n", hdr, total_param_count));
+ STP_DEBUG(printf("***Header: %x param count: %d\n", hdr, total_param_count));
if (hdr == 0x0f) /* Always report ink */
{
size_t count = (total_param_count - 1) / param;
@@ -1363,26 +1384,26 @@ do_new_status(status_cmd_t cmd, char *buf, int bytes,
printf("%20s %20s\n", _("Ink color"), _("Percent remaining"));
for (j = 0; j < count; j++)
{
- STP_DEBUG(printf(" Ink %d: ind[0] %d ind[1] %d ind[2] %d interchangeable %d param %d count %d aux %d\n",
+ STP_DEBUG(printf("*** Ink %d: ind[0] %d ind[1] %d ind[2] %d interchangeable %d param %d count %d aux %d\n",
j, ind[0], ind[1], ind[2], interchangeable_inks,
param, color_count, aux_color_count));
if (ind[0] < color_count && param == 3 /* &&
(interchangeable_inks || ind[1] >= aux_color_count ||
! aux_colors[(int) ind[1]]) */)
{
- STP_DEBUG(printf("Case 0\n"));
+ STP_DEBUG(printf("***Case 0\n"));
printf("%20s %20d\n",
gettext(colors_new[(int) ind[0]]), ind[2]);
}
else if (ind[1] < aux_color_count && aux_colors[(int) ind[1]])
{
- STP_DEBUG(printf("Case 1\n"));
+ STP_DEBUG(printf("***Case 1\n"));
printf("%20s %20d\n",
gettext(aux_colors[(int) ind[1]]), ind[2]);
}
else
{
- STP_DEBUG(printf("Case 2\n"));
+ STP_DEBUG(printf("***Case 2\n"));
printf("%8s 0x%02x 0x%02x %20d\n",
_("Unknown"), (unsigned char) ind[0],
(unsigned char) ind[1], ind[2]);
@@ -1428,7 +1449,8 @@ do_new_status(status_cmd_t cmd, char *buf, int bytes,
}
i += total_param_count + 2;
}
- stp_parameter_description_destroy(&desc);
+ if (printer)
+ stp_parameter_description_destroy(&desc);
exit(0);
}
@@ -1457,10 +1479,10 @@ do_status_command_internal(status_cmd_t cmd)
exit(1);
}
- STP_DEBUG(printf("%s...\n", cmd_name));
+ STP_DEBUG(printf("***%s...\n", cmd_name));
printer = get_printer(1, 0);
if (!found_unknown_old_printer)
- STP_DEBUG(printf("%s found %s%s\n", gettext(cmd_name),
+ STP_DEBUG(printf("***%s found %s%s\n", gettext(cmd_name),
printer ? stp_printer_get_long_name(printer) :
printer_model ? printer_model : "(null)",
printer ? "" : "(Unknown model)"));
@@ -1561,7 +1583,7 @@ do_extended_ink_info(int extended_output)
if (printer && desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
{
- STP_DEBUG(printf("Using color list from driver (%ld %ld)\n",
+ STP_DEBUG(printf("***Using color list from driver (%ld %ld)\n",
(long)stp_string_list_count(desc.bounds.str),
(long)stp_string_list_count(color_list)));
color_list = stp_string_list_create_copy(desc.bounds.str);
@@ -1590,7 +1612,7 @@ do_extended_ink_info(int extended_output)
buf[status] = '\0';
if ( buf[7] == '2' )
{
- STP_DEBUG(printf("New format ink!\n"));
+ STP_DEBUG(printf("***New format ink!\n"));
/* new binary format ! */
i = 10;
while (buf[i] != 0x0f && i < status)
@@ -1601,7 +1623,7 @@ do_extended_ink_info(int extended_output)
{
if (ind[i] < color_count)
{
- STP_DEBUG(printf(" Case 0: Ink %d %d (%s)\n",
+ STP_DEBUG(printf("*** Case 0: Ink %d %d (%s)\n",
i, ind[i], colors_new[(int) ind[i]]));
stp_string_list_add_string(color_list,
colors_new[(int) ind[i]],
@@ -1609,7 +1631,7 @@ do_extended_ink_info(int extended_output)
}
else if (ind[i] == 0x40 && ind[i + 1] < aux_color_count)
{
- STP_DEBUG(printf(" Case 1: Ink %d %d (%s)\n",
+ STP_DEBUG(printf("*** Case 1: Ink %d %d (%s)\n",
i, ind[i+1], aux_colors[(int) ind[i+1]]));
stp_string_list_add_string(color_list,
aux_colors[(int) ind[i + 1]],
@@ -1617,14 +1639,14 @@ do_extended_ink_info(int extended_output)
}
else
{
- STP_DEBUG(printf(" Case 2: Unknown\n"));
+ STP_DEBUG(printf("*** Case 2: Unknown\n"));
stp_string_list_add_string(color_list, "Unknown",
"Unknown");
}
i+=3;
}
}
- STP_DEBUG(printf("Using color list from status message\n"));
+ STP_DEBUG(printf("***Using color list from status message\n"));
}
for (i = 0; i < stp_string_list_count(color_list); i++)
@@ -1643,7 +1665,7 @@ do_extended_ink_info(int extended_output)
ind = strchr(buf, 'I');
if (!ind)
{
- STP_DEBUG(printf("Case 0: failure %i (%s)\n", i, buf));
+ STP_DEBUG(printf("***Case 0: failure %i (%s)\n", i, buf));
printf("Cannot identify cartridge in slot %d\n", i);
}
else if (sscanf(ind,
@@ -1658,7 +1680,7 @@ do_extended_ink_info(int extended_output)
&year2, &month2, &id2) == 12)
{
int j;
- STP_DEBUG(printf("Case 1: i %i iv %ud %ud %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
+ STP_DEBUG(printf("***Case 1: i %i iv %ud %ud %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
i, iv[0], iv[1], iv[2], iv[3], iv[4], iv[5],
year, year2, month, month2, id, id2));
printf("%20s %20s %12s %7s\n",
@@ -1685,7 +1707,7 @@ do_extended_ink_info(int extended_output)
&year2, &month2, &id2) == 10)
{
int j;
- STP_DEBUG(printf("Case 2: i %i iv %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
+ STP_DEBUG(printf("***Case 2: i %i iv %ud %ud %ud %ud year %ud %ud mo %ud %ud id %ud %ud\n",
i, iv[0], iv[1], iv[2], iv[3],
year, year2, month, month2, id, id2));
printf("%20s %20s %12s %7s\n",
@@ -1707,7 +1729,7 @@ do_extended_ink_info(int extended_output)
"II:01;IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
&val, &year, &month, &id ) == 4)
{
- STP_DEBUG(printf("Case 3: i %i val %ud year %ud mo %ud id %ud\n",
+ STP_DEBUG(printf("***Case 3: i %i val %ud year %ud mo %ud id %ud\n",
i, val, year, month, id));
if (i == 0)
printf("%20s %20s %12s %7s\n",
@@ -1724,7 +1746,7 @@ do_extended_ink_info(int extended_output)
"IQT:%x;TSH:%*4s;PDY:%x;PDM:%x;IC1:%x;IC2:%*x;IK1:%*x;IK2:%*x;TOV:%*x;TVU:%*x;LOG:INKbyEPSON;",
&val, &year, &month, &id ) == 4)
{
- STP_DEBUG(printf("Case 4: i %i val %ud year %ud mo %ud id %ud\n",
+ STP_DEBUG(printf("***Case 4: i %i val %ud year %ud mo %ud id %ud\n",
i, val, year, month, id));
if (i == 0)
printf("%20s %20s %12s %7s\n",
@@ -1736,7 +1758,7 @@ do_extended_ink_info(int extended_output)
}
else
{
- STP_DEBUG(printf("Case 5: failure %i (%s)\n", i, ind));
+ STP_DEBUG(printf("***Case 5: failure %i (%s)\n", i, ind));
printf("Cannot identify cartridge in slot %d\n", i);
}
}
diff --git a/src/foomatic/Makefile.am b/src/foomatic/Makefile.am
index fc5880d..bc5666d 100644
--- a/src/foomatic/Makefile.am
+++ b/src/foomatic/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.53 2010/08/07 02:30:38 rlk Exp $
+## $Id: Makefile.am,v 1.56 2011/12/24 02:10:46 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -91,12 +91,12 @@ install-kit:
fi
clean-local:
- -$(RM) -r foomatic-db
+ -$(RM) -rf foomatic-db
foomatic-data: foomatic-stamp
foomatic-stamp: foomatic-generator $(noinst_PROGRAMS) mk_printerlist $(top_builddir)/src/xml/xml-stamp
- -$(RM) -r foomatic-db
+ -$(RM) -rf foomatic-db
$(FOOMATIC_GENERATOR) -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS)
$(FOOMATIC_GENERATOR) -s -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS)
touch foomatic-stamp
diff --git a/src/foomatic/Makefile.in b/src/foomatic/Makefile.in
index a1f28f3..74f9922 100644
--- a/src/foomatic/Makefile.in
+++ b/src/foomatic/Makefile.in
@@ -130,6 +130,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -206,6 +207,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -226,6 +228,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -249,6 +253,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -295,7 +300,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -674,12 +678,12 @@ install-kit:
fi
clean-local:
- -$(RM) -r foomatic-db
+ -$(RM) -rf foomatic-db
foomatic-data: foomatic-stamp
foomatic-stamp: foomatic-generator $(noinst_PROGRAMS) mk_printerlist $(top_builddir)/src/xml/xml-stamp
- -$(RM) -r foomatic-db
+ -$(RM) -rf foomatic-db
$(FOOMATIC_GENERATOR) -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS)
$(FOOMATIC_GENERATOR) -s -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS)
touch foomatic-stamp
diff --git a/src/foomatic/foomatic-generator.in b/src/foomatic/foomatic-generator.in
index 69a8e7e..626bc9c 100644
--- a/src/foomatic/foomatic-generator.in
+++ b/src/foomatic/foomatic-generator.in
@@ -89,8 +89,6 @@ my @parameter_level_names = (
my $option_remap = "";
my $opt_index = 0;
-use Data::Dumper;
-
if (! $opt_x) {
open PIPE, "./printer_options $simplified_subopt|" or die "Cannot run printer_options: $!\n";
print STDERR "Loading options from ./printer_options $simplified_subopt...";
@@ -1284,21 +1282,36 @@ sub qualityorder {
"dpi_high2",
"dpi_high3",
"dpi_high4",
+ "dpi_high5",
"dpi_highmono",
"dpi_highmono2",
+ "dpi_highmono3",
+ "dpi_highmono4",
+ "dpi_highmono5",
"dpi_mono",
+ "dpi_mono2",
+ "dpi_mono3",
+ "dpi_mono4",
+ "dpi_mono5",
"dpi_draft",
"dpi_draft2",
"dpi_draft3",
+ "dpi_draft4",
+ "dpi_draft5",
"dpi_std2",
"dpi_std3",
+ "dpi_std4",
+ "dpi_std5",
"dpi_draftmono",
"dpi_draftmono2",
- "dpi_glossphotohigh",
+ "dpi_draftmono3",
+ "dpi_draftmono4",
+ "dpi_draftmono5",
"dpi_photohigh",
"dpi_photohigh2",
"dpi_photohigh3",
"dpi_photohigh4",
+ "dpi_photohigh5",
"dpi_tshirt",
"dpi_photomed",
"dpi_photomed2",
@@ -1306,13 +1319,19 @@ sub qualityorder {
"dpi_photo2",
"dpi_photo3",
"dpi_photo4",
+ "dpi_photo5",
"dpi_photodraft",
"dpi_photodraft2",
"dpi_photodraft3",
+ "dpi_photodraft4",
+ "dpi_photodraft5",
"dpi_photomonohigh",
+ "dpi_photomonohigh2",
"dpi_photomonomed",
"dpi_photomono",
+ "dpi_photomono2",
"dpi_photomonodraft",
+ "dpi_photomonodraft2",
"dpi_ohphigh",
"dpi_ohp"
);
diff --git a/src/foomatic/foomatic-templates-ijs/gutenprint.xml b/src/foomatic/foomatic-templates-ijs/gutenprint.xml
index 399dd8d..040ccf6 100644
--- a/src/foomatic/foomatic-templates-ijs/gutenprint.xml
+++ b/src/foomatic/foomatic-templates-ijs/gutenprint.xml
@@ -3,7 +3,7 @@
<url>http://gimp-print.sourceforge.net/</url>
<execution>
<filter />
- <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=ijs -sIjsServer=ijsgutenprint.@@STPREL@@ -dIjsUseOutputFD%A -sIjsParams=&quot;@@REMAP@@STP_VERSION=@@STPVER@@,%B&quot;%Z -sOutputFile=- -</prototype>
+ <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOINTERPOLATE -sDEVICE=ijs -sIjsServer=ijsgutenprint.@@STPREL@@ -dIjsUseOutputFD%A -sIjsParams=&quot;@@REMAP@@STP_VERSION=@@STPVER@@,%B&quot;%Z -sOutputFile=- -</prototype>
</execution>
<comments>
<en>
diff --git a/src/foomatic/printer_options.c b/src/foomatic/printer_options.c
index a5b4c45..331d32e 100644
--- a/src/foomatic/printer_options.c
+++ b/src/foomatic/printer_options.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printer_options.c,v 1.52 2007/05/06 19:38:10 rlk Exp $"
+ * "$Id: printer_options.c,v 1.53 2012/05/26 15:57:35 rlk Exp $"
*
* Dump the per-printer options for the OpenPrinting database
*
@@ -186,6 +186,7 @@ main(int argc, char **argv)
printf("$$x_t{'%s'} = '%d';",param->name, x);
printf("$$y_t{'%s'} = '%d';",param->name, y);
}
+ stp_clear_string_parameter(pv, "Resolution");
}
}
printf("}\n");
diff --git a/src/ghost/Makefile.in b/src/ghost/Makefile.in
index 52ec7dd..38c9823 100644
--- a/src/ghost/Makefile.in
+++ b/src/ghost/Makefile.in
@@ -121,6 +121,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -197,6 +198,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -217,6 +219,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -240,6 +244,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -286,7 +291,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/gimp2/Makefile.in b/src/gimp2/Makefile.in
index f059394..9228e74 100644
--- a/src/gimp2/Makefile.in
+++ b/src/gimp2/Makefile.in
@@ -115,6 +115,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -191,6 +192,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -211,6 +213,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -234,6 +238,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -280,7 +285,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/gimp2/print.c b/src/gimp2/print.c
index dd76d83..65e8015 100644
--- a/src/gimp2/print.c
+++ b/src/gimp2/print.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print.c,v 1.8 2006/07/04 02:57:59 rlk Exp $"
+ * "$Id: print.c,v 1.9 2012/01/19 13:25:51 m0m Exp $"
*
* Print plug-in for the GIMP.
*
@@ -295,6 +295,7 @@ run (const char *name, /* I - Name of print program. */
case 0:
default:
stp_set_string_parameter(gimp_vars.v, "PrintingMode", "BW");
+ break;
case 1:
stp_set_string_parameter(gimp_vars.v, "PrintingMode", "Color");
}
diff --git a/src/gutenprintui2/Makefile.in b/src/gutenprintui2/Makefile.in
index 122ba64..e5fb61f 100644
--- a/src/gutenprintui2/Makefile.in
+++ b/src/gutenprintui2/Makefile.in
@@ -155,6 +155,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -231,6 +232,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -251,6 +253,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -274,6 +278,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -320,7 +325,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/gutenprintui2/printrcl.c b/src/gutenprintui2/printrcl.c
index 9e47848..088e296 100644
--- a/src/gutenprintui2/printrcl.c
+++ b/src/gutenprintui2/printrcl.c
@@ -717,7 +717,7 @@ int yy_flex_debug = 0;
char *yytext;
#line 1 "printrcl.l"
/* -*-Mode: C-*-
- * "$Id: printrcl.l,v 1.1 2004/09/17 18:38:14 rleigh Exp $"
+ * "$Id: printrcl.l,v 1.2 2012/05/11 13:16:12 rlk Exp $"
*
* printrc parser
*
@@ -756,6 +756,8 @@ char *yytext;
int mylineno = 1;
+extern YYSTYPE yylval;
+
#define DBG(x) \
do \
{ \
@@ -774,7 +776,7 @@ q_strdup(const char *s)
return g_strndup(s + 1, strlen(s) - 2);
}
-#line 778 "printrcl.c"
+#line 780 "printrcl.c"
#define INITIAL 0
@@ -956,10 +958,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 73 "printrcl.l"
+#line 75 "printrcl.l"
-#line 963 "printrcl.c"
+#line 965 "printrcl.c"
if ( !(yy_init) )
{
@@ -1044,208 +1046,208 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 75 "printrcl.l"
+#line 77 "printrcl.l"
DBG(CURRENT_PRINTER); return CURRENT_PRINTER;
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 76 "printrcl.l"
+#line 78 "printrcl.l"
DBG(SHOW_ALL_PAPER_SIZES); return SHOW_ALL_PAPER_SIZES;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 77 "printrcl.l"
+#line 79 "printrcl.l"
DBG(PRINTER); return PRINTER;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 78 "printrcl.l"
+#line 80 "printrcl.l"
DBG(DESTINATION); return DESTINATION;
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 79 "printrcl.l"
+#line 81 "printrcl.l"
DBG(SCALING); return SCALING;
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 80 "printrcl.l"
+#line 82 "printrcl.l"
DBG(ORIENTATION); return ORIENTATION;
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 81 "printrcl.l"
+#line 83 "printrcl.l"
DBG(AUTOSIZE_ROLL_PAPER); return AUTOSIZE_ROLL_PAPER;
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 82 "printrcl.l"
+#line 84 "printrcl.l"
DBG(UNIT); return UNIT;
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 83 "printrcl.l"
+#line 85 "printrcl.l"
DBG(DRIVER); return DRIVER;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 84 "printrcl.l"
+#line 86 "printrcl.l"
DBG(LEFT); return LEFT;
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 85 "printrcl.l"
+#line 87 "printrcl.l"
DBG(TOP); return TOP;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 86 "printrcl.l"
+#line 88 "printrcl.l"
DBG(CUSTOM_PAGE_WIDTH); return CUSTOM_PAGE_WIDTH;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 87 "printrcl.l"
+#line 89 "printrcl.l"
DBG(CUSTOM_PAGE_HEIGHT); return CUSTOM_PAGE_HEIGHT;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 88 "printrcl.l"
+#line 90 "printrcl.l"
DBG(OUTPUT_TYPE); return OUTPUT_TYPE;
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 89 "printrcl.l"
+#line 91 "printrcl.l"
DBG(PARAMETER); return PARAMETER;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 90 "printrcl.l"
+#line 92 "printrcl.l"
DBG(QUEUE_NAME); return QUEUE_NAME;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 91 "printrcl.l"
+#line 93 "printrcl.l"
DBG(OUTPUT_FILENAME); return OUTPUT_FILENAME;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 92 "printrcl.l"
+#line 94 "printrcl.l"
DBG(EXTRA_PRINTER_OPTIONS); return EXTRA_PRINTER_OPTIONS;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 93 "printrcl.l"
+#line 95 "printrcl.l"
DBG(CUSTOM_COMMAND); return CUSTOM_COMMAND;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 94 "printrcl.l"
+#line 96 "printrcl.l"
DBG(COMMAND_TYPE); return COMMAND_TYPE;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 95 "printrcl.l"
+#line 97 "printrcl.l"
DBG(GLOBAL_SETTINGS); return GLOBAL_SETTINGS;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 96 "printrcl.l"
+#line 98 "printrcl.l"
DBG(END_GLOBAL_SETTINGS); return END_GLOBAL_SETTINGS;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 97 "printrcl.l"
+#line 99 "printrcl.l"
DBG(GLOBAL); return GLOBAL;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 99 "printrcl.l"
+#line 101 "printrcl.l"
DBG(pINT); return pINT;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 100 "printrcl.l"
+#line 102 "printrcl.l"
DBG(pSTRING_LIST); return pSTRING_LIST;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 101 "printrcl.l"
+#line 103 "printrcl.l"
DBG(pFILE); return pFILE;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 102 "printrcl.l"
+#line 104 "printrcl.l"
DBG(pDOUBLE); return pDOUBLE;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 103 "printrcl.l"
+#line 105 "printrcl.l"
DBG(pDIMENSION); return pDIMENSION;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 104 "printrcl.l"
+#line 106 "printrcl.l"
DBG(pBOOLEAN); return pBOOLEAN;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 105 "printrcl.l"
+#line 107 "printrcl.l"
DBG(pCURVE); return pCURVE;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 107 "printrcl.l"
+#line 109 "printrcl.l"
yylval.ival = atoi(yytext); DBG(tINT); return tINT;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 108 "printrcl.l"
+#line 110 "printrcl.l"
yylval.dval = strtod(yytext, NULL); DBG(tDOUBLE); return tDOUBLE;
YY_BREAK
case 33:
/* rule 33 can match eol */
YY_RULE_SETUP
-#line 109 "printrcl.l"
+#line 111 "printrcl.l"
yylval.sval = q_strdup(yytext); DBG(tSTRING); return tSTRING;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 110 "printrcl.l"
+#line 112 "printrcl.l"
yylval.sval = g_strdup(yytext); DBG(tBOOLEAN); return tBOOLEAN;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 111 "printrcl.l"
+#line 113 "printrcl.l"
yylval.sval = g_strdup(yytext); DBG(tWORD); return tWORD;
YY_BREAK
case 36:
/* rule 36 can match eol */
YY_RULE_SETUP
-#line 112 "printrcl.l"
+#line 114 "printrcl.l"
DBG(PRINTRC_HDR); return PRINTRC_HDR;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 113 "printrcl.l"
+#line 115 "printrcl.l"
DBG(whitespace1); /* Skip blanks/tabs */
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 114 "printrcl.l"
+#line 116 "printrcl.l"
DBG(comment1); /* Skip comments */
YY_BREAK
case 39:
/* rule 39 can match eol */
YY_RULE_SETUP
-#line 115 "printrcl.l"
+#line 117 "printrcl.l"
DBG(newline); mylineno++;
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 116 "printrcl.l"
+#line 118 "printrcl.l"
ECHO;
YY_BREAK
-#line 1249 "printrcl.c"
+#line 1251 "printrcl.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -2243,4 +2245,4 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 116 "printrcl.l"
+#line 118 "printrcl.l"
diff --git a/src/gutenprintui2/printrcl.l b/src/gutenprintui2/printrcl.l
index 018adf0..e9ac6d1 100644
--- a/src/gutenprintui2/printrcl.l
+++ b/src/gutenprintui2/printrcl.l
@@ -1,5 +1,5 @@
/* -*-Mode: C-*-
- * "$Id: printrcl.l,v 1.1 2004/09/17 18:38:14 rleigh Exp $"
+ * "$Id: printrcl.l,v 1.2 2012/05/11 13:16:12 rlk Exp $"
*
* printrc parser
*
@@ -39,6 +39,8 @@
int mylineno = 1;
+extern YYSTYPE yylval;
+
#define DBG(x) \
do \
{ \
diff --git a/src/gutenprintui2/ui-utils.c b/src/gutenprintui2/ui-utils.c
index 9b8cb01..d45d22a 100644
--- a/src/gutenprintui2/ui-utils.c
+++ b/src/gutenprintui2/ui-utils.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ui-utils.c,v 1.3 2006/05/28 16:59:04 rlk Exp $"
+ * "$Id: ui-utils.c,v 1.4 2012/01/19 13:26:57 m0m Exp $"
*
* Main window code for Print plug-in for the GIMP.
*
@@ -214,10 +214,10 @@ stpui_dialog_new (const gchar *title,
GtkWidget *dialog;
va_list args;
- va_start (args, resizable);
-
g_return_val_if_fail (title != NULL, NULL);
+ va_start (args, resizable);
+
dialog = gtk_dialog_new ();
gtk_window_set_title (GTK_WINDOW (dialog), title);
gtk_window_set_position (GTK_WINDOW (dialog), position);
diff --git a/src/main/Makefile.am b/src/main/Makefile.am
index 9bd6192..daedcf2 100644
--- a/src/main/Makefile.am
+++ b/src/main/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.104 2010/07/18 18:05:23 rlk Exp $
+## $Id: Makefile.am,v 1.105 2012/03/18 16:43:34 gernot2270 Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -55,7 +55,8 @@ print_canon_la_SOURCES = \
canon-inks.h \
canon-media.h \
canon-modes.h \
- canon-printers.h
+ canon-printers.h \
+ canon-media-mode.h
print_canon_la_LDFLAGS = -module -avoid-version
diff --git a/src/main/Makefile.in b/src/main/Makefile.in
index 4c520bb..9b05bf3 100644
--- a/src/main/Makefile.in
+++ b/src/main/Makefile.in
@@ -107,10 +107,11 @@ am__libgutenprint_la_SOURCES_DIST = array.c bit-ops.c channel.c \
generic-options.h gutenprint-internal.h print-color.c \
color-conversion.h color-conversions.c print-canon.c \
print-canon.h canon-inks.h canon-media.h canon-modes.h \
- canon-printers.h print-escp2.c escp2-driver.c print-escp2.h \
- print-escp2-data.c escp2-channels.c escp2-papers.c \
- escp2-resolutions.c print-lexmark.c print-pcl.c print-ps.c \
- xmlppd.c xmlppd.h print-olympus.c print-raw.c
+ canon-printers.h canon-media-mode.h print-escp2.c \
+ escp2-driver.c print-escp2.h print-escp2-data.c \
+ escp2-channels.c escp2-papers.c escp2-resolutions.c \
+ print-lexmark.c print-pcl.c print-ps.c xmlppd.c xmlppd.h \
+ print-olympus.c print-raw.c
am__objects_1 = mxml-attr.lo mxml-file.lo mxml-node.lo mxml-search.lo
am__objects_2 =
am__objects_3 = print-color.lo color-conversions.lo
@@ -243,6 +244,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -319,6 +321,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -339,6 +342,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -362,6 +367,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -408,7 +414,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -450,7 +455,8 @@ print_canon_la_SOURCES = \
canon-inks.h \
canon-media.h \
canon-modes.h \
- canon-printers.h
+ canon-printers.h \
+ canon-media-mode.h
print_canon_la_LDFLAGS = -module -avoid-version
print_escp2_la_SOURCES = \
diff --git a/src/main/bit-ops.c b/src/main/bit-ops.c
index 6ecf227..3a5e746 100644
--- a/src/main/bit-ops.c
+++ b/src/main/bit-ops.c
@@ -1,5 +1,5 @@
/*
- * "$Id: bit-ops.c,v 1.14 2009/06/07 15:21:22 rlk Exp $"
+ * "$Id: bit-ops.c,v 1.15 2012/04/19 14:41:03 gernot2270 Exp $"
*
* Softweave calculator for Gutenprint.
*
@@ -279,6 +279,109 @@ stp_fold_4bit(const unsigned char *line,
}
}
+void
+stp_fold_8bit(const unsigned char *line,
+ int single_length,
+ unsigned char *outbuf)
+{
+ int i;
+ memset(outbuf, 0, single_length * 8);
+ for (i = 0; i < single_length; i++)
+ {
+ unsigned char l0 = line[0];
+ unsigned char l1 = line[single_length];
+ unsigned char l2 = line[single_length*2];
+ unsigned char l3 = line[single_length*3];
+ unsigned char l4 = line[single_length*4];
+ unsigned char l5 = line[single_length*5];
+ unsigned char l6 = line[single_length*6];
+ unsigned char l7 = line[single_length*7];
+ if (l0 || l1 || l2 || l3 || l4 || l5 || l6 || l7)
+ {
+ outbuf[0] = /* H7 G7 F7 E7 D7 C7 B7 A7 */
+ ((l7 & (1 << 7)) >> 0)|
+ ((l6 & (1 << 7)) >> 1)|
+ ((l5 & (1 << 7)) >> 2)|
+ ((l4 & (1 << 7)) >> 3)|
+ ((l3 & (1 << 7)) >> 4)|
+ ((l2 & (1 << 7)) >> 5)|
+ ((l1 & (1 << 7)) >> 6)|
+ ((l0 & (1 << 7)) >> 7);
+
+ outbuf[1] = /* H6 G6 F6 E6 D6 C6 B6 A6 */
+ ((l7 & (1 << 6)) << 1)|
+ ((l6 & (1 << 6)) >> 0)|
+ ((l5 & (1 << 6)) >> 1)|
+ ((l4 & (1 << 6)) >> 2)|
+ ((l3 & (1 << 6)) >> 3)|
+ ((l2 & (1 << 6)) >> 4)|
+ ((l1 & (1 << 6)) >> 5)|
+ ((l0 & (1 << 6)) >> 6);
+
+ outbuf[2] = /* H5 G5 F5 E5 D5 C5 B5 A5 */
+ ((l7 & (1 << 5)) << 2)|
+ ((l6 & (1 << 5)) << 1)|
+ ((l5 & (1 << 5)) >> 0)|
+ ((l4 & (1 << 5)) >> 1)|
+ ((l3 & (1 << 5)) >> 2)|
+ ((l2 & (1 << 5)) >> 3)|
+ ((l1 & (1 << 5)) >> 4)|
+ ((l0 & (1 << 5)) >> 5);
+
+ outbuf[3] = /* H4 G4 F4 E4 D4 C4 B4 A4 */
+ ((l7 & (1 << 4)) << 3)|
+ ((l6 & (1 << 4)) << 2)|
+ ((l5 & (1 << 4)) << 1)|
+ ((l4 & (1 << 4)) >> 0)|
+ ((l3 & (1 << 4)) >> 1)|
+ ((l2 & (1 << 4)) >> 2)|
+ ((l1 & (1 << 4)) >> 3)|
+ ((l0 & (1 << 4)) >> 4);
+ outbuf[4] = /* H3 G3 F3 E3 D3 C3 B3 A3 */
+ ((l7 & (1 << 3)) << 4)|
+ ((l6 & (1 << 3)) << 3)|
+ ((l5 & (1 << 3)) << 2)|
+ ((l4 & (1 << 3)) << 1)|
+ ((l3 & (1 << 3)) >> 0)|
+ ((l2 & (1 << 3)) >> 1)|
+ ((l1 & (1 << 3)) >> 2)|
+ ((l0 & (1 << 3)) >> 3);
+
+ outbuf[5] = /* H2 G2 F2 E2 D2 C2 B2 A2 */
+ ((l7 & (1 << 2)) << 5)|
+ ((l6 & (1 << 2)) << 4)|
+ ((l5 & (1 << 2)) << 3)|
+ ((l4 & (1 << 2)) << 2)|
+ ((l3 & (1 << 2)) << 1)|
+ ((l2 & (1 << 2)) >> 0)|
+ ((l1 & (1 << 2)) >> 1)|
+ ((l0 & (1 << 2)) >> 2);
+
+ outbuf[6] = /* H1 G1 F1 E1 D1 C1 B1 A1 */
+ ((l7 & (1 << 1)) << 6)|
+ ((l6 & (1 << 1)) << 5)|
+ ((l5 & (1 << 1)) << 4)|
+ ((l4 & (1 << 1)) << 3)|
+ ((l3 & (1 << 1)) << 2)|
+ ((l2 & (1 << 1)) << 1)|
+ ((l1 & (1 << 1)) >> 0)|
+ ((l0 & (1 << 1)) >> 1);
+
+ outbuf[7] = /* H0 G0 F0 E0 D0 C0 B0 A0 */
+ ((l7 & (1 << 0)) << 7)|
+ ((l6 & (1 << 0)) << 6)|
+ ((l5 & (1 << 0)) << 5)|
+ ((l4 & (1 << 0)) << 4)|
+ ((l3 & (1 << 0)) << 3)|
+ ((l2 & (1 << 0)) << 2)|
+ ((l1 & (1 << 0)) << 1)|
+ ((l0 & (1 << 0)) >> 0);
+ }
+ line++;
+ outbuf += 8;
+ }
+}
+
#define SPLIT_MASK(k, b) (((1 << (b)) - 1) << ((k) * (b)))
#define SPLIT_STEP(k, b, i, o, in, r, inc, rl) \
diff --git a/src/main/canon-inks.h b/src/main/canon-inks.h
index 90fbb1e..ff478a9 100644
--- a/src/main/canon-inks.h
+++ b/src/main/canon-inks.h
@@ -110,6 +110,7 @@ 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 },
@@ -168,13 +169,30 @@ static const stp_dotsize_t dotsizes_9l[] = {
{ 0x5, 0.66 },
{ 0x6, 0.71 },
{ 0x7, 0.88 },
- { 0x8, 1.00 }
+ { 0x8, 1.00 },
};
-/*under development*/
DECLARE_INK(4,9);
DECLARE_INK(8,9);
+static const stp_dotsize_t dotsizes_14l[] = {
+ { 0x1, 0.07 },
+ { 0x2, 0.13 },
+ { 0x3, 0.20 },
+ { 0x4, 0.27 },
+ { 0x5, 0.33 },
+ { 0x6, 0.40 },
+ { 0x7, 0.47 },
+ { 0x8, 0.53 },
+ { 0x9, 0.60 },
+ { 0xA, 0.67 },
+ { 0xB, 0.75 },
+ { 0xC, 0.87 },
+ { 0xD, 1.00 },
+};
+
+DECLARE_INK(4,14);
+
static const stp_dotsize_t dotsizes_16l[] = {
{ 0x1, 0.07 },
{ 0x2, 0.13 },
@@ -325,6 +343,42 @@ static const canon_inkset_t canon_7_C4M4Y4c4m4k4K4_inkset[] = {
{'K',1.0,&canon_2b_4l_ink},
};
+static const canon_inkset_t canon_9_K2_inkset[] = {
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'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},
+};
+
+static const canon_inkset_t canon_9_K5_c_inkset[] = {
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'K',1.0,&canon_4b_5l_c_ink},
+ {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_9_K9_inkset[] = {
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'K',1.0,&canon_4b_9l_ink},
+ {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_9_C2M2Y2K2_inkset[] = {
{'C',1.0,&canon_1b_2l_ink},
{'M',1.0,&canon_1b_2l_ink},
@@ -337,6 +391,30 @@ static const canon_inkset_t canon_9_C2M2Y2K2_inkset[] = {
{0,0.0,NULL},
};
+static const canon_inkset_t canon_9_C2M2Y2K2c2m2y2_inkset[] = {
+ {'C',1.0,&canon_1b_2l_ink},
+ {'M',1.0,&canon_1b_2l_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
+ {'c',1.0,&canon_1b_2l_ink},
+ {'m',1.0,&canon_1b_2l_ink},
+ {'y',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+static const canon_inkset_t canon_9_c3m3y3_inkset[] = {
+ {0,0.0,&canon_2b_3l_ink},
+ {0,0.0,&canon_2b_3l_ink},
+ {0,0.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {'c',1.0,&canon_2b_3l_ink},
+ {'m',1.0,&canon_2b_3l_ink},
+ {'y',1.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
static const canon_inkset_t canon_9_C3M3Y2K2h_inkset[] = {
{'C',1.0,&canon_2b_3l_ink},
{'M',1.0,&canon_2b_3l_ink},
@@ -373,7 +451,6 @@ static const canon_inkset_t canon_9_C3M3Y2K2_c_inkset[] = {
{0,0.0,NULL}
};
-/* iP6000D */
static const canon_inkset_t canon_9_C3M3Y3K3_inkset[] = {
{'C',1.0,&canon_2b_3l_ink},
{'M',1.0,&canon_2b_3l_ink},
@@ -386,7 +463,6 @@ static const canon_inkset_t canon_9_C3M3Y3K3_inkset[] = {
{0,0.0,NULL}
};
-/* iP4000 default print mode (quality 2) */
static const canon_inkset_t canon_9_C3M3Y2K2k3_c_inkset[] = {
{'C',1.0,&canon_2b_3l_c_ink},
{'M',1.0,&canon_2b_3l_c_ink},
@@ -399,6 +475,30 @@ static const canon_inkset_t canon_9_C3M3Y2K2k3_c_inkset[] = {
{0,0.0,NULL}
};
+static const canon_inkset_t canon_9_C3M3Y2K2k3on_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_1b_2l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C3M3Y2K2k3photo_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_1b_2l_ink}, /* switch off */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_9_C3M3Y3K2c3m3_c_inkset[] = {
{'C',1.0,&canon_2b_3l_c_ink},
{'M',1.0,&canon_2b_3l_c_ink},
@@ -411,12 +511,11 @@ static const canon_inkset_t canon_9_C3M3Y3K2c3m3_c_inkset[] = {
{0,0.0,NULL}
};
-/* iP4000 mode used for Super Photo Paper (quality 1) */
static const canon_inkset_t canon_9_C3M3Y3K2c3m3k3_c_inkset[] = {
{'C',1.0,&canon_2b_3l_c_ink},
{'M',1.0,&canon_2b_3l_c_ink},
{'Y',1.0,&canon_2b_3l_c_ink},
- {'K',0.0,&canon_1b_2l_ink},
+ {'K',0.0,&canon_1b_2l_ink}, /* switch off */
{'c',0.5,&canon_2b_3l_c_ink},
{'m',0.5,&canon_2b_3l_c_ink},
{0,0.0,NULL},
@@ -436,7 +535,6 @@ static const canon_inkset_t canon_9_C4M4Y4K2_inkset[] = {
{0,0.0,NULL},
};
-/* iP4000 mode used for T-Shirt (quality 2) */
static const canon_inkset_t canon_9_C4M4Y4K2k4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -461,7 +559,18 @@ static const canon_inkset_t canon_9_C4M4Y4K3_inkset[] = {
{0,0.0,NULL},
};
-/* check this one!!!! */
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4plain_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},
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_9_C4M4Y4K2c4m4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -474,11 +583,48 @@ static const canon_inkset_t canon_9_C4M4Y4K2c4m4_inkset[] = {
{0,0.0,NULL}
};
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4k4p_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},
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_4l_ink}, /* do not use but need to define in inkset */
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4k4_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',0.0,&canon_1b_2l_ink},
+ {'c',0.5,&canon_2b_4l_ink},
+ {'m',0.5,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4k4on_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},
+ {'c',0.5,&canon_2b_4l_ink},
+ {'m',0.5,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_9_C4M4Y4K4_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_4l_ink}, /* put K back in for OHP */
+ {'K',1.0,&canon_2b_4l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -486,7 +632,6 @@ static const canon_inkset_t canon_9_C4M4Y4K4_inkset[] = {
{0,0.0,NULL}
};
-/* check this one !!! */
static const canon_inkset_t canon_9_C4M4Y4K4c4m4_inkset[] = {
{'C',1.0,&canon_4b_4l_ink},
{'M',1.0,&canon_4b_4l_ink},
@@ -499,12 +644,11 @@ static const canon_inkset_t canon_9_C4M4Y4K4c4m4_inkset[] = {
{0,0.0,NULL}
};
-/* check this one!!! */
-static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4_inkset[] = {
+static const canon_inkset_t canon_9_C4M4Y4c4m4y4_inkset[] = {
{'C',1.0,&canon_4b_4l_ink},
{'M',1.0,&canon_4b_4l_ink},
{'Y',1.0,&canon_4b_4l_ink},
- {'K',0.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
{'c',0.5,&canon_4b_4l_ink},
{'m',0.5,&canon_4b_4l_ink},
{'y',1.0,&canon_4b_4l_ink},
@@ -512,18 +656,51 @@ static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4_inkset[] = {
{0,0.0,NULL}
};
-/* iP4000 mode used for CD printing (quality 3) */
-/* Gernot: This is also the normal hi-quality mode for iP4000 at quality level 3 */
-/* The same inket is used at quality levels 4, 3 and 2 for CD printing */
-static const canon_inkset_t canon_9_C4M4Y4K2c4m4k4_inkset[] = {
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4plain_inkset[] = {
+ {'C',1.0,&canon_4b_4l_ink},
+ {'M',1.0,&canon_4b_4l_ink},
+ {'Y',1.0,&canon_4b_4l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
+ {'c',1.0,&canon_4b_4l_ink},
+ {'m',1.0,&canon_4b_4l_ink},
+ {'y',1.0,&canon_4b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4photo_inkset[] = {
+ {'C',1.0,&canon_4b_4l_ink},
+ {'M',1.0,&canon_4b_4l_ink},
+ {'Y',1.0,&canon_4b_4l_ink},
+ {'K',0.0,&canon_1b_2l_ink},/* Photo modes do not use K */
+ {'c',0.5,&canon_4b_4l_ink},
+ {'m',0.5,&canon_4b_4l_ink},
+ {'y',1.0,&canon_4b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4plain2_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},
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4photo2_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
{'Y',1.0,&canon_2b_4l_ink},
{'K',0.0,&canon_1b_2l_ink},
- {'c',0.5,&canon_2b_4l_ink},
- {'m',0.5,&canon_2b_4l_ink},
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
{0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink},
{0,0.0,NULL}
};
@@ -543,7 +720,127 @@ static const canon_inkset_t canon_9_C5M5Y5K2_inkset[] = {
{'C',1.0,&canon_4b_5l_ink},
{'M',1.0,&canon_4b_5l_ink},
{'Y',1.0,&canon_4b_5l_ink},
- {'K',0.0,&canon_1b_2l_ink}, /* for PPpro, so no use */
+ {'K',0.0,&canon_1b_2l_ink}, /* for CMY only, so no use */
+ {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_9_C5M5Y5K2plain_inkset[] = {
+ {'C',1.0,&canon_4b_5l_ink},
+ {'M',1.0,&canon_4b_5l_ink},
+ {'Y',1.0,&canon_4b_5l_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},
+};
+
+static const canon_inkset_t canon_9_C5M5Y5K5_c_inkset[] = {
+ {'C',1.0,&canon_4b_5l_c_ink},
+ {'M',1.0,&canon_4b_5l_c_ink},
+ {'Y',1.0,&canon_4b_5l_c_ink},
+ {'K',1.0,&canon_4b_5l_c_ink},
+ {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_9_C5M5Y5K5c5m5_c_inkset[] = {
+ {'C',1.0,&canon_4b_5l_c_ink},
+ {'M',1.0,&canon_4b_5l_c_ink},
+ {'Y',1.0,&canon_4b_5l_c_ink},
+ {'K',1.0,&canon_4b_5l_c_ink},
+ {'c',1.0,&canon_4b_5l_c_ink},
+ {'m',1.0,&canon_4b_5l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C5M5Y5K5c9m9_c_inkset[] = {
+ {'C',1.0,&canon_4b_5l_c_ink},
+ {'M',1.0,&canon_4b_5l_c_ink},
+ {'Y',1.0,&canon_4b_5l_c_ink},
+ {'K',1.0,&canon_4b_5l_c_ink},
+ {'c',1.0,&canon_4b_9l_ink},
+ {'m',1.0,&canon_4b_9l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C5M5Y5K9c5m5_c_inkset[] = {
+ {'C',1.0,&canon_4b_5l_c_ink},
+ {'M',1.0,&canon_4b_5l_c_ink},
+ {'Y',1.0,&canon_4b_5l_c_ink},
+ {'K',1.0,&canon_4b_9l_ink},
+ {'c',1.0,&canon_4b_5l_c_ink},
+ {'m',1.0,&canon_4b_5l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C6M6Y6K6_c_inkset[] = {
+ {'C',1.0,&canon_4b_6l_c_ink},
+ {'M',1.0,&canon_4b_6l_c_ink},
+ {'Y',1.0,&canon_4b_6l_c_ink},
+ {'K',1.0,&canon_4b_6l_c_ink},
+ {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_9_C6M6Y6K6c6m6_c_inkset[] = {
+ {'C',1.0,&canon_4b_6l_c_ink},
+ {'M',1.0,&canon_4b_6l_c_ink},
+ {'Y',1.0,&canon_4b_6l_c_ink},
+ {'K',1.0,&canon_4b_6l_c_ink},
+ {'c',1.0,&canon_4b_6l_c_ink},
+ {'m',1.0,&canon_4b_6l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C6M6Y6K9c6m6_c_inkset[] = {
+ {'C',1.0,&canon_4b_6l_c_ink},
+ {'M',1.0,&canon_4b_6l_c_ink},
+ {'Y',1.0,&canon_4b_6l_c_ink},
+ {'K',1.0,&canon_4b_9l_ink},
+ {'c',1.0,&canon_4b_6l_c_ink},
+ {'m',1.0,&canon_4b_6l_c_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C6M6Y6K6c16m16_c_inkset[] = {
+ {'C',1.0,&canon_4b_6l_c_ink},
+ {'M',1.0,&canon_4b_6l_c_ink},
+ {'Y',1.0,&canon_4b_6l_c_ink},
+ {'K',1.0,&canon_4b_6l_c_ink},
+ {'c',1.0,&canon_4b_16l_ink},
+ {'m',1.0,&canon_4b_16l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C7M7Y7K2_inkset[] = {
+ {'C',1.0,&canon_4b_7l_ink},
+ {'M',1.0,&canon_4b_7l_ink},
+ {'Y',1.0,&canon_4b_7l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -575,7 +872,6 @@ static const canon_inkset_t canon_9_C8M8Y8c16m16_inkset[] = {
{0,0.0,NULL}
};
-/* iP4000 mode used for Professional Photo Paper in Quality 4 */
static const canon_inkset_t canon_9_C8M8Y8c16m16k8_inkset[] = {
{'C',1.0,&canon_4b_8l_ink},
{'M',1.0,&canon_4b_8l_ink},
@@ -600,6 +896,18 @@ static const canon_inkset_t canon_9_C9M9Y9K2_inkset[] = {
{0,0.0,NULL}
};
+static const canon_inkset_t canon_9_C9M9Y9K9c9m9_inkset[] = {
+ {'C',1.0,&canon_4b_9l_ink},
+ {'M',1.0,&canon_4b_9l_ink},
+ {'Y',1.0,&canon_4b_9l_ink},
+ {'K',1.0,&canon_4b_9l_ink},
+ {'c',1.0,&canon_4b_9l_ink},
+ {'m',1.0,&canon_4b_9l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_9_C9M9Y9K2c9m9y9_inkset[] = {
{'C',1.0,&canon_4b_9l_ink},
{'M',1.0,&canon_4b_9l_ink},
@@ -612,23 +920,56 @@ static const canon_inkset_t canon_9_C9M9Y9K2c9m9y9_inkset[] = {
{0,0.0,NULL}
};
+static const canon_inkset_t canon_9_C9M9Y9K2c9m9y9plain8_inkset[] = {
+ {'C',1.0,&canon_8b_9l_ink},
+ {'M',1.0,&canon_8b_9l_ink},
+ {'Y',1.0,&canon_8b_9l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
+ {'c',1.0,&canon_8b_9l_ink},
+ {'m',1.0,&canon_8b_9l_ink},
+ {'y',1.0,&canon_8b_9l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_9_C9M9Y9K2c9m9y9photo8_inkset[] = {
+ {0,0.0,&canon_8b_9l_ink},
+ {0,0.0,&canon_8b_9l_ink},
+ {0,0.0,&canon_8b_9l_ink},
+ {0,0.0,&canon_1b_2l_ink},
+ {'c',1.0,&canon_8b_9l_ink},
+ {'m',1.0,&canon_8b_9l_ink},
+ {'y',1.0,&canon_8b_9l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_9_c9m9y9_inkset[] = {
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
+ {0,0.0,&canon_2b_3l_ink},
+ {0,0.0,&canon_2b_3l_ink},
+ {0,0.0,&canon_2b_3l_ink},
{0,0.0,NULL},
{'c',1.0,&canon_8b_9l_ink},
{'m',1.0,&canon_8b_9l_ink},
{'y',1.0,&canon_8b_9l_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},
};
-/* PIXMA Pro9000, Pro9000 Mk.II, Pro9500, Pro9500 Mk.II, PIXMA iP8500 */
+static const canon_inkset_t canon_11_K2_inkset[] = {
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'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}
+};
+
static const canon_inkset_t canon_11_C2M2Y2K2_inkset[] = {
{'C',1.0,&canon_1b_2l_ink},
{'M',1.0,&canon_1b_2l_ink},
@@ -643,7 +984,62 @@ static const canon_inkset_t canon_11_C2M2Y2K2_inkset[] = {
{0,0.0,NULL}
};
-/* Pro9000 */
+static const canon_inkset_t canon_11_C3M3Y2K2_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_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}
+};
+
+static const canon_inkset_t canon_11_C4M4Y4K2_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},
+ {0,0.0,NULL},
+ {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_11_C5M5Y3k4_inkset[] = {
+ {'C',1.0,&canon_4b_5l_ink},
+ {'M',1.0,&canon_4b_5l_ink},
+ {'Y',1.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
+static const canon_inkset_t canon_11_C5M5Y4k4_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},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_11_C5M5Y5K5c5m5_c_inkset[] = {
{'C',1.0,&canon_4b_5l_c_ink},
{'M',1.0,&canon_4b_5l_c_ink},
@@ -658,7 +1054,34 @@ static const canon_inkset_t canon_11_C5M5Y5K5c5m5_c_inkset[] = {
{0,0.0,NULL}
};
-/* PIXMA Pro9000, Pro9000 Mk.II, Pro9500, Pro9500 Mk.II, PIXMA iP8500 */
+static const canon_inkset_t canon_11_C6M6Y4K2_inkset[] = {
+ {'C',1.0,&canon_4b_6l_ink},
+ {'M',1.0,&canon_4b_6l_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}
+};
+
+static const canon_inkset_t canon_11_C6M6Y4k4_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},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_11_C6M6Y6K6_c_inkset[] = {
{'C',1.0,&canon_4b_6l_c_ink},
{'M',1.0,&canon_4b_6l_c_ink},
@@ -673,7 +1096,6 @@ static const canon_inkset_t canon_11_C6M6Y6K6_c_inkset[] = {
{0,0.0,NULL}
};
-/* Pro9000, Pro9000 Mk.II */
static const canon_inkset_t canon_11_C6M6Y6K6c6m6_c_inkset[] = {
{'C',1.0,&canon_4b_6l_c_ink},
{'M',1.0,&canon_4b_6l_c_ink},
@@ -688,7 +1110,6 @@ static const canon_inkset_t canon_11_C6M6Y6K6c6m6_c_inkset[] = {
{0,0.0,NULL}
};
-/* Pro9000, Pro9000 Mk.II */
static const canon_inkset_t canon_11_C6M6Y6K6c16m16_c_inkset[] = {
{'C',1.0,&canon_4b_6l_c_ink},
{'M',1.0,&canon_4b_6l_c_ink},
@@ -703,7 +1124,6 @@ static const canon_inkset_t canon_11_C6M6Y6K6c16m16_c_inkset[] = {
{0,0.0,NULL}
};
-/* Pro9000, Pro9000 Mk.II, PIXMA iP8500 */
static const canon_inkset_t canon_11_C6M6Y6K9c6m6_c_inkset[] = {
{'C',1.0,&canon_4b_6l_c_ink},
{'M',1.0,&canon_4b_6l_c_ink},
@@ -718,7 +1138,20 @@ static const canon_inkset_t canon_11_C6M6Y6K9c6m6_c_inkset[] = {
{0,0.0,NULL}
};
-/* PIXMA Pro9500, Pro9500 Mk.II */
+static const canon_inkset_t canon_11_C9M9Y4k6_inkset[] = {
+ {'C',1.0,&canon_4b_9l_ink},
+ {'M',1.0,&canon_4b_9l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_4b_6l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_11_C16M16Y16k16_inkset[] = {
{'C',1.0,&canon_4b_16l_ink},
{'M',1.0,&canon_4b_16l_ink},
@@ -733,7 +1166,6 @@ static const canon_inkset_t canon_11_C16M16Y16k16_inkset[] = {
{0,0.0,NULL}
};
-/* Pro9000 Mk.II */
static const canon_inkset_t canon_11_C16M16Y16K16c16m16_inkset[] = {
{'C',1.0,&canon_4b_16l_ink},
{'M',1.0,&canon_4b_16l_ink},
@@ -748,7 +1180,6 @@ static const canon_inkset_t canon_11_C16M16Y16K16c16m16_inkset[] = {
{0,0.0,NULL}
};
-/* Gernot: MP150 (MP170 for tests) greyscale */
static const canon_inkset_t canon_13_K2_inkset[] = {
{0,0.0,NULL},
{0,0.0,NULL},
@@ -765,7 +1196,6 @@ static const canon_inkset_t canon_13_K2_inkset[] = {
{0,0.0,NULL},
};
-/* MP150 (MP250 for tests) greyscale */
static const canon_inkset_t canon_13_K3_inkset[] = {
{0,0.0,NULL},
{0,0.0,NULL},
@@ -782,7 +1212,6 @@ static const canon_inkset_t canon_13_K3_inkset[] = {
{0,0.0,NULL},
};
-/* iP2700, MP270 color cartridge only, plain fast mode */
static const canon_inkset_t canon_13_C2M2Y2_inkset[] = {
{'C',1.0,&canon_1b_2l_ink},
{'M',1.0,&canon_1b_2l_ink},
@@ -815,7 +1244,38 @@ static const canon_inkset_t canon_13_C2M2Y2K2_inkset[] = {
{0,0.0,NULL},
};
-/* MX7600, iX7000 */
+static const canon_inkset_t canon_13_C2M2Y2K2off_inkset[] = {
+ {'C',1.0,&canon_1b_2l_ink},
+ {'M',1.0,&canon_1b_2l_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',0.0,&canon_1b_2l_ink}, /* declared in inkset but not used */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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_C2M2Y2k2_inkset[] = {
+ {'C',1.0,&canon_1b_2l_ink},
+ {'M',1.0,&canon_1b_2l_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'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},
+};
+
static const canon_inkset_t canon_13_C2M2Y2K2k2_inkset[] = {
{'C',1.0,&canon_1b_2l_ink},
{'M',1.0,&canon_1b_2l_ink},
@@ -832,7 +1292,6 @@ static const canon_inkset_t canon_13_C2M2Y2K2k2_inkset[] = {
{0,0.0,NULL},
};
-/* iP2700, MP270 color cartridge only, plain mode */
static const canon_inkset_t canon_13_C3M3Y2_inkset[] = {
{'C',1.0,&canon_2b_3l_ink},
{'M',1.0,&canon_2b_3l_ink},
@@ -849,7 +1308,6 @@ static const canon_inkset_t canon_13_C3M3Y2_inkset[] = {
{0,0.0,NULL},
};
-/* iP1900 color cartridge only, plain mode */
static const canon_inkset_t canon_13_C3M3Y2b_inkset[] = {
{'C',1.0,&canon_2b_3l_ink},
{'M',1.0,&canon_2b_3l_ink},
@@ -882,7 +1340,38 @@ static const canon_inkset_t canon_13_C3M3Y2K2_inkset[] = {
{0,0.0,NULL},
};
-/* iP1900, std mode, plain media */
+static const canon_inkset_t canon_13_C3M3Y2K3_inkset[] = {
+ {'C',1.0,&canon_2b_3l_ink},
+ {'M',1.0,&canon_2b_3l_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',1.0,&canon_2b_3l_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_C3M3Y2K3off_inkset[] = {
+ {'C',1.0,&canon_2b_3l_ink},
+ {'M',1.0,&canon_2b_3l_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',0.0,&canon_2b_3l_ink}, /* declared in inkset but not used */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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_C3M3Y2K2b_inkset[] = {
{'C',1.0,&canon_2b_3l_ink},
{'M',1.0,&canon_2b_3l_ink},
@@ -899,11 +1388,6 @@ static const canon_inkset_t canon_13_C3M3Y2K2b_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: iP4500 standard mode changed from the compressed one below */
-/* iP4700 also uses this */
-/* iP4800 also uses this */
-/* MG5100, MG5200 */
-/* TODO: how to get both K and k working, for Hagaki and Env modes */
static const canon_inkset_t canon_13_C3M3Y2K2y3_c_inkset[] = {
{'C',1.0,&canon_2b_3l_c_ink},
{'M',1.0,&canon_2b_3l_c_ink},
@@ -911,7 +1395,7 @@ static const canon_inkset_t canon_13_C3M3Y2K2y3_c_inkset[] = {
{'K',1.0,&canon_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',0.0,&canon_2b_3l_c_ink}, /* swap y for k, but in any case it is not in output for plain modes */
+ {'k',0.0,&canon_2b_3l_c_ink}, /* swap y for k, switch off */
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -920,24 +1404,70 @@ static const canon_inkset_t canon_13_C3M3Y2K2y3_c_inkset[] = {
{0,0.0,NULL},
};
-/* iX7000 */
-static const canon_inkset_t canon_13_C3M3Y2K2k3_c_inkset[] = {
+static const canon_inkset_t canon_13_C3M3Y2K2k3on_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_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',0.0,&canon_2b_3l_c_ink}, /* swap y and k */
+ {'k',1.0,&canon_2b_3l_c_ink}, /* swap y for 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_C3M3Y2K2k3photo_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_1b_2l_ink}, /* switched off */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink}, /* swap y for 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},
+ {'Y',1.0,&canon_2b_3l_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},
+ {'k',1.0,&canon_2b_3l_ink},
+ {'c',1.0,&canon_2b_3l_ink},
+ {'m',1.0,&canon_2b_3l_ink},
+};
+
+static const canon_inkset_t canon_13_C3M3Y3k4_inkset[] = {
+ {'C',1.0,&canon_2b_3l_ink},
+ {'M',1.0,&canon_2b_3l_ink},
+ {'Y',1.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
};
-/* Gernot: MP250, MP280 photo modes */
static const canon_inkset_t canon_13_C4M4Y4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -970,7 +1500,6 @@ static const canon_inkset_t canon_13_C4M4Y4K2_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: MP250, MP270, MP280 high mode */
static const canon_inkset_t canon_13_C4M4Y3K3_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -987,8 +1516,70 @@ static const canon_inkset_t canon_13_C4M4Y3K3_inkset[] = {
{0,0.0,NULL},
};
+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_4l_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_C4M4Y4k4_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {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_C4M4Y4k4c4m4_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+static const canon_inkset_t canon_13_C4M4Y4K2c4m4y4on2_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',0.0,&canon_1b_2l_ink}, /* switch off */
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {'k',1.0,&canon_2b_4l_ink}, /* swap to 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},
+};
-/* Gernot: MP150 (MP170 for tests) high-quality mode */
static const canon_inkset_t canon_13_C4M4Y4K2c4m4y4_inkset[] = {
{'C',1.0,&canon_4b_4l_ink},
{'M',1.0,&canon_4b_4l_ink},
@@ -1005,7 +1596,6 @@ static const canon_inkset_t canon_13_C4M4Y4K2c4m4y4_inkset[] = {
{0,0.0,NULL},
};
-/* test on iP5300 --- swap y and k */
static const canon_inkset_t canon_13_C4M4Y4K2c4m4k4_inkset[] = {
{'C',1.0,&canon_4b_4l_ink},
{'M',1.0,&canon_4b_4l_ink},
@@ -1022,14 +1612,10 @@ static const canon_inkset_t canon_13_C4M4Y4K2c4m4k4_inkset[] = {
{0,0.0,NULL},
};
-/* iP2700 in user-defined highest quality mode for PPGlossPro paper */
-/* MP270 same for PPGpro */
-/* MP280 same for PPGproPlat */
-/* less 0x60 in bytes */
static const canon_inkset_t canon_13_c3m3y3_inkset[] = {
- {0,0.0,NULL},
- {0,0.0,NULL},
- {0,0.0,NULL},
+ {0,0.0,&canon_2b_3l_ink},
+ {0,0.0,&canon_2b_3l_ink},
+ {0,0.0,&canon_2b_3l_ink},
{0,0.0,NULL},
{'c',1.0,&canon_2b_3l_ink},
{'m',1.0,&canon_2b_3l_ink},
@@ -1042,17 +1628,6 @@ static const canon_inkset_t canon_13_c3m3y3_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: MP150 (MP170 for tests) high-quality mode for
- High Resolution Paper
- Inkjet Hagaki
- pro Photo Paper
- super Photo Paper
- super Photo Paper Double Sided
- matte Photo Paper
- other Photo Paper
-
-Also used for all modes of gloss Photo Paper
-*/
static const canon_inkset_t canon_13_C4M4Y4c4m4y4_inkset[] = {
{'C',1.0,&canon_4b_4l_ink},
{'M',1.0,&canon_4b_4l_ink},
@@ -1060,7 +1635,7 @@ static const canon_inkset_t canon_13_C4M4Y4c4m4y4_inkset[] = {
{0,0.0,NULL},
{'c',1.0,&canon_4b_4l_ink},
{'m',1.0,&canon_4b_4l_ink},
- {'k',1.0,&canon_4b_4l_ink}, /* swap y and k */
+ {'y',1.0,&canon_4b_4l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1069,15 +1644,14 @@ static const canon_inkset_t canon_13_C4M4Y4c4m4y4_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: MP150 (MP170 for tests) T-shirt transfers */
-static const canon_inkset_t canon_13_C5M5Y5_inkset[] = {
+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_4b_5l_ink},
- {0,0.0,NULL},
+ {'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},
@@ -1086,10 +1660,7 @@ static const canon_inkset_t canon_13_C5M5Y5_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: added for iP4700 CD printing */
-/* iP4800 also uses this */
-/* also MG5200 */
-static const canon_inkset_t canon_13_C5M5Y4y4_inkset[] = {
+static const canon_inkset_t canon_13_C5M5Y4k4_inkset[] = {
{'C',1.0,&canon_4b_5l_ink},
{'M',1.0,&canon_4b_5l_ink},
{'Y',1.0,&canon_2b_4l_ink},
@@ -1105,7 +1676,22 @@ static const canon_inkset_t canon_13_C5M5Y4y4_inkset[] = {
{0,0.0,NULL},
};
-/* iX7000 photo mode */
+static const canon_inkset_t canon_13_C5M5Y5_inkset[] = {
+ {'C',1.0,&canon_4b_5l_ink},
+ {'M',1.0,&canon_4b_5l_ink},
+ {'Y',1.0,&canon_4b_5l_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},
+};
+
static const canon_inkset_t canon_13_C6M6Y2K2k4_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1122,8 +1708,6 @@ static const canon_inkset_t canon_13_C6M6Y2K2k4_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: added for iP4700 photo standard quality */
-/* MG5100, MG5200 */
static const canon_inkset_t canon_13_C6M6Y4y4_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1140,10 +1724,22 @@ static const canon_inkset_t canon_13_C6M6Y4y4_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: added for iP4500 high quality --- check the pos of k/y */
-/* iP4700 also uses this */
-/* iP4800 also uses this */
-/* MG5100, MG5200 */
+static const canon_inkset_t canon_13_C6M6Y4k4_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_C6M6Y4K2y4_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1151,7 +1747,7 @@ static const canon_inkset_t canon_13_C6M6Y4K2y4_inkset[] = {
{'K',1.0,&canon_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink}, /* set y to k for photo modes */
+ {'k',0.0,&canon_2b_4l_ink}, /* set y to k, switched off */
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1160,14 +1756,14 @@ static const canon_inkset_t canon_13_C6M6Y4K2y4_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_13_C6M6Y4K2k4_inkset[] = {
+static const canon_inkset_t canon_13_C6M6Y4K2k4on_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
{'Y',1.0,&canon_2b_4l_ink},
{'K',1.0,&canon_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',0.0,&canon_2b_4l_ink},
+ {'k',1.0,&canon_2b_4l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1176,7 +1772,6 @@ static const canon_inkset_t canon_13_C6M6Y4K2k4_inkset[] = {
{0,0.0,NULL},
};
-/* MX7600, iX7000 */
static const canon_inkset_t canon_13_C6M6Y4K3k4_c_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1209,10 +1804,6 @@ static const canon_inkset_t canon_13_C6M6Y4k4yask_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: iP4500 photo mode */
-/* iP4700 also uses this */
-/* iP4800 also uses this */
-/* MG5100, MG5200 */
static const canon_inkset_t canon_13_C8M8Y4y4_inkset[] = {
{'C',1.0,&canon_4b_8l_ink},
{'M',1.0,&canon_4b_8l_ink},
@@ -1229,6 +1820,22 @@ static const canon_inkset_t canon_13_C8M8Y4y4_inkset[] = {
{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},
+ {'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_C8M8Y4K4k4_inkset[] = {
{'C',1.0,&canon_4b_8l_ink},
{'M',1.0,&canon_4b_8l_ink},
@@ -1261,25 +1868,46 @@ static const canon_inkset_t canon_13_C8M8Y4k4yask_inkset[] = {
{0,0.0,NULL},
};
-/* Gernot: MP150 (MP170 for tests) high-quality mode for
- High Resolution Paper
- Inkjet Hagaki
- pro Photo Paper
- super Photo Paper
- super Photo Paper Double Sided
- matte Photo Paper
- other Photo Paper
-
- for some reason there is a hack for iP6700 appearing here which might make the y into a k (swapping)
-*/
static const canon_inkset_t canon_13_c9m9y9_inkset[] = {
+ {0,0.0,&canon_8b_9l_ink},
+ {0,0.0,&canon_8b_9l_ink},
+ {0,0.0,&canon_8b_9l_ink},
+ {0,0.0,NULL},
+ {'c',1.0,&canon_8b_9l_ink},
+ {'m',1.0,&canon_8b_9l_ink},
+ {'y',1.0,&canon_8b_9l_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},
+};
+
+static const canon_inkset_t canon_13_C9M9Y9k9c9m9_inkset[] = {
+ {'C',1.0,&canon_8b_9l_ink},
+ {'M',1.0,&canon_8b_9l_ink},
+ {'Y',1.0,&canon_8b_9l_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},
+ {'k',1.0,&canon_8b_9l_ink},
{'c',1.0,&canon_8b_9l_ink},
{'m',1.0,&canon_8b_9l_ink},
- {'y',1.0,&canon_8b_9l_ink},
+};
+
+static const canon_inkset_t canon_13_C14M14Y14c14m14y14_inkset[] = {
+ {'C',1.0,&canon_4b_14l_ink},
+ {'M',1.0,&canon_4b_14l_ink},
+ {'Y',1.0,&canon_4b_14l_ink},
+ {0,0.0,NULL},
+ {'c',1.0,&canon_4b_14l_ink},
+ {'m',1.0,&canon_4b_14l_ink},
+ {'y',1.0,&canon_4b_14l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1288,15 +1916,14 @@ static const canon_inkset_t canon_13_c9m9y9_inkset[] = {
{0,0.0,NULL},
};
-/* MP980 uss 16 inks */
-static const canon_inkset_t canon_16_C8M8Y4k4_inkset[] = {
- {'C',1.0,&canon_4b_8l_ink},
- {'M',1.0,&canon_4b_8l_ink},
- {'Y',1.0,&canon_2b_4l_ink},
+static const canon_inkset_t canon_16_C2M2Y2K2_inkset[] = {
+ {'C',1.0,&canon_1b_2l_ink},
+ {'M',1.0,&canon_1b_2l_ink},
+ {'Y',1.0,&canon_1b_2l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink}, /* y and k swapped */
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1308,14 +1935,14 @@ static const canon_inkset_t canon_16_C8M8Y4k4_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_16_C6M6Y4K2k4_inkset[] = {
- {'C',1.0,&canon_4b_6l_ink},
- {'M',1.0,&canon_4b_6l_ink},
- {'Y',1.0,&canon_2b_4l_ink},
+static const canon_inkset_t canon_16_C3M3Y2K2k3off_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_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink}, /* y and k swapped */
+ {'k',0.0,&canon_2b_3l_c_ink}, /* y and k swapped */
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1327,14 +1954,14 @@ static const canon_inkset_t canon_16_C6M6Y4K2k4_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_16_C6M6Y4k4_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},
+static const canon_inkset_t canon_16_C3M3Y2K2k3on_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_1b_2l_ink},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',1.0,&canon_2b_4l_ink}, /* y and k swapped */
+ {'k',1.0,&canon_2b_3l_c_ink}, /* y and k swapped */
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1365,14 +1992,14 @@ static const canon_inkset_t canon_16_C5M5Y4k4_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_16_C3M3Y2K2k3_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_1b_2l_ink},
+static const canon_inkset_t canon_16_C6M6Y4k4_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},
- {'k',1.0,&canon_2b_3l_c_ink}, /* y and k swapped */
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink}, /* y and k swapped */
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1384,14 +2011,14 @@ static const canon_inkset_t canon_16_C3M3Y2K2k3_c_inkset[] = {
{0,0.0,NULL},
};
-static const canon_inkset_t canon_16_C2M2Y2K2_inkset[] = {
- {'C',1.0,&canon_1b_2l_ink},
- {'M',1.0,&canon_1b_2l_ink},
- {'Y',1.0,&canon_1b_2l_ink},
+static const canon_inkset_t canon_16_C6M6Y4K2k4off_inkset[] = {
+ {'C',1.0,&canon_4b_6l_ink},
+ {'M',1.0,&canon_4b_6l_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},
+ {'k',0.0,&canon_2b_4l_ink}, /* y and k swapped */
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1403,6 +2030,24 @@ static const canon_inkset_t canon_16_C2M2Y2K2_inkset[] = {
{0,0.0,NULL},
};
+static const canon_inkset_t canon_16_C8M8Y4k4_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}, /* y and k swapped */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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_19_C2M2Y2K2_inkset[] = {
{'C',1.0,&canon_1b_2l_ink},
@@ -1426,7 +2071,6 @@ static const canon_inkset_t canon_19_C2M2Y2K2_inkset[] = {
{0,0.0,NULL},
};
-/* iP6700D Fast plain mode */
static const canon_inkset_t canon_19_C2M2Y2k2_inkset[] = {
{'C',1.0,&canon_1b_2l_ink},
{'M',1.0,&canon_1b_2l_ink},
@@ -1471,7 +2115,28 @@ static const canon_inkset_t canon_19_C3M3Y3k3_inkset[] = {
{0,0.0,NULL},
};
-/* works OK on MP960 */
+static const canon_inkset_t canon_19_C3M3Y3K2k3off_inkset[] = {
+ {'C',1.0,&canon_2b_3l_ink},
+ {'M',1.0,&canon_2b_3l_ink},
+ {'Y',1.0,&canon_2b_3l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_3l_ink},/* need to swap y -> k, switch 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},
+};
+
static const canon_inkset_t canon_19_C3M3Y3K2k3_inkset[] = {
{'C',1.0,&canon_2b_3l_ink},
{'M',1.0,&canon_2b_3l_ink},
@@ -1494,7 +2159,6 @@ static const canon_inkset_t canon_19_C3M3Y3K2k3_inkset[] = {
{0,0.0,NULL},
};
-/* photo mode iP6700D T-shirt transfers */
static const canon_inkset_t canon_19_C4M4Y4k4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -1517,11 +2181,54 @@ static const canon_inkset_t canon_19_C4M4Y4k4_inkset[] = {
{0,0.0,NULL},
};
-/* photo mode MP960 T-shirt transfers --- works OK! */
static const canon_inkset_t canon_19_C4M4Y4K2k4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
{'Y',1.0,&canon_2b_4l_ink},
+ {'K',0.0,&canon_1b_2l_ink}, /* not used */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink}, /* change y to 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},
+ {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_19_C4M4Y4K2k4off_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},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_4l_ink}, /* switch 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},
+};
+
+static const canon_inkset_t canon_19_C4M4Y4K2k4on_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},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1540,7 +2247,6 @@ static const canon_inkset_t canon_19_C4M4Y4K2k4_inkset[] = {
{0,0.0,NULL},
};
-/* photo mode MP960 CDs and iP6700D Photo High 2 [PPmatte, Coated] */
static const canon_inkset_t canon_19_C4M4Y4c4m4k4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -1563,7 +2269,6 @@ static const canon_inkset_t canon_19_C4M4Y4c4m4k4_inkset[] = {
{0,0.0,NULL},
};
-/* photo mode iP6700D CDs, position of cmk guessed */
static const canon_inkset_t canon_19_C4M4Y4c4m4k4CD_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -1586,7 +2291,6 @@ static const canon_inkset_t canon_19_C4M4Y4c4m4k4CD_inkset[] = {
{0,0.0,NULL},
};
-/* photo mode MP960 PPmatte works! */
static const canon_inkset_t canon_19_C4M4Y4K2c4m4k4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -1609,7 +2313,6 @@ static const canon_inkset_t canon_19_C4M4Y4K2c4m4k4_inkset[] = {
{0,0.0,NULL},
};
-/* MP960 HIGH works OK */
static const canon_inkset_t canon_19_C6M6Y4K2_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1632,7 +2335,6 @@ static const canon_inkset_t canon_19_C6M6Y4K2_inkset[] = {
{0,0.0,NULL},
};
-/* iP6700D Plain High: CMYk */
static const canon_inkset_t canon_19_C6M6Y4c6m6k4_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1655,7 +2357,6 @@ static const canon_inkset_t canon_19_C6M6Y4c6m6k4_inkset[] = {
{0,0.0,NULL},
};
-/* iP6700D Photo Std: CMYKcmk */
static const canon_inkset_t canon_19_C6M6Y4c6m6k4photo_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1678,7 +2379,6 @@ static const canon_inkset_t canon_19_C6M6Y4c6m6k4photo_inkset[] = {
{0,0.0,NULL},
};
-/* hagaki std & high MP960 : CMYKk*/
static const canon_inkset_t canon_19_C6M6Y4K2c6m6k4hagaki_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1701,7 +2401,6 @@ static const canon_inkset_t canon_19_C6M6Y4K2c6m6k4hagaki_inkset[] = {
{0,0.0,NULL},
};
-/* photo std mode MP960 and inkjet Hagaki Std: CMYcmk*/
static const canon_inkset_t canon_19_C6M6Y4K2c6m6k4_inkset[] = {
{'C',1.0,&canon_4b_6l_ink},
{'M',1.0,&canon_4b_6l_ink},
@@ -1724,7 +2423,28 @@ static const canon_inkset_t canon_19_C6M6Y4K2c6m6k4_inkset[] = {
{0,0.0,NULL},
};
-/* iP6700D Photo High: CMYkcm */
+static const canon_inkset_t canon_19_C6M6Y4K2c6m6k4off_inkset[] = {
+ {'C',1.0,&canon_4b_6l_ink},
+ {'M',1.0,&canon_4b_6l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
+ {'c',1.0,&canon_4b_6l_ink},
+ {'m',1.0,&canon_4b_6l_ink},
+ {'k',0.0,&canon_2b_4l_ink}, /* change y to k, switch 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},
+};
+
static const canon_inkset_t canon_19_C7M7Y4c7m7k4_inkset[] = {
{'C',1.0,&canon_4b_7l_ink},
{'M',1.0,&canon_4b_7l_ink},
@@ -1747,7 +2467,6 @@ static const canon_inkset_t canon_19_C7M7Y4c7m7k4_inkset[] = {
{0,0.0,NULL},
};
-/* photo high mode MP960 and inkjetHagaki High: CMYcmk */
static const canon_inkset_t canon_19_C7M7Y4K2c7m7k4_inkset[] = {
{'C',1.0,&canon_4b_7l_ink},
{'M',1.0,&canon_4b_7l_ink},
@@ -1820,6 +2539,31 @@ static const canon_inkset_t canon_22_C3M3Y2K2_c_inkset[] = {
{0,0.0,NULL},
};
+static const canon_inkset_t canon_22_C3M3Y2K2photo_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_1b_2l_ink}, /* set to 0*/
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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_22_C3M3Y2K2k3_c_inkset[] = {
{'C',1.0,&canon_2b_3l_c_ink},
{'M',1.0,&canon_2b_3l_c_ink},
@@ -1828,7 +2572,58 @@ static const canon_inkset_t canon_22_C3M3Y2K2k3_c_inkset[] = {
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
- {'k',0.0,&canon_2b_3l_c_ink}, /* even though we won't use the photo black in this mode its parameters have to be set */
+ {'k',0.0,&canon_2b_3l_c_ink}, /* off for plain 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},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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_22_C3M3Y2K2k3photo_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_1b_2l_ink}, /* set to 0 */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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},
+};
+
+static const canon_inkset_t canon_22_C3M3Y2K2k3on_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_1b_2l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_3l_c_ink},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1845,7 +2640,6 @@ static const canon_inkset_t canon_22_C3M3Y2K2k3_c_inkset[] = {
{0,0.0,NULL},
};
-/* MP520 photo standard */
static const canon_inkset_t canon_22_C3M3Y3K2c3m3_c_inkset[] = {
{'C',1.0,&canon_2b_3l_c_ink},
{'M',1.0,&canon_2b_3l_c_ink},
@@ -1854,7 +2648,7 @@ static const canon_inkset_t canon_22_C3M3Y3K2c3m3_c_inkset[] = {
{'c',1.0,&canon_2b_3l_c_ink},
{'m',1.0,&canon_2b_3l_c_ink},
{0,0.0,NULL},
- {'k',0.0,&canon_2b_3l_ink}, /* even though we won't use the photo black in this mode its parameters have to be set */
+ {0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1921,7 +2715,31 @@ static const canon_inkset_t canon_22_C4M4Y4K2_inkset[] = {
{0,0.0,NULL},
};
-/* MP830 T-Shirt */
+static const canon_inkset_t canon_22_C4M4Y4K2k4one_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',0.0,&canon_1b_2l_ink}, /* no K */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_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},
+};
+
static const canon_inkset_t canon_22_C4M4Y4K2k4_inkset[] = {
{'C',1.0,&canon_2b_4l_ink},
{'M',1.0,&canon_2b_4l_ink},
@@ -1947,16 +2765,40 @@ static const canon_inkset_t canon_22_C4M4Y4K2k4_inkset[] = {
{0,0.0,NULL},
};
-/* MP520 high */
static const canon_inkset_t canon_22_C4M4Y4K2c4m4_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},
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_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},
+};
+
+static const canon_inkset_t canon_22_C4M4Y4K2c4m4photo_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
{'K',0.0,&canon_1b_2l_ink}, /* set to 0 */
{'c',1.0,&canon_2b_4l_ink},
{'m',1.0,&canon_2b_4l_ink},
{0,0.0,NULL},
- {'k',0.0,&canon_2b_4l_ink}, /* even though we won't use the photo black in this mode its parameters have to be set */
+ {0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
{0,0.0,NULL},
@@ -1998,19 +2840,45 @@ static const canon_inkset_t canon_22_C4M4Y4K2c4m4k4_inkset[] = {
{0,0.0,NULL},
};
-/* high */
+static const canon_inkset_t canon_22_C4M4Y4K2c4m4k4on_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},
+ {'c',0.5,&canon_2b_4l_ink},
+ {'m',0.5,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_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},
+};
+
+
+/* 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_C2M6K6m4k4_inkset[] = {*/
-static const canon_inkset_t canon_30_K2C6M6Y4k4_inkset[] = {
+/*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_4b_6l_ink},
+ {'C',1.0,&canon_1b_2l_ink},
{0,0.0,NULL},
- {'M',1.0,&canon_4b_6l_ink},
+ {'M',1.0,&canon_1b_2l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_1b_2l_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},
@@ -2036,7 +2904,7 @@ static const canon_inkset_t canon_30_K2C6M6Y4k4_inkset[] = {
};
/* standard */
-/* MP990, MG6100, MG800 */
+/* MP990, MG6100, MG6200, 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_K2C3M3Y2k3_c_inkset[] = {
{'K',1.0,&canon_1b_2l_ink},
@@ -2071,19 +2939,53 @@ static const canon_inkset_t canon_30_K2C3M3Y2k3_c_inkset[] = {
{0,0.0,NULL},
};
-/* 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 and k both */
+static const canon_inkset_t canon_30_K2C3M3Y2k3on_c_inkset[] = {
{'K',1.0,&canon_1b_2l_ink},
- {'C',1.0,&canon_1b_2l_ink},
+ {'C',1.0,&canon_2b_3l_c_ink},
{0,0.0,NULL},
- {'M',1.0,&canon_1b_2l_ink},
+ {'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}, /* on */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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 */
+/* MP990, MG6100, MG6200, 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_C2M6K6m4k4_inkset[] = {*/
+static const canon_inkset_t canon_30_K2C6M6Y4k4_inkset[] = {
+ {'K',1.0,&canon_1b_2l_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},
@@ -2144,5 +3046,71 @@ static const canon_inkset_t canon_30_C5M5Y4k4_inkset[] = {
{0,0.0,NULL},
};
+static const canon_inkset_t canon_30_M6K6m4k4_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},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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},
+ {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},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {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
new file mode 100644
index 0000000..3052f8e
--- /dev/null
+++ b/src/main/canon-media-mode.h
@@ -0,0 +1,10663 @@
+/*
+ * 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_hig2",
+ "600x600dpi_high",
+ "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 2f354ef..4b47916 100644
--- a/src/main/canon-media.h
+++ b/src/main/canon-media.h
@@ -69,7 +69,7 @@ static const canon_slot_t canon_PIXMA_iP4000_slots[] = {
{ "Cassette", N_ ("Cassette"), 0x8 },
{ "CD", N_ ("CD tray"), 0xa },
{ "AutoSwitch", N_ ("Automatic Paper Source Switching"), 0xf },
- { "AllocPaper", N_ ("PaperAllocation"), 0x15 },/*Paper allocation? no idea what this means compared to Continuous*/
+ { "AllocPaper", N_ ("PaperAllocation"), 0x15 },
};
DECLARE_SLOTS(canon_PIXMA_iP4000);
@@ -79,24 +79,71 @@ static const canon_slot_t canon_PIXMA_iP3100_slots[] = {
{ "Cassette", N_ ("Cassette"), 0x8 },
{ "CD", N_ ("CD tray"), 0xa },
{ "AutoSwitch", N_ ("Continuous Autofeed"), 0xf },
+ { "AllocPaper", N_ ("PaperAllocation"), 0x15 },
};
DECLARE_SLOTS(canon_PIXMA_iP3100);
-/* MP170, MP450, MP460, MX300 */
-static const canon_slot_t canon_MULTIPASS_MP170_slots[] = {
+static const canon_slot_t canon_PIXMA_iP2000_slots[] = {
+ { "SelectKey", N_ ("Selected by Paper Select Key"), 0x3 },
+ { "Auto", N_ ("Auto Sheet Feeder"), 0x4 },
+ { "Front", N_ ("Front Feeder"), 0x8 },
+ { "Continuous", N_ ("Continuous Autofeed"), 0xf },
+ { "AllocPaper", N_ ("PaperAllocation"), 0x15 },
+};
+DECLARE_SLOTS(canon_PIXMA_iP2000);
+
+static const canon_slot_t canon_MULTIPASS_MP530_slots[] = {
+ { "SelectKey", N_ ("Selected by Paper Select Key"), 0x3 },
{ "Auto", N_ ("Auto Sheet Feeder"), 0x4 },
+ { "Cassette", N_ ("Cassette"), 0x8 },
+ { "CD", N_ ("CD tray"), 0xa },
+ { "AutoSwitch", N_ ("Continuous Autofeed"), 0xf },
+ { "AllocPaper", N_ ("PaperAllocation"), 0x15 },
};
-DECLARE_SLOTS(canon_MULTIPASS_MP170);
+DECLARE_SLOTS(canon_MULTIPASS_MP530);
+
+static const canon_slot_t canon_MULTIPASS_MP150_slots[] = {
+ { "Auto", N_ ("Auto Sheet Feeder"), 0x4 },
+};
+DECLARE_SLOTS(canon_MULTIPASS_MP150);
-/* MP250 */
-/* iP2700 */
-/* iP1900 */
static const canon_slot_t canon_MULTIPASS_MP250_slots[] = {
{ "Rear", N_ ("Rear tray"), 0x4 },
};
DECLARE_SLOTS(canon_MULTIPASS_MP250);
-/* MX7600 */
+static const canon_slot_t canon_PIXMA_MG2100_slots[] = {
+ { "Front", N_ ("Front tray"), 0x8 },
+};
+DECLARE_SLOTS(canon_PIXMA_MG2100);
+
+/* MP710/740 have adjustment for thick media: gap=10 */
+static const canon_slot_t canon_MULTIPASS_MP710_slots[] = {
+ { "Auto", N_ ("Auto Sheet Feeder"), 0x4 },
+ { "AutoThick", N_ ("Auto Sheet Feeder (thick media)"), 0x4 },
+ { "CD", N_ ("CD tray"), 0xa },
+};
+DECLARE_SLOTS(canon_MULTIPASS_MP710);
+
+static const canon_slot_t canon_MULTIPASS_MP900_slots[] = {
+ { "Auto", N_ ("Auto Sheet Feeder"), 0x4 },
+ { "CD", N_ ("CD tray"), 0xa },
+};
+DECLARE_SLOTS(canon_MULTIPASS_MP900);
+
+static const canon_slot_t canon_BJC_i860_slots[] = {
+ { "Auto", N_ ("Auto Sheet Feeder"), 0x4 },
+ { "Cassette", N_ ("Cassette"), 0x8 },
+ { "CD", N_ ("CD tray"), 0xa },
+};
+DECLARE_SLOTS(canon_BJC_i860);
+
+static const canon_slot_t canon_BJC_S800_slots[] = {
+ { "Auto", N_ ("Auto Sheet Feeder"), 0x4 },
+ { "HandFeed", N_ ("Hand Feeding"), 0x1 },
+};
+DECLARE_SLOTS(canon_BJC_S800);
+
static const canon_slot_t canon_MULTIPASS_MX7600_slots[] = {
{ "Cassette", N_ ("Cassette"), 0x8 },
};
@@ -109,24 +156,22 @@ static const canon_slot_t canon_PIXMA_iX7000_slots[] = {
};
DECLARE_SLOTS(canon_PIXMA_iX7000);
-/* iP4500 */
static const canon_slot_t canon_PIXMA_iP4500_slots[] = {
{ "SelectKey", N_ ("Selected by Paper Select Key"), 0x3 },
{ "Rear", N_ ("Rear tray"), 0x4 },
{ "Cassette", N_ ("Cassette"), 0x8 },
- { "Continuous", N_ ("Continuous Autofeed (both)"), 0xf }, /* no paper automatic change source*/
- { "CD", N_ ("CD tray"), 0xa }, /* CD-R tray F */
- { "AutoSwitch", N_ ("Automatic Paper Source Switching"), 15 },/*Paper alloction? no idea what this means compared to Continuous*/
+ { "Continuous", N_ ("Continuous Autofeed"), 0xf }, /* no paper automatic change source*/
+ { "CD", N_ ("CD tray"), 0xa },
+ { "AutoSwitch", N_ ("Automatic Paper Source Switching"), 15 },
};
DECLARE_SLOTS(canon_PIXMA_iP4500);
-/* MX850 */
static const canon_slot_t canon_MULTIPASS_MX850_slots[] = {
{ "SelectKey", N_ ("Selected by Paper Select Key"), 0x3 },
{ "Rear", N_ ("Rear tray"), 0x4 },
{ "Cassette", N_ ("Cassette"), 0x8 },
{ "Continuous", N_ ("Continuous Autofeed (both)"), 0xf }, /* no paper automatic change source*/
- { "CD", N_ ("CD tray"), 0xa }, /* CD-R tray F */
+ { "CD", N_ ("CD tray"), 0xa },
};
DECLARE_SLOTS(canon_MULTIPASS_MX850);
@@ -138,13 +183,28 @@ static const canon_slot_t canon_MULTIPASS_MP520_slots[] = {
};
DECLARE_SLOTS(canon_MULTIPASS_MP520);
-/* iP4600, iP4700 */
+static const canon_slot_t canon_PIXMA_iP3500_slots[] = {
+ { "Rear", N_ ("Rear tray"), 0x4 },
+ { "Front", N_ ("Front tray"), 0x8 },
+ /* There is also a "plain media only Front" option, but it seems to have same 0x8 when used, no idea whether it should take different values */
+};
+DECLARE_SLOTS(canon_PIXMA_iP3500);
+
+static const canon_slot_t canon_PIXMA_iP3600_slots[] = {
+ { "AutoSwitch", N_ ("Automatic Paper Source Switching"), 0xe },
+ { "Rear", N_ ("Rear tray"), 0x4 },
+ { "Cassette", N_ ("Cassette"), 0x8 },
+ { "Continuous", N_ ("Continuous Autofeed"), 0xf },
+};
+DECLARE_SLOTS(canon_PIXMA_iP3600);
+
static const canon_slot_t canon_PIXMA_iP4600_slots[] = {
{ "AutoSwitch", N_ ("Automatic Paper Source Switching"), 0xe },
{ "Rear", N_ ("Rear tray"), 0x4 },
{ "Cassette", N_ ("Cassette"), 0x8 },
- { "Continuous", N_ ("Continuous Autofeed (both)"), 0xf },
- { "CD", N_ ("CD tray"), 0xa }
+ { "Continuous", N_ ("Continuous Autofeed"), 0xf },
+ { "AllocPaper", N_ ("PaperAllocation"), 0x15 },
+ { "CD", N_ ("CD tray"), 0xa },
};
DECLARE_SLOTS(canon_PIXMA_iP4600);
@@ -152,31 +212,28 @@ DECLARE_SLOTS(canon_PIXMA_iP4600);
static const canon_slot_t canon_PIXMA_Pro9000_slots[] = {
{ "Rear", N_ ("Rear tray"), 0x4 },
{ "Front", N_ ("Front tray"), 0xb },
- { "CD", N_ ("CD tray"), 0xa }
+ { "CD", N_ ("CD tray"), 0xa },
};
DECLARE_SLOTS(canon_PIXMA_Pro9000);
-
-/* Gernot --- added so check this*/
static const canon_slot_t canon_PIXMA_MG5100_slots[] = {
{ "AutoSwitch", N_ ("Automatic Paper Source Switching"), 0xe },
{ "Rear", N_ ("Rear tray"), 0x4 },
{ "Cassette", N_ ("Cassette"), 0x8 },
- { "Continuous", N_ ("Continuous Autofeed (both)"), 0xf },
- { "AllocPaper", N_ ("PaperAllocation"), 0x15 },/*Paper allocation? no idea what this means compared to Continuous*/
+ { "Continuous", N_ ("Continuous Autofeed"), 0xf },
+ { "AllocPaper", N_ ("PaperAllocation"), 0x15 },
};
DECLARE_SLOTS(canon_PIXMA_MG5100);
-/* Gernot --- added so check this*/
static const canon_slot_t canon_PIXMA_MG5200_slots[] = {
{ "AutoSwitch", N_ ("Automatic Paper Source Switching"), 0xe },
{ "Rear", N_ ("Rear tray"), 0x4 },
{ "Cassette", N_ ("Cassette"), 0x8 },
- { "Continuous", N_ ("Continuous Autofeed (both)"), 0xf },
- { "AllocPaper", N_ ("PaperAllocation"), 0x15 },/*Paper allocation? no idea what this means compared to Continuous*/
- { "CD", N_ ("CD tray"), 0xa }
+ { "Continuous", N_ ("Continuous Autofeed"), 0xf },
+ { "AllocPaper", N_ ("PaperAllocation"), 0x15 },
+ { "CD", N_ ("CD tray"), 0xa },
};
-DECLARE_SLOTS(canon_PIXMA_MG5200); /* also MG6100 */
+DECLARE_SLOTS(canon_PIXMA_MG5200);
/* media types */
@@ -234,22 +291,62 @@ static const canon_paper_t canon_PIXMA_iP4000_papers[] = {
{ "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Photo Paper Matte"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "CD", N_ ("CD"), 0x00,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CD", N_ ("CD"), 0x00,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* legacy */
/* FIXME media code for c) should be 0x0c for CD but this will restrict CD printing to a single, not well supported, resolution */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
{ "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
};
DECLARE_PAPERS(canon_PIXMA_iP4000);
+static const canon_paper_t canon_PIXMA_iP2000_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP2000);
+
+static const canon_paper_t canon_PIXMA_iP3000_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP3000);
+
static const canon_paper_t canon_PIXMA_iP3100_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Photo Paper Matte"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -259,14 +356,431 @@ static const canon_paper_t canon_PIXMA_iP3100_papers[] = {
{ "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- /* FIXME media code for c) should be 0x0c for CD but this will restrict CD printing to a single, not well supported, resolution */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* experiment */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_PIXMA_iP3100);
+static const canon_paper_t canon_PIXMA_iP4100_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+};
+DECLARE_PAPERS(canon_PIXMA_iP4100);
+
+static const canon_paper_t canon_PIXMA_iP4200_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ /* FIXME media code for c) should be 0x0c for CD but this will restrict CD printing to an unsupported resolution */
+ { "CD", N_ ("CD"), 0x00,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0.78, 0.25, 0.900, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP4200);
+
+static const canon_paper_t canon_BJC_S200_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_S200);
+
+static const canon_paper_t canon_BJC_S300_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested*/
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyCard", N_ ("Glossy Photo Cards"), 0x05,0x0c,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/* different from expected 0xa 0xa */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_S300);
+
+static const canon_paper_t canon_BJC_S330_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_S330);
+
+static const canon_paper_t canon_BJC_S520_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_S520);
+
+static const canon_paper_t canon_BJC_S750_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_S750);
+
+static const canon_paper_t canon_BJC_S800_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyCard", N_ ("Glossy Photo Cards"), 0x05,0x0a,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/* different from expected 0xa 0xa */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x00,0x0f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0xf 0x14 */
+};
+DECLARE_PAPERS(canon_BJC_S800);
+
+static const canon_paper_t canon_BJC_i50_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i50);
+
+static const canon_paper_t canon_BJC_i80_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_BJC_i80);
+
+static const canon_paper_t canon_BJC_i250_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* 250i,350i different from expected 08 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* 250i,350i */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i250);
+
+static const canon_paper_t canon_BJC_i320_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i320);
+
+static const canon_paper_t canon_BJC_i450_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i450);
+
+static const canon_paper_t canon_BJC_i455_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,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 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i455);
+
+static const canon_paper_t canon_BJC_i550_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i550);
+
+static const canon_paper_t canon_BJC_i560_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i560);
+
+static const canon_paper_t canon_BJC_i850_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 9 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i850);
+
+static const canon_paper_t canon_BJC_i950_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x09,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 9 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i950);
+
+static const canon_paper_t canon_BJC_i6100_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected b 11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected a 10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_BJC_i6100);
+
+static const canon_paper_t canon_BJC_i9100_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected b 11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected a 10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x09,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i9100);
+
+static const canon_paper_t canon_BJC_i9900_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_BJC_i9900);
+
+static const canon_paper_t canon_PIXMA_iP90_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,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 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP90);
+
+static const canon_paper_t canon_PIXMA_iP100_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 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*/
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,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 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,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 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP100);
+
static const canon_paper_t canon_PIXMA_iP1000_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,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 },
{ "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -282,7 +796,7 @@ DECLARE_PAPERS(canon_PIXMA_iP1000);
static const canon_paper_t canon_PIXMA_iP1200_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -299,7 +813,7 @@ DECLARE_PAPERS(canon_PIXMA_iP1200);
static const canon_paper_t canon_PIXMA_iP1500_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -316,7 +830,7 @@ DECLARE_PAPERS(canon_PIXMA_iP1500);
static const canon_paper_t canon_PIXMA_iP2200_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -333,10 +847,10 @@ DECLARE_PAPERS(canon_PIXMA_iP2200);
static const canon_paper_t canon_PIXMA_iP2600_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 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 */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,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 },
{ "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
@@ -348,16 +862,51 @@ static const canon_paper_t canon_PIXMA_iP2600_papers[] = {
};
DECLARE_PAPERS(canon_PIXMA_iP2600);
+static const canon_paper_t canon_PIXMA_iP3300_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro*/
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuper */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuperDS */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPgloss */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PPmatte */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PPother */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* HiRes */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjetHagaki */
+ { "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 */
+};
+DECLARE_PAPERS(canon_PIXMA_iP3300);
+
+static const canon_paper_t canon_PIXMA_iP5000_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*untested*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*untested*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP5000);
+
static const canon_paper_t canon_PIXMA_iP6100_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Photo Paper Matte"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "CD", N_ ("CD"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -366,11 +915,10 @@ static const canon_paper_t canon_PIXMA_iP6100_papers[] = {
};
DECLARE_PAPERS(canon_PIXMA_iP6100);
-/* iP6600D, Tray C for CD media */
static const canon_paper_t canon_PIXMA_iP6600_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
/* Name Text (c (l (P Density k_upper *lum_adjustment */
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -386,11 +934,10 @@ static const canon_paper_t canon_PIXMA_iP6600_papers[] = { /* k_lo
};
DECLARE_PAPERS(canon_PIXMA_iP6600);
-/* iP6700D, Tray C for CD media */
static const canon_paper_t canon_PIXMA_iP6700_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
/* Name Text (c (l (P Density k_upper *lum_adjustment */
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -399,7 +946,7 @@ static const canon_paper_t canon_PIXMA_iP6700_papers[] = { /* k_lo
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
{ "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 },
@@ -408,14 +955,99 @@ static const canon_paper_t canon_PIXMA_iP6700_papers[] = { /* k_lo
};
DECLARE_PAPERS(canon_PIXMA_iP6700);
+static const canon_paper_t canon_PIXMA_iP7100_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
+ /* Name Text (c (l (P Density k_upper *lum_adjustment */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x02,0x0d,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x02,0x0d,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "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 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },/* untested */
+};
+DECLARE_PAPERS(canon_PIXMA_iP7100);
+
+static const canon_paper_t canon_PIXMA_iP7500_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
+ /* Name Text (c (l (P Density k_upper *lum_adjustment */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "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 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP7500);
+
+static const canon_paper_t canon_PIXMA_iP8500_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP8500);
+
+static const canon_paper_t canon_PIXMA_iP9910_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
+ /* Name Text (c (l (P Density k_upper *lum_adjustment */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x09,0x11,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x09,0x0d,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x09,0x0d,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "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 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP9910);
+
/* PIXMA Pro9000 */
static const canon_paper_t canon_PIXMA_Pro9000_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },/*PPsuper*/
{ "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x0b,0x11,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
{ "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/*PPgloss*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/*PPkinumecho*/
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/*PPpro*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/*PPpro*/
{ "PhotoPro2", N_ ("Photo Paper Pro II"), 0x09,0x0d,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGpro*/
{ "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x09,0x11,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGproPlat*/
{ "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -426,12 +1058,12 @@ static const canon_paper_t canon_PIXMA_Pro9000_papers[] = {
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x20,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/*check l*/
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x20,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
/* special papers */
{ "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
{ "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },
};
@@ -440,7 +1072,7 @@ DECLARE_PAPERS(canon_PIXMA_Pro9000);
/* PIXMA Pro9000 Mk.II */
static const canon_paper_t canon_PIXMA_Pro9000mk2_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*/
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
{ "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/*PPgloss*/
{ "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/*PP kinumecho*/
{ "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGpro*/
@@ -458,71 +1090,100 @@ static const canon_paper_t canon_PIXMA_Pro9000mk2_papers[] = {
{ "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
{ "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_Pro9000mk2);
/* PIXMA Pro9500 */
-/* added Envelope, glossy photo paper, coated, T-shirt, PhotopaperOther---must check printjobs if I forgot these ones */
static const canon_paper_t canon_PIXMA_Pro9500_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*/
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/*PP kinumecho*/
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGpro*/
{ "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGproPlat*/
{ "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },/* check */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
{ "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 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
/* special papers */
{ "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
{ "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_Pro9500);
/* PIXMA Pro9500 Mk.II */
-/* added Envelope, glossy photo paper, coated, T-shirt, PhotopaperOther---must check printjobs if I forgot these ones */
static const canon_paper_t canon_PIXMA_Pro9500mk2_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*/
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/*PP kinumecho*/
+ { "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 },/*PPGproPlat*/
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,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 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
{ "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 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* check */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
/* special papers */
{ "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
{ "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },
{ "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_Pro9500mk2);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MP150 so far */
+static const canon_paper_t canon_SELPHY_DS700_papers[] = {
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09, 0x0d,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b, 0x11,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a, 0x10,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05, 0x05,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d, 0x09,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08, 0x09,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_SELPHY_DS700);
+
+static const canon_paper_t canon_SELPHY_DS810_papers[] = {
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09, 0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b, 0x11,0x1d,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a, 0x10,0x1c,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05, 0x05,0x16,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d, 0x09,0x1b,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08, 0x09,0x07,1.00, 1.00, 0.999, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_SELPHY_DS810);
+
+static const canon_paper_t canon_PIXMA_mini320_papers[] = {
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09, 0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b, 0x11,0x1d,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10, 0x15,0x25,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a, 0x10,0x1c,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05, 0x05,0x16,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d, 0x23,0x32,1.00, 1.00, 0.999, 0, 0, 0 },/*PPGgold*/
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d, 0x09,0x1b,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08, 0x09,0x07,1.00, 1.00, 0.999, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_mini320);
+
static const canon_paper_t canon_MULTIPASS_MP150_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -536,15 +1197,15 @@ static const canon_paper_t canon_MULTIPASS_MP150_papers[] = {
};
DECLARE_PAPERS(canon_MULTIPASS_MP150);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MP170, MP450, MP460 */
-static const canon_paper_t canon_MULTIPASS_MP170_papers[] = {
+static const canon_paper_t canon_MULTIPASS_MP190_papers[] = {
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro */
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "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 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -552,13 +1213,28 @@ static const canon_paper_t canon_MULTIPASS_MP170_papers[] = {
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
};
-DECLARE_PAPERS(canon_MULTIPASS_MP170);
+DECLARE_PAPERS(canon_MULTIPASS_MP190);
+
+static const canon_paper_t canon_MULTIPASS_MP360_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP360);
/* MX300, MX310, MX700 */
static const canon_paper_t canon_MULTIPASS_MX300_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 */
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 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 */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -572,15 +1248,14 @@ static const canon_paper_t canon_MULTIPASS_MX300_papers[] = {
};
DECLARE_PAPERS(canon_MULTIPASS_MX300);
-/* MX330 */
static const canon_paper_t canon_MULTIPASS_MX330_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
{ "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,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 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -593,16 +1268,16 @@ DECLARE_PAPERS(canon_MULTIPASS_MX330);
/* MX340 --- MX350 is the same */
static const canon_paper_t canon_MULTIPASS_MX340_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
{ "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,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 */
+ { "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 },
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 }, /* Canon photo 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 },
{ "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -613,15 +1288,15 @@ DECLARE_PAPERS(canon_MULTIPASS_MX340);
/* MX360 --- MX410 is the same */
static const canon_paper_t canon_MULTIPASS_MX360_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 }, /* PPGproPlat */
+ { "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 },/* PPGproPlat */
{ "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,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 */
+ { "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 },
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 }, /* Canon photo 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 },
{ "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -629,17 +1304,17 @@ static const canon_paper_t canon_MULTIPASS_MX360_papers[] = {
};
DECLARE_PAPERS(canon_MULTIPASS_MX360);
-/* MX420 */
static const canon_paper_t canon_MULTIPASS_MX420_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 }, /* PPGproPlat */
+ { "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 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper 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 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 */
+ { "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 },
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 }, /* Canon photo 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 },
{ "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,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 },
@@ -647,21 +1322,20 @@ static const canon_paper_t canon_MULTIPASS_MX420_papers[] = {
};
DECLARE_PAPERS(canon_MULTIPASS_MX420);
-/* MX850 */
static const canon_paper_t canon_MULTIPASS_MX850_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 */
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 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 */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
- { "PhotoSemiGloss",N_ ("Photo Paper Semi-gloss"), 0x0b,0x11,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho new !! */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Semi-gloss"), 0x0b,0x11,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho new !! */
{ "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 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
+ { "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 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
@@ -669,47 +1343,45 @@ static const canon_paper_t canon_MULTIPASS_MX850_papers[] = {
DECLARE_PAPERS(canon_MULTIPASS_MX850);
static const canon_paper_t canon_MULTIPASS_MX880_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 }, /* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 }, /* env */
- { "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*/
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 }, /* T-shirt */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP other */
+ { "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 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "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*/
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_MX880);
-/* MX7600 */
static const canon_paper_t canon_MULTIPASS_MX7600_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
/* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*OK*/
- { "PhotoPlusGLoss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGgold */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 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 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/*check c*/
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/*check c*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/*check variations*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MX7600);
-/* iX7000 */
static const canon_paper_t canon_PIXMA_iX7000_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
/* Name Text (c (l (P Density k_upper *lum_adjustment */
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 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 */
+ { "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 },/* PPGproPlat */
{ "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
{ "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 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -719,126 +1391,150 @@ static const canon_paper_t canon_PIXMA_iX7000_papers[] = { /* k_lo
};
DECLARE_PAPERS(canon_PIXMA_iX7000);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MP250 */
+static const canon_paper_t canon_MULTIPASS_MP240_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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet 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_MULTIPASS_MP240);
+
static const canon_paper_t canon_MULTIPASS_MP250_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "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*/
- { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 }, /* pro 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 */
+ { "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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "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*/
+ { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* pro 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_MULTIPASS_MP250);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MP280 */
static const canon_paper_t canon_MULTIPASS_MP280_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 }, /* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "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 */
+ { "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 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "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_MULTIPASS_MP280);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MP480 */
+static const canon_paper_t canon_MULTIPASS_MP470_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 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 */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,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 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP470);
+
static const canon_paper_t canon_MULTIPASS_MP480_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP other */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 }, /* inkjet 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 */
+ { "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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet 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 */
};
DECLARE_PAPERS(canon_MULTIPASS_MP480);
static const canon_paper_t canon_MULTIPASS_MP493_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 }, /* plain */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
- { "PhotoPlusGLoss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGgold */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP other */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 }, /* T-shirt */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 }, /* inkjet hagaki */
- { "ProPhotoHagakiO", N_ ("Hagaki Pro Photo"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 }, /* Pro photo hagaki*/
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 }, /* Canon photo hagaki*/
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 }, /* all hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 }, /* hagaki*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 }, /* env */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* Pro photo hagaki*/
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
};
DECLARE_PAPERS(canon_MULTIPASS_MP493);
-/* MP520 */
static const canon_paper_t canon_MULTIPASS_MP520_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 }, /* plain */
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPpro*/
- { "PhotoPlusGLoss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGgold */
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPsuper */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPsuperDS */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPgloss */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPmatte */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPother */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* HiRes */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 }, /* inkjetHagaki */
- { "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 */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro*/
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuper */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuperDS */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPgloss */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PPmatte */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PPother */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* HiRes */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjetHagaki */
+ { "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 */
};
DECLARE_PAPERS(canon_MULTIPASS_MP520);
-/* iP1900 series */
static const canon_paper_t canon_PIXMA_iP1900_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "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 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 }, /* inkjet 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 */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet 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_iP1900);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MP600 */
static const canon_paper_t canon_MULTIPASS_MP600_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 }, /* plain */
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -846,6 +1542,7 @@ static const canon_paper_t canon_MULTIPASS_MP600_papers[] = {
{ "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CD", N_ ("CD"), 0x00,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },/*allow plain modes for now*/
{ "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
{ "DiscOthers", N_ ("Printable Disc (others)"), 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 },
@@ -854,76 +1551,168 @@ static const canon_paper_t canon_MULTIPASS_MP600_papers[] = {
};
DECLARE_PAPERS(canon_MULTIPASS_MP600);
-/* MP640 */
+static const canon_paper_t canon_MULTIPASS_MP610_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 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 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (others)"), 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 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP610);
+
static const canon_paper_t canon_MULTIPASS_MP630_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 }, /* inkjet hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 }, /* hagaki*/
+ { "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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
{ "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
{ "DiscOthers", N_ ("Printable Disc (others)"), 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 */
+ { "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_MULTIPASS_MP630);
-/* MP640 */
static const canon_paper_t canon_MULTIPASS_MP640_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "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*/
- { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 }, /* pro photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 }, /* hagaki*/
+ { "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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "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*/
+ { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* pro photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
{ "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
{ "DiscOthers", N_ ("Printable Disc (others)"), 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 */
+ { "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_MULTIPASS_MP640);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* iP2700 series */
+static const canon_paper_t canon_MULTIPASS_MP700_papers[] = { /* no ESC (P for MP700/730 */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 07 09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP700);
+
+static const canon_paper_t canon_MULTIPASS_MP710_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },/* untested */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0d 09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP710);
+
+/* MP750/MP760/MP770/MP780/MP790 */
+static const canon_paper_t canon_MULTIPASS_MP750_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },/* untested */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from Japanese models */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from Japanese models */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from US models */
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP750);
+
static const canon_paper_t canon_PIXMA_iP2700_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 */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPG */
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, /* hi res paper */
- { "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 */
+ { "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 */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "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_iP2700);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* iP4500 */
+static const canon_paper_t canon_PIXMA_iP3600_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
+ /* Name Text (c (l (P Density k_upper *lum_adjustment */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 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 },
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+};
+DECLARE_PAPERS(canon_PIXMA_iP3600);
+
static const canon_paper_t canon_PIXMA_iP4500_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 */
- { "PhotopaperPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "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 */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
@@ -946,16 +1735,16 @@ static const canon_paper_t canon_PIXMA_iP4600_papers[] = { /*
{ "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HighResolution", N_ ("High Resolution Paper"), 0x07,0x07,0x10,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 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
{ "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 },
- { "TShirtTransfer", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Other", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,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 },
};
DECLARE_PAPERS(canon_PIXMA_iP4600);
@@ -966,9 +1755,9 @@ static const canon_paper_t canon_PIXMA_iP4700_papers[] = { /*
{ "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HighResolution", N_ ("High Resolution Paper"), 0x07,0x07,0x10,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 },
{ "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
@@ -976,33 +1765,78 @@ static const canon_paper_t canon_PIXMA_iP4700_papers[] = { /*
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
{ "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 },
- { "TShirtTransfer", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Other", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,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 },
};
DECLARE_PAPERS(canon_PIXMA_iP4700);
+static const canon_paper_t canon_MULTIPASS_MP950_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
+ /* Name Text (c (l (P Density k_upper *lum_adjustment */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "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 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,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 },
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP950);
+
static const canon_paper_t canon_MULTIPASS_MP960_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
/* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*OK*/
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },/*check*/
- { "PhotoSuper", N_ ("Photo Paper Super"), 0x1b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/*check c*/
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "HighResolution", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/*OK*/
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/*check c*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/*check c*/
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "TShirtTransfer", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/*check c*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/*check variations*/
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "Other", N_ ("Other Coated Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 } /*coated, OK*/
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "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 Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP960);
+static const canon_paper_t canon_MULTIPASS_MP970_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
+ /* Name Text (c (l (P Density k_upper *lum_adjustment */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x25,0.78, 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 },
+ { "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 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "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 Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Coated Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_MULTIPASS_MP970);
+
static const canon_paper_t canon_MULTIPASS_MP980_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
/* Name Text (c (l (P Density k_upper *lum_adjustment */
{ "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -1010,8 +1844,8 @@ static const canon_paper_t canon_MULTIPASS_MP980_papers[] = { /* k_lower_sca
{ "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,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 },
{ "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
@@ -1019,9 +1853,9 @@ static const canon_paper_t canon_MULTIPASS_MP980_papers[] = { /* k_lower_sca
{ "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
{ "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 },
- { "TShirtTransfer", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Other", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,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 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP980);
@@ -1032,98 +1866,94 @@ static const canon_paper_t canon_MULTIPASS_MP990_papers[] = { /* k_lower_sca
{ "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
{ "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPhoto", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "MattePhoto", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Other", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirtTransfer", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
+ { "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 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
{ "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 },
- { "HighResolution", N_ ("High Resolution Paper"), 0x07,0x07,0x10,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 },
{ "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "OtherPhotoHagakiO",N_ ("Hagaki O (Other Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* Other photo hagaki*/
+ { "ProPhotoHagakiP", N_ ("Hagaki K (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* Pro photo hagaki*/
{ "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
{ "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP990);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MG5100 series */
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 }, /* plain */
- { "PhotoPlusGLoss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGgold */
+ { "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 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "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 */
+ { "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_MG5100);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MG5200 series */
static const canon_paper_t canon_PIXMA_MG5200_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 */
+ { "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 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "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 },/*check c,l*/
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "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 */
+ { "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_MG5200);
-/* Gernot: added ---- note: ESC ( P code not used at all yet, check print-canon.c */
-/* MG6100 series */
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 }, /* plain */
- { "PhotoPlusGLoss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 }, /* PPGgold */
+ { "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 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP kinumecho */
+ { "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 },/*check c,l*/
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },/*check c,l*/
- { "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 },/*check*/
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/*check*/
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP other */
+ { "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 },
+ { "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_MG6100);
#endif
/*
-Plain: Plain Paper, Canon High Resolution Paper;
-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
+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
*/
diff --git a/src/main/canon-modes.h b/src/main/canon-modes.h
index b5d8e25..a21d324 100644
--- a/src/main/canon-modes.h
+++ b/src/main/canon-modes.h
@@ -81,9 +81,7 @@ typedef struct {
/* delay settings for the different printmodes last entry has to be {0,0} */
static const canon_delay_t delay_1440[] = {{'C',112},{'M',224},{'Y',336},{'c',112},{'m',224},{'y',336},{0,0}};
static const canon_delay_t delay_S200[] = {{'C',0x30},{'M',0x50},{'Y',0x70},{0,0}};
-
-
-
+
/*
* A printmode is defined by its resolution (xdpi x ydpi), the inkset
* and the installed printhead.
@@ -100,12 +98,21 @@ typedef struct {
const char* text; /* description */
const int num_inks;
const canon_inkset_t *inks; /* ink definition */
+ const int raster_lines_per_block; /* number of raster lines in every F) command */
const unsigned int flags;
#define MODE_FLAG_WEAVE 0x1 /* this mode requires weaving */
#define MODE_FLAG_EXTENDED_T 0x2 /* this mode requires extended color settings in the esc t) command */
#define MODE_FLAG_CD 0x4 /* this mode can be used to print to cds */
#define MODE_FLAG_PRO 0x8 /* special ink settings for the PIXMA Pro9500 not sure of this... maybe 0x4 */
#define MODE_FLAG_IP8500 0x10 /* special ink settings for the PIXMA iP8500 */
+#define MODE_FLAG_MP360 0x20 /* special ink settings for the PIXMA MP360 */
+#define MODE_FLAG_MP130 0x40 /* special ink settings for early devices */
+#define MODE_FLAG_S 0x80 /* mode-related setup command on iP90/iP9v and iP100 */
+ /* cartridge/InkSet-specific modes for replacement */
+#define MODE_FLAG_BLACK 0x100 /* selection of black cartridge: replacement modes */
+#define MODE_FLAG_COLOR 0x200 /* selection of color cartridge: replacement modes */
+#define MODE_FLAG_PHOTO 0x400 /* selection of photo color cartridge in BJC series printers (in lieu of color and black, or combined color/black) */
+#define MODE_FLAG_NODUPLEX 0x800 /* selection of mode for duplex: list modes that do not work for duplex---skip these in mode searches */
const canon_delay_t* delay; /* delay settings for this printmode */
const double density; /* density multiplier */
const double gamma; /* gamma multiplier */
@@ -136,1246 +143,3499 @@ static const canon_modelist_t name##_modelist = { \
/* modelist for every printer,modes ordered by ascending resolution ink_type and quality */
static const canon_mode_t canon_BJC_30_modes[] = {
- { 180, 180,CANON_INK_K,"180x180dpi",N_("180x180 DPI"),INKSET(1_K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_K,"360x360dpi",N_("360x360 DPI"),INKSET(1_K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 720, 360,CANON_INK_K,"720x360dpi",N_("720x360 DPI"),INKSET(1_K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 720, 360,CANON_INK_K,"720x360dpi",N_("720x360 DPI"),INKSET(1_K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_30,2);
static const canon_mode_t canon_BJC_85_modes[] = {
+ { 720, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
+ "720x360dpi",N_("720x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 360, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
- "360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ "360x360dmt",N_("360x360 DPI DMT"),INKSET(6_C4M4Y4K4c4m4),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 360, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
- "360x360dmt",N_("360x360 DPI DMT"),INKSET(6_C4M4Y4K4c4m4),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 720, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
- "720x360dpi",N_("720x360 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ "360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_85,0);
+DECLARE_MODES(canon_BJC_85,2);
/* we treat the printers that can either print in K or CMY as CMYK printers here by assigning a CMYK inkset */
static const canon_mode_t canon_BJC_210_modes[] = {
- { 90, 90,CANON_INK_K | CANON_INK_CMY,"90x90dpi",N_("90x90 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 180, 180,CANON_INK_K | CANON_INK_CMY,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_K | CANON_INK_CMY,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 720, 360,CANON_INK_K | CANON_INK_CMY,"720x360dpi",N_("720x360 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 720, 360,CANON_INK_K | CANON_INK_CMY,"720x360dpi",N_("720x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_K | CANON_INK_CMY,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_210,3);
static const canon_mode_t canon_BJC_240_modes[] = {
- { 90, 90,CANON_INK_K | CANON_INK_CMY,"90x90dpi",N_("90x90 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 180, 180,CANON_INK_K | CANON_INK_CMY,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_K | CANON_INK_CMY,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_K | CANON_INK_CMY,"360x360dmt",N_("360x360 DMT"),INKSET(4_C4M4Y4K4),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 720, 360,CANON_INK_K | CANON_INK_CMY,"720x360dpi",N_("720x360 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 720, 360,CANON_INK_K | CANON_INK_CMY,"720x360dpi",N_("720x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_K | CANON_INK_CMY,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_K | CANON_INK_CMY,"360x360dmt",N_("360x360 DMT"),INKSET(4_C4M4Y4K4),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_240,4);
static const canon_mode_t canon_BJC_2000_modes[] = {
- { 180, 180,CANON_INK_CMYK,"180x180dpi",N_("180x180 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_CMYK,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
-
+DECLARE_MODES(canon_BJC_2000,1);
+/* 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 */
+/* some modes use ESC (t 0x2 0x80 0x9 which implies bits per ink > 1, but how to know how many? */
+/* added MODE_FLAG_PHOTO as a means to set ESC (t */
static const canon_mode_t canon_BJC_3000_modes[] = {
- { 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dmt",N_("360x360 DPI DMT"),INKSET(6_C4M4Y4K4c4m4),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 720, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"720x720dpi",N_("720x720 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 1440, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"1440x720dpi",N_("1440x720 DPI"),INKSET(6_C2M2Y2K2c2m2),0,delay_1440,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_BJC_3000,0);
-
-
+ { 1440, 720,CANON_INK_K | CANON_INK_CMY | CANON_INK_CMYK | CANON_INK_CcMmYK,"1440x720dpi",N_("1440x720 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,delay_1440,1.0,1.0,NULL,NULL,NULL,2},
+ { 720, 720,CANON_INK_K | CANON_INK_CMY | 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_K | CANON_INK_CMY | CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_K | CANON_INK_CMY | CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dmt",N_("360x360 DMT"),INKSET(6_C4M4Y4K4c4m4),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 360, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi_draft",N_("360x360 DPI DRAFT"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 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);
+
+/* these printers only have K and CMYK, so CcMmYK is not required */
+/* using color (CMYK) cartridge, all media use CMYK */
+/* some modes use ESC (t 0x2 0x80 0x9 which implies bits per ink > 1, but how to know how many? */
+/* added MODE_FLAG_PHOTO as a means to set ESC (t */
static const canon_mode_t canon_BJC_4300_modes[] = {
- { 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dmt",N_("360x360 DPI DMT"),INKSET(6_C4M4Y4K4c4m4),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 720, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"720x720dpi",N_("720x720 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 1440, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"1440x720dpi",N_("1440x720 DPI"),INKSET(6_C2M2Y2K2c2m2),0,delay_1440,1.0,1.0,NULL,NULL,NULL,2},
+ { 760, 360,CANON_INK_K | CANON_INK_CMYK,"720x360dpi",N_("720x360 DPI"),INKSET(4_C4M4Y4K4),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 360, 360,CANON_INK_K | CANON_INK_CMYK,"360x360dpi_high",N_("360x360 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* different code */
+ { 360, 360,CANON_INK_K | CANON_INK_CMYK,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 360, 360,CANON_INK_K | CANON_INK_CMYK,"360x360dmt",N_("360x360 DMT"),INKSET(4_C4M4Y4K4),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 360, 360,CANON_INK_K | CANON_INK_CMYK,"360x360dpi_draft",N_("360x360 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 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,2},
+ /* there is another 720x360 mono mode */
};
-DECLARE_MODES(canon_BJC_4300,0);
-
-
+DECLARE_MODES(canon_BJC_4300,5);
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),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 720, 360,CANON_INK_K | CANON_INK_CMYK | CANON_INK_CcMmYK,
- "720x360dpi",N_("720x360 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ "720x360dpi",N_("720x360 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_4400,1);
+/* 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. */
+/* using color (CMYK) cartridge, get CMYK */
+/* added MODE_FLAG_PHOTO as a means to set ESC (t */
+static const canon_mode_t canon_BJC_4550_modes[] = {
+ { 720, 360,CANON_INK_K|CANON_INK_CMYK,"720x360dpi_high",N_("720x360 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 720, 360,CANON_INK_K|CANON_INK_CMYK,"720x360dpi",N_("720x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 360, 360,CANON_INK_K|CANON_INK_CMYK,"360x360dpi_high",N_("360x360 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 360, 360,CANON_INK_K|CANON_INK_CMYK,"360x360dpi",N_("360x360 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 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);
static const canon_mode_t canon_BJC_5500_modes[] = {
- { 180, 180,CANON_INK_CMYK | CANON_INK_CcMmYK,"180x180dpi",N_("180x180 DPI"),INKSET(6_C2M2Y2K2c2m2),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),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.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,0);
+DECLARE_MODES(canon_BJC_5500,1);
static const canon_mode_t canon_BJC_6000_modes[] = {
- { 360, 360,CANON_INK_CMYK | CANON_INK_CcMmYK,"360x360dpi",N_("360x360 DPI"),INKSET(6_C2M2Y2K2c2m2),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),0,NULL,1.8,1.0,NULL,NULL,NULL,2},
- { 720, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"720x720dpi",N_("720x720 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 1440, 720,CANON_INK_CMYK | CANON_INK_CcMmYK,"1440x720dpi",N_("1440x720 DPI"),INKSET(6_C2M2Y2K2c2m2),0,delay_1440,0.5,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_6000,3);
static const canon_mode_t canon_BJC_7000_modes[] = {
- { 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYyK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,3.5,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.8,1.0,NULL,NULL,NULL,2},
- { 1200, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"1200x600dpi",N_("1200x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_BJC_7000,0);
-
-static const canon_mode_t canon_BJC_i560_modes[] = {
- { 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYyK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,3.5,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.8,1.0,NULL,NULL,NULL,2},
+ { 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_i560,0);
+DECLARE_MODES(canon_BJC_7000,2);
static const canon_mode_t canon_BJC_7100_modes[] = {
- { 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYyK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),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),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 1200, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"1200x600dpi",N_("1200x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_7100,2);
+/* 50i sold as i70 outside of Japan */
+static const canon_mode_t canon_BJC_i50_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),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(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM gloss"),INKSET(9_C5M5Y5K2plain),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(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,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(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* color only */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI MONO Env/Hagaki"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},/* mono only */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_i50,1);
+
+/* inkjetHagaki and Hagaki from 80i */
static const canon_mode_t canon_BJC_i80_modes[] = {
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* original modes */
+ /* { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2}, */
+ /* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2}, */
+ /* plain modes --- Env/Hagaki same */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYKcmy */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH MONO"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* mono only---color untested*/
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),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(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO other"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI DRAFT plusGlossy"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjetHagaki */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohpdraft",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYKcmy */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high4",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* mono only---color untested*/
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_i80,2);
+
+/* not known what is format of sending of logical color data, just sequence of (z commands like some iP devices */
+/* all modes use MP360 flag */
+static const canon_mode_t canon_BJC_i250_modes[] = {
+ /* plain modes --- Env/Hagaki same (except no draft mode) */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono modes */
+ { 600, 600,CANON_INK_K,"300x300dpi_highmono",N_("300x300 DPI HIGH MONO"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,0},/* untested */
+ { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(9_C7M7Y7K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM gloss"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_BJC_i250,1);
+
+/* not known what is format of sending of logical color data, just sequence of (z commands like some iP devices */
+/* all modes use MP360 flag */
+static const canon_mode_t canon_BJC_i320_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono modes */
+ { 600, 600,CANON_INK_K,"300x300dpi_highmono",N_("300x300 DPI HIGH MONO"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT"),INKSET(9_K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(9_C7M7Y7K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,4},/* untested */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM gloss"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/glossFilm"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- different quality settings to plain */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_BJC_i320,2);
+
+/* inkjetHagaki and Hagaki from 450i */
+static const canon_mode_t canon_BJC_i450_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},/* color only */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),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(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO Other"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT (plusGlossy)"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH Env/Hagaki MONO"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_BJC_i80,0);
+DECLARE_MODES(canon_BJC_i450,2);
+/* inkjetHagaki and Hagaki from 455i */
+static const canon_mode_t canon_BJC_i455_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_C3M3Y2K2),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(9_C3M3Y2K2),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(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH (gloss)"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYcmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* CMYcmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO Other"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT (plusGlossy)"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* CMYcmy */
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH Env/Hagaki MONO"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_i455,2);
+
+/* inkjetHagaki and Hagaki from 550i */
+static const canon_mode_t canon_BJC_i550_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_C4M4Y4K2),16,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(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(9_C7M7Y7K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM gloss"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/plusGlossy/glossFilm"),INKSET(9_C4M4Y4K2),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(9_C4M4Y4K2),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 HiRes"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono3",N_("600x600 DPI HIGH Env/Hagaki MONO"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_i550,2);
+
+/* inkjetHagaki, Hagaki and CD from 560i */
+static const canon_mode_t canon_BJC_i560_modes[] = {
+ /* original modes (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}, */
+ /* { 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}, */
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4plain),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(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/*untested*/
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_i560,1);
+
+/* inkjetHagaki, Hagaki and CD from 850i */
+static const canon_mode_t canon_BJC_i850_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4plain),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(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/*untested*/
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4plain),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 HiRes"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_i850,1);
+
+/* inkjetHagaki, Hagaki and CD from 860i */
+static const canon_mode_t canon_BJC_i860_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4k4p),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(9_C3M3Y2K2k3_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(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt: CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_BJC_i860,1);
+
+/* inkjetHagaki, Hagaki and CD from 900PD */
+static const canon_mode_t canon_BJC_i900_modes[] = {
+ /* plain modes --- no mono modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y3K3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1bpp */
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST pro"),INKSET(9_C8M8Y4K4c8m8),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C8M8Y4K4c8m8),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C8M8Y4K4c8m8),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* CD CMYKcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI HIGH CD"),INKSET(9_C8M8Y4K4c8m8),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI CD"),INKSET(9_C8M8Y4K4c8m8),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft5",N_("600x600 DPI DRAFT CD"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- no mono modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y3K3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_BJC_i900,1);
+
+/* inkjetHagaki, Hagaki and CD from 950i */
+static const canon_mode_t canon_BJC_i950_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes/PhotoFilm"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft5",N_("600x600 DPI CD DRAFT"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI LOW Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* T-Shirt --- same as plain std */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- same as plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI STD Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI LOW Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std5",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono5",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+};
+DECLARE_MODES(canon_BJC_i950,2);
+
+/* inkjetHagaki, Hagaki and CD from 960i */
+static const canon_mode_t canon_BJC_i960_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI LOW Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},/*untested*/
+ /* T-Shirt --- same as plain std */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- same as plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI MEDIUM Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI STD Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std5",N_("600x600 DPI LOW Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft5",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono5",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+};
+DECLARE_MODES(canon_BJC_i960,2);
+
+/* inkjetHagaki and Hagaki from 990i */
+static const canon_mode_t canon_BJC_i990_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes --- many use R ink which is not yet supported */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT gloss"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki --- high mode uses unsupported R ink */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),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 Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt --- same as plain std */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- same as plain modes: but no special duplex modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft5",N_("600x600 DPI LOW Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono5",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+};
+DECLARE_MODES(canon_BJC_i990,2);
+
+/* inkjetHagaki and Hagaki from 6100i */
+static const canon_mode_t canon_BJC_i6100_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST gloss"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/plusGlossy"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/gloss/HiRes"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/plusGlossy"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/gloss/HiRes"),INKSET(9_C2M2Y2K2c2m2y2),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 HiRes"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH Transparency"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_i6100,2);
+
+/* inkjetHagaki and Hagaki from 9100i */
+static const canon_mode_t canon_BJC_i9100_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/plusGlossy"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+};
+DECLARE_MODES(canon_BJC_i9100,1);
+
+static const canon_mode_t canon_BJC_i9900_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI MEDIUM"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes --- many use R, G inks which are not yet supported */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM HiRes"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT gloss/plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki --- high mode uses unsupported R,G inks */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),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 Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt --- same as plain std */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- same as plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft5",N_("600x600 DPI LOW Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono5",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+};
+DECLARE_MODES(canon_BJC_i9900,1);
static const canon_mode_t canon_BJC_8200_modes[] = {
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi",N_("1200x1200 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 1200,1200,CANON_INK_CMYK,"1200x1200dpi",N_("1200x1200 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_8200,2);
static const canon_mode_t canon_BJC_8500_modes[] = {
- { 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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,0);
+DECLARE_MODES(canon_BJC_8500,1);
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),0,delay_S200,2.0,1.0,NULL,NULL,NULL,2},
- { 720, 720,CANON_INK_CMYK | CANON_INK_CMY | CANON_INK_K,
- "720x720dpi",N_("720x720 DPI"),INKSET(4_C2M2Y2K2),MODE_FLAG_WEAVE,delay_S200,1.0,1.0,NULL,NULL,NULL,2},
- { 1440, 720,CANON_INK_CMYK | CANON_INK_CMY | CANON_INK_K,
- "1440x720dpi",N_("1440x720 DPI"),INKSET(4_C2M2Y2K2),MODE_FLAG_WEAVE,delay_S200,0.5,1.0,NULL,NULL,NULL,2},
{ 1440,1440,CANON_INK_CMYK | CANON_INK_CMY | CANON_INK_K,
- "1440x1440dpi",N_("1440x1440 DPI"),INKSET(4_C2M2Y2K2),MODE_FLAG_WEAVE,delay_S200,0.3,1.0,NULL,NULL,NULL,2},
+ "1440x1440dpi",N_("1440x1440 DPI"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_WEAVE,delay_S200,0.3,1.0,NULL,NULL,NULL,2},
+ { 1440, 720,CANON_INK_CMYK | CANON_INK_CMY | CANON_INK_K,
+ "1440x720dpi",N_("1440x720 DPI"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_WEAVE,delay_S200,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,MODE_FLAG_WEAVE,delay_S200,1.0,1.0,NULL,NULL,NULL,2},
+ { 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);
+
+static const canon_mode_t canon_BJC_S300_modes[] = {
+ /* original two modes */
+ /*{ 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},*/
+ /*{ 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},*/
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI MEDIUM"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST gloss/PhotoCard"),INKSET(9_C7M7Y7K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH gloss/PhotoCards"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO HiRes/PhotoFilm/PhotoCard"),INKSET(9_C5M5Y5K2plain),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(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_S300,2);
+
+static const canon_mode_t canon_BJC_S330_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI MEDIUM"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST gloss"),INKSET(9_C7M7Y7K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO HiRes/matte/PhotoFilm"),INKSET(9_C5M5Y5K2plain),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(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_S330,2);
+
+static const canon_mode_t canon_BJC_S500_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C3M3Y2K2),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(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST gloss/HiRes/PhotoCard"),INKSET(9_C7M7Y7K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/PhotoFilm"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH gloss/HiRes/PhotoCard"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/PhotoFilm"),INKSET(9_C4M4Y4K2),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 gloss/HiRes/PhotoCard"),INKSET(9_C4M4Y4K2),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 HiRes"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_S200,0);
+DECLARE_MODES(canon_BJC_S500,1);
-static const canon_mode_t canon_S500_modes[] = {
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, */
+static const canon_mode_t canon_BJC_S520_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_C4M4Y4K2),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(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST gloss"),INKSET(9_C7M7Y7K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/plusGlossy/PhotoFilm"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/gloss/HiRes"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/plusGlossy/PhotoFilm"),INKSET(9_C4M4Y4K2),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/gloss/HiRes"),INKSET(9_C4M4Y4K2),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 HiRes"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono3",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_S500,2);
+DECLARE_MODES(canon_BJC_S520,2);
+
+static const canon_mode_t canon_BJC_S600_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C3M3Y2K2_c),16,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(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST gloss/HiRes/PhotoCard"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/PhotoFilm"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH gloss/HiRes/PhotoCard"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/PhotoFilm"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO gloss/HiRes/PhotoCard"),INKSET(9_C2M2Y2K2c2m2y2),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 HiRes"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki --- untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh5",N_("600x600 DPI HIGHEST Transparency"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH Transparency"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_S600,1);
+
+static const canon_mode_t canon_BJC_S750_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),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(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST gloss"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/PhotoFilm"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/gloss/HiRes/plusGlossy"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/PhotoFilm"),INKSET(9_C4M4Y4K2),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/gloss/HiRes/plusGlossy"),INKSET(9_C4M4Y4K2),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 HiRes"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_BJC_S750,1);
+
+static const canon_mode_t canon_BJC_S800_modes[] = {
+ /* plain modes --- also for Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(1_K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGHEST pro/other"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST matte/gloss/HiRes/PhotoCard/"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH plusGlossy/PhotoFilm"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/matte/gloss/HiRes/PhotoCard/other"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes/PhotoCard"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO other"),INKSET(9_C5M5Y5K5_c),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 other"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* mono photo modes for PPother only --- manual feed preferred in Windows driver */
+ { 600, 600,CANON_INK_K,"600x600dpi_photomonohigh2",N_("600x600 DPI PHOTO HIGHEST MONO other"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_K,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(1_K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_BJC_S800,2);
+
+/* Windows driver shows fewer modes than S800, but it could be they exist */
+/* modes present in S800 but not accessible in Windows driver for S820 are marked as untested */
+static const canon_mode_t canon_BJC_S820_modes[] = {
+ /* plain modes --- also for Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGHEST pro/other"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST matte/gloss/HiRes/PhotoCard/"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH plusGlossy/PhotoFilm"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/matte/gloss/HiRes/PhotoCard/other"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes/PhotoCard"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO other"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_BJC_S820,2);
+
+static const canon_mode_t canon_BJC_S900_modes[] = {
+ /* plain modes --- also for Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH 2"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI PHOTO HIGHEST pro"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGHEST HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH plusGlossy"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/gloss/PhotoFilm"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO DRAFT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_BJC_S900,1);
+
+/* no K used in any modes */
+static const canon_mode_t canon_PIXMA_mini220_modes[] = {
+ { 1200,1200,CANON_INK_CMY,"1200x1200dpi_photohigh",N_("1200x1200 DPI PHOTO HIGHEST Pro"),INKSET(9_c3m3y3),32,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_c3m3y3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH Gloss"),INKSET(9_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYcmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* CMYcmy */
+ /* Hagaki */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Hagaki"),INKSET(9_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYcmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI Hagaki"),INKSET(9_C5M5Y5),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_mini220,3);
+
+static const canon_mode_t canon_PIXMA_mini320_modes[] = {
+ /* most modes used unsupported inks */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_mini320,0);
+
+static const canon_mode_t canon_SELPHY_DS700_modes[] = {
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy: no subtraction */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy: no subtraction */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH Glossy"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Hagaki */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo3",N_("600x600 DPI HIGH Hagaki"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI Hagaki"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_SELPHY_DS700,3);
+
+static const canon_mode_t canon_SELPHY_DS810_modes[] = {
+ { 1200,1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST Pro"),INKSET(9_c3m3y3),32,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy: no subtraction */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy: no subtraction */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH Glossy"),INKSET(9_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C5M5Y5),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ /* Hagaki */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo3",N_("600x600 DPI HIGH Hagaki"),INKSET(9_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI Hagaki"),INKSET(9_C5M5Y5),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_SELPHY_DS810,3);
+
+
+/* most modes use ESC (S */
+static const canon_mode_t canon_PIXMA_iP90_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C9M9Y9K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH MONO"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,4},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},/*|MODE_FLAG_COLOR*/
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DRAFT DPI"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},/*|MODE_FLAG_COLOR*/
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1-bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1-bpp */
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy: no subtraction , no ESC (S */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C9M9Y9K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* TST */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C9M9Y9K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no ESC (S */
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C9M9Y9K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_PIXMA_iP90,2);
+
+/* all modes use ESC (S */
+static const canon_mode_t canon_PIXMA_iP100_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH MONO"),INKSET(11_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,4},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(11_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},/*|MODE_FLAG_COLOR*/
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},/*|MODE_FLAG_COLOR*/
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(11_C2M2Y2K2),8,MODE_FLAG_IP8500|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(11_C2M2Y2K2),8,MODE_FLAG_IP8500|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(11_C9M9Y4k6),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(11_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO Matte/HiRes"),INKSET(11_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C5M5Y3k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* TST */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(11_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,3},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(11_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_S,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP100,2);
/* testing */
static const canon_mode_t canon_PIXMA_iP1000_modes[] = {
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2h),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DRAFT DPI"),INKSET(9_C3M3Y2K2h),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(9_C2M2Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(9_C2M2Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(9_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(9_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_iP1000,4);
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DRAFT DPI"),INKSET(9_C3M3Y2K2h),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(9_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(9_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_PIXMA_iP1000,2);
/* testing */
static const canon_mode_t canon_PIXMA_iP1200_modes[] = {
/* both cartridges */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2b),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DRAFT DPI"),INKSET(13_C3M3Y2K2b),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C4M4Y4K2c4m4y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2),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_C3M3Y2K2b),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DRAFT DPI"),INKSET(13_C3M3Y2K2b),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 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},
/* mono modes */
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,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,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,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,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* color only modes*/
- { 1200, 1200,CANON_INK_CMY,"1200x1200dpi",N_("1200x1200 DPI PHOTO"),INKSET(13_c3m3y3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi",N_("1200x1200 DPI PHOTO"),INKSET(13_c3m3y3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4c4m4y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(13_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* removed black */
- { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH 4"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH 3"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std3",N_("600x600 DPI 3"),INKSET(13_C3M3Y2b),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(13_C3M3Y2b),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH 4"),INKSET(13_C4M4Y4c4m4y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH 3"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std3",N_("600x600 DPI 3"),INKSET(13_C3M3Y2b),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(13_C3M3Y2b),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMY,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
};
-DECLARE_MODES(canon_PIXMA_iP1200,4);
+DECLARE_MODES(canon_PIXMA_iP1200,2);
static const canon_mode_t canon_PIXMA_iP1500_modes[] = {
/* plain modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C9M9Y9K2),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(9_C3M3Y2K2h),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(9_C2M2Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(9_C2M2Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C9M9Y9K2),8,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(9_C3M3Y2K2h),8,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(9_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(9_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
- { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_C4M4Y4K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* photo */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(9_C9M9Y9K2c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(9_C9M9Y9K2c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C5M5Y5K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(9_C9M9Y9K2c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(9_C9M9Y9K2c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C5M5Y5K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_PIXMA_iP1500,3);
+DECLARE_MODES(canon_PIXMA_iP1500,1);
/* testing */
static const canon_mode_t canon_PIXMA_iP1900_modes[] = {
/* plain, Hagaki, Env */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2b),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),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_C3M3Y2K2b),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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},
/* mono */
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* photo high --- unlikely to work */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* photo std --- unlikely to work */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* photo high 2 --- unlikely to work */
- { 1200, 1200,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH2"),INKSET(13_c3m3y3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- /* photo draft */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,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,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,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,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGH2"),INKSET(13_c3m3y3),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4c4m4y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C5M5Y5),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* color only plain, hagaki, Env*/
- { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2b),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMY,"300x300dpi_2",N_("300x300 DPI 2"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT 2"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C4M4Y4K2c4m4y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2b),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_2",N_("300x300 DPI 2"),INKSET(13_C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT 2"),INKSET(13_C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
};
-DECLARE_MODES(canon_PIXMA_iP1900,2);
+DECLARE_MODES(canon_PIXMA_iP1900,1);
static const canon_mode_t canon_PIXMA_iP2000_modes[] = {
/* plain modes */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C3M3Y2K2),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(9_C3M3Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1-bpp, ignore other inks */
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1-bpp, ignore other inks */
- /* photo */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(9_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(9_C5M5Y5K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C5M5Y5K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* OHP */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(9_C4M4Y4K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
-};
-DECLARE_MODES(canon_PIXMA_iP2000,5);
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH MONO"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1-bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1-bpp */
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH Gloss"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO Other"),INKSET(9_c9m9y9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI PHOTO Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* color untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_PIXMA_iP2000,2);
static const canon_mode_t canon_PIXMA_iP3000_modes[] = {
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,0},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI OHP HIGH"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI OHP"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* plain modes --- same for duplex */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* with K */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ /* inkjet Hagaki --- untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* no K */
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI CD HIGH"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI CD DRAFT"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* with K */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
DECLARE_MODES(canon_PIXMA_iP3000,1);
+/* as iP3000 but with Hagaki/inkjet Hagaki */
static const canon_mode_t canon_PIXMA_iP3100_modes[] = {
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C4M4Y4K2c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4),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(9_C3M3Y2K2_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* 1-bpp, ignore other inks [don't list] */
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1-bpp, ignore other inks [don't list] */
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1-bpp, ignore other inks [don't list] */
- /* photo */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(9_C8M8Y8c16m16),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(9_C3M3Y3K2c3m3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(9_C3M3Y3K2c3m3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT"),INKSET(9_C3M3Y2K2_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* TST */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(9_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* plain modes --- same for duplex */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* with K */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* no K */
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI CD HIGH"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* no K */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI CD DRAFT"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* no K */
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* with K */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_PIXMA_iP3100,5);
+DECLARE_MODES(canon_PIXMA_iP3100,1);
static const canon_mode_t canon_PIXMA_iP4000_modes[] = {
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,0},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,0},
- { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(9_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /*Gernot adding the normal hi-quality mode for iP4000 here*/
-/* { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, */
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL},*/ /* this mode is used for CD printing, K is ignored by the printer then, the seperation between the small and large dot inks needs more work */
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_superphoto",N_("600x600 DPI Superphoto"),INKSET(9_C8M8Y8c16m16k8),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,4}, */
-/* T-Shirt */
- { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-/* not sure yet about CMYKk modes, so not inserting yet */
-};
-DECLARE_MODES(canon_PIXMA_iP4000,3);
-
-/* Gernot: I added iP8500 flag to 300dpi modes since that appears to be needed according to the pixma_parse output */
-/* Also added B/W functionality to the standard plain modes */
-/* CD mode is not the one the printer driver uses. Given here is actually the plain media High quality mode (now added). */
-/* But for CD should be CMYcmk output inks, which I am not sure how to set */
-/* For plain media output inks for high quality mode are CMYKcmk which again I am not sure how to set */
+ /* plain modes --- same for duplex */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ /* legacy modes were used before printer capabilites were improved to handle real mode from driver */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},/* legacy */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/* legacy */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},/* legacy */
+ /* actual printer modes --- same as for iP4100 */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4k4p),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4k4on),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(9_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt: CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP4000,4);
+
+/* iP4100, iP4100R */
+static const canon_mode_t canon_PIXMA_iP4100_modes[] = {
+ /* plain modes --- same for duplex */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4k4p),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(9_C3M3Y2K2k3_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(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT CD"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4k4on),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(9_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt: CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP4100,1);
+
static const canon_mode_t canon_PIXMA_iP4200_modes[] = {
- /* Q0 - fastest mode (in windows driver it's Q5, printer uses 50% of ink ( I think )) */
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,iP4200_300dpi_draft_lum_adjustment,NULL,NULL,0},
- /* Q1 - normal 300x300 mode (in windows driver it's Q4 - normal darkness of printout ) */
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,iP4200_300dpi_lum_adjustment,NULL,NULL,1},
+ /* plain modes */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ /* highest plain mode: CcMmYKk */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Q2 - standard mode for this driver (in windows driver it's Q3) */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(22_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CcMmYyK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
-/* { 600, 600,CANON_INK_CcMmYyK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL}, */
-};
-DECLARE_MODES(canon_PIXMA_iP4200,2);
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Q1 - normal 300x300 mode (in windows driver it's Q4 - normal darkness of printout ) */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,iP4200_300dpi_lum_adjustment,NULL,NULL,1},
+ /* Q0 - fastest mode (in windows driver it's Q5, printer uses 50% of ink ( I think )) */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,iP4200_300dpi_draft_lum_adjustment,NULL,NULL,0},
+ /* photo modes mostly use unsupported ink positions -- also use one for temporary CD printing */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet hagaki */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(22_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(22_C4M4Y4K2k4one),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYKk --- MP500 */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Transparency"),INKSET(22_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photo3",N_("600x600 DPI Transparency"),INKSET(22_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP4200,1);
+
+static const canon_mode_t canon_PIXMA_iP4300_modes[] = {
+ /* plain modes */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ /* highest plain mode: CcMmYKk */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,iP4200_300dpi_lum_adjustment,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,iP4200_300dpi_draft_lum_adjustment,NULL,NULL,0},
+ /* photo modes mostly use unsupported ink positions --- use photodraft for CD temporarily also */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet hagaki */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(22_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(22_C4M4Y4K2k4one),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYKk --- MP500 */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Transparency"),INKSET(22_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photo3",N_("600x600 DPI Transparency"),INKSET(22_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP4300,1);
+
+/* plain high mode has more output inks than declared in inkset, and unknown to boot */
+static const canon_mode_t canon_PIXMA_iP5000_modes[] = {
+ /* plain modes */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},/* 1-bpp, untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1-bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1-bpp */
+ /* photo --- most use plain high mode which is currently unsupported --- photodraft temporarily for CD printing */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT PlusGlossy"),INKSET(9_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* CMYcmk */
+ /* TST CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP5000,0);
static const canon_mode_t canon_PIXMA_iP6000_modes[] = {
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGHEST"),INKSET(9_C4M4Y4K4c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH / PHOTO HIGH"),INKSET(9_C4M4Y4K4c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (DS)"),INKSET(9_C4M4Y4K4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y3K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* plain modes */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(9_C4M4Y4K4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y3K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST / CD"),INKSET(9_C8M8Y4K4c8m8),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH 2 / CD"),INKSET(9_C8M8Y4K4c8m8),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD"),INKSET(9_C4M4Y4K4c4m4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST / CD"),INKSET(9_C8M8Y4K4c8m8),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH / CD"),INKSET(9_C8M8Y4K4c8m8),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C4M4Y4K4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y3K3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* T-shirt */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* OHP */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI OHP HIGH"),INKSET(9_C4M4Y4K4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI OHP"),INKSET(9_C4M4Y4K4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_PIXMA_iP6000,4);
+DECLARE_MODES(canon_PIXMA_iP6000,2);
-static const canon_mode_t canon_PIXMA_iP6700_modes[] = {
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(19_C3M3Y3k3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2k2),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(19_C2M2Y2k2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+/* iP6210D, iP6220D, iP6310D, iP6320D */
+static const canon_mode_t canon_PIXMA_iP6210_modes[] = {
+ /* both cartridges */
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4k4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y3k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 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},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},/* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2b),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_std2",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_draft2",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},
/* photo modes */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(19_C7M7Y4c7m7k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(19_C6M6Y4c6m6k4photo),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/coated"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/coated"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* Hagaki, Envelope */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Hagaki/Env"),INKSET(19_C6M6Y4c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Hagaki/Env"),INKSET(19_C6M6Y4c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Hagaki/Env"),INKSET(19_C3M3Y3k3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* CD media */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH CD"),INKSET(19_C4M4Y4c4m4k4CD),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO CD"),INKSET(19_C4M4Y4c4m4k4CD),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT CD"),INKSET(19_C4M4Y4c4m4k4CD),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 1200, 1200,CANON_INK_CcMmYK,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST Pro"),INKSET(13_C3M3Y3k3c3m3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* CMYkcm less 0x80 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C9M9Y9k9c9m9),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYkcm less 0x80 */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4k4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* color-only */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh4",N_("1200x1200 DPI PHOTO HIGHEST Pro COLOR-ONLY"),INKSET(13_c3m3y3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,4},/*same*/
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH COLOR-ONLY"),INKSET(13_c9m9y9),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh5",N_("600x600 DPI PHOTO HIGH plusGlossy COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},/* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},/* cmy: subtract 0x60 */
/* T-shirt */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(19_C4M4Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_PIXMA_iP6700,0);
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std5",N_("600x600 DPI T-SHIRT COLOR-ONLY"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C4M4Y4k4c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C4M4Y4k4c4m4),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 Env/Hagaki"),INKSET(13_C3M3Y3k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},/* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki COLOR-ONLY"),INKSET(13_C5M5Y5),16,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_C3M3Y2b),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_PIXMA_iP6210,1);
+
+static const canon_mode_t canon_PIXMA_iP6600_modes[] = {
+ /* plain modes --- duplex same CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(19_C3M3Y3k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(19_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(19_C2M2Y2k2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYkcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(19_C7M7Y4c7m7k4),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(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(19_C6M6Y4c6m6k4photo),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(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki CMYkcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(19_C7M7Y4c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(19_C6M6Y4c6m6k4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD media --- subchannels reordered */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI HIGH CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft5",N_("600x600 DPI DRAFT CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Hagaki, Envelope CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(19_C6M6Y4c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(19_C6M6Y4c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(19_C3M3Y3k3),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(19_C4M4Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP6600,1);
+
+static const canon_mode_t canon_PIXMA_iP6700_modes[] = {
+ /* plain modes --- duplex same CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(19_C3M3Y3k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(19_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(19_C2M2Y2k2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYkcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(19_C7M7Y4c7m7k4),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(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(19_C6M6Y4c6m6k4photo),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(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki CMYkcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(19_C7M7Y4c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(19_C6M6Y4c6m6k4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Fine Art */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI FineArt"),INKSET(19_C7M7Y4c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* CD media --- subchannels reordered */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI HIGH CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft5",N_("600x600 DPI DRAFT CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Hagaki, Envelope CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(19_C6M6Y4c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(19_C6M6Y4c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(19_C3M3Y3k3),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(19_C4M4Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP6700,1);
static const canon_mode_t canon_MULTIPASS_MP150_modes[] = {
- /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, */ /* need to check cmy */
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- /* { 600, 600,CANON_INK_CMY,"600x600dpi_glossphotohigh",N_("600x600 DPI GLOSSPHOTO HIGH"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, */ /* need to check cmy */
- /* { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, */ /* need to check cmy */
- /* { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, */ /* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI TSHIRT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_MULTIPASS_MP150,0);
-
-/* Gernot: add modes here: high & draft */
-static const canon_mode_t canon_MULTIPASS_MP170_modes[] = {
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* need to check cmy */
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- { 600, 600,CANON_INK_CMY,"600x600dpi_glossphotohigh",N_("600x600 DPI GLOSSPHOTO HIGH"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI TSHIRT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-/*plenty of other photo paper modes to add here*/
-DECLARE_MODES(canon_MULTIPASS_MP170,3);
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),16,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),16,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},
+ /* mono modes */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),16,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_mono",N_("600x600 DPI MONO"),INKSET(13_K2),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested: but Env/Hagaki uses it */
+ { 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},
+ /* Color-only modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std3",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2),16,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),16,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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh3",N_("1200x1200 DPI PHOTO HIGHEST Pro"),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_photohigh2",N_("600x600 DPI PHOTO HIGH Gloss"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c9m9y9),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI TSHIRT"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),16,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),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(13_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Color-only modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki COLOR-ONLY"),INKSET(13_C5M5Y5),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MP150,1);
+
+static const canon_mode_t canon_MULTIPASS_MP190_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),16,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),16,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},
+ /* mono modes */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),16,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_mono",N_("600x600 DPI MONO"),INKSET(13_K2),16,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),16,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},
+ /* Color-only modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std3",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2),16,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),16,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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST Pro/Gold"),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_c9m9y9),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO Matte/HiRes/inkjetHagaki"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),16,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_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI TSHIRT"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),16,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),16,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),16,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),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ /* Color-only modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki COLOR-ONLY"),INKSET(13_C5M5Y5),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+};
+DECLARE_MODES(canon_MULTIPASS_MP190,1);
+
+static const canon_mode_t canon_MULTIPASS_MP210_modes[] = {
+ /* both cartridges */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),16,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),16,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},
+ /* mono modes */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),16,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_mono",N_("600x600 DPI MONO"),INKSET(13_K2),16,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),16,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},
+ /* Color-only modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std3",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2),16,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),16,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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST Pro"),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_c9m9y9),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO Matte/HiRes/inkjetHagaki"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),16,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 plusGlossy"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),16,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),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(13_K2),16,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),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Color-only modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki COLOR-ONLY"),INKSET(13_C5M5Y5),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MP210,1);
+
+/* MP360, MP370, MP375R, MP390 */
+static const canon_mode_t canon_MULTIPASS_MP360_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_C3M3Y2K2),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(9_C3M3Y2K2),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(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK | CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH Gloss"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/*CMYcmy*/
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4y4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* CMYcmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK | CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MP360,2);
static const canon_mode_t canon_MULTIPASS_MX300_modes[] = {
- /* plain media */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* need to check cmy */
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- { 1200, 1200,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_c3m3y3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_c9m9y9),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* the following should work fine */
- { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI TSHIRT"),INKSET(13_C5M5Y5),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-
-/* color only cartridge plain */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C4M4Y4c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* need to check cmy */
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-};
-DECLARE_MODES(canon_MULTIPASS_MX300,3);
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/*cmy: subtract 0x60*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),16,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),16,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},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),16,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_mono",N_("600x600 DPI MONO"),INKSET(13_K2),16,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),16,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},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},/*cmy: subtract 0x60*/
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT COLOR-ONLY"),INKSET(13_C3M3Y2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 300, 300,CANON_INK_CMY,"300x300dpi_std2",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_draft2",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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST Pro"),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_c9m9y9),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /*cmy: subtract 0x60*/
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO Matte/HiRes/inkjetHagaki"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},/*cmy: subtract 0x60*/
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),16,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 plusGlossy"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI TSHIRT"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/*cmy: subtract 0x60*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),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 Env/Hagaki"),INKSET(13_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono3",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(13_K2),16,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_mono3",N_("600x600 DPI MONO Env/Hagaki"),INKSET(13_K2),16,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_draftmono3",N_("600x600 DPI DRAFT MONO Env/Hagaki"),INKSET(13_K2),16,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 2"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},/*cmy: subtract 0x60*/
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MX300,1);
static const canon_mode_t canon_MULTIPASS_MX330_modes[] = {
/* plain media */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C3M3Y2K2),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-/* color only cartridge plain */
- { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH 3"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-};
-DECLARE_MODES(canon_MULTIPASS_MX330,4);
+ { 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},
+ /* mono */
+ { 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},
+ /* color-only*/
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",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_std2",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_draft2",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_std2",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_draft2",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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST glossGold"),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},
+ /* 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 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",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_draft3",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_highmono3",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_mono3",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_draftmono3",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*/
+ /* color-only */
+ { 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_MX330,1);
static const canon_mode_t canon_MULTIPASS_MX340_modes[] = {
/* plain media */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C3M3Y2K2),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-/* color only cartridge plain */
- { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH 3"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-};
-DECLARE_MODES(canon_MULTIPASS_MX340,4);
+ { 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 */
+ { 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_high2",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_std2",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_draft2",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_std2",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_draft2",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 glossGold"),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},
+ /* 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 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",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_draft3",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_highmono3",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_mono3",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_draftmono3",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*/
+ /* color-only */
+ { 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_MX340,1);
static const canon_mode_t canon_MULTIPASS_MX360_modes[] = {
/* plain media */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C3M3Y2K2),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- /*{ 1200, 600,CANON_INK_cmy,"1200x1200dpi_photohigh",N_("1200x1200 DPI PHOTO HIGH"),INKSET(13_c3m3y3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-/* color only cartridge plain */
- { 600, 600,CANON_INK_CMY,"600x600dpi_high3",N_("600x600 DPI HIGH 3"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-};
-DECLARE_MODES(canon_MULTIPASS_MX360,4);
-
-/* Gernot: add modes here: high & draft */
+ { 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 */
+ { 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 glossProPlat"),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},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),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*/
+ /* mono */
+ { 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*/
+ /* color-only */
+ { 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*/
+ /* 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},
+};
+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},
+ /* 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},
+ { 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 */
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),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_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MX370,1);
+
+static const canon_mode_t canon_MULTIPASS_MX420_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},
+ /* mono */
+ { 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},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",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_std2",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_draft2",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_std2",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_draft2",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},
+ /* 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 */
+ /* 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 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",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_K,"600x600dpi_highmono3",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_mono3",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},
+ /* color-only */
+ { 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},
+};
+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},
+ /* 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},
+ { 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 --- try to use based on inkset definitions */
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),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_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MX510,2);
+
+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},
+ { 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},
+ /* 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},
+ /* 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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST Pro"),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*/
+ /* 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 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),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_MP240,1);
+
static const canon_mode_t canon_MULTIPASS_MP250_modes[] = {
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_MULTIPASS_MP250,12);
-
-/* still need to add 1200dpi mode user-defined */
+ /* plain color modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2),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_NODUPLEX|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO (duplex)"),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_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 glossPro/proPhotoHagaki"),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*/
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),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_highmono5",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*/
+ /* color-only */
+ { 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_MP250,2);
+
static const canon_mode_t canon_MULTIPASS_MP280_modes[] = {
- /* plain hi */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* plain std */
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* plain fast */
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /*end in color mode */
- /* color-only cartridge modes for plain, allHagaki, Hagaki, Env */
- { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI 2"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT 2"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-};
-DECLARE_MODES(canon_MULTIPASS_MP280,4);
-
-/* still need to add 1200dpi mode user-defined */
+ /* 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 glossProPlat"),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_MP280,1);
+
+static const canon_mode_t canon_MULTIPASS_MP470_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),16,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),16,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},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K2),16,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_mono",N_("600x600 DPI MONO"),INKSET(13_K2),16,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),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested but Env/Hagaki use it */
+ { 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},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI COLOR-ONLY"),INKSET(13_C3M3Y2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_draft2",N_("600x600 DPI DRAFT COLOR-ONLY"),INKSET(13_C3M3Y2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMY,"300x300dpi_std2",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_draft2",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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST Pro"),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_c9m9y9),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy: subtract 0x60 */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo2",N_("600x600 DPI PHOTO Matte/HiRes/inkjetHagaki"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),16,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 plusGlossy"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C5M5Y5),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),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 Env/Hagaki"),INKSET(13_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono3",N_("600x600 DPI HIGH MONO Env/Hagaki"),INKSET(13_K2),16,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_mono3",N_("600x600 DPI MONO Env/Hagaki"),INKSET(13_K2),16,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_draftmono3",N_("600x600 DPI DRAFT MONO Env/Hagaki"),INKSET(13_K2),16,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 Env/Hagaki COLOR-ONLY"),INKSET(13_C4M4Y4c4m4y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_draft42",N_("600x600 DPI DRAFT Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MP470,1);
+
static const canon_mode_t canon_MULTIPASS_MP480_modes[] = {
- /* plain hi */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* plain std */
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* plain fast */
- { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add some B/W modes*/
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_draftmono",N_("300x300 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /*add photo paper modes */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /*end in color mode */
- /* color-only cartridge modes for plain, Hagaki, Env */
- { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI 2"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMY,"300x300dpi_draft2",N_("300x300 DPI DRAFT 2"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-};
-DECLARE_MODES(canon_MULTIPASS_MP480,4);
-
-/* same family: iP3300, iP3500, MX700, MP510, MP520, MP600 */
-/* on photo media, same modes do not use K ink */
+ /* 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},
+ /* mono */
+ { 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},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",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_std2",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_draft2",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_std2",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_draft2",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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_photohigh2",N_("1200x1200 DPI PHOTO HIGHEST glossPro"),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 */
+ /* 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 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",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_K,"600x600dpi_highmono3",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_mono3",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},
+ /* color-only */
+ { 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},
+};
+DECLARE_MODES(canon_MULTIPASS_MP480,1);
+
+static const canon_mode_t canon_MULTIPASS_MP490_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},
+ { 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 */
+ { 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},
+ { 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 glossPro/proPhotoHagaki"),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*/
+ /* 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 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),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_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},
+ /* color-only */
+ { 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},
+};
+DECLARE_MODES(canon_MULTIPASS_MP490,1);
+
+/* same family: iP3300, iP3500, MX700, MP510, MP520 */
static const canon_mode_t canon_MULTIPASS_MP520_modes[] = {
- { 600, 600,CANON_INK_K|CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* 16 CMYKcm, mono: 16 K */
- /* only the standard 600dpi mode was there before */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* 16 CMYK, mono: 16 K */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* 8 CMYK, mono: 8 K */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0}, /* 8 CMYK, mono: 8 K */
- /* photo modes --- do not work because cannot deal with no k or K */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(22_C4M4Y4K2c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/ /* 16 CMYcm */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(22_C4M4Y4K2c4m4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/ /* 16 CMYcm */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(22_C3M3Y3K2c3m3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/ /* 16 CMYcm */
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4),16,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(22_C3M3Y2K2_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(22_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(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(22_C4M4Y4K2c4m4photo),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 plusGlossy/glossGold/gloss"),INKSET(22_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* CMYcm */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_draft3",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* CMY */
+ /* TST mode CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(22_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- same as plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C4M4Y4K2c4m4),16,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(22_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
DECLARE_MODES(canon_MULTIPASS_MP520,1);
-/* similar to iP4500 */
-/* Hagaki, Envelope use plain mode but adds k to output inks */
+/* photo modes mostly use unsupprted inks */
+static const canon_mode_t canon_MULTIPASS_MP530_modes[] = {
+ /* plain modes --- duplex same */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_K|CANON_INK_CcMmYKk,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYKcmk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(22_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(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcmk --- temporarily using as CD mode also */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_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(22_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(22_C4M4Y4K2k4one),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MP530,1);
+
static const canon_mode_t canon_MULTIPASS_MP540_modes[] = {
- /* high mode -- B/W also */
- /* TODO: std to output CMYKk as well as CMYK */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C3M3Y2K2k3_c),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_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C8M8Y4y4),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_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoStd mode */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* mode for inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH HAGAKI"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO HAGAKI"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_MULTIPASS_MP540,3);
-
-/* TODO: get std to output CMYKk as well as CMYK */
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),16,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_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 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},
+ /* 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 */
+ /* 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},
+ /* 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},
+};
+DECLARE_MODES(canon_MULTIPASS_MP540,1);
+
+/* similar to MP540 but fewer modes */
+static const canon_mode_t canon_MULTIPASS_MP550_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),16,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_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 */
+ /* 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},
+ /* 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},
+ /* 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},
+};
+DECLARE_MODES(canon_MULTIPASS_MP550,1);
+
+/* similar to MP540 but fewer modes */
+static const canon_mode_t canon_MULTIPASS_MP560_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),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_high",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,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_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 */
+ /* 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},
+ /* 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},
+ /* 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_MP560,2);
+
+/* similar to MP830 */
+/* most photo modes use unsupported inks */
+static const canon_mode_t canon_MULTIPASS_MP600_modes[] = {
+ /* plain modes --- duplex same */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},/* k off */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(22_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_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes --- most unsupported --- using photodraft for CD temporarily too */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/* K off */
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* K off */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* K off */
+ /* TST */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(22_C4M4Y4K2k4one),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* K off */
+ /* Env/Hagaki --- same as plain modes */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(22_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MP600,1);
+
static const canon_mode_t canon_MULTIPASS_MP640_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C3M3Y2K2k3_c),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_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C8M8Y4y4),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_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoStd mode */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* mode for inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH HAGAKI / CD"),INKSET(13_C5M5Y4y4),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 PHOTO HAGAKI / CD"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_MULTIPASS_MP640,3);
-
-/* user-defined highest quality mode not yet supported */
-/* Note: printer does not accept quality setting of 0 */
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),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_high",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,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_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 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*/
+ /* 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},
+ /* 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},
+ /* 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_MP640,2);
+
+/* similar to iP3000, but no duplex and different default standard modes, and all modes use K */
+static const canon_mode_t canon_MULTIPASS_MP700_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* with K */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes CMYKcm/CMYK */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4plain),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 HiRes"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki CMYKcm/CMYK -- from Japanese model */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGHEST inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD CMYKcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI CD HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI CD DRAFT"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYK */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),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(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki CMYKcm/CMYK */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGHEST Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MP700,1);
+
+/* similar to iP3000 --- unlike MP700/730, the MP710/740 also do not use K for photo modes */
+static const canon_mode_t canon_MULTIPASS_MP710_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* with K */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* 1bpp */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
+ /* photo modes CMYcm/CMY */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki CMYcm/CMY */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGHEST inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI CD HIGH"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI CD DRAFT"),INKSET(9_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYK */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt CMY */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki CMYKcm/CMYK */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGHEST Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* untested */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MP710,1);
+
+static const canon_mode_t canon_MULTIPASS_MP900_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO / DRAFT PHOTO HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),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 Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt --- same as plain std */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki --- same as plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_MULTIPASS_MP900,1);
+
static const canon_mode_t canon_PIXMA_iP2700_modes[] = {
- /* user-defined mode: highest resolution, no mono */
- /*{ 1200, 1200,CANON_INK_CMYK,"1200x1200dpi_high",N_("1200x1200 DPI HIGH"),INKSET(13_c3m3y3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C4M4Y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* Std mode using only color cartridge */
- { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI STANDARD 2"),INKSET(13_C3M3Y2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI STANDARD 2"),INKSET(13_C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* B/W modes */
- { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(13_K3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI DRAFT MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K,"300x300dpi_mono",N_("300x300 DPI MONO"),INKSET(13_K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_iP2700,13);
-
-/* Gernot: added modes for iP4500.
- I noticed that the monochrome modes use all inks but only K is sent in the printjob,
- so the bw=1 flag does somehow do something even if the inkset contains all colors.
- TODO: figure out how to set color setting for modes in order to use inkset for mono.
-*/
-static const canon_mode_t canon_PIXMA_iP4500_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C8M8Y4y4),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_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoHi2 mode for CDs, some photo papers, Tshirt */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4K2c4m4y4),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_C4M4Y4K2c4m4y4),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_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_iP4500,3);
+ /* plain modes */
+ { 600, 600,CANON_INK_K|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_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2),8,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},
+ /* 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},
+ { 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},
+ /* color-only modes */
+ { 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},
+ { 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},
+ /* photo modes */
+ { 1200, 1200,CANON_INK_CMY,"1200x1200dpi_high",N_("1200x1200 DPI HIGHEST glossPro"),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},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|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_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},
+ /* color-only */
+ { 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},
+};
+DECLARE_MODES(canon_PIXMA_iP2700,1);
+
+static const canon_mode_t canon_MULTIPASS_MX710_modes[] = {
+ /* plain modes --- duplex uses CMYKk for high and standard, fast remains the same */
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),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_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI (duplex)"),INKSET(13_C3M3Y2K2k3on_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 */
+ /*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},
+ /* 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},
+ /* 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},
+ /* 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);
/* MX860 --- similar to iP4500 */
static const canon_mode_t canon_MULTIPASS_MX860_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(13_C6M6Y4y4),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_C8M8Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoHi2 mode for CDs, some photo papers, Tshirt */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C4M4Y4K2c4m4y4),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_C4M4Y4K2c4m4y4),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_C4M4Y4K2c4m4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_MULTIPASS_MX860,3);
-
-/* MX870 --- similar to iP4500 */
-static const canon_mode_t canon_MULTIPASS_MX870_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C6M6Y4y4),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoHi3 for inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_MULTIPASS_MX870,3);
+ /* plain modes --- duplex same CMYK */
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,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_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 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},
+ /* 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},
+ /* 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},
+ /* 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_MX860,2);
+
+/* added duplex to MP540 */
+static const canon_mode_t canon_MULTIPASS_MX880_modes[] = {
+ /* plain modes */
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,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_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 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},
+ /* 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 */
+ /* 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},
+ /* 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_MULTIPASS_MX7600_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2k2),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_C2M2Y2K2k2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-};
-DECLARE_MODES(canon_MULTIPASS_MX7600,3);
-
-/* Gernot: added modes for iP4700.
- this appears to be same in iP4800 family.
- y is swapped for k on all modes that use them.
-*/
+ /* 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},
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2k2),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_C2M2Y2K2k2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C6M6Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki CMYKk */
+ { 600, CANON_INK_K|600,CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C6M6Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, CANON_INK_K|600,CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C6M6Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MX7600,1);
+
+static const canon_mode_t canon_MULTIPASS_E500_modes[] = {
+ /* plain modes */
+ { 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_CMY|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (COLOR-ONLY"),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},
+ /* 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},
+ { 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 */
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K2),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_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_E500,2);
+
+static const canon_mode_t canon_PIXMA_iP4500_modes[] = {
+ /* plain modes -- duplex same (except no mono) */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),16,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_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},
+ { 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_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_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},
+ /* 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_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},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C6M6Y4K2k4on),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},
+ /* T-shirt CMYk --- note this mode uses 2 bits not 4 */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP4500,1);
+
+static const canon_mode_t canon_PIXMA_iP4600_modes[] = {
+ /* plain modes */
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,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_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /*untested*/
+ { 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*/
+ /* 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*/
+ /* 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},
+};
+DECLARE_MODES(canon_PIXMA_iP4600,1);
+
static const canon_mode_t canon_PIXMA_iP4700_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoStd mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C6M6Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C6M6Y4y4),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoHi3 mode for CDs, inkjet hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_iP4700,13);
+ /* plain modes --- duplex no mono CMYK */
+ { 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},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,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_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},
+ /* 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},
+ /* 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},
+ /* 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},
+};
+DECLARE_MODES(canon_PIXMA_iP4700,2);
+
+static const canon_mode_t canon_PIXMA_iP4900_modes[] = {
+ /* plain */
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* duplex, Env, Hagaki modes use K and k both */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH duplex/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 duplex/Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_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_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},
+ /* 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},
+ /* 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},
+ /* 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},
+};
+DECLARE_MODES(canon_PIXMA_iP4900,1);
static const canon_mode_t canon_PIXMA_iP5300_modes[] = {
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /* plain paper modes -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),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_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),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),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(13_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* T-shirt: uses same Photo mode by CMYk output---can this work? */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(13_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_PIXMA_iP5300,4);
+ /* plain modes --- duplex same */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,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_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_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_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 */
+ /* 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_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},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C6M6Y4K2k4on),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},
+ /* T-shirt CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP5300,1);
+
+/* similar to iP5300 but PPplusGlossy different standard mode, PPGgold added */
+static const canon_mode_t canon_MULTIPASS_MP610_modes[] = {
+ /* plain modes --- duplex same */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),16,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_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},
+ { 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_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_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},
+ /* 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_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},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C6M6Y4K2k4on),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},
+ /* T-shirt CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C4M4Y4K2c4m4y4on2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MP610,1);
static const canon_mode_t canon_MULTIPASS_MP800_modes[] = {
- /* plain modes --- for inkjet std outputs CMYk, for env CMYKk, no idea yet how to get this, or what masks */
- { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4),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(22_C3M3Y2K2k3_c),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(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* Fast Photo paper mode */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(22_C3M3Y3K2c3m3k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(22_C3M3Y3K2c3m3k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* T-shirt --- Gernot: actually this should use CMYk but I don't know how to get this yet */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(22_C4M4Y4K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_MULTIPASS_MP800,0);
-
-/* like iP5300 plus CD */
-/* try to find way to output CMYK, CMYKk, and CMYk from plain modes */
-static const canon_mode_t canon_MULTIPASS_MP810_modes[] = {
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /* plain paper modes -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),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_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),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),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C4M4Y4K2c4m4k4),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"),INKSET(13_C4M4Y4K2c4m4k4),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"),INKSET(13_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* T-shirt: uses same Photo mode by CMYk output---can this work? */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(13_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_MULTIPASS_MP810,4);
+ /* most photo modes use some unknown inks */
+ /* plain modes */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(22_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_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Fast Photo paper mode CMYcmk --- also using temporarily for CD printing */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki: PhotoFastCMYcmk, Std CMYk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_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(22_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(22_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MP800,1);
+static const canon_mode_t canon_MULTIPASS_MP810_modes[] = {
+ /* plain paper modes */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 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 */
+ /* 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_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},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C6M6Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"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},
+
+};
+DECLARE_MODES(canon_MULTIPASS_MP810,1);
+
+/* similar to MP600 */
+/* most photo modes use unsupported inks */
static const canon_mode_t canon_MULTIPASS_MP830_modes[] = {
- /* not a real mode of the printer */
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /* real modes */
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),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(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* Fast Photo paper mode */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(22_C3M3Y3K2c3m3k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* T-shirt --- Gernot: actually this should use CMYk but I don't know how to get this yet */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(22_C4M4Y4K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_MULTIPASS_MP830,0);
+ /* plain modes --- duplex same */
+ /* NOTE: temporarily allowing plain modes for CD printing */
+ { 600, 600,CANON_INK_CcMmYKk|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4on),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(22_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_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes --- photodraft for CD temporarily too */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2k3photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*CMYk*/
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(22_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(22_C4M4Y4K2k4one),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MP830,1);
static const canon_mode_t canon_MULTIPASS_MP950_modes[] = {
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(19_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(19_C3M3Y3K2k3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4K2c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
-};
-DECLARE_MODES(canon_MULTIPASS_MP950,3);
-
+ /* plain modes CMYK --- same for duplex */
+ { 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 STD"),INKSET(19_C3M3Y3K2k3off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(19_C3M3Y3K2k3off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcmk */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(19_C6M6Y4K2c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(19_C6M6Y4K2c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ /* inkjet Hagaki --- same as photo modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(19_C6M6Y4K2c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Fine Art CMYcmk */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI FineArt"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI HIGH CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft5",N_("600x600 DPI DRAFT CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-shirt transfers CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(19_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Transparency"),INKSET(19_C4M4Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(19_C4M4Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MP950,1);
+
+/* high resolution mono modes use unknown inks */
static const canon_mode_t canon_MULTIPASS_MP960_modes[] = {
- /* 300 dpi plain modes (also mono) */
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(19_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* 600dpi plain modes (also mono) */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(19_C3M3Y3K2k3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* hagaki fast uses this with output CMYKk (quality 2) */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI STD / HAGAKI DRAFT"),INKSET(19_C3M3Y3K2k3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* PPpro, inkjet Hagaki High CMYcmk --- no 0x60 additions to c,m */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH / INKJET HAGAKI HIGH"),INKSET(19_C7M7Y4K2c7m7k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYcmk */
- /* hagaki high CMYKk (quality 4) OK! */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI HAGAKI HIGH"),INKSET(19_C6M6Y4K2c6m6k4hagaki),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- /* hagaki std CMYKk (quality 3) OK! */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI HAGAKI STD"),INKSET(19_C6M6Y4K2c6m6k4hagaki),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* Inkjet Hagaki Std CMYcmk --- no 0x60 additions to c,m */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO / INKJET HAGAKI STD"),INKSET(19_C6M6Y4K2c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* CMYcmk */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(19_C6M6Y4K2c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PPmatte */
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(19_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(19_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(19_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
- /* CD */
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /* T-shirt transfers CMYk --- works great! OK */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI T-SHIRT TRANSFERS"),INKSET(19_C4M4Y4K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* plain modes CMYK */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH (duplex)"),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 STD"),INKSET(19_C3M3Y3K2k3off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(19_C3M3Y3K2k3off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcmk */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(19_C6M6Y4K2c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(19_C6M6Y4K2c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ /* inkjet Hagaki --- same as photo modes */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(19_C6M6Y4K2c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Fine Art CMYcmk */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh5",N_("600x600 DPI FineArt"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(19_C6M6Y4K2c6m6k4hagaki),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-shirt transfers CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(19_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency CMYKk --- untested (taken from MP950) */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_high4",N_("600x600 DPI HIGH Transparency"),INKSET(19_C4M4Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(19_C4M4Y4K2k4on),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* photo modes high & std (600dpi) CMYcmk */
/* photo mode 2 (600dpi) CMYcmk --- works, but c,m may need a bit of tone/density adjusting */
/* photo mode 3 CD (600dpi) CMYcmk --- c,m too light, may need adjusting tone/density */
/* inkjet hagaki outputs in CMYcmk std, hi --- c,m too light, may need adjusting tone/density */
- /* hagaki outputs in CMYKk draft, std, high (OK) */
- /* T-shirt transfer mode (600dpi) CMYk (OK) */
};
-DECLARE_MODES(canon_MULTIPASS_MP960,3);
+DECLARE_MODES(canon_MULTIPASS_MP960,2);
static const canon_mode_t canon_MULTIPASS_MP970_modes[] = {
- /* { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(7_C4M4Y4c4m4k4K4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
- /* 300 dpi plain modes (also mono) */
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(19_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* 600dpi plain modes (also mono) */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(19_C3M3Y3K2k3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* hagaki fast uses this with output CMYKk (quality 2) */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI STD / HAGAKI DRAFT"),INKSET(19_C3M3Y3K2k3),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* PPpro, inkjet Hagaki High CMYcmk --- no 0x60 additions to c,m */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH / INKJET HAGAKI HIGH"),INKSET(19_C7M7Y4K2c7m7k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYcmk */
- /* hagaki high CMYKk (quality 4) OK! */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI HAGAKI HIGH"),INKSET(19_C6M6Y4K2c6m6k4hagaki),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- /* hagaki std CMYKk (quality 3) OK! */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI HAGAKI STD"),INKSET(19_C6M6Y4K2c6m6k4hagaki),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* Inkjet Hagaki Std CMYcmk --- no 0x60 additions to c,m */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO / INKJET HAGAKI STD"),INKSET(19_C6M6Y4K2c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* CMYcmk */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(19_C6M6Y4K2c6m6k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PPmatte */
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(19_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(19_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(19_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
- /* CD */
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
- /* CMYcmk --- no cyan */
- /* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(19_C4M4Y4c4m4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /* T-shirt transfers CMYk --- works great! OK */
- { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI T-SHIRT TRANSFERS"),INKSET(19_C4M4Y4K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* photo modes high & std (600dpi) CMYcmk */
- /* photo mode 2 (600dpi) CMYcmk --- works, but c,m may need a bit of tone/density adjusting */
- /* photo mode 3 CD (600dpi) CMYcmk --- c,m too light, may need adjusting tone/density */
- /* inkjet hagaki outputs in CMYcmk std, hi --- c,m too light, may need adjusting tone/density */
- /* hagaki outputs in CMYKk draft, std, high (OK) */
- /* T-shirt transfer mode (600dpi) CMYk (OK) */
-};
-DECLARE_MODES(canon_MULTIPASS_MP970,0);
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(19_C6M6Y4K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH (duplex)"),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},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(19_C3M3Y3K2k3off),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH / FineArt"),INKSET(19_C7M7Y4K2c7m7k4),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(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(19_C6M6Y4K2c6m6k4),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(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(19_C6M6Y4K2c6m6k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD CMYcmk */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(19_C4M4Y4c4m4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-shirt transfers CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(19_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki CMYKk --- same for duplex */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(19_C6M6Y4K2c6m6k4hagaki),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(19_C6M6Y4K2c6m6k4hagaki),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_MULTIPASS_MP970,2);
/* most photo modes use H (grey) so unsupported presently */
-/* TODO: stad mode ouput CMYKk for Hagaki and Envelope */
static const canon_mode_t canon_MULTIPASS_MP980_modes[] = {
/* normal modes */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(16_C6M6Y4K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH (DS)"),INKSET(16_C3M3Y2K2k3_c),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(16_C3M3Y2K2k3_c),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(16_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(16_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* Photo modes: matte, high resolution, CD */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3 / CD"),INKSET(16_C8M8Y4k4),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 PHOTO 3 / CD"),INKSET(16_C8M8Y4k4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(16_C6M6Y4K2k4off),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH (duplex)"),INKSET(16_C3M3Y2K2k3off_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(16_C3M3Y2K2k3off_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(16_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(16_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Photo modes: matte, high resolution */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(16_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 PHOTO matte/HiRes"),INKSET(16_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD -- same as above */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH CD"),INKSET(16_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(16_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Photo modes: inkjet Hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH 2"),INKSET(16_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO 2"),INKSET(16_C5M5Y4k4),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(16_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(16_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(16_C8M8Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
/* Photo modes: other */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(16_C6M6Y4k4),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(16_C6M6Y4k4),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(16_C3M3Y2K2k3on_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(16_C3M3Y2K2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_MULTIPASS_MP980,0);
+DECLARE_MODES(canon_MULTIPASS_MP980,2);
static const canon_mode_t canon_MULTIPASS_MP990_modes[] = {
- /* normal modes */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(30_K2C6M6Y4k4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(30_K2C3M3Y2k3_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
- /* { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(30_K2C3M3Y2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(30_K2C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(30_K2C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},*/
- /* PhotoHi3 mode for CDs, inkjet hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_MULTIPASS_MP990,0);
+ /* plain modes */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(30_K2C6M6Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH (duplex)"),INKSET(30_K2C3M3Y2k3_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(30_K2C3M3Y2k3_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(30_K2C2M2Y2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo modes CMYk --- most use grey (H) or unsupported inks */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte"),INKSET(30_M8K8m4k4),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/other"),INKSET(30_M6K6m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",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_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(30_C5M5Y4k4),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},
+ /* T-shirt CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(30_M8K8m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(30_K2C3M3Y2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(30_K2C3M3Y2k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_MULTIPASS_MP990,1);
+
+static const canon_mode_t canon_PIXMA_iX4000_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4),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(22_C3M3Y2K2_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(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Photo: CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(22_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki --- same as plain */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(22_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* TST mode */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(22_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Transparency"),INKSET(22_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(22_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iX4000,1);
static const canon_mode_t canon_PIXMA_iX5000_modes[] = {
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2_c),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(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4),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(22_C3M3Y2K2_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(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Photo: CMYcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(22_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(22_C4M4Y4K2c4m4photo),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(22_C3M3Y3K2c3m3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photodraft2",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(22_C3M3Y2K2photo_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki --- same as plain */
+ { 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(22_C4M4Y4K2c4m4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(22_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* TST mode */
- { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(22_C4M4Y4K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(22_C4M4Y4K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_PIXMA_iX5000,0);
+DECLARE_MODES(canon_PIXMA_iX5000,1);
static const canon_mode_t canon_PIXMA_iX7000_modes[] = {
/* plain */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_c),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_C3M3Y2K2k3_c),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_C2M2Y2K2k2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2k2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* photo - no mono: all output CMYKk */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C6M6Y2K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y2K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C6M6Y2K2k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
-};
-DECLARE_MODES(canon_PIXMA_iX7000,0);
-
-/* format: 0x90 */
-/* ink : 0x4 */
-/* Not sure why MODE_FLAG_PRO is needed for Fast mode, or if it even works. Driver Fast mode uses iP8500 flag instead */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_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_C3M3Y2K2y3_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_C2M2Y2K2k2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(13_C2M2Y2K2k2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0}, /* untested */
+ /* photo CMYKk */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C6M6Y2K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C6M6Y2K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(13_C6M6Y2K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photo2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C6M6Y2K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photodraft2",N_("600x600 DPI Env/Hagaki"),INKSET(13_C6M6Y2K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Fine Art */
+ { 600, 600,CANON_INK_CMYKk,"600x600dpi_photo3",N_("600x600 DPI HIGH FineArt"),INKSET(13_C6M6Y2K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_PIXMA_iX7000,1);
+
+/* mono uses bw=2 */
static const canon_mode_t canon_PIXMA_Pro9000_modes[] = {
-/* original mode entered here */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
/* Plain Modes */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH (Hagaki)"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
-/* Plain Modes Mono */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT 2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* plain mono */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Photo Modes */
/* highest uses R,G so cannot support */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(11_C6M6Y6K6c16m16_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH / CD"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed2",N_("600x600 DPI PHOTO MEDIUM 2"),INKSET(11_C6M6Y6K6c16m16_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO STD / CD"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT 2"),INKSET(11_C5M5Y5K5c5m5_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
-/* Photo Modes Mono */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO MONO HIGH / CD"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonomed",N_("600x600 DPI PHOTO MONO MEDIUM"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO STD / CD"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_Pro9000,0);
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH GlossPro/proPlat/pro"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* photo mono */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO MONO HIGH / CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonomed",N_("600x600 DPI PHOTO MONO MEDIUM"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO / CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki 2"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI MONO HIGH Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),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 Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* board, canvas, FineArt, Museum Etching */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI Board/Canvas/FineArt/Museum"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+};
+DECLARE_MODES(canon_PIXMA_Pro9000,1);
/* all use normal BJ format and ink codes */
+/* mono uses bw=2 */
static const canon_mode_t canon_PIXMA_Pro9000mk2_modes[] = {
- /* plain */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI PLAIN / T-SHIRT"),INKSET(11_C6M6Y6K6_c),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(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* plain mono */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT 2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,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(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* plain mono modes */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes --- highest use RGH so cannot support yet */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(11_C6M6Y6K6c16m16_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH / CD"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM"),INKSET(11_C6M6Y6K6c16m16_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT"),INKSET(11_C6M6Y6K6c6m6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM pro/proPlat/"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO gloss"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* photo mono */
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO MONO HIGH / CD"),INKSET(11_C16M16Y16K16c16m16),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonomed",N_("600x600 DPI PHOTO MONO MEDIUM"),INKSET(11_C16M16Y16K16c16m16),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO / CD"),INKSET(11_C16M16Y16K16c16m16),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(11_C16M16Y16K16c16m16),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_Pro9000mk2,0);
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO MONO HIGH / CD"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonomed",N_("600x600 DPI PHOTO MONO MEDIUM"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO / CD"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI MONO HIGH Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,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(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* board, canvas, FineArt, Museum Etching */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI Board/Canvas/FineArt/Museum"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+};
+DECLARE_MODES(canon_PIXMA_Pro9000mk2,1);
/* all modes use normal BJ ink and format codes */
/* However, most modes use RGH inks as well as CMYKcmyk, and so cannot be currently supported */
/* the Pro9500 has fewer quality settings in the driver than the Pro9500 Mk.II but I put the "missing" ones in anyway */
static const canon_mode_t canon_PIXMA_Pro9500_modes[] = {
/* plain mode: fast, 1 only but maybe accept 2 and 0 quality settings too */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* plain mono: these modes use CMYK inks also */
/* used for plain, hagaki */
/* bw=2 */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono2",N_("600x600 DPI MONO PLAIN/HAGAKI HIGH"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HAGAKI STD"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono2",N_("600x600 DPI MONO PLAIN/Hagaki HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO Hagaki STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},/*untested*/
/* Photo modes: only mono using CMYK-only can be supported currently */
-/* this has k instead of K */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_monophoto",N_("600x600 DPI MONO PHOTO"),INKSET(11_C16M16Y16k16),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+/* this has k instead of K --- also CD */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photomono",N_("600x600 DPI MONO PHOTO / CD"),INKSET(11_C16M16Y16k16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
};
-DECLARE_MODES(canon_PIXMA_Pro9500,0);
+DECLARE_MODES(canon_PIXMA_Pro9500,1);
/* all modes use normal BJ ink and format codes */
/* However, most modes use RGH inks as well as CMYKcmyk, and so cannot be currently supported */
static const canon_mode_t canon_PIXMA_Pro9500mk2_modes[] = {
/* plain: 3 variations on the Fast mode: 600/1 and 600/0 are supported, but perhaps 600/2 is also possible */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* plain mono: these modes use CMYK inks also */
/* used for plain, hagaki */
/* bw=2 */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono2",N_("600x600 DPI MONO PLAIN/HAGAKI HIGH"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HAGAKI STD"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono2",N_("600x600 DPI MONO PLAIN/Hagaki HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO Hagaki STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Photo modes: only mono using CMYK-only can be supported currently */
-/* this has k instead of K */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_monophoto",N_("600x600 DPI MONO PHOTO"),INKSET(11_C16M16Y16k16),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+/* this has k instead of K --- also CD */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photomono",N_("600x600 DPI MONO PHOTO / CD"),INKSET(11_C16M16Y16k16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+};
+DECLARE_MODES(canon_PIXMA_Pro9500mk2,1);
+
+/* iP7100 */
+/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
+static const canon_mode_t canon_PIXMA_iP7100_modes[] = {
+ /* plain modes: color */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Hagaki/Env */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),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 Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* plain modes: mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Fine Art*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_PIXMA_Pro9500mk2,0);
+DECLARE_MODES(canon_PIXMA_iP7100,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},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi",N_("300x300 DPI"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(19_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(19_C7M7Y4K2c7m7k4),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(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(19_C6M6Y4K2c6m6k4),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(19_C4M4Y4K2c4m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Fine Art */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI FineArt"),INKSET(19_C7M7Y4K2c7m7k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ /* Hagaki, Envelope */
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Hagaki/Env"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Hagaki/Env"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYKk|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT Hagaki/Env"),INKSET(19_C3M3Y3K2k3),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD media */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(19_C4M4Y4c4m4k4CD),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPIDRAFT CD"),INKSET(19_C4M4Y4c4m4k4CD),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(19_C4M4Y4K2k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP7500,1);
+
+/* iP8100 */
+/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
+static const canon_mode_t canon_PIXMA_iP8100_modes[] = {
+ /* plain modes: color */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Hagaki/Env */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),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 Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* plain modes: mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ /* one mode for PPpro ud1, hi cannot be supported yet as it uses Red ink (R) in addtion to CMYKcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Fine Art*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_PIXMA_iP8100,2);
/* iP8500 */
-/* ESC R command is 0x64 but another one befor data is sent: ESC R) 0x62 0x0 */
-/* Photo modes and CD mode have unsupported format 0x90, unsupported ink settings 0x4 --- need to debug this */
+/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
static const canon_mode_t canon_PIXMA_iP8500_modes[] = {
- { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_std",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI 2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* original single mode, but printer does not even use this via the driver! */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(11_C2M2Y2K2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* plain modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),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 Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* plain modes: mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ /* some modes cannot be supported yet as they use Red (R) and Green (G) ink in addition to CMYKcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plus"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusDS/glossy"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* CD CMYKcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Transparency CMYK */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_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(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_iP8500,2);
+
+/* iP8600 */
+/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
+static const canon_mode_t canon_PIXMA_iP8600_modes[] = {
+ /* plain modes: color */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Env/Hagaki */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),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 Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* plain modes: mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ /* one mode for PPpro ud1, hi, and PPplusGlossy hi cannot be supported yet as it uses Red (R) and Green (G) ink in addition to CMYKcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH plusDS/gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/plusGlossy/matte/HiRes CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki separate out */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Fine Art */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_PIXMA_iP8600,2);
+
+/* iP9910 */
+/* ESC (r command before data is sent: ESC (r 0x62 0x0 */
+static const canon_mode_t canon_PIXMA_iP9910_modes[] = {
+ /* plain modes: color */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* Hagaki/Env */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),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 Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* plain modes: mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes */
+ /* one mode for PPpro hi, and PPplusGlossy hi cannot be supported yet as it uses Red (R) and Green (G) ink in addtion to CMYKcm */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH plusDS/gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/plusGlossy/matte/HiRes/other CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO gloss CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki separate out */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Fine Art */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
/* Transparency */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI OHP"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT OHP"),INKSET(11_C6M6Y6K6_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_PIXMA_iP8500,3);
+DECLARE_MODES(canon_PIXMA_iP9910,2);
+
+static const canon_mode_t canon_PIXMA_MG2100_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K4),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},
+ { 300, 300,CANON_INK_CMY,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI MONO 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,"600x600dpi_mono",N_("600x600 DPI MONO"),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,"300x300dpi_mono",N_("300x300 DPI MONO"),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 modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI STANDARD COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI COLOR-ONLY"),INKSET(13_C2M2Y2K2off),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},
+ { 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 */
+ { 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},
+ { 600, 600,CANON_INK_K,"600x600dpi_mono3",N_("600x600 DPI MONO Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2K3off),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 STANDARD Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG2100,1);
+
+static const canon_mode_t canon_PIXMA_MG3100_modes[] = {
+ /* plain modes */
+ { 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},
+ { 300, 300,CANON_INK_CMY,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* mono */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI MONO 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,"600x600dpi_mono",N_("600x600 DPI MONO"),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,"300x300dpi_mono",N_("300x300 DPI MONO"),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 modes */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high2",N_("600x600 DPI HIGH COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_std2",N_("600x600 DPI STANDARD COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMY,"300x300dpi_std2",N_("300x300 DPI COLOR-ONLY"),INKSET(13_C2M2Y2K2off),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},
+ { 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 */
+ { 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},
+ { 600, 600,CANON_INK_K,"600x600dpi_mono3",N_("600x600 DPI MONO Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* color-only */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2K3off),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 STANDARD Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG3100,1);
-/* Gernot: added modes for MG5100.
- I noticed that the monochrome modes use all inks but only K is sent in the printjob,
- so the bw=1 flag does somehow do something even if the inkset contains all colors.
- TODO: figure out how to set color setting for modes in order to use inkset for mono.
-*/
static const canon_mode_t canon_PIXMA_MG5100_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoStd mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C6M6Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C6M6Y4y4),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoHi3 mode for inkjet hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_MG5100,13);
+ /* 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/*mono untested*/
+ { 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_C8M8Y4k4),8,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),8,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),8,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_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),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Hagaki/Env: use K and k both 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_C8M8Y4k4),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_PIXMA_MG5100,2);
static const canon_mode_t canon_PIXMA_MG5200_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K2y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),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),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(13_C8M8Y4y4),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),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoStd mode for high quality photo papers */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH 2"),INKSET(13_C6M6Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO 2"),INKSET(13_C6M6Y4y4),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),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* PhotoHi3 mode for CDs, inkjet hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(13_C5M5Y4y4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_MG5200,13);
-
-/* for this printer the photo modes (except for CDs) have unknown inks, so these modes are not added. Now we get plain paper, non-photo hagaki, and CDs. */
+ /* plain modes --- duplex no mono CMYK */
+ { 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},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(13_C3M3Y2K2y3_c),16,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_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C3M3Y2K2y3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/*untested*/
+ { 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},
+ /* 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},
+ /* 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},
+ /* 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},
+};
+DECLARE_MODES(canon_PIXMA_MG5200,2);
+
+static const canon_mode_t canon_PIXMA_MG5300_modes[] = {
+ /* plain modes -- B/W also */
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2y3_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_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 duplex/Env/Hagaki"),INKSET(13_C3M3Y2K2k3on_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_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},
+ /* 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},
+ /* 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},
+ /* 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},
+};
+DECLARE_MODES(canon_PIXMA_MG5300,1);
+
+/* for this printer most photo modes have grey (H) ink. */
static const canon_mode_t canon_PIXMA_MG6100_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(30_K2C6M6Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K2C3M3Y2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(30_K2C3M3Y2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(30_K2C2M2Y2),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(30_K2C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi3 mode for CDs, inkjet hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_MG6100,7);
-
-/* for this printer the photo modes have unknown inks, so these modes are not added. Now we get plain paper and non-photo hagaki. */
+ /* 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},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(30_K2C3M3Y2k3_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K2C3M3Y2k3_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(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"),INKSET(30_M8K8m4k4),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_M8K8m4k4),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_M6K6m4k4),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},
+ /* Env/Hagaki CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(30_K2C3M3Y2k3on_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(30_K2C3M3Y2k3on_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(30_M8K8m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_PIXMA_MG6100,2);
+
+/* for this printer most photo modes have grey (H) ink. */
+static const canon_mode_t canon_PIXMA_MG6200_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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K2C3M3Y2k3_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_K2C3M3Y2k3on_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_K2C3M3Y2k3on_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"),INKSET(30_M8K8m4k4),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_M8K8m4k4),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_M6K6m4k4),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},
+ /* T-Shirt CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(30_M8K8m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_PIXMA_MG6200,1);
+
+/* for this printer most photo modes have grey (H) ink. */
static const canon_mode_t canon_PIXMA_MG8100_modes[] = {
- /* high mode -- B/W also */
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(30_K2C6M6Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- /* standard mode -- B/W also */
- /*{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K2C3M3Y2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(30_K2C3M3Y2k3_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
- /* draft modes -- B/W also */
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(30_K2C2M2Y2),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(30_K2C2M2Y2),MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
- /* PhotoHi3 mode for CDs, inkjet hagaki */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI PHOTO DRAFT 3"),INKSET(30_C5M5Y4k4),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
-};
-DECLARE_MODES(canon_PIXMA_MG8100,4);
+ /* 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K2C3M3Y2k3_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_K2C3M3Y2k3on_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_K2C3M3Y2k3on_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"),INKSET(30_M8K8m4k4),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_M8K8m4k4),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_M6K6m4k4),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},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(30_M8K8m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_PIXMA_MG8100,1);
+
+/* for this printer most photo modes have grey (H) ink. */
+static const canon_mode_t canon_PIXMA_MG8200_modes[] = {
+ /* plain modes */
+ { 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},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K2C3M3Y2k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* duplex, Hagaki, Env modes use K and k */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH duplex/Env/Hagaki"),INKSET(30_K2C3M3Y2k3on_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_K2C3M3Y2k3on_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"),INKSET(30_M8K8m4k4),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_M8K8m4k4),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_M6K6m4k4),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},
+ /* T-Shirt */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(30_M8K8m4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_PIXMA_MG8200,1);
#endif
diff --git a/src/main/canon-printers.h b/src/main/canon-printers.h
index 4e8f6be..08b86f1 100644
--- a/src/main/canon-printers.h
+++ b/src/main/canon-printers.h
@@ -24,9 +24,15 @@
/* This file contains the capabilities of the various canon printers
*/
+/* TODO-LIST
+ *
+ * * adjust the paper sizes based on available Canon PPDs and
+ * Windows driver information
+ *
+ */
#ifndef GUTENPRINT_INTERNAL_CANON_PRINTERS_H
#define GUTENPRINT_INTERNAL_CANON_PRINTERS_H
-
+#define INCH(x) (72 * x)
typedef struct canon_caps {
const char* name; /* model name */
@@ -37,13 +43,17 @@ typedef struct canon_caps {
int border_right; /* right margin, points */
int border_top; /* absolute top margin, points */
int border_bottom; /* absolute bottom margin, points */
- int raster_lines_per_block; /* number of raster lines in every F) command */
+ /* int raster_lines_per_block; */
+ /* number of raster lines in every F) command */
const canon_slotlist_t* slotlist; /*available paperslots */
unsigned long features; /* special bjl settings */
unsigned char ESC_r_arg; /* argument used for the ESC (r command during init */
+ int ESC_l_len; /* length of ESC (l command, in bytes */
+ int ESC_P_len; /* length of ESC (P command, in bytes */
const char** control_cmdlist;
const canon_modelist_t* modelist;
const canon_paperlist_t* paperlist;
+ const canon_modeuselist_t* modeuselist;
const char *lum_adjustment;
const char *hue_adjustment;
const char *sat_adjustment;
@@ -140,6 +150,51 @@ static const char iP4200_hue_adjustment[] =
"</curve>\n"
"</gutenprint>\n";
+static const char MP450_sat_adjustment[] =
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<gutenprint>\n"
+"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n"
+"<sequence count=\"48\" lower-bound=\"0\" upper-bound=\"4\">\n"
+/* C */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* B */
+/* B */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* M */
+/* M */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* R */
+/* R */ "1.00 1.00 1.05 1.10 1.20 1.26 1.34 1.41 " /* Y */
+/* Y */ "1.38 1.32 1.24 1.15 1.08 1.00 1.00 1.00 " /* G */
+/* G */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* C */
+"</sequence>\n"
+"</curve>\n"
+"</gutenprint>\n";
+
+static const char MP450_lum_adjustment[] =
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<gutenprint>\n"
+"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n"
+"<sequence count=\"48\" lower-bound=\"0\" upper-bound=\"4\">\n"
+/* C */ "0.52 0.56 0.61 0.67 0.79 0.86 0.91 0.98 " /* B */
+/* B */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* M */
+/* M */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.04 " /* R */
+/* R */ "1.04 1.04 1.04 1.04 1.03 1.03 1.03 1.02 " /* Y */
+/* Y */ "1.02 0.97 0.92 0.88 0.83 0.78 0.74 0.71 " /* G */
+/* G */ "0.70 0.62 0.59 0.53 0.48 0.52 0.53 0.51 " /* C */
+"</sequence>\n"
+"</curve>\n"
+"</gutenprint>\n";
+
+static const char MP450_hue_adjustment[] =
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<gutenprint>\n"
+"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n"
+"<sequence count=\"48\" lower-bound=\"-6\" upper-bound=\"6\">\n"
+/* C */ "-.30 -.33 -.35 -.37 -.40 -.30 -.20 0.00 " /* B */
+/* B */ "0.00 -.04 -.01 0.08 0.14 0.16 0.09 0.00 " /* M */
+/* M */ "0.00 0.00 -.05 -.07 -.10 -.08 -.06 0.00 " /* R */
+/* R */ "0.00 0.04 0.08 0.10 0.13 0.10 0.07 0.00 " /* Y */
+/* Y */ "0.00 -.11 -.18 -.23 -.30 -.37 -.46 -.54 " /* G */
+/* G */ "0.00 0.00 -.02 -.05 -.07 -.11 -.17 -.25 " /* C */
+"</sequence>\n"
+"</curve>\n"
+"</gutenprint>\n";
+
static const char* control_cmd_ackshort[] = {
"AckTime=Short",
NULL
@@ -153,6 +208,19 @@ static const char* control_cmd_PIXMA_iP4000[] = {
NULL
};
+static const char* control_cmd_BJC_i550[] = {
+/*"SetTime=20060722092503", */ /*what is this for?*/
+ "SetSilent=OFF",
+ "SelectParallel=ECP",
+ NULL
+};
+
+static const char* control_cmd_BJC_i6100[] = {
+/*"SetTime=20060722092503", */ /*what is this for?*/
+ "SelectParallel=ECP",
+ NULL
+};
+
static const char* control_cmd_PIXMA_iP4200[] = {
/*"SetTime=20060722092503", */ /*original driver sends current time, is it needed?*/
"SetSilent=OFF",
@@ -160,15 +228,14 @@ static const char* control_cmd_PIXMA_iP4200[] = {
NULL
};
-static const char* control_cmd_MULTIPASS_MP150[] = {
- "AckTime=Short",
- "MediaDetection=ON",
+static const char* control_cmd_PIXMA_iP2700[] = {
+/*"SetTime=20060722092503", */ /*what is this for?*/
+ "SetSilent=OFF",
NULL
};
-static const char* control_cmd_PIXMA_iP2700[] = {
+static const char* control_cmd_PIXMA_MG5300[] = {
/*"SetTime=20060722092503", */ /*what is this for?*/
- "SetSilent=OFF",
NULL
};
@@ -179,71 +246,79 @@ static const canon_cap_t canon_model_capabilities[] =
/* the first printer is used as default in case something has gone wrong in printers.xml */
{ /* Canon MULTIPASS MP830 */
"PIXMA MP830", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- /* CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px,0,control_cmd_MULTIPASS_MP150, */ /*features */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP830_modelist,
- /* &canon_PIXMA_iP4000_paperlist, */
&canon_MULTIPASS_MP600_paperlist,
+ &canon_MULTIPASS_MP830_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon MULTIPASS MP800 */
"PIXMA MP800", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP800_modelist,
&canon_MULTIPASS_MP600_paperlist,
+ &canon_MULTIPASS_MP800_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon MULTIPASS MP810 */
"PIXMA MP810", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP810_modelist,
&canon_MULTIPASS_MP600_paperlist,
+ &canon_MULTIPASS_MP810_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA MP950 */
"PIXMA MP950", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /* features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /* features */
&canon_MULTIPASS_MP950_modelist,
- &canon_PIXMA_iP4000_paperlist,
+ &canon_MULTIPASS_MP950_paperlist,
+ &canon_MULTIPASS_MP950_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA MP960 */
"PIXMA MP960", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4600_slotlist, /* changed from iP4000 */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /* features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4600_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /* features */
&canon_MULTIPASS_MP960_modelist,
- &canon_PIXMA_iP4600_paperlist, /* changed from iP4000 */
+ &canon_MULTIPASS_MP960_paperlist,
+ &canon_MULTIPASS_MP960_modeuselist,
NULL,
NULL,
NULL,
@@ -251,45 +326,51 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA MP970 */
"PIXMA MP970", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_P|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP970_modelist,
- &canon_PIXMA_iP4000_paperlist,
+ &canon_MULTIPASS_MP970_paperlist,
+ &canon_MULTIPASS_MP970_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA MP980 */
"PIXMA MP980", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4600_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_P|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP980_modelist,
&canon_MULTIPASS_MP980_paperlist,
+ &canon_MULTIPASS_MP980_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA MP990 --- uses XML */
"PIXMA MP990", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4600_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP990_modelist,
&canon_MULTIPASS_MP990_paperlist,
+ &canon_MULTIPASS_MP990_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
/* ******************************** */
@@ -309,43 +390,191 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon S200x *//* heads: BC-24 */
"S200", 3,
- 618, 936, /* 8.58" x 13 " */
- 10, 10, 9, 20,
- 8,
- &canon_default_slotlist,
- CANON_CAP_STD1 | CANON_CAP_rr,0x61,NULL,
+ INCH(19/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 20, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD1 | CANON_CAP_rr,0x61,
+ 2,0,
+ NULL,
&canon_S200_modelist,
- &canon_default_paperlist,
+ &canon_BJC_S200_paperlist,
+ &canon_BJC_S200_modeuselist,
NULL,
NULL,
NULL,
NULL
},
-
{ /* Canon BJC S300 */
"S300", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
- &canon_default_slotlist,
- CANON_CAP_STD1 | CANON_CAP_r,0x61,control_cmd_ackshort,
- &canon_BJC_8500_modelist,
- &canon_default_paperlist,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px,0,
+ 2,0,
+ control_cmd_ackshort,
+ &canon_BJC_S300_modelist,
+ &canon_BJC_S300_paperlist,
+ &canon_BJC_S300_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC S330 */
+ "S330", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_S330_modelist,
+ &canon_BJC_S330_paperlist,
+ &canon_BJC_S330_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon S500 */
+ "S500", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_p,0,
+ 2,0,
+ control_cmd_BJC_i6100,
+ &canon_BJC_S500_modelist,
+ &canon_BJC_S300_paperlist,
+ &canon_BJC_S500_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon S520 */
+ "S520", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px,0,
+ 2,0,
+ control_cmd_BJC_i6100,
+ &canon_BJC_S520_modelist,
+ &canon_BJC_S520_paperlist,
+ &canon_BJC_S520_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC S600 *//* heads: BC-50 */
+ "S600", 3,
+ 842, INCH(17),
+ 10, 10, 9, 15,
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_p,0,
+ 2,0,
+ control_cmd_BJC_i6100,
+ &canon_BJC_S600_modelist,
+ &canon_BJC_S300_paperlist,
+ &canon_BJC_S600_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC S750 */
+ "S750", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px,0,
+ 2,0,
+ control_cmd_BJC_i550,
+ &canon_BJC_S750_modelist,
+ &canon_BJC_S750_paperlist,
+ &canon_BJC_S750_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC S800 */
+ "S800", 3,
+ 842, INCH(17),
+ 10, 10, 9, 15,
+ &canon_BJC_S800_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_p,0,
+ 2,0,
+ control_cmd_BJC_i6100,
+ &canon_BJC_S800_modelist,
+ &canon_BJC_S800_paperlist,
+ &canon_BJC_S800_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC S820 */
+ "S820", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px|CANON_CAP_rr,0,
+ 2,0,
+ control_cmd_BJC_i550,
+ &canon_BJC_S820_modelist,
+ &canon_BJC_S800_paperlist,
+ &canon_BJC_S820_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC S830D */
+ "S830", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px|CANON_CAP_rr,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_S820_modelist,
+ &canon_BJC_S800_paperlist,
+ &canon_BJC_S820_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC S900 */
+ "S900", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px|CANON_CAP_rr,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_S900_modelist,
+ &canon_BJC_S800_paperlist,
+ &canon_BJC_S900_modeuselist,
NULL,
NULL,
NULL,
NULL
},
-
{ /* Canon BJ 30 *//* heads: BC-10 */
"30", 1,
- 9.5*72, 14*72,
- 11, 9, 10, 18,
- 8,
+ INCH(19/2), INCH(14),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_a,0,NULL,
+ CANON_CAP_STD0 | CANON_CAP_a,0,
+ 2,0,
+ NULL,
&canon_BJC_30_modelist,
&canon_default_paperlist,
+ &canon_BJC_30_modeuselist,
NULL,
NULL,
NULL,
@@ -353,13 +582,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 85 *//* heads: BC-20 BC-21 BC-22 */
"85", 1,
- 9.5*72, 14*72,
- 11, 9, 10, 18,
- 8,
+ INCH(19/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 20, /* confirmed */
&canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_a,0,NULL,
+ CANON_CAP_STD0 | CANON_CAP_a,0,
+ 2,0,
+ NULL,
&canon_BJC_85_modelist,
&canon_default_paperlist,
+ &canon_BJC_85_modeuselist,
NULL,
NULL,
NULL,
@@ -369,12 +600,14 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 4300 *//* heads: BC-20 BC-21 BC-22 BC-29 */
"4300", 1,
618, 936, /* 8.58" x 13 " */
- 11, 9, 10, 18,
- 8,
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
+ CANON_CAP_STD0 | CANON_CAP_cart,0,
+ 2,0,
+ NULL,
&canon_BJC_4300_modelist,
&canon_default_paperlist,
+ &canon_BJC_4300_modeuselist,
NULL,
NULL,
NULL,
@@ -383,13 +616,31 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 4400 *//* heads: BC-20 BC-21 BC-22 BC-29 */
"4400", 1,
- 9.5*72, 14*72,
- 11, 9, 10, 18,
- 8,
+ INCH(19/2), INCH(14),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_a,0,NULL,
+ CANON_CAP_STD0 | CANON_CAP_a,0,
+ 2,0,
+ NULL,
&canon_BJC_4400_modelist,
&canon_default_paperlist,
+ &canon_BJC_4400_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC 4550 *//* heads: BC-21 BCI-21 BC-22 */
+ "4550", 3,
+ INCH(17), INCH(22),
+ 11, 9, 10, 18, /* unconfirmed */
+ &canon_default_slotlist,
+ CANON_CAP_STD0 | CANON_CAP_a | CANON_CAP_cart,0,
+ 2,0,
+ NULL,
+ &canon_BJC_4550_modelist,
+ &canon_default_paperlist,
+ &canon_BJC_4550_modeuselist,
NULL,
NULL,
NULL,
@@ -399,12 +650,14 @@ 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,
- 8,
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1,0,control_cmd_ackshort,
+ CANON_CAP_STD1,0,
+ 2,0,
+ control_cmd_ackshort,
&canon_BJC_6000_modelist,
&canon_default_paperlist,
+ &canon_BJC_6000_modeuselist,
NULL,
NULL,
NULL,
@@ -414,12 +667,14 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 6200 *//* heads: BC-30/BC-31 BC-32/BC-31 */
"6200", 3,
618, 936, /* 8.58" x 13 " */
- 11, 9, 10, 18,
- 8,
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1,0,control_cmd_ackshort,
+ CANON_CAP_STD1,0,
+ 2,0,
+ control_cmd_ackshort,
&canon_BJC_6000_modelist,
&canon_default_paperlist,
+ &canon_BJC_6000_modeuselist,
NULL,
NULL,
NULL,
@@ -428,13 +683,15 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 6500 *//* heads: BC-30/BC-31 BC-32/BC-31 */
"6500", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
+ 842, INCH(17),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1,0,NULL,
+ CANON_CAP_STD1,0,
+ 2,0,
+ NULL,
&canon_BJC_6000_modelist,
&canon_default_paperlist,
+ &canon_BJC_6000_modeuselist,
NULL,
NULL,
NULL,
@@ -442,27 +699,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 8200 *//* heads: BC-50 */
"8200", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
+ 842, INCH(17),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1 | CANON_CAP_r,0x61,control_cmd_ackshort,
+ CANON_CAP_STD1 | CANON_CAP_r,0x61,
+ 2,0,
+ control_cmd_ackshort,
&canon_BJC_8200_modelist,
&canon_default_paperlist,
- NULL,
- NULL,
- NULL,
- NULL
- },
- { /* Canon S500 */
- "S500", 3,
- 842, 17*72,
- 10, 10, 15, 15,
- 8,
- &canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_r | CANON_CAP_p,0x61,control_cmd_ackshort,
- &canon_S500_modelist,
- &canon_default_paperlist,
+ &canon_BJC_8200_modeuselist,
NULL,
NULL,
NULL,
@@ -479,12 +724,14 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 210 *//* heads: BC-02 BC-05 BC-06 */
"210", 1,
618, 936, /* 8.58" x 13 " */
- 11, 9, 10, 18,
- 8,
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
+ CANON_CAP_STD0,0,
+ 2,0,
+ NULL,
&canon_BJC_210_modelist,
&canon_default_paperlist,
+ &canon_BJC_210_modeuselist,
NULL,
NULL,
NULL,
@@ -493,12 +740,14 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 240 *//* heads: BC-02 BC-05 BC-06 */
"240", 1,
618, 936, /* 8.58" x 13 " */
- 11, 9, 10, 18,
- 8,
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
+ CANON_CAP_STD0,0,
+ 2,0,
+ NULL,
&canon_BJC_240_modelist,
&canon_default_paperlist,
+ &canon_BJC_240_modeuselist,
NULL,
NULL,
NULL,
@@ -507,12 +756,14 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 250 *//* heads: BC-02 BC-05 BC-06 */
"250", 1,
618, 936, /* 8.58" x 13 " */
- 11, 9, 10, 18,
- 8,
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
+ CANON_CAP_STD0,0,
+ 2,0,
+ NULL,
&canon_BJC_240_modelist,
&canon_default_paperlist,
+ &canon_BJC_240_modeuselist,
NULL,
NULL,
NULL,
@@ -520,13 +771,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 1000 *//* heads: BC-02 BC-05 BC-06 */
"1000", 1,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
+ 842, INCH(17),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_a,0,NULL,
+ CANON_CAP_STD0 | CANON_CAP_a,0,
+ 2,0,
+ NULL,
&canon_BJC_240_modelist,
&canon_default_paperlist,
+ &canon_BJC_240_modeuselist,
NULL,
NULL,
NULL,
@@ -534,13 +787,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 2000 *//* heads: BC-20 BC-21 BC-22 BC-29 */
"2000", 1,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
+ 842, INCH(17),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_a,0,NULL,
+ CANON_CAP_STD0 | CANON_CAP_a,0,
+ 2,0,
+ NULL,
&canon_BJC_2000_modelist,
&canon_default_paperlist,
+ &canon_BJC_2000_modeuselist,
NULL,
NULL,
NULL,
@@ -548,13 +803,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 3000 *//* heads: BC-30 BC-33 BC-34 */
"3000", 3,
- 842, 17*72,
- 10, 10, 9, 15,
- 8,
- &canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_a | CANON_CAP_p,0,NULL, /*FIX? should have _r? */
+ 842, INCH(17),
+ 10, 10, 9, 15, /* unconfirmed but looks right */
+ &canon_MULTIPASS_MP150_slotlist, /* cartridge selection option */
+ CANON_CAP_STD0 | CANON_CAP_p | CANON_CAP_cart,0,
+ 2,0,
+ control_cmd_BJC_i6100,
&canon_BJC_3000_modelist,
&canon_default_paperlist,
+ &canon_BJC_3000_modeuselist,
NULL,
NULL,
NULL,
@@ -562,13 +819,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 6100 *//* heads: BC-30/BC-31 BC-32/BC-31 */
"6100", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
+ 842, INCH(17),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1 | CANON_CAP_a | CANON_CAP_r,0x61,NULL,
+ CANON_CAP_STD1 | CANON_CAP_a | CANON_CAP_r,0x61,
+ 2,0,
+ NULL,
&canon_BJC_3000_modelist,
&canon_default_paperlist,
+ &canon_BJC_3000_modeuselist,
NULL,
NULL,
NULL,
@@ -576,41 +835,48 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 7000 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */
"7000", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
+ 842, INCH(17),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1,0,NULL,
+ CANON_CAP_STD1,0,
+ 2,0,
+ NULL,
&canon_BJC_7000_modelist,
&canon_default_paperlist,
+ &canon_BJC_7000_modeuselist,
NULL,
NULL,
NULL,
NULL
},
- { /* Canon BJC i560 */
- "i560", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
+ { /* Canon BJC 7100 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */
+ "7100", 3,
+ 842, INCH(17),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1,0,NULL,
- &canon_BJC_i560_modelist,
+ CANON_CAP_STD0,0,
+ 2,0,
+ NULL,
+ &canon_BJC_7100_modelist,
&canon_default_paperlist,
+ &canon_BJC_7100_modeuselist,
NULL,
NULL,
NULL,
NULL
},
- { /* Canon BJC 7100 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */
- "7100", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
- &canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
- &canon_BJC_7100_modelist,
- &canon_default_paperlist,
+ { /* Canon BJC i50 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */
+ /* 50i sold outside of Japan as the i70, but we need i in front for the name */
+ "i50", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15,/* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_px|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i50_modelist,
+ &canon_BJC_i50_paperlist,
+ &canon_BJC_i50_modeuselist,
NULL,
NULL,
NULL,
@@ -618,13 +884,332 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC i80 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */
"i80", 3,
- 842, 17*72,
- 11, 9, 10, 18,
- 8,
- &canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700,
&canon_BJC_i80_modelist,
- &canon_default_paperlist,
+ &canon_BJC_i80_paperlist,
+ &canon_BJC_i80_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+#if 0
+ { /* Canon BJC i250 */ /* does not conform to any current model, commands not known yet */
+ "i250", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i250_modelist,
+ &canon_BJC_i250_paperlist,
+ &canon_BJC_i250_modeuselist,/*not yet created*/
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC i320 */ /* does not conform to any current model, commands not known yet */
+ "i320", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i320_modelist,
+ &canon_BJC_i320_paperlist,
+ &canon_BJC_i320_modeuselist,/*not yet created*/
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+#endif
+ { /* Canon BJC i450 */
+ "i450", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i450_modelist,
+ &canon_BJC_i450_paperlist,
+ &canon_BJC_i450_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC i455*/
+ "i455", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i455_modelist,
+ &canon_BJC_i455_paperlist,
+ &canon_BJC_i455_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon BJC i550 */
+ "i550", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_BJC_i550,
+ &canon_BJC_i550_modelist,
+ &canon_BJC_i550_paperlist,
+ &canon_BJC_i550_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC i560 */
+ "i560", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP900_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_BJC_i550,
+ &canon_BJC_i560_modelist,
+ &canon_BJC_i560_paperlist,
+ &canon_BJC_i560_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon BJC i850 */
+ "i850", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP900_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_BJC_i550,
+ &canon_BJC_i850_modelist,
+ &canon_BJC_i850_paperlist,
+ &canon_BJC_i850_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC i860 */
+ "i860", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_BJC_i860_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_M|CANON_CAP_BORDERLESS,0,/* ESC (M 0x0 0x0 0x0 */
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_BJC_i550,
+ &canon_BJC_i860_modelist,
+ &canon_BJC_i560_paperlist,
+ &canon_BJC_i860_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon BJC i900D */
+ "i900", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP900_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_M|CANON_CAP_BORDERLESS,0,/* ESC (M 0x0 0x0 0x0 */
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i900_modelist,
+ &canon_BJC_i560_paperlist,
+ &canon_BJC_i900_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon BJC i950 */
+ "i950", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP900_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i950_modelist,
+ &canon_BJC_i950_paperlist,
+ &canon_BJC_i950_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC i960 */
+ "i960", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_BJC_i860_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_M|CANON_CAP_BORDERLESS,0,/* ESC (M 0x0 0x0 0x0 */
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i960_modelist,
+ &canon_BJC_i560_paperlist,
+ &canon_BJC_i960_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon BJC i990 */
+ "i990", 3,
+ INCH(17/2), INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_BJC_i860_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_M|CANON_CAP_BORDERLESS,0,/* ESC (M 0x0 0x0 0x0 */
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i990_modelist,
+ &canon_BJC_i560_paperlist,
+ &canon_BJC_i990_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon BJC i6100 */
+ "i6100", 3,
+ 933, INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_BJC_i6100, /* 32 times 0x0 before form feed not implemented */
+ &canon_BJC_i6100_modelist,
+ &canon_BJC_i6100_paperlist,
+ &canon_BJC_i6100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC i9100 */
+ "i9100", 3,
+ 933, INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i9100_modelist,
+ &canon_BJC_i9100_paperlist,
+ &canon_BJC_i9100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon BJC i9900 */
+ "i9900", 3,
+ 933, INCH(23), /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP900_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_M|CANON_CAP_BORDERLESS,0,/* ESC (M 0x0 0x0 0x0 */
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700,
+ &canon_BJC_i9900_modelist,
+ &canon_BJC_i9900_paperlist,
+ &canon_BJC_i9900_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+
+ /***************/
+ /* mini models */
+ /***************/
+
+ { /* mini220 */
+ "PIXMA mini220", 3,
+ INCH(4), INCH(8), /* US 4" x 8" */ /* from MacOSX driver */
+ 10, 10, 9, 15, /* for hagaki: 3.4mm L/R, 3mm top, 5mm bottom */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300,
+ &canon_PIXMA_mini220_modelist,
+ &canon_SELPHY_DS810_paperlist,
+ &canon_PIXMA_mini220_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* mini320 */
+ "PIXMA mini320", 3,
+ INCH(5), INCH(8), /* from MacOSX driver */
+ 10, 10, 9, 15, /* for hagaki: 3.4mm L/R, 3mm top, 5mm bottom */
+ &canon_MULTIPASS_MP250_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300,
+ &canon_PIXMA_mini320_modelist,
+ &canon_PIXMA_mini320_paperlist,
+ &canon_PIXMA_mini320_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+
+
+ /*************/
+ /* DS models */
+ /*************/
+
+ { /* Canon DS700 */
+ "SELPHY DS700", 3,
+ INCH(4), INCH(6), /* US 4" x 6" */ /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,2, /* ESC (l and (P command lengths */
+ NULL,
+ &canon_SELPHY_DS700_modelist,
+ &canon_SELPHY_DS700_paperlist,
+ &canon_SELPHY_DS700_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ { /* Canon DS810 */
+ "SELPHY DS810", 3,
+ INCH(4), INCH(8), /* US 4" x 8" */ /* from MacOSX driver */
+ 10, 10, 9, 15, /* confirmed */
+ &canon_MULTIPASS_MP150_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ NULL,
+ &canon_SELPHY_DS810_modelist,
+ &canon_SELPHY_DS810_paperlist,
+ &canon_SELPHY_DS810_modeuselist,
NULL,
NULL,
NULL,
@@ -640,13 +1225,15 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 5100 *//* heads: BC-20 BC-21 BC-22 BC-23 BC-29 */
"5100", 1,
- 17*72, 22*72,
- 11, 9, 10, 18,
- 8,
+ INCH(17), INCH(22),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
+ CANON_CAP_STD0,0,
+ 2,0,
+ NULL,
&canon_BJC_3000_modelist,
&canon_default_paperlist,
+ &canon_BJC_3000_modeuselist,
NULL,
NULL,
NULL,
@@ -654,13 +1241,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 5500 *//* heads: BC-20 BC-21 BC-29 */
"5500", 1,
- 22*72, 34*72,
- 11, 9, 10, 18,
- 8,
+ INCH(22), INCH(34),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_a,0,NULL,
+ CANON_CAP_STD0 | CANON_CAP_a,0,
+ 2,0,
+ NULL,
&canon_BJC_5500_modelist,
&canon_default_paperlist,
+ &canon_BJC_5500_modeuselist,
NULL,
NULL,
NULL,
@@ -668,13 +1257,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 6500 *//* heads: BC-30/BC-31 BC-32/BC-31 */
"6500", 3,
- 17*72, 22*72,
- 11, 9, 10, 18,
- 8,
+ INCH(17), INCH(22),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD1 | CANON_CAP_a,0,NULL,
+ CANON_CAP_STD1 | CANON_CAP_a,0,
+ 2,0,
+ NULL,
&canon_BJC_3000_modelist,
&canon_default_paperlist,
+ &canon_BJC_3000_modeuselist,
NULL,
NULL,
NULL,
@@ -682,27 +1273,64 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 8500 *//* heads: BC-80/BC-81 BC-82/BC-81 */
"8500", 3,
- 17*72, 22*72,
- 11, 9, 10, 18,
- 8,
+ INCH(17), INCH(22),
+ 11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0,0,NULL,
+ CANON_CAP_STD0,0,
+ 2,0,
+ NULL,
&canon_BJC_8500_modelist,
&canon_default_paperlist,
+ &canon_BJC_8500_modeuselist,
NULL,
NULL,
NULL,
NULL
},
+ { /* Canon PIXMA iP90, iP90v */
+ "PIXMA iP90", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 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,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_PIXMA_iP90_modelist,
+ &canon_PIXMA_iP90_paperlist,
+ &canon_PIXMA_iP90_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP100 */
+ "PIXMA iP100", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 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,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_PIXMA_iP100_modelist,
+ &canon_PIXMA_iP100_paperlist,
+ &canon_PIXMA_iP100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+#if 0
{ /* Canon PIXMA iP1000 */
"PIXMA iP1000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* auto sheet feeder only */
+ CANON_CAP_STD0,0,
+ 2,0,
+ control_cmd_PIXMA_iP4000, /*features */
&canon_PIXMA_iP1000_modelist,
&canon_PIXMA_iP1000_paperlist,
+ &canon_PIXMA_iP1000_modeuselist,/*not created yet*/
NULL,
NULL,
NULL,
@@ -710,13 +1338,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP1200 --- iP1300 same */
"PIXMA iP1200", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* auto sheet feeder only */
+ CANON_CAP_STD0,0,
+ 2,0,
+ control_cmd_PIXMA_iP4000, /*features */
&canon_PIXMA_iP1200_modelist,
&canon_PIXMA_iP1200_paperlist,
+ &canon_PIXMA_iP1200_modeuselist,/*not created yet*/
NULL,
NULL,
NULL,
@@ -724,13 +1354,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP1500 */
"PIXMA iP1500", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* auto sheet feeder only */
+ CANON_CAP_STD0,0,
+ 2,0,
+ control_cmd_PIXMA_iP4000, /*features */
&canon_PIXMA_iP1500_modelist,
&canon_PIXMA_iP1500_paperlist,
+ &canon_PIXMA_iP1500_modeuselist,/*not created yet*/
NULL,
NULL,
NULL,
@@ -738,13 +1370,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP1600 */
"PIXMA iP1600", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
- &canon_MULTIPASS_MP170_modelist,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* auto sheet feeder only */
+ CANON_CAP_STD0,0,
+ 2,0,
+ control_cmd_PIXMA_iP4000, /*features */
+ &canon_MULTIPASS_MP150_modelist,
&canon_PIXMA_iP1500_paperlist,
+ &canon_PIXMA_iP1600_modeuselist,/*not created yet*/
NULL,
NULL,
NULL,
@@ -752,39 +1386,46 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP1900 */
"PIXMA iP1900", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP250_slotlist, /* rear only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_P,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4000, /*features */
&canon_PIXMA_iP1900_modelist,
&canon_PIXMA_iP1900_paperlist,
+ &canon_PIXMA_iP1900_modeuselist,/*not created yet*/
NULL,
NULL,
NULL,
NULL
},
+#endif
{ /* Canon PIXMA iP2000 */
"PIXMA iP2000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x61,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP2000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_PIXMA_iP2000_modelist,
- &canon_PIXMA_iP4000_paperlist,
+ &canon_PIXMA_iP2000_paperlist,
+ &canon_PIXMA_iP2000_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
+#if 0
{ /* Canon PIXMA iP2200 */
"PIXMA iP2200", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* auto sheet feeder only */
+ CANON_CAP_STD0,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4000, /*features */
&canon_PIXMA_iP1900_modelist,
&canon_PIXMA_iP2200_paperlist,
NULL,
@@ -794,13 +1435,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP2500 */
"PIXMA iP2500", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* auto sheet feeder only */
+ CANON_CAP_STD0,0,
+ 2,0,
+ control_cmd_PIXMA_iP4000, /*features */
&canon_PIXMA_iP1900_modelist,
&canon_PIXMA_iP2200_paperlist,/* OHP experimental */
+ &canon_PIXMA_iP2500_modeuselist,/*not created yet*/
NULL,
NULL,
NULL,
@@ -808,27 +1451,32 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP2600 */
"PIXMA iP2600", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */
- CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* auto sheet feeder only */
+ CANON_CAP_STD0,0,
+ 2,0,
+ control_cmd_PIXMA_iP4000, /*features */
&canon_PIXMA_iP1900_modelist,
&canon_PIXMA_iP2600_paperlist,
+ &canon_PIXMA_iP2600_modeuselist,/*not created yet*/
NULL,
NULL,
NULL,
NULL
},
+#endif
{ /* Canon PIXMA iP2700 */
"PIXMA iP2700", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.30 (from MacOSX driver only INCH(23) ) */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP250_slotlist, /* rear only */
- CANON_CAP_STD0|CANON_CAP_P|CANON_CAP_I|CANON_CAP_px|CANON_CAP_T|CANON_CAP_XML,0,control_cmd_PIXMA_iP2700, /*features */
+ CANON_CAP_STD0|CANON_CAP_P|CANON_CAP_I|CANON_CAP_px|CANON_CAP_T|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_PIXMA_iP2700_modelist,
&canon_PIXMA_iP2700_paperlist,
+ &canon_PIXMA_iP2700_modeuselist,
NULL,
NULL,
NULL,
@@ -836,98 +1484,175 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP3000 */
"PIXMA iP3000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_PIXMA_iP3000_modelist,
- &canon_PIXMA_iP4000_paperlist,
+ &canon_PIXMA_iP3000_paperlist,
+ &canon_PIXMA_iP3000_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA iP3100 */
"PIXMA iP3100", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP3100_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_PIXMA_iP3100_modelist,
&canon_PIXMA_iP3100_paperlist,
+ &canon_PIXMA_iP3100_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* Canon PIXMA iP4000 */
- "PIXMA iP4000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px /*|CANON_CAP_I*/,0x64,control_cmd_PIXMA_iP4000, /*features */
- &canon_PIXMA_iP4000_modelist,
- &canon_PIXMA_iP4000_paperlist,
+ { /* Canon PIXMA iP3300 */
+ "PIXMA iP3300", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3500_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP520_modelist,
+ &canon_PIXMA_iP3300_paperlist,
+ &canon_PIXMA_iP3300_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* PIXMA MP740 (== iP4000 without duplex) */
- "PIXMA MP740", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px /*,|CANON_CAP_I*/,0x64,control_cmd_PIXMA_iP4000, /*features */
- &canon_PIXMA_iP4000_modelist,
- &canon_PIXMA_iP4000_paperlist,
+ { /* Canon PIXMA iP3500 - like MP520 */
+ "PIXMA iP3500", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3500_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP520_modelist,
+ &canon_MULTIPASS_MP520_paperlist,
+ &canon_MULTIPASS_MP520_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* Canon PIXMA iP5300, MP610 */
- "PIXMA iP5300", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ { /* Canon PIXMA iP3600 */
+ "PIXMA iP3600", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3600_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_r|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP540_modelist,
+ &canon_PIXMA_iP3600_paperlist,
+ &canon_PIXMA_iP3600_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP4000 */
+ "PIXMA iP4000", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features */
- &canon_PIXMA_iP5300_modelist,
- /*&canon_PIXMA_iP4000_paperlist,*/
- &canon_MULTIPASS_MP600_paperlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4000, /*features */
+ &canon_PIXMA_iP4000_modelist,
+ &canon_PIXMA_iP4000_paperlist,
+ &canon_PIXMA_iP4000_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* Canon PIXMA iP4600 */
- "PIXMA iP4600", 3, /*model, model_id*/
- 8.5*72, 26.625*72, /* max paper width and height */
+ { /* Canon PIXMA iP4100 */
+ "PIXMA iP4100", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
- 16,
- &canon_PIXMA_iP4600_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x61,control_cmd_MULTIPASS_MP150, /*features */
- &canon_PIXMA_iP5300_modelist,
- &canon_PIXMA_iP4600_paperlist,
+ &canon_PIXMA_iP4000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP4100_modelist,
+ &canon_PIXMA_iP4100_paperlist,
+ &canon_PIXMA_iP4100_modeuselist,
NULL,
NULL,
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA iP4200 */
+ "PIXMA iP4200", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP4200_modelist,
+ &canon_PIXMA_iP4200_paperlist,
+ &canon_PIXMA_iP4200_modeuselist,
+ iP4200_lum_adjustment,
+ iP4200_hue_adjustment,
+ iP4200_sat_adjustment,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP4300 */
+ "PIXMA iP4300", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP4300_modelist, /* slight differences to iP4200 */
+ &canon_PIXMA_iP4200_paperlist,
+ &canon_PIXMA_iP4300_modeuselist,
+ iP4200_lum_adjustment,
+ iP4200_hue_adjustment,
+ iP4200_sat_adjustment,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA iP4500 CD-R tray F */
"PIXMA iP4500", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4500_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_MULTIPASS_MP150, /* features */
- &canon_PIXMA_iP4500_modelist, /* changed from iP5300 */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /* features */
+ &canon_PIXMA_iP4500_modelist,
&canon_PIXMA_iP4500_paperlist,
+ &canon_PIXMA_iP4500_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP4600 */
+ "PIXMA iP4600", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4600_slotlist, /* iP4600 uses ESC (r 0x64 at reset followed by 0x65 later for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP4600_modelist,
+ &canon_PIXMA_iP4600_paperlist,
+ &canon_PIXMA_iP4600_modeuselist,
NULL,
NULL,
NULL,
@@ -935,97 +1660,175 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iP4700 CD-R tray G */
"PIXMA iP4700", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4600_slotlist, /* there is some ESC (r 0x65 command for CD tray also, not sure why */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.20 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4600_slotlist, /* iP4700 uses ESC (r 0x64 at reset followed by 0x65 later for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /* features */
&canon_PIXMA_iP4700_modelist,
&canon_PIXMA_iP4700_paperlist,
+ &canon_PIXMA_iP4700_modeuselist,
NULL,
NULL,
NULL,
iP4500_channel_order
},
- { /* Canon PIXMA iP4200 */
- "PIXMA iP4200", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4200, /*features */
- &canon_PIXMA_iP4200_modelist,
- &canon_PIXMA_iP4000_paperlist,
- iP4200_lum_adjustment,
- iP4200_hue_adjustment,
- iP4200_sat_adjustment,
- NULL
- },
{ /* Canon PIXMA iP4800 CD-R tray G */
"PIXMA iP4800", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_iP4600_slotlist, /* there is some ESC (r 0x68 command for CD tray also, not sure why */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4600_slotlist, /* iP4800 uses ESC (r 0x64 at reset followed by 0x68 later for CD media only */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /* features */
&canon_PIXMA_iP4700_modelist,/* same for iP4800 */
&canon_PIXMA_iP4700_paperlist,/* same for iP4800 */
+ &canon_PIXMA_iP4700_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP4900 CD-R tray G */
+ "PIXMA iP4900", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.60 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4600_slotlist, /* iP4900 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_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features Uses ESC (r only for CD media */
+ &canon_PIXMA_iP4900_modelist,
+ &canon_PIXMA_MG5200_paperlist,
+ &canon_PIXMA_iP4900_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP5000 */
+ "PIXMA iP5000", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP5000_modelist,
+ &canon_PIXMA_iP5000_paperlist,
+ &canon_PIXMA_iP5000_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP5300 */
+ "PIXMA iP5300", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP5300_modelist,
+ &canon_MULTIPASS_MP600_paperlist,
+ &canon_PIXMA_iP5300_modeuselist,
NULL,
NULL,
NULL,
iP4500_channel_order
},
- { /* Canon PIXMA iP6000 */
+ { /* Canon PIXMA iP6000D */
"PIXMA iP6000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_px|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_PIXMA_iP6000_modelist,
&canon_PIXMA_iP4000_paperlist,
+ &canon_PIXMA_iP6000_modeuselist,
NULL,
NULL,
NULL,
iP4500_channel_order
},
- { /* Canon PIXMA iP6100 */
+ { /* Canon PIXMA iP6100D */
"PIXMA iP6100", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_px|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_PIXMA_iP6000_modelist,
&canon_PIXMA_iP6100_paperlist,
+ &canon_PIXMA_iP6100_modeuselist,
NULL,
NULL,
NULL,
iP4500_channel_order
},
- { /* Canon PIXMA iP6600 */
+ { /* Canon PIXMA iP6210D */
+ "PIXMA iP6210", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* has ESC (T */
+ CANON_CAP_STD0|CANON_CAP_T|CANON_CAP_NOBLACK|CANON_CAP_P|CANON_CAP_I|CANON_CAP_px|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_PIXMA_iP6210_modelist,
+ &canon_PIXMA_iP90_paperlist,
+ &canon_PIXMA_iP6210_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP6600D */
"PIXMA iP6600", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */
- &canon_PIXMA_iP6700_modelist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_I|CANON_CAP_r|CANON_CAP_px|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP6600_modelist,
&canon_PIXMA_iP6600_paperlist,
+ &canon_PIXMA_iP6600_modeuselist,
NULL,
NULL,
NULL,
iP4500_channel_order
},
- { /* Canon PIXMA iP6700 */
+ { /* Canon PIXMA iP6700D */
"PIXMA iP6700", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_I|CANON_CAP_r|CANON_CAP_px|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_PIXMA_iP6700_modelist,
&canon_PIXMA_iP6700_paperlist,
+ &canon_PIXMA_iP6700_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 */
+ 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_BORDERLESS,0,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_PIXMA_iX4000_modelist,
+ &canon_PIXMA_iP1500_paperlist,
+ &canon_PIXMA_iX4000_modeuselist,
NULL,
NULL,
NULL,
@@ -1033,182 +1836,337 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA iX5000 */
"PIXMA iX5000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist,
- /* CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x61,control_cmd_PIXMA_iP4000, */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP4000, /*features */
+ 933, INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 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_BORDERLESS,0,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_PIXMA_iX5000_modelist,
&canon_PIXMA_iP1500_paperlist,
+ &canon_PIXMA_iX5000_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA iX6500 --- with XML */
"PIXMA iX6500", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ 933, 1917, /* max paper width and height */ /* from linux v3.50 driver */
+ 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_XML,0,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP540_modelist,
&canon_MULTIPASS_MX880_paperlist,
+ &canon_PIXMA_iX6500_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA iX7000 --- with XML */
"PIXMA iX7000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ 933, INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iX7000_slotlist,
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_PIXMA_iP4200, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_DUPLEX|CANON_CAP_I|CANON_CAP_r|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_PIXMA_iX7000_modelist,
&canon_PIXMA_iX7000_paperlist,
+ &canon_PIXMA_iX7000_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA MP510 --- like MP520 but without PPGgold paper support */
"PIXMA MP510", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP520_slotlist,
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP2700, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP520_modelist,
&canon_MULTIPASS_MP520_paperlist, /* Windows driver lacks PPGgold, but let us try anyway */
+ &canon_MULTIPASS_MP520_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA MP520 */
"PIXMA MP520", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP520_slotlist,
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP2700, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP520_modelist,
&canon_MULTIPASS_MP520_paperlist,
+ &canon_MULTIPASS_MP520_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MP530 */
+ "PIXMA MP530", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP530_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_r|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_MULTIPASS_MP530_modelist,
+ &canon_MULTIPASS_MP600_paperlist,
+ &canon_MULTIPASS_MP530_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon PIXMA MP540 */
"PIXMA MP540", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_MG5100_slotlist,
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r,0x64,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_r|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP540_modelist,
&canon_MULTIPASS_MX330_paperlist,
+ &canon_MULTIPASS_MP540_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* Canon PIXMA MP550 ---wth XML */
+ { /* Canon PIXMA MP550 ---with XML */
"PIXMA MP550", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.20 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_MG5100_slotlist,
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /*features */
- &canon_MULTIPASS_MP540_modelist, /* seems to have same modes */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP550_modelist, /* similar to MP540 but fewer modes */
&canon_MULTIPASS_MP250_paperlist,
+ &canon_MULTIPASS_MP550_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MP560 ---with XML */
+ "PIXMA MP560", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.20 */
+ 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_I|CANON_CAP_r|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP560_modelist, /* like MP550 but has duplex */
+ &canon_MULTIPASS_MP250_paperlist,
+ &canon_MULTIPASS_MP560_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon PIXMA MP600 */
"PIXMA MP600", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MX850_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features */
- &canon_MULTIPASS_MP520_modelist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_P|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_MULTIPASS_MP600_modelist,
&canon_MULTIPASS_MP600_paperlist,
+ &canon_MULTIPASS_MP600_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MP610 */
+ "PIXMA MP610", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4500_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_MULTIPASS_MP610_modelist,
+ &canon_MULTIPASS_MP610_paperlist,
+ &canon_MULTIPASS_MP610_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MP620 */
+ "PIXMA MP620", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_r|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP540_modelist,
+ &canon_MULTIPASS_MX330_paperlist,
+ &canon_MULTIPASS_MP620_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon PIXMA MP630 */
"PIXMA MP630", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_MG5200_slotlist,
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r,0x64,control_cmd_PIXMA_iP4200, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP640_modelist,
&canon_MULTIPASS_MP630_paperlist,
+ &canon_MULTIPASS_MP630_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA MP640 */
"PIXMA MP640", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.20 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_MG5200_slotlist,
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_r,0x64,control_cmd_PIXMA_iP4200, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_DUPLEX|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_r|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_MULTIPASS_MP640_modelist,
&canon_MULTIPASS_MP640_paperlist,
+ &canon_MULTIPASS_MP640_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MP700/MP730 --- split from iP3000 driver, with modifications */
+ /* US model: control_cmd_iP2700 */
+ /* Japanese model: control_BJC_i550, so chose this as base (more commands) */
+ "PIXMA MP700", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from user manual */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP900_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,0,
+ control_cmd_BJC_i550, /*features */
+ &canon_MULTIPASS_MP700_modelist,
+ &canon_MULTIPASS_MP700_paperlist,
+ &canon_MULTIPASS_MP700_modeuselist,
NULL,
NULL,
NULL,
NULL
},
+ { /* PIXMA MP710/MP740 --- heavily modified from MP700/MP730 */
+ "PIXMA MP710", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from user manual */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP710_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP710_modelist,
+ &canon_MULTIPASS_MP710_paperlist,
+ &canon_MULTIPASS_MP710_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* PIXMA MP750/MP760/MP770/MP780/MP790 */
+ "PIXMA MP750", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP3100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_PIXMA_iP4100_modelist,
+ &canon_MULTIPASS_MP750_paperlist,
+ &canon_MULTIPASS_MP750_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MP900 */
+ "PIXMA MP900", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP900_slotlist, /* auto sheetfeeder amd CD tray only */
+ CANON_CAP_STD0|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP900_modelist,
+ &canon_PIXMA_iP3100_paperlist,
+ &canon_MULTIPASS_MP900_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA Pro9000 */
"PIXMA Pro9000", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(14), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_Pro9000_slotlist,
- CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_PIXMA_Pro9000_modelist,
&canon_PIXMA_Pro9000_paperlist,
+ &canon_PIXMA_Pro9000_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA Pro9000 Mk.II */
"PIXMA Pro9002", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(14), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_Pro9000_slotlist,
- CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_PIXMA_Pro9000mk2_modelist,
&canon_PIXMA_Pro9000mk2_paperlist,
+ &canon_PIXMA_Pro9000mk2_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon PIXMA Pro9500 */
"PIXMA Pro9500", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(14), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_Pro9000_slotlist,
- CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_PIXMA_Pro9500_modelist,
&canon_PIXMA_Pro9500_paperlist,
+ &canon_PIXMA_Pro9500_modeuselist,
NULL,
NULL,
NULL,
@@ -1216,171 +2174,383 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA Pro9500 Mk.II */
"PIXMA Pro9502", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(14), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_Pro9000_slotlist,
- CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_PIXMA_Pro9500mk2_modelist,
&canon_PIXMA_Pro9500mk2_paperlist,
+ &canon_PIXMA_Pro9500mk2_modeuselist,
NULL,
NULL,
NULL,
NULL
},
+ { /* Canon PIXMA iP7100 */
+ "PIXMA iP7100", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_I|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP7100_modelist,
+ &canon_PIXMA_iP7100_paperlist,
+ &canon_PIXMA_iP7100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP7500 */
+ "PIXMA iP7500", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_I|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP7500_modelist,
+ &canon_PIXMA_iP7500_paperlist,
+ &canon_PIXMA_iP7500_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP8100 */
+ "PIXMA iP8100", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_I|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP8100_modelist,
+ &canon_PIXMA_iP7100_paperlist,
+ &canon_PIXMA_iP8100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA iP8500 */
"PIXMA iP8500", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_iP4000_slotlist,
- /*CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x61,control_cmd_PIXMA_iP4000,*/ /*features */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
&canon_PIXMA_iP8500_modelist,
- &canon_PIXMA_iP4000_paperlist,
+ &canon_PIXMA_iP8500_paperlist,
+ &canon_PIXMA_iP8500_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP8600 */
+ "PIXMA iP8600", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_iP4000_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_I|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_P|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features */
+ &canon_PIXMA_iP8600_modelist,
+ &canon_PIXMA_iP7100_paperlist,
+ &canon_PIXMA_iP8600_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA iP9910 */
+ "PIXMA iP9910", 3, /*model, model_id*/
+ 933, INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP900_slotlist,
+ CANON_CAP_STD0|CANON_CAP_I|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_PIXMA_iP9910_modelist,
+ &canon_PIXMA_iP9910_paperlist,
+ &canon_PIXMA_iP9910_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon MULTIPASS MP150 */
"PIXMA MP150", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- /* &canon_PIXMA_iP4000_slotlist, */
- &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
- /* CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_T|CANON_CAP_I,0x61,control_cmd_MULTIPASS_MP150, */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP150_modelist,
- /* &canon_PIXMA_iP4000_paperlist, */
&canon_MULTIPASS_MP150_paperlist,
+ &canon_MULTIPASS_MP150_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* Canon MULTIPASS MP170 */
- "PIXMA MP170", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */
- &canon_MULTIPASS_MP170_modelist,
- &canon_MULTIPASS_MP170_paperlist,
+ { /* Canon MULTIPASS MP190 */
+ "PIXMA MP190", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP190_modelist,
+ &canon_MULTIPASS_MP190_paperlist,
+ &canon_MULTIPASS_MP190_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon MULTIPASS MP210 */
+ "PIXMA MP210", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP250_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP210_modelist,
+ &canon_MULTIPASS_MP150_paperlist,
+ &canon_MULTIPASS_MP210_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon MULTIPASS MP360/370/375R/390 */
+ "PIXMA MP360", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from user manual */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,2, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP360_modelist,
+ &canon_MULTIPASS_MP360_paperlist,
+ &canon_MULTIPASS_MP360_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon MULTIPASS MP450 */
"PIXMA MP450", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */
- &canon_MULTIPASS_MP170_modelist,
- &canon_MULTIPASS_MP170_paperlist,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP150_modelist,
+ &canon_MULTIPASS_MP150_paperlist,
+ &canon_MULTIPASS_MP150_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon MULTIPASS MP470 --- no XML */
+ "PIXMA MP470", 3, /*model, model_id*/
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP470_modelist,
+ &canon_MULTIPASS_MP470_paperlist,
+ &canon_MULTIPASS_MP470_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon MULTIPASS MP480 --- no XML */
"PIXMA MP480", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP480_modelist,
&canon_MULTIPASS_MP480_paperlist,
+ &canon_MULTIPASS_MP480_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon MULTIPASS MP490 --- with XML */
+ "PIXMA MP490", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.20 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP490_modelist,
+ &canon_MULTIPASS_MP493_paperlist,
+ &canon_MULTIPASS_MP490_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
- { /* Canon MULTIPASS MP493: new model after MP480(?) --- with XML */
+ { /* Canon MULTIPASS MP493 --- with XML */
"PIXMA MP493", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP480_modelist,
&canon_MULTIPASS_MP493_paperlist,
+ &canon_MULTIPASS_MP493_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
{ /* Canon MULTIPASS MP495 identical to MP280 it seems --- with XML */
"PIXMA MP495", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP250_slotlist, /* only rear 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_XML,0,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP280_modelist,
&canon_MULTIPASS_MP280_paperlist,
+ &canon_MULTIPASS_MP280_modeuselist,
NULL,
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 */
+ 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_BORDERLESS,0,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MP240_modelist,
+ &canon_MULTIPASS_MP240_paperlist,
+ &canon_MULTIPASS_MP240_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
- { /* Canon MULTIPASS MP250 */
+ { /* Canon MULTIPASS MP250 --- with XML */
"PIXMA MP250", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.20 & v3.40 */
+ 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_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML,0x61,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_T|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP250_modelist,
&canon_MULTIPASS_MP250_paperlist,
+ &canon_MULTIPASS_MP250_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* Canon MULTIPASS MP270 */
+ { /* Canon MULTIPASS MP270 --- with XML */
"PIXMA MP270", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.20 */
+ 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_XML,0,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_T|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP250_modelist,
&canon_MULTIPASS_MP250_paperlist,
+ &canon_MULTIPASS_MP250_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
},
- { /* Canon MULTIPASS MP280 */
+ { /* Canon MULTIPASS MP280 --- with XML */
"PIXMA MP280", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP250_slotlist, /* these models only have a rear tray. */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_T|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features Also uses CAP_T. MP280 no duplex, no 0x61 */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
+ 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,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MP280_modelist,
&canon_MULTIPASS_MP280_paperlist,
+ &canon_MULTIPASS_MP280_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG2100 */
+ "PIXMA MG2100", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.60 */
+ 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,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features Also uses CAP_T */
+ &canon_PIXMA_MG2100_modelist,
+ &canon_PIXMA_MG5100_paperlist,
+ &canon_PIXMA_MG2100_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 */
+ 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,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features Also uses CAP_T */
+ &canon_PIXMA_MG3100_modelist,
+ &canon_PIXMA_MG5100_paperlist,
+ &canon_PIXMA_MG3100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon PIXMA MG5100 */
"PIXMA MG5100", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
+ 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_I|CANON_CAP_P|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /* features */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /* features */
&canon_PIXMA_MG5100_modelist,
&canon_PIXMA_MG5100_paperlist,
+ &canon_PIXMA_MG5100_modeuselist,
NULL,
NULL,
NULL,
@@ -1388,13 +2558,31 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA MG5200 --- like MG5100, plus CD tray */
"PIXMA MG5200", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_MG5200_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */
- &canon_PIXMA_MG5200_modelist,/* there is some ESC (r 0x68 command for CD tray also, not sure why */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5200_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /* features */
+ &canon_PIXMA_MG5200_modelist,
+ &canon_PIXMA_MG5200_paperlist,
+ &canon_PIXMA_MG5200_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG5300 --- like MG5200 */
+ "PIXMA MG5300", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.60 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5200_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features */
+ &canon_PIXMA_MG5300_modelist,
&canon_PIXMA_MG5200_paperlist,
+ &canon_PIXMA_MG5300_modeuselist,
NULL,
NULL,
NULL,
@@ -1402,13 +2590,31 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA MG6100 */
"PIXMA MG6100", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_MG5200_slotlist, /* same as MG5200 */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */
- &canon_PIXMA_MG6100_modelist,/* there is some ESC (r 0x68 command for CD tray also, not sure why */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5200_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /* features */
+ &canon_PIXMA_MG6100_modelist,
&canon_PIXMA_MG6100_paperlist,
+ &canon_PIXMA_MG6100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG6200 */
+ "PIXMA MG6200", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.60 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5200_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features */
+ &canon_PIXMA_MG6200_modelist,
+ &canon_PIXMA_MG6100_paperlist,
+ &canon_PIXMA_MG6200_modeuselist,
NULL,
NULL,
NULL,
@@ -1416,13 +2622,31 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon PIXMA MG8100 */
"PIXMA MG8100", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_PIXMA_MG5200_slotlist, /* same as MG5200 */
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */
- &canon_PIXMA_MG8100_modelist,/* there is some ESC (r 0x68 command for CD tray also, not sure why */
- &canon_PIXMA_MG6100_paperlist, /* same as MG6100 */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5200_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /* features */
+ &canon_PIXMA_MG8100_modelist,
+ &canon_PIXMA_MG6100_paperlist,
+ &canon_PIXMA_MG8100_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon PIXMA MG8200 */
+ "PIXMA MG8200", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.60 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5200_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /* features */
+ &canon_PIXMA_MG8200_modelist,
+ &canon_PIXMA_MG6100_paperlist,
+ &canon_PIXMA_MG8200_modeuselist,
NULL,
NULL,
NULL,
@@ -1431,13 +2655,15 @@ static const canon_cap_t canon_model_capabilities[] =
/* MX series */
{ /* Canon MULTIPASS MX300 --- MX310 is the same */
"PIXMA MX300", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 2,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MX300_modelist,
&canon_MULTIPASS_MX300_paperlist,
+ &canon_MULTIPASS_MX300_modeuselist,
NULL,
NULL,
NULL,
@@ -1445,27 +2671,31 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX330 */
"PIXMA MX330", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MX330_modelist,
&canon_MULTIPASS_MX330_paperlist,
+ &canon_MULTIPASS_MX330_modeuselist,
NULL,
NULL,
NULL,
iP4500_channel_order
},
- { /* Canon MULTIPASS MX340 */
+ { /* Canon MULTIPASS MX340 --- with XML*/
"PIXMA MX340", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
- &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.30 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MX340_modelist,
&canon_MULTIPASS_MX340_paperlist,
+ &canon_MULTIPASS_MX340_modeuselist,
NULL,
NULL,
NULL,
@@ -1473,13 +2703,31 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX360 -- with XML */
"PIXMA MX360", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.50 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
&canon_MULTIPASS_MX360_modelist,
&canon_MULTIPASS_MX360_paperlist,
+ &canon_MULTIPASS_MX360_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon MULTIPASS MX370 --- with XML */
+ "PIXMA MX370", 3, /*model, model_id*/
+ 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_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_XML|CANON_CAP_BORDERLESS,0,
+ 3,8, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300,
+ &canon_MULTIPASS_MX370_modelist,
+ &canon_MULTIPASS_MX420_paperlist,
+ &canon_MULTIPASS_MX370_modeuselist,
NULL,
NULL,
NULL,
@@ -1487,27 +2735,63 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX420 --- with XML */
"PIXMA MX420", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.50 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */
- &canon_MULTIPASS_MP480_modelist,
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features */
+ &canon_MULTIPASS_MX420_modelist,
&canon_MULTIPASS_MX420_paperlist,
+ &canon_MULTIPASS_MX420_modeuselist,
NULL,
NULL,
NULL,
- NULL
+ iP4500_channel_order
+ },
+ { /* Canon MULTIPASS MX510 --- with XML */
+ "PIXMA MX510", 3, /*model, model_id*/
+ 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_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_XML|CANON_CAP_BORDERLESS,0,
+ 3,8, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300,
+ &canon_MULTIPASS_MX510_modelist,
+ &canon_MULTIPASS_MX420_paperlist,
+ &canon_MULTIPASS_MX510_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
},
{ /* Canon MULTIPASS MX700 */
"PIXMA MX700", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MP520_slotlist, /* front, rear, button, and front/plain-only */
- CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0,control_cmd_PIXMA_iP4000, /*features*/
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features*/
&canon_MULTIPASS_MP520_modelist,
&canon_MULTIPASS_MX300_paperlist,
+ &canon_MULTIPASS_MX700_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* 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 */
+ 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,
+ 3,8, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /*features*/
+ &canon_MULTIPASS_MX710_modelist,
+ &canon_MULTIPASS_MX420_paperlist,
+ &canon_MULTIPASS_MX710_modeuselist,
NULL,
NULL,
NULL,
@@ -1515,13 +2799,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX850 */
"PIXMA MX850", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MX850_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features*/
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features*/
&canon_PIXMA_iP4500_modelist, /* same inksets as iP4500 */
&canon_MULTIPASS_MX850_paperlist,
+ &canon_MULTIPASS_MX850_modeuselist,
NULL,
NULL,
NULL,
@@ -1529,13 +2815,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX860 */
"PIXMA MX860", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_MG5100_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features*/
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features*/
&canon_MULTIPASS_MX860_modelist,
&canon_MULTIPASS_MX330_paperlist,
+ &canon_MULTIPASS_MX860_modeuselist,
NULL,
NULL,
NULL,
@@ -1543,13 +2831,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX870 --- with XML */
"PIXMA MX870", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.30 */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_PIXMA_MG5100_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /*features*/
- &canon_MULTIPASS_MX870_modelist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0x64,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features*/
+ &canon_MULTIPASS_MX860_modelist,
&canon_MULTIPASS_MX340_paperlist,
+ &canon_MULTIPASS_MX870_modeuselist,
NULL,
NULL,
NULL,
@@ -1557,13 +2847,15 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX880 --- with XML */
"PIXMA MX880", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.50 */
+ 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,0,control_cmd_MULTIPASS_MP150, /*features*/
- &canon_MULTIPASS_MP540_modelist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP2700, /*features*/
+ &canon_MULTIPASS_MX880_modelist,
&canon_MULTIPASS_MX880_paperlist,
+ &canon_MULTIPASS_MX880_modeuselist,
NULL,
NULL,
NULL,
@@ -1571,13 +2863,47 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon MULTIPASS MX7600 */
"PIXMA MX7600", 3, /*model, model_id*/
- 842, 17*72, /* max paper width and height */
- 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */
- 8,
+ INCH(17/2), INCH(23), /* max paper width and height */ /* from MacOSX driver */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
&canon_MULTIPASS_MX7600_slotlist,
- CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features*/
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_BORDERLESS,0x64,
+ 3,4, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_iP4200, /*features*/
&canon_MULTIPASS_MX7600_modelist,
&canon_MULTIPASS_MX7600_paperlist,
+ &canon_MULTIPASS_MX7600_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
+ { /* Canon MULTIPASS E500 --- with XML */
+ "PIXMA E500", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.60 */
+ 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,6, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /*features*/
+ &canon_MULTIPASS_E500_modelist,
+ &canon_MULTIPASS_MX880_paperlist,
+ &canon_MULTIPASS_E500_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 */
+ 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,8, /* ESC (l and (P command lengths */
+ control_cmd_PIXMA_MG5300, /*features*/
+ &canon_MULTIPASS_E500_modelist,
+ &canon_MULTIPASS_MX880_paperlist,
+ &canon_MULTIPASS_E500_modeuselist,
NULL,
NULL,
NULL,
diff --git a/src/main/channel.c b/src/main/channel.c
index 4bea5e2..eb50825 100644
--- a/src/main/channel.c
+++ b/src/main/channel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: channel.c,v 1.34 2011/04/16 15:48:20 rlk Exp $"
+ * "$Id: channel.c,v 1.35 2011/12/30 00:36:10 rlk Exp $"
*
* Dither routine entrypoints
*
@@ -736,9 +736,10 @@ limit_ink(const stp_vars_t *v)
int i;
int retval = 0;
stpi_channel_group_t *cg = get_channel_group(v);
- unsigned short *ptr = cg->output_data;
+ unsigned short *ptr;
if (!cg || cg->ink_limit == 0 || cg->ink_limit >= cg->max_density)
return 0;
+ ptr = cg->output_data;
for (i = 0; i < cg->width; i++)
{
int total_ink = ink_sum(ptr, cg->total_channels);
@@ -1065,11 +1066,12 @@ static void
generate_gloss(const stp_vars_t *v, unsigned *zero_mask)
{
stpi_channel_group_t *cg = get_channel_group(v);
- unsigned short *output = cg->output_data;
+ unsigned short *output;
unsigned gloss_mask;
int i, j, k;
if (!cg || cg->gloss_channel == -1 || cg->gloss_limit <= 0)
return;
+ output = cg->output_data;
gloss_mask = ~(1 << cg->gloss_physical_channel);
for (i = 0; i < cg->width; i++)
{
diff --git a/src/main/escp2-driver.c b/src/main/escp2-driver.c
index a2fc23e..7819510 100644
--- a/src/main/escp2-driver.c
+++ b/src/main/escp2-driver.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escp2-driver.c,v 1.57 2010/12/19 02:51:37 rlk Exp $"
+ * "$Id: escp2-driver.c,v 1.58 2012/01/19 13:25:40 m0m Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -273,7 +273,7 @@ escp2_set_remote_sequence(stp_vars_t *v)
{
/* If there's ever duplex no tumble, we'll need to special
case it, too */
- if (pd->duplex == DUPLEX_TUMBLE && (pd->input_slot->duplex & DUPLEX_TUMBLE))
+ if (pd->duplex == DUPLEX_TUMBLE && pd->input_slot && (pd->input_slot->duplex & DUPLEX_TUMBLE))
stp_send_command(v, "DP", "bcc", 0, 2); /* Auto duplex */
else
stp_send_command(v, "DP", "bcc", 0, 2); /* Auto duplex */
diff --git a/src/main/gutenprint-internal.h b/src/main/gutenprint-internal.h
index 65fd10c..0fa17b4 100644
--- a/src/main/gutenprint-internal.h
+++ b/src/main/gutenprint-internal.h
@@ -1,5 +1,5 @@
/*
- * "$Id: gutenprint-internal.h,v 1.3 2010/08/04 00:33:56 rlk Exp $"
+ * "$Id: gutenprint-internal.h,v 1.5 2011/06/12 00:31:51 rlk Exp $"
*
* Print plug-in header file for the GIMP.
*
@@ -53,6 +53,7 @@ extern "C" {
extern void stpi_init_paper(void);
extern void stpi_init_dither(void);
extern void stpi_init_printer(void);
+extern void stpi_vars_print_error(const stp_vars_t *v, const char *prefix);
#define BUFFER_FLAG_FLIP_X 0x1
#define BUFFER_FLAG_FLIP_Y 0x2
extern stp_image_t* stpi_buffer_image(stp_image_t* image, unsigned int flags);
@@ -68,6 +69,7 @@ do \
stp_erprintf("\nERROR: ***Gutenprint %s assertion %s failed!" \
" file %s, line %d. %s\n", PACKAGE_VERSION, \
#x, __FILE__, __LINE__, "Please report this bug!"); \
+ if ((v)) stpi_vars_print_error((v), "ERROR"); \
stp_abort(); \
} \
} while (0)
@@ -81,5 +83,5 @@ do \
#endif /* GUTENPRINT_INTERNAL_INTERNAL_H */
/*
- * End of "$Id: gutenprint-internal.h,v 1.3 2010/08/04 00:33:56 rlk Exp $".
+ * End of "$Id: gutenprint-internal.h,v 1.5 2011/06/12 00:31:51 rlk Exp $".
*/
diff --git a/src/main/module.c b/src/main/module.c
index 83d9037..5d078a2 100644
--- a/src/main/module.c
+++ b/src/main/module.c
@@ -1,5 +1,5 @@
/*
- * "$Id: module.c,v 1.26 2006/09/28 15:40:05 m0m Exp $"
+ * "$Id: module.c,v 1.27 2012/01/19 13:25:40 m0m Exp $"
*
* Gutenprint module loader - load modules with libltdl/libdl.
*
@@ -96,7 +96,8 @@ module_list_freefunc(void *item /* module to remove */)
if (module && module->fini) /* Call the module exit function */
module->fini();
#if defined(USE_LTDL) || defined(USE_DLOPEN)
- DLCLOSE(module->handle); /* Close the module if it's not static */
+ if (module && module->handle)
+ DLCLOSE(module->handle); /* Close the module if it's not static */
#endif
}
diff --git a/src/main/mxml-file.c b/src/main/mxml-file.c
index 3209169..a5d4025 100644
--- a/src/main/mxml-file.c
+++ b/src/main/mxml-file.c
@@ -1,5 +1,5 @@
/*
- * "$Id: mxml-file.c,v 1.10 2008/07/20 01:12:15 easysw Exp $"
+ * "$Id: mxml-file.c,v 1.13 2012/01/19 13:26:48 m0m Exp $"
*
* File loading code for mini-XML, a small XML-like file parsing library.
*
@@ -39,7 +39,8 @@
#include <gutenprint/mxml.h>
#include "config.h"
-
+#define MXML_BUFSIZE (64)
+#define ENTITY_BUFSIZE (64)
/*
* Local functions...
@@ -390,13 +391,13 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
* Read elements and other nodes from the file...
*/
- if ((buffer = malloc(64)) == NULL)
+ if ((buffer = malloc(MXML_BUFSIZE)) == NULL)
{
fputs("Unable to allocate string buffer!\n", stderr);
return (NULL);
}
- bufsize = 64;
+ bufsize = MXML_BUFSIZE;
bufptr = buffer;
parent = top;
whitespace = 0;
@@ -492,7 +493,6 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
break;
else if (mxml_add_char(ch, &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
else if ((bufptr - buffer) == 3 && !strncmp(buffer, "!--", 3))
@@ -513,7 +513,6 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
break;
else if (mxml_add_char(ch, &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
}
@@ -554,7 +553,6 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
break;
else if (mxml_add_char(ch, &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
}
@@ -685,7 +683,7 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
* support &lt;, &amp;, &gt;, &nbsp;, &quot;, &#nnn;, and &#xXXXX;...
*/
- char entity[64], /* Entity string */
+ char entity[ENTITY_BUFSIZE], /* Entity string */
*entptr; /* Pointer into entity */
@@ -745,7 +743,6 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
if (mxml_add_char(ch, &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
}
@@ -759,12 +756,10 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
{
if (mxml_add_char(0xc0 | (ch >> 6), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
if (mxml_add_char(0x80 | (ch & 63), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
}
@@ -772,17 +767,14 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
{
if (mxml_add_char(0xe0 | (ch >> 12), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
if (mxml_add_char(0x80 | ((ch >> 6) & 63), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
if (mxml_add_char(0x80 | (ch & 63), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
}
@@ -790,22 +782,18 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
{
if (mxml_add_char(0xf0 | (ch >> 18), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
if (mxml_add_char(0x80 | ((ch >> 12) & 63), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
if (mxml_add_char(0x80 | ((ch >> 6) & 63), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
if (mxml_add_char(0x80 | (ch & 63), &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
}
@@ -819,7 +807,6 @@ mxml_load_data(stp_mxml_node_t *top, /* I - Top node */
if (mxml_add_char(ch, &bufptr, &buffer, &bufsize))
{
- free(buffer);
return (NULL);
}
}
@@ -868,22 +855,22 @@ mxml_parse_element(stp_mxml_node_t *node, /* I - Element node */
* Initialize the name and value buffers...
*/
- if ((name = malloc(64)) == NULL)
+ if ((name = malloc(MXML_BUFSIZE)) == NULL)
{
fputs("Unable to allocate memory for name!\n", stderr);
return (EOF);
}
- namesize = 64;
+ namesize = MXML_BUFSIZE;
- if ((value = malloc(64)) == NULL)
+ if ((value = malloc(MXML_BUFSIZE)) == NULL)
{
free(name);
fputs("Unable to allocate memory for value!\n", stderr);
return (EOF);
}
- valsize = 64;
+ valsize = MXML_BUFSIZE;
/*
* Loop until we hit a >, /, ?, or EOF...
@@ -938,7 +925,6 @@ mxml_parse_element(stp_mxml_node_t *node, /* I - Element node */
break;
else if (mxml_add_char(ch, &ptr, &name, &namesize))
{
- free(name);
free(value);
return (EOF);
}
@@ -955,6 +941,8 @@ mxml_parse_element(stp_mxml_node_t *node, /* I - Element node */
{
fprintf(stderr, "Missing value for attribute '%s' in element %s!\n",
name, node->value.element.name);
+ free(name);
+ free(value);
return (EOF);
}
@@ -973,7 +961,6 @@ mxml_parse_element(stp_mxml_node_t *node, /* I - Element node */
else if (mxml_add_char(ch, &ptr, &value, &valsize))
{
free(name);
- free(value);
return (EOF);
}
@@ -994,7 +981,6 @@ mxml_parse_element(stp_mxml_node_t *node, /* I - Element node */
else if (mxml_add_char(ch, &ptr, &value, &valsize))
{
free(name);
- free(value);
return (EOF);
}
@@ -1477,5 +1463,5 @@ mxml_write_ws(stp_mxml_node_t *node, /* I - Current node */
/*
- * End of "$Id: mxml-file.c,v 1.10 2008/07/20 01:12:15 easysw Exp $".
+ * End of "$Id: mxml-file.c,v 1.13 2012/01/19 13:26:48 m0m Exp $".
*/
diff --git a/src/main/print-canon.c b/src/main/print-canon.c
index c824474..6968ff0 100644
--- a/src/main/print-canon.c
+++ b/src/main/print-canon.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-canon.c,v 1.249 2011/05/01 07:40:55 gernot2270 Exp $"
+ * "$Id: print-canon.c,v 1.523 2012/05/25 17:52:30 gernot2270 Exp $"
*
* Print plug-in CANON BJL driver for the GIMP.
*
@@ -67,11 +67,8 @@
# 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
static int
pack_pixels(unsigned char* buf,int len)
@@ -105,26 +102,31 @@ pack_pixels(unsigned char* buf,int len)
}
/* model peculiarities */
-#define CANON_CAP_MSB_FIRST 0x02ul /* how to send data */
-#define CANON_CAP_a 0x04ul
-#define CANON_CAP_b 0x08ul
-#define CANON_CAP_q 0x10ul
-#define CANON_CAP_m 0x20ul
-#define CANON_CAP_d 0x40ul
-#define CANON_CAP_t 0x80ul
-#define CANON_CAP_c 0x100ul
-#define CANON_CAP_p 0x200ul
-#define CANON_CAP_l 0x400ul
-#define CANON_CAP_r 0x800ul
-#define CANON_CAP_g 0x1000ul
-#define CANON_CAP_px 0x2000ul
-#define CANON_CAP_rr 0x4000ul
-#define CANON_CAP_I 0x8000ul
-#define CANON_CAP_T 0x10000ul /* not sure of this yet! */
-#define CANON_CAP_P 0x20000ul
-#define CANON_CAP_DUPLEX 0x40000ul
-#define CANON_CAP_XML 0x80000ul /* not sure of this yet */
-#define CANON_CAP_CARTRIDGE 0x100000ul /* not sure of this yet */
+#define CANON_CAP_MSB_FIRST 0x02ul /* how to send data */
+#define CANON_CAP_a 0x04ul
+#define CANON_CAP_b 0x08ul
+#define CANON_CAP_q 0x10ul
+#define CANON_CAP_m 0x20ul
+#define CANON_CAP_d 0x40ul
+#define CANON_CAP_t 0x80ul
+#define CANON_CAP_c 0x100ul
+#define CANON_CAP_p 0x200ul
+#define CANON_CAP_l 0x400ul
+#define CANON_CAP_r 0x800ul
+#define CANON_CAP_g 0x1000ul
+#define CANON_CAP_px 0x2000ul
+#define CANON_CAP_rr 0x4000ul
+#define CANON_CAP_I 0x8000ul
+#define CANON_CAP_T 0x10000ul /* not sure of this yet! */
+#define CANON_CAP_P 0x20000ul
+#define CANON_CAP_DUPLEX 0x40000ul
+#define CANON_CAP_XML 0x80000ul /* not sure of this yet */
+#define CANON_CAP_CARTRIDGE 0x100000ul /* not sure of this yet */
+#define CANON_CAP_M 0x200000ul /* not sure of this yet */
+#define CANON_CAP_S 0x400000ul /* not sure of this yet */
+#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_STD0 (CANON_CAP_b|CANON_CAP_c|CANON_CAP_d|\
CANON_CAP_l|CANON_CAP_q|CANON_CAP_t)
@@ -135,9 +137,9 @@ pack_pixels(unsigned char* buf,int len)
#include "canon-inks.h"
#include "canon-modes.h"
#include "canon-media.h"
+#include "canon-media-mode.h"
#include "canon-printers.h"
-
typedef struct {
char name;
const canon_ink_t* props;
@@ -147,13 +149,15 @@ typedef struct {
unsigned int delay;
} canon_channel_t;
-
-
typedef struct
{
const canon_mode_t* mode;
const canon_slot_t* slot;
const canon_paper_t *pt;
+ /* cartridge selection for CANON_CAP_T and CANON_CAP_cart */
+ const char *ink_set;
+ const canon_modeuse_t* modeuse;
+ /* final inks used for output, after selection process completed */
unsigned int used_inks;
int num_channels;
int quality;
@@ -190,6 +194,19 @@ typedef struct
double cd_outer_radius;
} canon_privdata_t;
+const canon_modeuse_t* select_media_modes(stp_vars_t *v, const canon_paper_t* media_type,const canon_modeuselist_t* mlist);
+int compare_mode_valid(stp_vars_t *v,const canon_mode_t* mode,const canon_modeuse_t* muse, const canon_modeuselist_t* mlist);
+const canon_mode_t* suitable_mode_monochrome(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode);
+const canon_mode_t* find_first_matching_mode_monochrome(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode);
+const canon_mode_t* find_first_matching_mode(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode);
+const canon_mode_t* suitable_mode_color(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode);
+const canon_mode_t* find_first_matching_mode_color(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode);
+const canon_mode_t* suitable_mode_photo(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode);
+const canon_mode_t* find_first_matching_mode_photo(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode);
+const canon_mode_t* suitable_mode_general(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode);
+const char* find_ink_type(stp_vars_t *v,const canon_mode_t* mode,const char *printing_mode);
+const canon_mode_t* canon_check_current_mode(stp_vars_t *v);
+
static void canon_write_line(stp_vars_t *v);
static void canon_advance_paper(stp_vars_t *, int);
@@ -252,11 +269,16 @@ static const stp_parameter_t the_parameters[] =
STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE,
STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0
},
+ /*
+ * Don't check this parameter. We may offer different settings for
+ * different ink sets, but we need to be able to handle settings from PPD
+ * files that don't have constraints set up.
+ */
{
"InkType", N_("Ink Type"), "Color=Yes,Category=Advanced Printer Setup",
N_("Type of ink in the printer"),
STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE,
- STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0
+ STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0
},
{
"InkChannels", N_("Ink Channels"), "Color=Yes,Category=Advanced Printer Functionality",
@@ -264,10 +286,32 @@ static const stp_parameter_t the_parameters[] =
STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE,
STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0
},
+ /*
+ * Don't check this parameter. We may offer different settings for
+ * different ink sets, but we need to be able to handle settings from PPD
+ * files that don't have constraints set up.
+ */
{
"PrintingMode", N_("Printing Mode"), "Color=Yes,Category=Core Parameter",
N_("Printing Output Mode"),
STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE,
+ STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0
+ },
+ /*
+ * Don't check this parameter. We may offer different settings for
+ * different ink sets, but we need to be able to handle settings from PPD
+ * files that don't have constraints set up.
+ */
+ {
+ "InkSet", N_("Ink Set"), "Color=Yes,Category=Basic Printer Setup",
+ N_("Type of inkset in the printer"),
+ STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE,
+ STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0
+ },
+ {
+ "FullBleed", N_("Borderless"), "Color=No,Category=Basic Printer Setup",
+ N_("Print without borders"),
+ STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_FEATURE,
STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0
},
{
@@ -356,7 +400,6 @@ static const float_param_t float_parameters[] =
},
};
-
static const int float_parameter_count =
sizeof(float_parameters) / sizeof(const float_param_t);
@@ -374,23 +417,23 @@ static const stp_param_string_t duplex_types[] =
};
#define NUM_DUPLEX (sizeof (duplex_types) / sizeof (stp_param_string_t))
-
-
static const canon_paper_t *
get_media_type(const canon_cap_t* caps,const char *name)
{
int i;
if (name && caps->paperlist)
- for (i = 0; i < caps->paperlist->count; i++)
- {
- /* translate paper_t.name */
- if (!strcmp(name, caps->paperlist->papers[i].name))
- return &(caps->paperlist->papers[i]);
- }
- return &(caps->paperlist->papers[0]);
+ {
+ for (i = 0; i < caps->paperlist->count; i++)
+ {
+ /* translate paper_t.name */
+ if (!strcmp(name, caps->paperlist->papers[i].name))
+ return &(caps->paperlist->papers[i]);
+ }
+ return &(caps->paperlist->papers[0]);
+ }
+ return NULL;
}
-
static const char* canon_families[] = {
"", /* the old BJC printers */
"S",
@@ -402,6 +445,9 @@ static const char* canon_families[] = {
"PIXMA Pro",
"PIXMA MG",
"PIXMA MX",
+ "SELPHY DS",
+ "PIXMA mini",
+ "PIXMA E",
};
/* canon model ids look like the following
@@ -417,18 +463,17 @@ static char* canon_get_printername(const stp_vars_t* v)
char* name;
size_t len;
if(family >= sizeof(canon_families) / sizeof(canon_families[0])){
- stp_erprintf("canon_get_printername: no family %i using default BJC\n", family);
+ stp_eprintf(v,"canon_get_printername: no family %i using default BJC\n", family);
family = 0;
}
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);
return name;
}
-
-
-
static const canon_cap_t * canon_get_model_capabilities(const stp_vars_t*v)
{
int i;
@@ -440,7 +485,7 @@ static const canon_cap_t * canon_get_model_capabilities(const stp_vars_t*v)
return &(canon_model_capabilities[i]);
}
}
- stp_erprintf("canon: model %s not found in capabilities list=> using default\n",name);
+ stp_eprintf(v,"canon: model %s not found in capabilities list=> using default\n",name);
stp_free(name);
return &(canon_model_capabilities[0]);
}
@@ -458,28 +503,46 @@ canon_source_type(const char *name, const canon_cap_t * caps)
return &(caps->slotlist->slots[0]);
}
-
/* function returns the current set printmode (specified by resolution) */
/* if no mode is set the default mode will be returned */
static const canon_mode_t* canon_get_current_mode(const stp_vars_t *v){
+#if 0
const char* input_slot = stp_get_string_parameter(v, "InputSlot");
- const char *resolution = stp_get_string_parameter(v, "Resolution");
const char *quality = stp_get_string_parameter(v, "Quality");
+#endif
+ const char *resolution = stp_get_string_parameter(v, "Resolution");
const canon_cap_t * caps = canon_get_model_capabilities(v);
const canon_mode_t* mode = NULL;
+ const char *ink_type = stp_get_string_parameter(v, "InkType");/*debug*/
+ 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");
+
+ if (ink_set)
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: InkSet value (high priority): '%s'\n",ink_set);
+ else
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: InkSet value is NULL\n");
+
+ if (ink_type)
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: InkType value (low priority): '%s'\n",ink_type);
+ else
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: InkType value is NULL\n");
+
if(resolution){
- for(i=0;i<caps->modelist->count;i++){
+ for(i=0;i<caps->modelist->count;i++){
if(!strcmp(resolution,caps->modelist->modes[i].name)){
mode = &caps->modelist->modes[i];
break;
}
}
}
-
+#if 0
if(!mode)
mode = &caps->modelist->modes[caps->modelist->default_mode];
+#endif
#if 0
if(quality && strcmp(quality, "None") == 0)
@@ -502,36 +565,1929 @@ 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;
+}
+const canon_modeuse_t* select_media_modes(stp_vars_t *v, const canon_paper_t* media_type,const canon_modeuselist_t* mlist){
+ const canon_modeuse_t* muse = NULL;
+ int i;
+ for(i=0;i<mlist->count;i++){
+ 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;
+ }
+ }
+ return muse;
+}
+int compare_mode_valid(stp_vars_t *v,const canon_mode_t* mode,const canon_modeuse_t* muse, const canon_modeuselist_t* mlist){
+ 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;
+ break;
+ }
+ i++;
+ }
+ return modecheck;
+}
+const canon_mode_t* suitable_mode_monochrome(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ int i=0;
+ int j;
+ int modefound=0;
+
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered suitable_mode_monochrome\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 ( (muse->use_flags & INKSET_BLACK_MODEREPL) ) {
+ /* 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) ) {
+ /* duplex check -- rare for monochrome, cannot remember any such case */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ 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) ) {
+ /* duplex check -- rare for monochrome, cannot remember any such case */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ }
+ i++;
+ }
+ return mode;
+}
- return mode;
+const canon_mode_t* find_first_matching_mode_monochrome(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ /* only look at modes with MODE_FLAG_BLACK if INKSET_BLACK_MODEREPL is in force */
+ int i=0;
+ int modefound=0;
+ int j;
+
+ 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) ) {
+ /* duplex check -- rare for monochrome, cannot remember any such case */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ i++;
+ }
+ return mode;
+}
+
+const canon_mode_t* find_first_matching_mode(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ int i=0;
+ int modefound=0;
+ int j;
+
+ 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 */
+ 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);
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ i++;
+ }
+ return mode;
+}
+
+const canon_mode_t* suitable_mode_color(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ int i=0;
+ int j;
+ int modefound=0;
+
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered suitable_mode_color\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 ( (muse->use_flags & INKSET_COLOR_MODEREPL) ) {
+ /* 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) ) {
+ /* 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);
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ 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) ) {
+ /* 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);
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ }
+ i++;
+ }
+ return mode;
+}
+
+const canon_mode_t* find_first_matching_mode_color(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ /* only look at modes with MODE_FLAG_COLOR if INKSET_COLOR_MODEREPL is in force */
+ int i=0;
+ int modefound=0;
+ int j;
+
+ 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) ) {
+ /* 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);
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ i++;
+ }
+ return mode;
+}
+
+const canon_mode_t* suitable_mode_photo(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ int i=0;
+ int j;
+ int modefound=0;
+
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Entered suitable_mode_photo\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 ( (muse->use_flags & INKSET_PHOTO_MODEREPL) ) {
+ /* 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) ) {
+ /* duplex check */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ 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) ) {
+ /* duplex check */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ }
+ i++;
+ }
+ return mode;
+}
+
+const canon_mode_t* find_first_matching_mode_photo(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ /* only look at modes with MODE_FLAG_PHOTO if INKSET_PHOTO_MODEREPL is in force */
+ int i=0;
+ int modefound=0;
+ int j;
+
+ while ( (muse->mode_name_list[i]!=NULL) && (modefound != 1) ) {
+ /* pick first mode with MODE_FLAG_PHOTO */
+ 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_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) ) {
+ /* duplex check */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ i++;
+ }
+ return mode;
+}
+
+const canon_mode_t* suitable_mode_general(stp_vars_t *v,const canon_modeuse_t* muse,const canon_cap_t *caps,int quality,const char *duplex_mode) {
+ const canon_mode_t* mode=NULL;
+ int i=0;
+ int j;
+ 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) ) {
+ /* duplex check */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ i++;
+ }
+ return mode;
+}
+
+const char* find_ink_type(stp_vars_t *v,const canon_mode_t* mode,const char *printing_mode) {
+ int i,inkfound;
+ const char *ink_type = stp_get_string_parameter(v, "InkType");
+
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+ return ink_type;
+}
+
+/* function checks printmode (specified by resolution) */
+/* and substitutes a mode if needed. NULL is returned for now */
+const canon_mode_t* canon_check_current_mode(stp_vars_t *v){
+#if 0
+ const char* input_slot = stp_get_string_parameter(v, "InputSlot");
+ const char *quality = stp_get_string_parameter(v, "Quality");
+#endif
+ const char *resolution = stp_get_string_parameter(v, "Resolution");
+ const char *ink_set = stp_get_string_parameter(v, "InkSet");
+ const char *duplex_mode = stp_get_string_parameter(v, "Duplex");
+ const char *ink_type = stp_get_string_parameter(v, "InkType");
+ const char *printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ const canon_cap_t * caps = canon_get_model_capabilities(v);
+ const canon_mode_t* mode = NULL;
+ const canon_modeuselist_t* mlist = caps->modeuselist;
+ const canon_modeuse_t* muse = NULL;
+ const canon_paper_t* media_type = get_media_type(caps,stp_get_string_parameter(v, "MediaType"));
+ int i,j;
+ int modecheck, quality, modefound;
+#if 0
+ int inkfound;
+#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.
+ 2. InkSet (cartridge selection) --- optional as only some printers offer this.
+ 3. PrintingMode --- for printers which have K-only monochrome modes can choose BW.
+ 4. Duplex --- for printers that have special duplex modes need to skip non-duplex modes.
+ 5. InkType --- suggestion only, since modes are tied to ink types in most Canon printers.
+ 6. Quality --- suggestion, based on initially-selected mode.
+ 7. Mode --- once chosen, InkType is selected based on quality, inkset, printing mode.
+ */
+
+ /*
+ canon-mode-media:
+ INKSET_BLACK_SUPPORT: media type supports black-only cartridge
+ INKSET_COLOR_SUPPORT: media type supports color-only cartridge
+ INKSET_BLACK_MODEREPL: media type has special modes for black-only cartridge
+ INKSET_COLOR_MODEREPL: media type has special modes for black-only cartridge
+ INKSET_PHOTO_SUPPORT: media type supports special photo cartridge
+ DUPLEX_MODEREPL: media type has (a) special mode(s) for duplex
+ canon-modes.h:
+ MODE_FLAG_BLACK: mode can be used for supporting black-only cartridge
+ MODE_FLAG_COLOR: mode can be used for supporting color-only cartridge
+ MODE_FLAG_PHOTO: mode can be used for supporting photo cartridge
+ MODE_FLAG_NOPDUPLEX: mode cannot be used for duplex, must be skipped
+ */
+
+ 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];
+ break;
+ }
+ }
+ }
+ 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)
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: (Initial) InkSet value (high priority): '%s'\n",ink_set);
+ else
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: (Initial) InkSet value is NULL\n");
+
+ if (ink_type)
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: (Initial) InkType value (low priority): '%s'\n",ink_type);
+ else
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: (Initial) InkType value is NULL\n");
+
+ /* 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);
+
+ /* 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);
+
+ /* 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
+ */
+ mode=suitable_mode_monochrome(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ 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);
+ }
+ else { /* no special replacement modes for black inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Black): 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");
+ break;
+ }
+ }
+ }
+ }
+ else {
+ /* 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);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ 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);
+ }
+ else { /* no special replacement modes for black inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Black): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ } /* End of Black Inkset */
+ /*-------------------------------------------------------------------------------------------------*/
+ /* Color InkSet */
+ /* Added limitation: "Color" for BJC corresponds to "Both" on other types */
+ else if ( (ink_set && !strcmp(ink_set,"Color")) && (caps->features & CANON_CAP_T) ) {
+ stp_set_string_parameter(v, "PrintingMode","Color");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ if (!(mode->ink_types & CANON_INK_CMY)) {
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): inkset incorrect for Color cartridge---need new mode\n");
+ /* need a new mode
+ loop through modes in muse list searching for a matching inktype, comparing quality
+ */
+ mode=suitable_mode_color(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_COLOR_MODEREPL) ) {
+ mode=find_first_matching_mode_color(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode for color inkset (%s)\n",mode->name);
+ }
+ else { /* no special replacement modes for color inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode with no special replacement modes for color inkset (%s)\n",mode->name);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ else {
+ /* mode is fine */
+ /* matched expected RGB inkset, but need to check if Duplex matches, and if not, get a new mode with right inkset */
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): inkset OK but need to check other parameters\n");
+ mode=suitable_mode_color(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_COLOR_MODEREPL) ) {
+ mode=find_first_matching_mode_color(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode for color inkset (%s)\n",mode->name);
+ }
+ else { /* no special replacement modes for color inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode with no special replacement modes for color inkset (%s)\n",mode->name);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ } /* end of Color InkSet */
+ /*-------------------------------------------------------------------------------------------------*/
+ /* Photo cartridge selection: only use modes that support it */
+ else if (ink_set && !strcmp(ink_set,"Photo")) {
+ /* Photo cartridge printing does not seem to have any monochrome option */
+ stp_set_string_parameter(v, "PrintingMode","Color");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ /* need to match photo cartridge mode flag */
+ if (!(mode->flags & MODE_FLAG_PHOTO)) {
+ /* need a new mode
+ loop through modes in muse list searching for a matching inkset, comparing quality
+ */
+ mode=suitable_mode_photo(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_PHOTO_MODEREPL) ) {
+ mode=find_first_matching_mode_photo(v,muse,caps,duplex_mode);
+ }
+ else { /* no special replacement modes for photo inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ else {
+ /* mode is fine */
+ /* matched expected inkset, but need to check if Duplex matches, and if not, get a new mode with right inkset */
+ mode=suitable_mode_photo(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_PHOTO_MODEREPL) ) {
+ mode=find_first_matching_mode_photo(v,muse,caps,duplex_mode);
+ }
+ else { /* no special replacement modes for photo inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+
+#endif
+
+ }
+ } /* end of Photo Inkset */
+ /*-------------------------------------------------------------------------------------------------*/
+ /* no restrictions for InkSet "Both" (non-BJC) or "Color" (BJC) or if no InkSet set yet --- do not worry about InkSet at all */
+ else {
+ 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;
+ 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) ) {
+ if ( !(duplex_mode) || !(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];
+ modefound=1;
+ }
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ 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;
+ 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) ) {
+ if ( !(duplex_mode) || !(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];
+ modefound=1;
+ }
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ 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;
+ 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) ) {
+ if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ /* duplex check */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ 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;
+ 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) ) {
+ if ( !(duplex_mode) || !(muse->use_flags & DUPLEX_SUPPORT) || !(caps->modelist->modes[j].flags & MODE_FLAG_NODUPLEX) ) {
+ /* duplex check */
+ mode = &caps->modelist->modes[j];
+ modefound=1;
+ /* set PrintingMode to whatever the mode is capable of */
+ if (caps->modelist->modes[j].ink_types > CANON_INK_K) {
+ stp_set_string_parameter(v,"PrintingMode","Color");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode set to Color\n");
+ } else {
+ stp_set_string_parameter(v,"PrintingMode","BW");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode set to BW\n");
+ }
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ i++;
+ }
+ }
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+
+ /* 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 */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (strcmp(ink_type,canon_inktypes[i].name)) {
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (Mode 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ }/* added one here */
+ 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);
+ 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
+ */
+ mode=suitable_mode_monochrome(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_BLACK_MODEREPL) ) {
+ mode=find_first_matching_mode_monochrome(v,muse,caps,duplex_mode);
+ }
+ else { /* no special replacement modes for black inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Black): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ else {
+ /* 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);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_BLACK_MODEREPL) ) {
+ mode=find_first_matching_mode_monochrome(v,muse,caps,duplex_mode);
+ }
+ else { /* no special replacement modes for black inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Black): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ } /* End of Black Inkset */
+ /*-------------------------------------------------------------------------------------------------*/
+ /* InkSet Color */
+ else if ( (ink_set && !strcmp(ink_set,"Color")) && (caps->features & CANON_CAP_T) ) {
+ stp_set_string_parameter(v, "PrintingMode","Color");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ if (!(mode->ink_types & CANON_INK_CMY)) { /* Color InkSet */
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): inkset incorrect for Color cartridge---need new mode\n");
+ /* need a new mode
+ loop through modes in muse list searching for a matching inktype, comparing quality
+ */
+ mode=suitable_mode_color(v,muse,caps,quality,duplex_mode);
+
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_COLOR_MODEREPL) ) {
+ mode=find_first_matching_mode_monochrome(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode for color inkset (%s)\n",mode->name);
+ }
+ else { /* no special replacement modes for color inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode with no special replacement modes for color inkset (%s)\n",mode->name);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ else {
+ /* mode is fine */
+ /* matched expected RGB inkset, but need to check if Duplex matches, and if not, get a new mode with right inkset */
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): inkset OK but need to check other parameters\n");
+ mode=suitable_mode_color(v,muse,caps,quality,duplex_mode); /* something wrong here!!! */
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): returned mode for color inkset: %s\n",mode->name);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_COLOR_MODEREPL) ) {
+ mode=find_first_matching_mode_monochrome(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode for color inkset (%s)\n",mode->name);
+ }
+ else { /* no special replacement modes for color inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Color): Decided on first matching mode with no special replacement modes for color inkset (%s)\n",mode->name);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ } /* End of Color Inkset */
+ /*-------------------------------------------------------------------------------------------------*/
+ /* Photo cartridge selection: only use modes that support it */
+ else if (ink_set && !strcmp(ink_set,"Photo")) {
+ /* Photo cartridge printing does not seem to have any monochrome option */
+ stp_set_string_parameter(v, "PrintingMode","Color");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ /* need to match photo cartridge mode flag */
+ if (!(mode->flags & MODE_FLAG_PHOTO)) {
+ /* need a new mode
+ loop through modes in muse list searching for a matching inkset, comparing quality
+ */
+ mode=suitable_mode_photo(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_PHOTO_MODEREPL) ) {
+ mode=find_first_matching_mode_photo(v,muse,caps,duplex_mode);
+ }
+ else { /* no special replacement modes for photo inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ else {
+ /* mode is fine */
+ /* matched expected inkset, but need to check if Duplex matches, and if not, get a new mode with right inkset */
+ mode=suitable_mode_photo(v,muse,caps,quality,duplex_mode);
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ if (modefound == 0) { /* still did not find a mode: pick first one for that media */
+ if ( (muse->use_flags & INKSET_PHOTO_MODEREPL) ) {
+ mode=find_first_matching_mode_photo(v,muse,caps,duplex_mode);
+ }
+ else { /* no special replacement modes for photo inkset */
+ mode=find_first_matching_mode(v,muse,caps,duplex_mode);
+ }
+ }
+ if (!mode)
+ modefound=0;
+ else
+ modefound=1;
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+#if 0
+ /* set InkType for the mode found */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if (mode->ink_types & canon_inktypes[i].ink_type) {
+ if (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:Color): 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");
+ break;
+ }
+ }
+ }
+#endif
+
+ }
+ } /* end of Photo Inkset */
+ /*-------------------------------------------------------------------------------------------------*/
+ /* no restrictions for InkSet "Both" (non-BJC) or "Color" (BJC) or if no InkSet set yet */
+ else {
+ 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;
+ 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) ) {
+ if ( !(duplex_mode) || !(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)) {
+ mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) Color: Decided on mode (%s)\n",mode->name);
+ modefound=1;
+ }
+ }
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ 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;
+ 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) ) {
+ if ( !(duplex_mode) || !(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)) {
+ mode = &caps->modelist->modes[j];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) BW: Decided on mode (%s)\n",mode->name);
+ modefound=1;
+ }
+ }
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ 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;
+ 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) ) {
+ if ( !(duplex_mode) || !(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];
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode not set yet: Decided on first matching mode with quality match (%s)\n",mode->name);
+ modefound=1;
+ }
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ 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;
+ 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) ) {
+ 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 (InkSet:Both) No mode previously found---catch-all: Decided on first matching mode (%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){
+ stp_set_string_parameter(v,"PrintingMode","Color");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode set to Color\n");
+ } else {
+ stp_set_string_parameter(v,"PrintingMode","BW");
+ printing_mode = stp_get_string_parameter(v, "PrintingMode");
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint (InkSet:Both) PrintingMode set to BW\n");
+ }
+ }
+ }
+ break; /* go to next mode in muse list */
+ }
+ }
+ i++;
+ }
+ }
+
+ ink_type=find_ink_type(v,mode,printing_mode);
+#if 0
+ /* 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 */
+ /* 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_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);
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ break;
+ }
+ }
+ }
+ /* if no match found choose first available inkset */
+ if (inkfound==0) {
+ 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_set_string_parameter(v, "InkType", canon_inktypes[i].name);
+ ink_type = stp_get_string_parameter(v, "InkType");
+ inkfound=1; /* set */
+ break;
+ }
+ }
+ }
+ }
+ }
+#endif
+ }
+ }
+ }
+ /* end of mode replacement code */
+
+
+#if 0
+ if(quality && strcmp(quality, "None") == 0)
+ quality = "Standard";
+
+ if(quality && !strcmp(quality,"Standard")){
+ return &caps->modelist->modes[caps->modelist->default_mode];
+ }
+#endif
+
+#if 0
+ /* only some modes can print to cd */
+ if(input_slot && !strcmp(input_slot,"CD") && !(mode->flags & MODE_FLAG_CD)){
+ for(i=0;i<caps->modelist->count;i++){
+ if(caps->modelist->modes[i].flags & MODE_FLAG_CD){
+ mode = &caps->modelist->modes[i];
+ break;
+ }
+ }
+ }
+#endif
+
+
+ if (mode) {
+ stp_set_string_parameter(v, "Resolution",mode->text); /* check_current_mode checks resolution! */
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: check_current_mode --- updated Resolution: '%s'\n",mode->name);
+ }
+
+ 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 */
+ if (mode) { /* final mode takes precedence */
+ if (mode->ink_types == CANON_INK_K)
+ stp_set_string_parameter(v, "PrintingMode", "BW");
+ else
+ stp_set_string_parameter(v, "PrintingMode", "Color");
+ }
+ else if (ink_type) { /* mode not yet known, but InkType known. InkSet should have been handled together with InkType above */
+ if (!strcmp(ink_type,"Gray"))
+ stp_set_string_parameter(v, "PrintingMode", "BW");
+ else
+ stp_set_string_parameter(v, "PrintingMode", "Color");
+ }
+
+ if (printing_mode)
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final PrintingMode %s\n",printing_mode);
+ else /* should not happen */
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final PrintingMode is NULL\n");
+
+ if (ink_set)
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkSet value (high priority): '%s'\n",ink_set);
+ else
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkSet value is NULL\n");
+
+ if (ink_type)
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkType value (low priority): '%s'\n",ink_type);
+ else
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Final InkType value is NULL\n");
+
+ return mode;
}
/* function returns the best ink_type for the current mode */
static unsigned int
canon_printhead_colors(const stp_vars_t*v)
{
- int i;
+ int i,j;
const canon_mode_t* mode;
+ const canon_cap_t * caps = canon_get_model_capabilities(v);
const char *print_mode = stp_get_string_parameter(v, "PrintingMode");
const char *ink_type = stp_get_string_parameter(v, "InkType");
- if(print_mode && strcmp(print_mode, "BW") == 0)
+ 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");
+ mode = canon_get_current_mode(v);
+
+ /* get the printing mode again */
+ print_mode = stp_get_string_parameter(v, "PrintingMode");
+
+ /* if the printing mode was already selected as BW, accept it */
+ 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;
+ }
+
+ /* originaly finds selected InkType of form: CANON_INK_<inks> */
+ /* but this is incorrect, since it does not check media or mode */
+ /* change: deal with mode set and mode not set cases */
+
+ /* if mode was already set, then return the ink types for only that mode */
- if(ink_type){
+ if (mode) {
+ /* if an inktype selected check what it is */
+ if(ink_type){
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
- if(ink_type && !strcmp(canon_inktypes[i].name,ink_type))
- return canon_inktypes[i].ink_type;
- }
+ 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;
+ }
+ }
+ }
+ else {
+ /* find the matching inks for the mode: chooses the first one found for a mode! */
+ /* ink types are arranged in decreasing order so those with more meta inks are discovered first */
+ 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;
+ }
+ }
+ }
}
- mode = canon_get_current_mode(v);
- for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
- if(mode->ink_types & canon_inktypes[i].ink_type)
- return canon_inktypes[i].ink_type;
+ else { /* mode not yet set */
+ /* if an inktype selected check what it is */
+ if(ink_type){
+ 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");
+ /* 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;
+ }
+ }
+ }
+ }
+
+ }
+
+ /* originally as fallback choose CANON_INK_K */
+ /* 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 */
+ for(i=((sizeof(canon_inktypes)/sizeof(canon_inktypes[0]))-1);i>=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," 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;
+ }
+ }
}
+
+ /* if fails until here, return something reasonable in most situations */
return CANON_INK_K;
+
}
static unsigned char
@@ -553,22 +2509,42 @@ canon_size_type(const stp_vars_t *v, const canon_cap_t * caps)
if (!strcmp(name,"Legal")) return 0x0f;
if (!strcmp(name,"Tabloid")) return 0x11; /* 11x17 */
if (!strcmp(name,"w283h420")) return 0x14; /* Hagaki */
- if (!strcmp(name,"COM10")) return 0x16;
- if (!strcmp(name,"DL")) return 0x17;
- if (!strcmp(name,"LetterExtra")) return 0x2a;
- if (!strcmp(name,"A4Extra")) return 0x2b;
+ /* if (!strcmp(name,"COM10")) return 0x16;*/
+ /* if (!strcmp(name,"DL")) return 0x17;*/
+ if (!strcmp(name,"LetterExtra")) return 0x2a; /* Letter navi --- Letter+ */
+ if (!strcmp(name,"A4Extra")) return 0x2b; /* A4navi --- A4+ */
if (!strcmp(name,"A3plus")) return 0x2c; /* A3navi --- A3+ */
- if (!strcmp(name,"w288h144")) return 0x2d;
+ if (!strcmp(name,"w288h144")) return 0x2d; /* ??? */
+ if (!strcmp(name,"COM10")) return 0x2e; /* US Comm #10 Env */
+ if (!strcmp(name,"DL")) return 0x2f; /* Euro DL Env */
+ if (!strcmp(name,"w297h666")) return 0x30; /* Western Env #4 (you4) */
+ if (!strcmp(name,"w277h538")) return 0x31; /* Western Env #6 (you6) */
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,"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,"w155h244")) return 0x41; /* Business/Credit Card 54mm x 86mm */
+ /* 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,"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,"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 */
+
/* custom */
stp_deprintf(STP_DBG_CANON,"canon: Unknown paper size '%s' - using custom\n",name);
@@ -582,9 +2558,21 @@ canon_size_type(const stp_vars_t *v, const canon_cap_t * caps)
static void
canon_describe_resolution(const stp_vars_t *v, int *x, int *y)
{
- const canon_mode_t* mode = canon_get_current_mode(v);
+ const canon_mode_t* mode = NULL;
+ 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");
+ mode = canon_get_current_mode(v);
+
+ if(!mode)
+ mode = &caps->modelist->modes[caps->modelist->default_mode];
+
+ if (mode) {
*x = mode->xdpi;
*y = mode->ydpi;
+ }
}
static const char *
@@ -596,6 +2584,9 @@ canon_describe_output(const stp_vars_t *v)
return "CMYK";
if(ink_type & CANON_INK_CMY_MASK)
return "CMY";
+ /* Gernot added */
+ /*if(ink_type & CANON_INK_cmy_MASK)
+ return "cmy";*/
return "Grayscale";
}
@@ -619,7 +2610,7 @@ static void
canon_parameters(const stp_vars_t *v, const char *name,
stp_parameter_t *description)
{
- int i;
+ int i,j;
const canon_cap_t * caps=
canon_get_model_capabilities(v);
@@ -631,6 +2622,7 @@ canon_parameters(const stp_vars_t *v, const char *name,
for (i = 0; i < float_parameter_count; i++)
if (strcmp(name, float_parameters[i].param.name) == 0)
{
+ /* presumably need to return the maximum number of inks the printer can handle */
unsigned int ink_type = canon_printhead_colors(v);
stp_fill_parameter_settings(description,
@@ -739,7 +2731,9 @@ canon_parameters(const stp_vars_t *v, const char *name,
}
else if (strcmp(name, "Resolution") == 0)
{
+#if 0
const char* input_slot = stp_get_string_parameter(v, "InputSlot");
+#endif
description->bounds.str= stp_string_list_create();
description->deflt.str = NULL;
for(i=0;i<caps->modelist->count;i++){
@@ -747,32 +2741,68 @@ canon_parameters(const stp_vars_t *v, const char *name,
if(!(input_slot && !strcmp(input_slot,"CD") && !(caps->modelist->modes[i].flags & MODE_FLAG_CD)))
#endif
stp_string_list_add_string(description->bounds.str,
- caps->modelist->modes[i].name, gettext(caps->modelist->modes[i].text));
+ caps->modelist->modes[i].name, gettext(caps->modelist->modes[i].text));
stp_deprintf(STP_DBG_CANON,"supports mode '%s'\n",
- caps->modelist->modes[i].name);
+ caps->modelist->modes[i].name);
if(i == caps->modelist->default_mode)
- description->deflt.str=caps->modelist->modes[i].name;
-
-
+ description->deflt.str=caps->modelist->modes[i].name;
}
}
else if (strcmp(name, "InkType") == 0)
{
- const canon_mode_t* mode = canon_get_current_mode(v);
+ const canon_mode_t* mode = NULL;
+
+ if (ERRPRINT)
+ stp_eprintf(v,"Calling get_current_parameter from InkType block in canon_parameters");
+ mode=canon_get_current_mode(v);
+
description->bounds.str= stp_string_list_create();
- for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
- if(mode->ink_types & canon_inktypes[i].ink_type){
+ if (mode) {
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ 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;
+ }
+ /* mode not defined yet --- needed for PPD generation */
+ else {
+ 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_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;
+ }
+ }
+ }
+ /* default type must be deduced from the default mode */
+ /* use color if available, so break after first (color) is found, since inkt types ordered with gray last */
+ for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
+ if(caps->modelist->modes[caps->modelist->default_mode].ink_types & canon_inktypes[i].ink_type){
+ description->deflt.str = canon_inktypes[i].name;
+ break;
+ }
}
}
- description->deflt.str = stp_string_list_param(description->bounds.str, 0)->name;
+ /* default type must be deduced from the default mode */
+ /*description->deflt.str = stp_string_list_param(description->bounds.str, 0)->name;*/
}
else if (strcmp(name, "InkChannels") == 0)
{
unsigned int ink_type = canon_printhead_colors(v);
for(i=0;i<sizeof(canon_inktypes)/sizeof(canon_inktypes[0]);i++){
- if(ink_type == canon_inktypes[i].ink_type)
+ 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;
description->bounds.integer.upper = -1;
@@ -784,10 +2814,13 @@ canon_parameters(const stp_vars_t *v, const char *name,
description->bounds.str= stp_string_list_create();
description->deflt.str= canon_paper_list[0].name;
- for (i = 0; i < count; i ++)
+ for (i = 0; i < count; i ++) {
stp_string_list_add_string(description->bounds.str,
canon_paper_list[i].name,
gettext(canon_paper_list[i].text));
+
+ stp_dprintf(STP_DBG_CANON, v,"DEBUG: Gutenprint: Added Media Type: '%s'\n",canon_paper_list[i].name);
+ }
}
else if (strcmp(name, "InputSlot") == 0)
{
@@ -803,16 +2836,158 @@ canon_parameters(const stp_vars_t *v, const char *name,
}
else if (strcmp(name, "PrintingMode") == 0)
{
- const canon_mode_t* mode = canon_get_current_mode(v);
+ int found_color, found_mono;
+ 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");
+ 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");
+
description->bounds.str = stp_string_list_create();
- if (mode->ink_types != CANON_INK_K)
+
+ if (ERRPRINT)
+ stp_eprintf(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);
+ /* 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");
+ }
+ 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");
+ }
+ }
+#if 0
+ /* original code */
+ if (mode)
+ 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");
+ }
+#endif
+
+ else { /* mode not known yet --- needed for PPD generation */
+ if (ERRPRINT)
+ stp_eprintf(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 */
+ found_color=0;
+ 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 > 1){
+ 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");
+ break;
+ }
+ }
+ if (found_color==1)
+ break;
+ }
+ found_mono=0;
+ 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_INK_K){
+ 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");
+ break;
+ }
+ }
+ if (found_mono==1)
+ break;
+ }
+
+#if 0
+ /* ink types for default mode*/
+ 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");
+ }
+ 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");
+ }
+#endif
+#if 0
+ /* original code */
stp_string_list_add_string
- (description->bounds.str, "Color", _("Color"));
- stp_string_list_add_string
- (description->bounds.str, "BW", _("Black and White"));
+ (description->bounds.str, "BW", _("Black and White"));
+ if (ERRPRINT)
+ stp_eprintf(v,"PrintingMode: added BW\n");
+#endif
+ }
+
+ /* original code --- fine as is */
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
}
+ else if (strcmp(name, "InkSet") == 0)
+ {
+ description->bounds.str= stp_string_list_create();
+ if (caps->features & CANON_CAP_T) {
+ stp_string_list_add_string
+ (description->bounds.str, "Both", _("Both"));
+ if (!(caps->features & CANON_CAP_NOBLACK)) {
+ stp_string_list_add_string
+ (description->bounds.str, "Black", _("Black"));
+ }
+ stp_string_list_add_string
+ (description->bounds.str, "Color", _("Color"));
+ } /* mutually exclusive */
+ else if (caps->features & CANON_CAP_cart) {
+ stp_string_list_add_string
+ (description->bounds.str, "Color", _("Color"));
+ stp_string_list_add_string
+ (description->bounds.str, "Black", _("Black"));
+ stp_string_list_add_string
+ (description->bounds.str, "Photo", _("Photo"));
+ } else {
+ /* make sure to have at least a default value: no choice */
+ stp_string_list_add_string
+ (description->bounds.str, "None", _("None"));
+ }
+ description->deflt.str =
+ stp_string_list_param(description->bounds.str, 0)->name;
+ }
+ /* Test implementation of borderless printing */
+ else if (strcmp(name, "FullBleed") == 0)
+ {
+ const char* input_slot = stp_get_string_parameter(v, "InputSlot");
+ if (input_slot && !strcmp(input_slot,"CD"))
+ description->is_active = 0;
+ else if (caps->features & CANON_CAP_BORDERLESS)
+ description->deflt.boolean = 0;
+ else
+ description->is_active = 0;
+ }
else if (strcmp(name, "Duplex") == 0)
{
int offer_duplex=0;
@@ -845,7 +3020,9 @@ canon_parameters(const stp_vars_t *v, const char *name,
}
else if (strcmp(name, "Quality") == 0)
{
+#if 0
int has_standard_quality = 0;
+#endif
description->bounds.str = stp_string_list_create();
stp_string_list_add_string(description->bounds.str, "None",
_("Manual Control"));
@@ -856,7 +3033,9 @@ canon_parameters(const stp_vars_t *v, const char *name,
/* Cartridge selection for those printers that have it */
else if (strcmp(name, "Cartridge") == 0)
{
+#if 0
int offer_cartridge_selection = 0;
+#endif
description->bounds.str = stp_string_list_create();
stp_string_list_add_string(description->bounds.str, "Both",
_("Both"));
@@ -887,49 +3066,129 @@ canon_parameters(const stp_vars_t *v, const char *name,
static void
internal_imageable_area(const stp_vars_t *v, /* I */
int use_paper_margins,
+ int use_maximum_area,
int *left, /* O - Left position in points */
int *right, /* O - Right position in points */
int *bottom, /* O - Bottom position in points */
int *top) /* O - Top position in points */
{
- int width, length; /* Size of page */
+ int width, length; /* Size of page */
+ int cd = 0; /* CD selected */
+ const char *media_size = stp_get_string_parameter(v, "PageSize");
int left_margin = 0;
int right_margin = 0;
int bottom_margin = 0;
int top_margin = 0;
- int cd = 0;
-
- const canon_cap_t * caps= canon_get_model_capabilities(v);
- const char *media_size = stp_get_string_parameter(v, "PageSize");
const stp_papersize_t *pt = NULL;
const char* input_slot = stp_get_string_parameter(v, "InputSlot");
- if(input_slot && !strcmp(input_slot,"CD"))
- cd = 1;
+ const canon_cap_t * caps= canon_get_model_capabilities(v);
- if (media_size && use_paper_margins)
+ if (media_size)
pt = stp_get_papersize_by_name(media_size);
+ if(input_slot && !strcmp(input_slot,"CD"))
+ cd = 1;
+
stp_default_media_size(v, &width, &length);
- if (pt)
- {
+ if (cd) {
+ /* ignore printer margins for the cd print, margins get adjusted in do_print for now */
+ if (pt) {
+ /* move code from do_print here */
+ }
+ else {
+ /* move code from do_print here */
+ }
+ }
+ /* non-CD media */
+ else {
+ if (pt && use_paper_margins) {
left_margin = pt->left;
right_margin = pt->right;
bottom_margin = pt->bottom;
top_margin = pt->top;
}
- /* ignore printer margins for the cd print, margins get adjusted in do_print */
- if(!cd){
+ /* limit to printer capabilities---without fullbleed */
left_margin = MAX(left_margin, caps->border_left);
right_margin = MAX(right_margin, caps->border_right);
top_margin = MAX(top_margin, caps->border_top);
bottom_margin = MAX(bottom_margin, caps->border_bottom);
}
+ /* 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 */
+ 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"));
+ }
+
+ 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");
+
+ if (pt) {
+
+ if (ERRPRINT)
+ stp_eprintf(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");
+
+ if (use_paper_margins) {
+ unsigned width_limit = caps->max_width;
+ left_margin = -8;
+ right_margin = -8;
+ if (width - right_margin - 3 > width_limit)
+ right_margin = width - width_limit - 3;
+ top_margin = -6;
+ bottom_margin = -15;
+
+ if (ERRPRINT)
+ stp_eprintf(v,"internal_imageable_area: use_paper_margins so set margins all to -7\n");
+
+ }
+ else {
+ left_margin = 0;
+ right_margin = 0;
+ 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");
+
+ }
+ }
+ }
+ }
+ }
+
+ 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);
+ }
+
*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);
+ }
+
}
static void
@@ -939,7 +3198,17 @@ canon_imageable_area(const stp_vars_t *v, /* I */
int *bottom, /* O - Bottom position in points */
int *top) /* O - Top position in points */
{
- internal_imageable_area(v, 1, left, right, bottom, top);
+ internal_imageable_area(v, 1, 0, left, right, bottom, top);
+}
+
+static void
+canon_maximum_imageable_area(const stp_vars_t *v, /* I */
+ int *left, /* O - Left position in points */
+ int *right, /* O - Right position in points */
+ int *bottom, /* O - Bottom position in points */
+ int *top) /* O - Top position in points */
+{
+ internal_imageable_area(v, 1, 1, left, right, bottom, top);
}
static void
@@ -1031,8 +3300,15 @@ canon_init_setDuplex(const stp_vars_t *v, const canon_privdata_t *init)
{
if (!(init->caps->features & CANON_CAP_DUPLEX))
return;
- if (strncmp(init->duplex_str, "Duplex", 6))
- return;
+ if (strncmp(init->duplex_str, "Duplex", 6)) {
+ if ( !(strcmp(init->caps->name,"i860")) || !(strcmp(init->caps->name,"i865")) || !(strcmp(init->caps->name,"i950")) || !(strcmp(init->caps->name,"i960")) || !(strcmp(init->caps->name,"i990")) ) {
+ /* i860, i865, i950, i960, i990 use ESC ($ command even for simplex mode */
+ canon_cmd(v,ESC28,0x24,9,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
+ return;
+ }
+ else
+ return;
+ }
/* The same command seems to be needed for both Duplex and DuplexTumble
no idea about the meanings of the single bytes */
canon_cmd(v,ESC28,0x24,9,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x02);
@@ -1115,6 +3391,12 @@ canon_init_setColor(const stp_vars_t *v, const canon_privdata_t *init)
arg_63[4] = 1;
}
}
+ else if (!strcmp(init->caps->name,"4550")) /* BJC-4550 */
+ {
+ numargs = 3;
+ arg_63[2] = 0; /* not used in Black and Color, no idea about PhotoColor yet */
+ arg_63[1] = init->quality; /* hardcode to whatever this means for now; quality, apparently */
+ }
else
arg_63[2] = init->quality; /* hardcode to whatever this means for now; quality, apparently */
@@ -1184,7 +3466,8 @@ canon_init_setTray(const stp_vars_t *v, const canon_privdata_t *init)
{
unsigned char
arg_6c_1 = 0x00,
- arg_6c_2 = 0x00; /* plain paper */
+ arg_6c_2 = 0x00, /* plain paper */
+ arg_6c_3 = 0x00; /* special cases like iP7100 to be handled */
if (!(init->caps->features & CANON_CAP_l))
return;
@@ -1193,10 +3476,17 @@ canon_init_setTray(const stp_vars_t *v, const canon_privdata_t *init)
arg_6c_1|= (init->slot->code & 0x0f);
- if (init->pt) arg_6c_2= init->pt->media_code_l;
- if(init->caps->model_id >= 3)
- canon_cmd(v,ESC28,0x6c, 3, arg_6c_1, arg_6c_2, 0);
- else
+ /* set gap for MP710/740 if thick media selected */
+ if (!strcmp(init->slot->name,"AutoThick"))
+ if ( (!strcmp(init->caps->name,"PIXMA MP710")) || (!strcmp(init->caps->name,"PIXMA MP740")) )
+ arg_6c_3 = 0x10;
+
+ if (init->pt) arg_6c_2 = init->pt->media_code_l;
+ /* select between length 2 and 3 byte variations of command */
+ /*if(init->caps->model_id >= 3)*/
+ if(init->caps->ESC_l_len == 3)
+ canon_cmd(v,ESC28,0x6c, 3, arg_6c_1, arg_6c_2, arg_6c_3); /* 3rd arg is "gap" */
+ else /* else 2 bytes---no other option for now */
canon_cmd(v,ESC28,0x6c, 2, arg_6c_1, arg_6c_2);
}
@@ -1241,104 +3531,465 @@ canon_init_setPrintMode(const stp_vars_t *v, const canon_privdata_t *init)
arg_6d_a,arg_6d_b,arg_6d_2,0x00,arg_6d_3);
}
+/* ESC (M -- 0x4d -- -- :
+ */
+static void
+canon_init_setESC_M(const stp_vars_t *v, const canon_privdata_t *init)
+{
+ if (!(init->caps->features & CANON_CAP_M))
+ return;
+
+ canon_cmd(v,ESC28,0x4d, 3, 0x00, 0x00, 0x00);
+}
+
/* ESC (p -- 0x70 -- cmdSetPageMargins2 --:
*/
static void
canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init)
{
+ unsigned char arg_70_1,arg_70_2,arg_70_3,arg_70_4;
+
+ int border_left,border_right,border_top,border_bottom;
+ int border_left2,border_top2;
+ int border_right2;
+ int border_bottom2;
+ int area_right,area_top;
+
/* TOFIX: what exactly is to be sent?
* Is it the printable length or the bottom border?
* Is is the printable width or the right border?
*/
+
+ int unit = 600;
int printable_width= (init->page_width + 1)*5/6;
int printable_length= (init->page_height + 1)*5/6;
- unsigned char arg_70_1= (printable_length >> 8) & 0xff;
- unsigned char arg_70_2= (printable_length) & 0xff;
- unsigned char arg_70_3= (printable_width >> 8) & 0xff;
- unsigned char arg_70_4= (printable_width) & 0xff;
- const char* input_slot = stp_get_string_parameter(v, "InputSlot");
+ 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"));
+ }
+
+ 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");
+ /* set to 0 for borderless */
+ printable_width = 0;
+ printable_length = 0;
+ }
+
+ 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) && !(input_slot && !strcmp(input_slot,"CD")))
- {
- unsigned int unit = 600;
- stp_zfwrite(ESC28,2,1,v); /* ESC( */
- stp_putc(0x70,v); /* p */
- stp_put16_le(46, v); /* len */
- stp_put16_be(printable_length,v);
- stp_put16_be(0,v);
- stp_put16_be(printable_width,v);
- stp_put16_be(0,v);
- stp_put32_be(0,v);
- stp_put16_be(unit,v);
-
- stp_put32_be(init->caps->border_left * unit / 72,v); /* area_right */
- stp_put32_be(init->caps->border_top * unit / 72,v); /* area_top */
- stp_put32_be(init->page_width * unit / 72,v); /* area_width */
- stp_put32_be(init->page_height * unit / 72,v); /* area_length */
- stp_put32_be(0,v); /* paper_right */
- stp_put32_be(0,v); /* paper_top */
- stp_put32_be((init->page_width + init->caps->border_left + init->caps->border_right) * unit / 72,v); /* paper_width */
- stp_put32_be((init->page_height + init->caps->border_top + init->caps->border_bottom) * unit / 72,v); /* paper_height */
- 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")) )
+ {
+
+ /* original borders */
+ border_left=init->caps->border_left;
+ border_right=init->caps->border_right;
+ border_top=init->caps->border_top;
+ border_bottom=init->caps->border_bottom;
+
+ if (print_cd) {
+ border_top=9;
+ border_bottom=9;
+ }
+
+ /* modified borders */
+ border_left2=border_left;
+ border_top2=border_top;
+ border_right2=border_right;
+ border_bottom2=border_bottom;
+
+ area_right = border_left2 * unit / 72;
+ area_top = border_top2 * unit / 72;
+
+ if ( (init->caps->features & CANON_CAP_BORDERLESS) &&
+ !(print_cd) && stp_get_boolean_parameter(v, "FullBleed") ) {
+ border_left2=-8; /* -8 mini series -6 */
+ border_right2=-8; /* -8 */
+ border_top2=-6; /* -6 standard */
+ border_bottom2=-15; /* -15 standard */
+ area_right = border_left2 * unit / 72;
+ 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_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(0,v);
+ /* 0 for borderless, calculated otherwise */
+ stp_put16_be(printable_width,v); /* Windows 352, gutenprint 342 */
+ stp_put16_be(0,v);
+ stp_put32_be(0,v);
+ stp_put16_be(unit,v);
+
+ /* 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 */
+ /* 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 */
+ return;
+ }
+ }
canon_cmd(v,ESC28,0x70, 8,
arg_70_1, arg_70_2, 0x00, 0x00,
arg_70_3, arg_70_4, 0x00, 0x00);
}
/* ESC (P -- 0x50 -- unknown -- :
+ pt = stp_get_papersize_by_name(media_size);
seems to set media and page information. Different byte lengths depending on printer model. */
static void
canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
{
- unsigned char arg_ESCP_2;
+ unsigned char arg_ESCP_1, arg_ESCP_2;
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;
- /* models that add two more bytes "1 0" to the end of the usual 4-byte sequence: */
- /* iP2700 */
- /* MX340 */
- /* MX350 --- same driver as MX340 */
- /* MX360 */
- /* MX410 --- same driver as MX360 */
- /* MX420 */
- /* MX870 */
- /* MX880 */
- /* MP493 */
- /* MP550 */
- /* MP640 */
- /* iX6500 */
- /* iX7000 */
- if ( (!strcmp(init->caps->name,"iP2700")) || (!strcmp(init->caps->name,"MX340")) || (!strcmp(init->caps->name,"MX360")) || (!strcmp(init->caps->name,"MX410")) || (!strcmp(init->caps->name,"MX420")) || (!strcmp(init->caps->name,"MX870")) || (!strcmp(init->caps->name,"MX880")) || (!strcmp(init->caps->name,"MP550")) || (!strcmp(init->caps->name,"MP493")) || (!strcmp(init->caps->name,"MP640")) || (!strcmp(init->caps->name,"iX6500")) || (!strcmp(init->caps->name,"iX7000")) || (!strcmp(init->caps->name,"iP4700")) || (!strcmp(init->caps->name,"iP4800")) )
- /* add a lot more here: try if(init->caps->model_id >= 3) how to guess for 4 bytes or more */
+ /* workaround for CD media */
+
+ if ( (arg_ESCP_2 == 0x1f) || ( arg_ESCP_2 == 0x20) ) {
+ if ( arg_ESCP_1 == 0x53 ) {
+ /* Tray G as default */
+ arg_ESCP_1 = 0x53;
+ /* Custom CD tray */
+ if ( !(strcmp(init->caps->name,"i865")) || !(strcmp(init->caps->name,"PIXMA MP710")) || !(strcmp(init->caps->name,"PIXMA MP740")) || !(strcmp(init->caps->name,"PIXMA MP900")) ) {
+ arg_ESCP_1 = 0x35;
+ }
+ /* Tray A */
+ if ( !(strcmp(init->caps->name,"PIXMA iP9910")) ) {
+ arg_ESCP_1 = 0x3f;
+ }
+ /* Tray B */
+ if ( !(strcmp(init->caps->name,"PIXMA MP750")) || !(strcmp(init->caps->name,"PIXMA MP760")) || !(strcmp(init->caps->name,"PIXMA MP770")) || !(strcmp(init->caps->name,"PIXMA MP780")) || !(strcmp(init->caps->name,"PIXMA MP790")) || !(strcmp(init->caps->name,"PIXMA iP3000")) || !(strcmp(init->caps->name,"PIXMA iP3100")) || !(strcmp(init->caps->name,"PIXMA iP4000")) || !(strcmp(init->caps->name,"PIXMA iP4100")) || !(strcmp(init->caps->name,"PIXMA iP5000")) || !(strcmp(init->caps->name,"PIXMA iP6000")) || !(strcmp(init->caps->name,"PIXMA iP6100")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8500")) || !(strcmp(init->caps->name,"PIXMA iP8600")) ) {
+ arg_ESCP_1 = 0x40;
+ }
+ /* Tray C */
+ if ( !(strcmp(init->caps->name,"PIXMA MP950")) || !(strcmp(init->caps->name,"PIXMA iP4200")) || !(strcmp(init->caps->name,"PIXMA iP5200")) || !(strcmp(init->caps->name,"PIXMA iP6700")) || !(strcmp(init->caps->name,"PIXMA iP7500")) ) {
+ arg_ESCP_1 = 0x4a;
+ }
+ /* Tray D */
+ if ( !(strcmp(init->caps->name,"PIXMA MP500")) || !(strcmp(init->caps->name,"PIXMA MP530")) || !(strcmp(init->caps->name,"PIXMA MP800")) || !(strcmp(init->caps->name,"PIXMA MP830")) ) {
+ arg_ESCP_1 = 0x4b;
+ }
+ /* Tray E */
+ if ( !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA Pro9002")) || !(strcmp(init->caps->name,"PIXMA Pro9500")) || !(strcmp(init->caps->name,"PIXMA Pro95002")) ) {
+ arg_ESCP_1 = 0x4c;
+ }
+ /* Tray F */
+ 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")) ) {
+ arg_ESCP_1 = 0x56;
+ }
+ }
+ }
+ /* 850i: CD Tray custom: none --- no ESC (P */
+ /* 865i: CD Tray custom: 0x35 */
+ /* MP500: CD Tray D : 0x4b */
+ /* MP530: CD Tray D : 0x4b */
+ /* MP600: CD Tray F : 0x51 */
+ /* MP610: CD Tray F : 0x51 */
+ /* MP630: CD Tray G : 0x53 */
+ /* MP640: CD Tray G : 0x53 */
+ /* MP700: CD tray custom: none --- no ESC (P */
+ /* MP710: CD tray custom: 0x35 */
+ /* MP730: CD tray custom: none --- no ESC (P */
+ /* MP740: CD tray custom: 0x35 */
+ /* MP750: CD Tray B : 0x40 */
+ /* MP760: CD Tray B : 0x40 */
+ /* MP770: CD Tray B : 0x40 */
+ /* MP780: CD Tray B : 0x40 */
+ /* MP790: CD Tray B : 0x40 */
+ /* MP800: CD Tray D : 0x4b */
+ /* MP810: CD Tray F : 0x51 */
+ /* MP830: CD Tray D : 0x4b */
+ /* MP900: CD Tray custom: 0x35 */
+ /* MP950: CD Tray C : 0x4a */
+ /* MP960: CD Tray F : 0x51 */
+ /* MP970: CD Tray F : 0x51 */
+ /* MP980: CD Tray G : 0x53 */
+ /* MP990: CD Tray G : 0x53 */
+ /* MX850: CD Tray F : 0x51 */
+ /* iP3000: CD Tray B : 0x40 */
+ /* iP3100: CD Tray B : 0x40 */
+ /* iP4000: CD Tray B : 0x40 */
+ /* iP4100: CD Tray B : 0x40 */
+ /* iP4200: CD Tray C : 0x4a */
+ /* iP4300: CD Tray F : 0x51 */
+ /* iP4500: CD Tray F : 0x51 */
+ /* iP4600: CD Tray G : 0x53 */
+ /* iP4700: CD Tray G : 0x53 */
+ /* iP4800: CD Tray G : 0x56 */
+ /* iP4900: CD Tray G : 0x56 */
+ /* iP5000: CD Tray B : 0x40 */
+ /* iP5200: CD Tray C : 0x4a */
+ /* iP5300: CD Tray F : 0x51 */
+ /* iP6000D:CD Tray B : 0x40 */
+ /* iP6100D:CD Tray B : 0x40 */
+ /* iP6700D:CD Tray C : 0x4a */
+ /* iP7100: CD Tray B : 0x40 */
+ /* iP7500: CD Tray C : 0x4a */
+ /* iP8100: CD Tray B : 0x40 */
+ /* iP8500 :CD Tray B : 0x40 */
+ /* iP8600: CD Tray B : 0x40 */
+ /* iP9910: CD Tray A : 0x3f */
+ /* MG5200: CD Tray G : 0x56 */
+ /* MG5300: CD Tray G : 0x56 */
+ /* MG6100: CD Tray G : 0x56 */
+ /* MG6200: CD Tray G : 0x56 */
+ /* MG8100: CD Tray G : 0x56 */
+ /* MG8200: CD Tray G : 0x56 */
+ /* pro9000:CD Tray E : 0x4c */
+ /* pro9000mk2:CD Tray E : 0x4c */
+ /* pro9500:CD Tray E : 0x4c */
+ /* 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 */
+
+ /* 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 */
+ 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")) ) {
+ arg_ESCP_1 = 0x42;
+ }
+ }
+ /* A3 */
+ 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")) ) {
+ arg_ESCP_1 = 0x43;
+ }
+ }
+ /* Letter */
+ 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")) ) {
+ arg_ESCP_1 = 0x44;
+ }
+ }
+ }
+
+ if ( init->caps->ESC_P_len == 8 ) /* support for new devices from 2012. TODO: check if XML contents are identical to 6-byte devices */
+ {/* 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 */
+ canon_cmd( v,ESC28,0x50,8,0x00,arg_ESCP_1,0x00,arg_ESCP_2,0x01,0x00,0x01,0x00);
+ }
+ else if ( init->caps->ESC_P_len == 6 ) /* first devices with XML header and ender */
{/* 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 */
- canon_cmd( v,ESC28,0x50,6,0x00,0x03,0x00,arg_ESCP_2,0x01,0x00);
+ /* size media */
+ canon_cmd( v,ESC28,0x50,6,0x00,arg_ESCP_1,0x00,arg_ESCP_2,0x01,0x00);
}
- else
- /* size media */
- canon_cmd( v,ESC28,0x50,4,0x00,0x03,0x00,arg_ESCP_2 );
+ else if ( init->caps->ESC_P_len == 4 ) {/* 4 bytes */
+ /* size media */
+ canon_cmd( v,ESC28,0x50,4,0x00,arg_ESCP_1,0x00,arg_ESCP_2 );
+ }
+ else if ( init->caps->ESC_P_len == 2 ) {
+ /* 2 bytes only */
+ canon_cmd( v,ESC28,0x50,2,0x00,arg_ESCP_1 );
+ }
+ else /* error in definition */
+ stp_deprintf(STP_DBG_CANON,"SEVERE BUG IN print-canon.c::canon_init_setESC_P() "
+ "ESC_P_len=%d!!\n",init->caps->ESC_P_len);
}
+/* ESC (S -- 0x53 -- unknown -- :
+ Required by iP90/iP90v and iP100 printers.
+ */
+static void
+canon_init_setESC_S(const stp_vars_t *v, const canon_privdata_t *init)
+{
+ unsigned char arg_ESCS_01,arg_ESCS_04,arg_ESCS_09,arg_ESCS_11;
+
+ if (!(init->caps->features & CANON_CAP_S))
+ return;
+
+ if (!(init->mode->flags & MODE_FLAG_S))
+ return;
+
+ /* iP90 defaults: based on non-photo media */
+ arg_ESCS_01 = 0x01;
+ arg_ESCS_04 = 0xff;
+ arg_ESCS_09 = 0x1a;
+ arg_ESCS_11 = 0x68;
+
+ /* hard-coded for different media, color and quality settings */
+ /* iP90 bytes 1,4,9 and 11 vary */
+ if ( !(strcmp(init->caps->name,"PIXMA iP90")) ) {
+ if ( !strcmp(init->mode->name,"600x600dpi_high2") || !strcmp(init->mode->name,"600x600dpi_high4") ) {
+ /* if inkset is color then set special bytes, else leave default.
+ Note: in this case the mode only has CMYK, mono is a different mode.
+ */
+ if (init->used_inks == CANON_INK_CMYK) {
+ arg_ESCS_01 = 0xc1;
+ arg_ESCS_04 = 0xf1;
+ arg_ESCS_09 = 0x50;
+ arg_ESCS_11 = 0x28;
+ }
+ } else if ( !strcmp(init->mode->name,"300x300dpi_draft") ) {
+ /* set regardless of inkset */
+ arg_ESCS_09 = 0x02;
+ arg_ESCS_11 = 0x08;
+ } else if ( !strcmp(init->mode->name,"600x600dpi_draft2") ) {
+ /* if inkset is color then set special bytes, else leave default */
+ if (init->used_inks == CANON_INK_CMYK) {
+ arg_ESCS_09 = 0x0a;
+ arg_ESCS_11 = 0x28;
+ }
+ } else if ( !strcmp(init->mode->name,"600x600dpi_photohigh") || !strcmp(init->mode->name,"600x600dpi_photo") || !strcmp(init->mode->name,"600x600dpi_photodraft") ) {
+ /* almost all photo media need (same) changes from defaults */
+ /* exception: "600x600dpi_photohigh2" no ESC (S command */
+ /* exception: "600x600dpi_tshirt" no ESC (S command */
+ arg_ESCS_01 = 0xc1;
+ arg_ESCS_04 = 0xf0;
+ arg_ESCS_09 = 0x50;
+ arg_ESCS_11 = 0x28;
+ }
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA iP100")) ) {
+ /* iP100 bytes 9 and 11 vary */
+ if ( !strcmp(init->mode->name,"300x300dpi_draft") ) {
+ /* set regardless of inkset */
+ arg_ESCS_09 = 0x02;
+ arg_ESCS_11 = 0x08;
+ } else if ( !strcmp(init->mode->name,"600x600dpi_photohigh2") || !strcmp(init->mode->name,"600x600dpi_photohigh") || !strcmp(init->mode->name,"600x600dpi_photo2") || !strcmp(init->mode->name,"600x600dpi_photo") || !strcmp(init->mode->name,"600x600dpi_tshirt") ) {
+ /* all photo media need (same) changes from defaults */
+ arg_ESCS_09 = 0x0a;
+ arg_ESCS_11 = 0x28;
+ }
+ }
+
+ canon_cmd(v,ESC28,0x53,54,arg_ESCS_01,0x02,0xff,arg_ESCS_04,0x41,0x02,0x00,0x01,arg_ESCS_09,0x00,arg_ESCS_11,0x00,0x01,0x01,0x03,0x02,0x01,0x01,0x01,0x03,0x02,0x00,0x07,0x06,0x02,0x01,0x02,0x04,0x04,0x04,0x05,0x06,0x08,0x08,0x08,0x0a,0x0a,0x09,0x00,0x03,0x02,0x01,0x01,0x01,0x01,0x01,0x06,0x02,0x02,0x02,0x03,0x04,0x05,0x06);
+
+}
+
+
/* ESC (T -- 0x54 -- setCartridge -- :
*/
static void
canon_init_setCartridge(const stp_vars_t *v, const canon_privdata_t *init)
{
+ const char *ink_set;
+
if (!(init->caps->features & CANON_CAP_T))
return;
- canon_cmd(v,ESC28,0x54,3,0x03,0x04,0x04); /* default: both cartridges */
+ ink_set = stp_get_string_parameter(v, "InkSet");
+
+ if (ink_set && !(strcmp(ink_set,"Both"))) {
+ if ( !(strcmp(init->caps->name,"PIXMA iP90")) || !(strcmp(init->caps->name,"PIXMA iP100")) ) {
+ canon_cmd(v,ESC28,0x54,3,0x02,0x00,0x00); /* default for iP90, iP100 */
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA iP6210")) ) {
+ canon_cmd(v,ESC28,0x54,3,0x03,0x06,0x06); /* default for iP6210D, iP6220D, iP6310D */
+ /* both: 0x3 0x6 0x6 */
+ /* color: 0x3 0x1 0x1 */
+ }
+ else {
+ canon_cmd(v,ESC28,0x54,3,0x03,0x04,0x04); /* default: both cartridges */
+ }
+ }
+ else if (ink_set && !(strcmp(ink_set,"Black"))) {
+ if ( !(strcmp(init->caps->name,"PIXMA iP90")) || !(strcmp(init->caps->name,"PIXMA iP100")) ) {
+ canon_cmd(v,ESC28,0x54,3,0x02,0x00,0x00); /* default for iP90, iP100 */
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA iP6210")) ) {
+ canon_cmd(v,ESC28,0x54,3,0x03,0x06,0x06); /* default for iP6210D, iP6220D, iP6310D */
+ /* both: 0x3 0x6 0x6 */
+ /* color: 0x3 0x1 0x1 */
+ /* workaround since does not have black option */
+ }
+ else {
+ canon_cmd(v,ESC28,0x54,3,0x03,0x02,0x02); /* default: black cartridge */
+ }
+ }
+ else if (ink_set && !(strcmp(ink_set,"Color"))) {
+ if ( !(strcmp(init->caps->name,"PIXMA iP90")) || !(strcmp(init->caps->name,"PIXMA iP100")) ) {
+ canon_cmd(v,ESC28,0x54,3,0x02,0x00,0x01); /* composite for iP90, iP100 */
+ /* black save : 2 1 0 for selected plain (600dpi std) modes, rest remain 2 0 0 */
+ /* composite black: 2 0 1 for selected plain (600dpi std & draft) modes, rest remain 2 0 0 */
+ /* both above set : AND of bytes above */
+ }
+ else if ( !(strcmp(init->caps->name,"PIXMA iP6210")) ) {
+ canon_cmd(v,ESC28,0x54,3,0x03,0x01,0x01); /* default for iP6210D, iP6220D, iP6310D */
+ /* both: 0x3 0x6 0x6 */
+ /* color: 0x3 0x1 0x1 */
+ }
+ else {
+ canon_cmd(v,ESC28,0x54,3,0x03,0x01,0x01); /* default: color cartridges */
+ }
+ }
+ else {
+ canon_cmd(v,ESC28,0x54,3,0x03,0x04,0x04); /* default: both cartridges */
+ }
}
/* ESC (q -- 0x71 -- setPageID -- :
@@ -1363,10 +4014,30 @@ canon_init_setX72(const stp_vars_t *v, const canon_privdata_t *init)
if ( (init->caps->features & CANON_CAP_r)
|| (init->caps->features & CANON_CAP_rr) )
+ if (init->caps->ESC_r_arg != 0) /* only output arg if non-zero */
canon_cmd(v,ESC28,0x72, 1, init->caps->ESC_r_arg); /* whatever for - 8200/S200 need it */
- if (init->caps->features & CANON_CAP_rr)
+ if (init->caps->features & CANON_CAP_rr) {
+ if ( !(strcmp(init->caps->name,"S200")) ) {
canon_cmd(v,ESC28,0x72, 3, 0x63, 1, 0); /* whatever for - S200 needs it */
/* probably to set the print direction of the head */
+ }
+ else if ( !(strcmp(init->caps->name,"S820")) || !(strcmp(init->caps->name,"S900")) || !(strcmp(init->caps->name,"i950")) || !(strcmp(init->caps->name,"i960")) || !(strcmp(init->caps->name,"i9100")) || !(strcmp(init->caps->name,"i9900")) || !(strcmp(init->caps->name,"PIXMA iP7100")) || !(strcmp(init->caps->name,"PIXMA iP8100")) || !(strcmp(init->caps->name,"PIXMA iP8500")) || !(strcmp(init->caps->name,"PIXMA iP8600")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA MP900")) || !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA Pro9002")) || !(strcmp(init->caps->name,"PIXMA Pro9500")) || !(strcmp(init->caps->name,"PIXMA Pro9502")) ) {
+ canon_cmd(v,ESC28,0x72, 2, 0x62, 0); /* 2 bytes */
+ }
+ /* CD mode only */
+ else if ( (init->mode->flags & MODE_FLAG_CD) && (!(strcmp(init->caps->name,"PIXMA iP4600")) || !(strcmp(init->caps->name,"PIXMA iP4700")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) ) ) {
+ canon_cmd(v,ESC28,0x72, 1, 0x65);
+ }
+ /* CD mode only */
+ else if ( (init->mode->flags & MODE_FLAG_CD) && ( !(strcmp(init->caps->name,"PIXMA iP4800")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG8100")) ) ) {
+ canon_cmd(v,ESC28,0x72, 1, 0x68);
+ }
+ /* CD mode only -- no ESC (r at all otherwise */
+ else if ( (init->mode->flags & MODE_FLAG_CD) && ( !(strcmp(init->caps->name,"PIXMA iP4900")) || !(strcmp(init->caps->name,"PIXMA MG5200")) || !(strcmp(init->caps->name,"PIXMA MG5300")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG8200")) ) ) {
+ canon_cmd(v,ESC28,0x72, 1, 0x68);
+ }
+ /* other cases here */
+ }
}
/* ESC (r -- 0x72 -- ??? set direction ??? -- :
@@ -1402,12 +4073,18 @@ canon_init_setImage(const stp_vars_t *v, const canon_privdata_t *init)
}else if(init->mode->flags & MODE_FLAG_IP8500){
buf[1]=0x00;
buf[2]=0x01;
+ }else if(init->mode->flags & MODE_FLAG_MP130){
+ buf[1]=0x04;
+ buf[2]=0x01;
+ }else if(init->mode->flags & MODE_FLAG_MP360){
+ buf[1]=0x84;
+ buf[2]=0x01;
}else{
buf[1]=0x80;
buf[2]=0x01;
}
for(i=0;i<init->mode->num_inks;i++){
- if(init->mode->inks[i].ink){
+ if(init->mode->inks[i].channel != 0){ /* 0 means ink is used in gutenprint for sub-channel setup but not intended for printer */
if(init->mode->inks[i].ink->flags & INK_FLAG_5pixel_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_lowresmode)
@@ -1425,7 +4102,8 @@ canon_init_setImage(const stp_vars_t *v, const canon_privdata_t *init)
buf[3+i*3+2] = 0x04;*/
/*else if (init->mode->inks[i].ink->bits == 1)
buf[3+i*3+2] = 0x02;*/
- buf[3+i*3+2]= init->mode->inks[i].ink->numsizes+1;/*level*/
+ /*else*/ /* normal operation */
+ buf[3+i*3+2]= init->mode->inks[i].ink->numsizes+1;/*level*/
/*else
buf[3+i*3+2] = 0x00;*/
/* this should show that there is an error */
@@ -1456,8 +4134,25 @@ canon_init_setImage(const stp_vars_t *v, const canon_privdata_t *init)
if (init->mode->inks[0].ink->bits>1) {
arg_74_1= 0x02;
arg_74_2= 0x80;
- arg_74_3= 0x09;
+ arg_74_3= 0x09; /* default for most media */
+ /* FIXME: (Gernot) below must be corrected I think, since CMY is
+ not a function of the cartridge but of the driver selection of
+ which logical inks get sent to the printer. So here the
+ printers that use this should be enumerated, rather than a
+ generic condition based on CANON_INK_CMY */
if (init->used_inks == CANON_INK_CMY) arg_74_3= 0x02; /* for BC-06 cartridge!!! */
+ /* example of better way: for BJC-3000 series */
+ if (!strcmp(init->caps->name,"3000") || !strcmp(init->caps->name,"4300")) {
+ /* but if photo cartridge selection, set differently again */
+ if (init->mode->flags & MODE_FLAG_PHOTO)
+ arg_74_3= 0x0a;
+ /* T-Shirt (3), Backprint Film (3) or Transparencies (2) */
+ else if ((init->pt->media_code_c==2) || (init->pt->media_code_c==3))
+ arg_74_3= 0x01;
+ else
+ /* other media */
+ arg_74_3= 0x09; /* return to default after broken code above */
+ }
}
/* workaround for the bjc8200 in 6color mode - not really understood */
@@ -1490,31 +4185,77 @@ canon_init_setMultiRaster(const stp_vars_t *v, const canon_privdata_t *init){
return;
canon_cmd(v,ESC28,0x49, 1, 0x1); /* enable MultiLine Raster? */
- canon_cmd(v,ESC28,0x4a, 1, init->caps->raster_lines_per_block); /* set number of lines per raster block */
+ /* canon_cmd(v,ESC28,0x4a, 1, init->caps->raster_lines_per_block); */
+ canon_cmd(v,ESC28,0x4a, 1, init->mode->raster_lines_per_block); /* set number of lines per raster block */
/* set the color sequence */
stp_zfwrite("\033(L", 3, 1, v);
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,"MP450"))*/
+ 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 cmy there, add 0x60 to each --- this is not yet correct, some modes do not require it! */
- /* if (init->num_channels==7) {*/
- for(i=0;i<init->num_channels;i++){
- switch(init->channel_order[i]){
- /* case 'c':raster_channel_order[i]+=0x60; break;;*/
- /* case 'm':raster_channel_order[i]+=0x60; break;;*/
- /* case 'y':raster_channel_order[i]+=0x60; break;;*/
- }
+ /* if cmy there, add 0x60 to each --- all modes using cmy require it */
+ for(i=0;i<init->num_channels;i++){
+ switch(init->channel_order[i]){
+ case 'c':raster_channel_order[i]+=0x60; break;;
+ case 'm':raster_channel_order[i]+=0x60; break;;
+ case 'y':raster_channel_order[i]+=0x60; break;;
}
- /*}*/
+ }
+ /* Gernot: debug */
+ /* if CMY there, add 0x80 to each to change to cmy+0x60 */
+ /* for(i=0;i<init->num_channels;i++){
+ switch(init->channel_order[i]){
+ case 'C':raster_channel_order[i]+=0x80; break;;
+ case 'M':raster_channel_order[i]+=0x80; break;;
+ case 'Y':raster_channel_order[i]+=0x80; break;;
+ }
+ }*/
stp_zfwrite((const char *)raster_channel_order,init->num_channels, 1, v);
}
- /* else
+ /* note these names are from canon-printers.h, only separate driver strings are required */
+ else if ( !(strcmp(init->caps->name,"PIXMA iP6210")) ) {
+ /* if cmy there, add 0x60 to each --- only some modes using cmy require it */
+ /* case one: all modes with only cmy */
+ if (init->num_channels==3) {
+ for(i=0;i<init->num_channels;i++){
+ switch(init->channel_order[i]){
+ case 'c':raster_channel_order[i]+=0x60; break;;
+ case 'm':raster_channel_order[i]+=0x60; break;;
+ case 'y':raster_channel_order[i]+=0x60; break;;
+ }
+ }
+ }
+ /* case two: CMYcmy modes, but not CMYkcm modes */
+ else if ( (init->num_channels==6) && (init->used_inks==CANON_INK_CMY) ) {
+ for(i=0;i<init->num_channels;i++){
+ switch(init->channel_order[i]){
+ case 'c':raster_channel_order[i]+=0x60; break;;
+ case 'm':raster_channel_order[i]+=0x60; break;;
+ case 'y':raster_channel_order[i]+=0x60; break;;
+ }
+ }
+ }
+ /* case three: CMYkm modes with 0x80 to subtract from all inks with 2 or 8 bits */
+ else if ( (init->num_channels==6) && (init->used_inks==CANON_INK_CcMmYK) && ((init->mode->inks[0].ink->bits==2) || (init->mode->inks[0].ink->bits==8)) ) {
+ for(i=0;i<init->num_channels;i++){
+ switch(init->channel_order[i]){
+ case 'C':raster_channel_order[i]+=0x80; break;;
+ case 'M':raster_channel_order[i]+=0x80; break;;
+ case 'Y':raster_channel_order[i]+=0x80; break;;
+ case 'c':raster_channel_order[i]+=0x80; break;;
+ case 'm':raster_channel_order[i]+=0x80; break;;
+ case 'k':raster_channel_order[i]+=0x80; break;;
+ }
+ }
+ }
+ stp_zfwrite((const char *)raster_channel_order,init->num_channels, 1, v);
+ }
+ else
{
stp_zfwrite((const char *)init->channel_order,init->num_channels, 1, v);
- }*/
+ }
}
@@ -1527,6 +4268,7 @@ canon_init_printer(const stp_vars_t *v, const canon_privdata_t *init)
/* init printer */
if (init->is_first_page) {
canon_init_resetPrinter(v,init); /* ESC [K */
+ canon_init_setESC_M(v,init); /* ESC (M */
canon_init_setDuplex(v,init); /* ESC ($ */
}
canon_init_setPageMode(v,init); /* ESC (a */
@@ -1540,6 +4282,7 @@ canon_init_printer(const stp_vars_t *v, const canon_privdata_t *init)
canon_init_setPageMargins2(v,init); /* ESC (p */
canon_init_setESC_P(v,init); /* ESC (P */
canon_init_setCartridge(v,init); /* ESC (T */
+ canon_init_setESC_S(v,init); /* ESC (S */
canon_init_setTray(v,init); /* ESC (l */
canon_init_setX72(v,init); /* ESC (r */
canon_init_setMultiRaster(v,init); /* ESC (I (J (L */
@@ -1549,7 +4292,8 @@ canon_init_printer(const stp_vars_t *v, const canon_privdata_t *init)
mytop= (init->top*init->mode->ydpi)/72;
if(init->caps->features & CANON_CAP_I)
- mytop /= init->caps->raster_lines_per_block;
+ /* mytop /= init->caps->raster_lines_per_block; */
+ mytop /= init->mode->raster_lines_per_block;
if(mytop)
canon_cmd(v,ESC28,0x65, 2, (mytop >> 8 ),(mytop & 255));
@@ -1700,16 +4444,21 @@ static int canon_setup_channel(stp_vars_t *v,canon_privdata_t* privdata,int chan
if(ink->channel && ink->density > 0.0){
int delay = canon_get_delay(privdata,ink->channel);
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);
/* update channel order */
privdata->channel_order[privdata->num_channels]=ink->channel;
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channel: ink->channel %c\n", ink->channel);
privdata->channel_order[privdata->num_channels+1]='\0';
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channel: (terminated)privdata->channel_order %s\n", privdata->channel_order);
current = &(privdata->channels[privdata->num_channels]);
++privdata->num_channels;
/* fill ink properties */
current->name = ink->channel;
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channel: current->name %c\n", current->name);
current->props = ink->ink;
current->delay = delay;
/* calculate buffer length */
@@ -1726,9 +4475,14 @@ static int canon_setup_channel(stp_vars_t *v,canon_privdata_t* privdata,int chan
*shades = stp_realloc(*shades,(subchannel + 1) * sizeof(stp_shade_t));
/* move previous shades up one position as set_inks_full expects the subchannels first */
if(subchannel)
- memcpy(*shades + 1,*shades,sizeof(stp_shade_t) * subchannel);
+ memmove(*shades + 1,*shades,sizeof(stp_shade_t) * subchannel);
(*shades)[0].value = ink->density;
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channel: ink->density %.3f\n", ink->density);
(*shades)[0].numsizes = ink->ink->numsizes;
+ /* test for 4-4 inket with 8 levels spaced every 2nd */
+ /*if (ink->ink->bits == 4)
+ (*shades)[0].numsizes = 8;*/
+
(*shades)[0].dot_sizes = ink->ink->dot_sizes;
return 1;
}
@@ -1770,19 +4524,34 @@ static void canon_setup_channels(stp_vars_t *v,canon_privdata_t* privdata){
stp_shade_t* shades = NULL;
int is_black_channel = 0;
channel = channel_order[channel_idx];
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channels: channel %d\n", channel);
if(channel == STP_ECOLOR_K && privdata->used_inks & CANON_INK_K_MASK){ /* black channel */
/* find K and k inks */
for(i=0;i<privdata->mode->num_inks;i++){
const canon_inkset_t* ink = &privdata->mode->inks[i];
- if(ink->channel == primary[channel] || ink->channel == secondary[channel])
+ if(ink->channel == primary[channel] || ink->channel == secondary[channel]) {
subchannel += canon_setup_channel(v,privdata,channel,subchannel,ink,&shades);
+ /* Gernot: add */
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channels: got a black channel\n");
+ }
}
is_black_channel = 1;
+ /* adding cmy channels */
+ /*}else if(channel != STP_ECOLOR_K && privdata->used_inks & (CANON_INK_CMY_MASK | CANON_INK_cmy_MASK)){ */ /* color channels */
}else if(channel != STP_ECOLOR_K && privdata->used_inks & CANON_INK_CMY_MASK){ /* color channels */
for(i=0;i<privdata->mode->num_inks;i++){
const canon_inkset_t* ink = &privdata->mode->inks[i];
- if(ink->channel == primary[channel] || ((privdata->used_inks & CANON_INK_CcMmYyKk_MASK) && (ink->channel == secondary[channel])))
- subchannel += canon_setup_channel(v,privdata,channel,subchannel,ink,&shades);
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channels: loop non-K inks %d\n", i);
+ /*if(ink->channel == primary[channel] || ((privdata->used_inks & (CANON_INK_CcMmYyKk_MASK | CANON_INK_cmy_MASK)) && (ink->channel == secondary[channel]))) {*/
+ if(ink->channel == primary[channel] || ((privdata->used_inks & (CANON_INK_CcMmYyKk_MASK|CANON_INK_CMY_MASK)) && (ink->channel == secondary[channel]))) {
+ /* Gernot: see if this works: use the masks that includes secondary channels */
+ /* if(ink->channel == primary[channel] || ((privdata->used_inks & CANON_INK_CMYKk_MASK ) && (ink->channel == secondary[channel]))) {*/
+ subchannel += canon_setup_channel(v,privdata,channel,subchannel,ink,&shades);
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channels: adding subchannel\n");
+ }
+ else {
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channels: not creating subchannel\n");
+ }
}
}
@@ -1791,6 +4560,7 @@ static void canon_setup_channels(stp_vars_t *v,canon_privdata_t* privdata){
stp_dither_set_inks_full(v,channel, subchannel, shades, 1.0, ink_darkness[channel]);
for(i=0;i<subchannel;i++){
double density = get_double_param(v, primary_density_control[channel]) * get_double_param(v, "Density");
+ stp_dprintf(STP_DBG_CANON, v, "canon_setup_channels: loop subchannels for shades %d\n", i);
if(i > 0 && secondary_density_control[channel])
density *= get_double_param(v, secondary_density_control[channel]);
stp_channel_set_density_adjustment(v,channel,subchannel,density);
@@ -1844,10 +4614,17 @@ static void setup_page(stp_vars_t* v,canon_privdata_t* privdata){
privdata->top = stp_get_top(v);
privdata->left = stp_get_left(v);
- privdata->out_width = stp_get_width(v);
- privdata->out_height = stp_get_height(v);
+ privdata->out_width = stp_get_width(v); /* check Epson: page_true_width */
+ privdata->out_height = stp_get_height(v); /* check Epson: page_true_height */
- internal_imageable_area(v, 0, &page_left, &page_right,
+ stp_deprintf(STP_DBG_CANON,"stp_get_width: privdata->out_width is %i\n",privdata->out_width);
+ stp_deprintf(STP_DBG_CANON,"stp_get_height: privdata->out_height is %i\n",privdata->out_height);
+
+ /* Don't use full bleed mode if the paper itself has a margin */
+ if (privdata->left > 0 || privdata->top > 0)
+ stp_set_boolean_parameter(v, "FullBleed", 0);
+
+ internal_imageable_area(v, 0, 0, &page_left, &page_right,
&page_bottom, &page_top);
if (print_cd) {
privdata->cd_inner_radius = hub_size / 2;
@@ -1858,11 +4635,34 @@ static void setup_page(stp_vars_t* v,canon_privdata_t* privdata){
privdata->page_height = privdata->top + privdata->out_height;
} else {
privdata->left -= page_left;
- privdata->top -= page_top;
- privdata->page_width = page_right - page_left;
- privdata->page_height = page_bottom - page_top;
- }
+ 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);
+ }
}
@@ -1930,27 +4730,40 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
int i;
int status = 1;
const char *media_source = stp_get_string_parameter(v, "InputSlot");
+ const char *ink_type = stp_get_string_parameter(v, "InkType");
const char *duplex_mode =stp_get_string_parameter(v, "Duplex");
int page_number = stp_get_int_parameter(v, "PageNumber");
const canon_cap_t * caps= canon_get_model_capabilities(v);
- int y; /* Looping vars */
+ const canon_modeuselist_t* mlist = caps->modeuselist;
+#if 0
+ const canon_modeuse_t* muse;
+#endif
+ /* int monocheck = 0;
+ int colcheck = 0; */
+ int x,y; /* Looping vars */
canon_privdata_t privdata;
int errdiv, /* Error dividend */
errmod, /* Error modulus */
errval, /* Current error value */
errline, /* Current raster line */
- errlast, /* Last raster line loaded */
+ errlast; /* Last raster line loaded */
+#if 0
out_channels; /* Output bytes per pixel */
+#endif
unsigned zero_mask;
int print_cd= (media_source && (!strcmp(media_source, "CD")));
- int image_height,
- image_width;
+ int image_height;
+#if 0
+ int image_width;
+#endif
double k_upper, k_lower;
unsigned char *cd_mask = NULL;
double outer_r_sq = 0;
double inner_r_sq = 0;
unsigned char* weave_cols[4] ; /* TODO clean up weaving code to be more generic */
+ stp_dprintf(STP_DBG_CANON, v, "Entering canon_do_print\n");
+
if (!stp_verify(v))
{
stp_eprintf(v, "Print options not verified; cannot print.\n");
@@ -1970,37 +4783,142 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
memset(&privdata,0,sizeof(canon_privdata_t));
privdata.caps = caps;
- /* find the wanted print mode */
+ /* find the wanted media type */
+ /* - media type has priority
+ - then we select source
+ - then inkset (cartridge selection)
+ - then we select duplex
+ - after that we compare if mode is compatible with media
+ - if not, we replace it using closest quality setting
+ - then we decide on printhead colors based on actual mode to use
+ */
+
+ privdata.pt = get_media_type(caps,stp_get_string_parameter(v, "MediaType"));
+ privdata.slot = canon_source_type(media_source,caps);
+
+ /* --- make adjustment to InkSet based on Media --- */
+
+ /* cartridge selection if any: default is Both---but should change to NULL if CANON_CAP_T is not available */
+ /* check if InkSet chosen is possible for this Media */
+ /* - if Black, check if modes for selected media have a black flag */
+ /* else, set InkSet to "Both" for now */
+
+ /* scroll through modeuse list to find media */
+ for(i=0;i<mlist->count;i++){
+ if(!strcmp(privdata.pt->name,mlist->modeuses[i].name)){
+#if 0
+ muse = &mlist->modeuses[i];
+#endif
+ break;
+ }
+ }
+
+ if ( !strcmp(stp_get_string_parameter(v, "InkSet"),"Black")) {
+ /* check if there is any mode for that media with K-only inktype */
+ /* if not, change it to "Both" */
+ /* NOTE: User cannot force monochrome printing here, since that would require changing the Color Model */
+ if (!(mlist->modeuses[i].use_flags & INKSET_BLACK_SUPPORT)) {
+ stp_set_string_parameter(v, "InkSet", "Both");
+ }
+ }
+ /* Color-only */
+ else if ( !strcmp(stp_get_string_parameter(v, "InkSet"),"Color") && (caps->features & CANON_CAP_T) ) {
+ /* check if there is any mode for that media with no K in the inkset at all */
+ /* if not, change it to "Both" */
+ if (!(mlist->modeuses[i].use_flags & INKSET_COLOR_SUPPORT)) {
+ stp_set_string_parameter(v, "InkSet", "Both");
+ }
+ }
+ /* no restriction for "Both" (non-BJC) or "Color" (BJC) or "Photo" yet */
+
+ /* get InkSet after adjustment */
+ privdata.ink_set = stp_get_string_parameter(v, "InkSet");
+
+ /* --- no current restrictions for Duplex setting --- */
+
+ /* in particular, we do not constraint duplex printing to certain media */
+ privdata.duplex_str = duplex_mode;
+
+ /* --- make adjustment to InkType to comply with InkSet --- */
+
+ /* although InSet adjustment is pre-supposed, even if InkSet is not
+ adjusted, the InkType adjustment will be validated against mode
+ later */
+ if (!strcmp(privdata.ink_set,"Black")) {
+ if (strcmp(ink_type,"Gray")) {/* if ink_type is NOT set to Gray yet */
+ stp_dprintf(STP_DBG_CANON, v, "canon_do_print: InkSet Black, so InkType set to Gray\n");
+ stp_set_string_parameter(v, "InkType", "Gray");
+ }
+ } /* Color-only */
+ else if ( !strcmp(privdata.ink_set,"Color") && (caps->features & CANON_CAP_T) ) {
+ if (strcmp(ink_type,"RGB")) {/* if ink_type is NOT set to RGB (CMY) yet */
+ stp_dprintf(STP_DBG_CANON, v, "canon_do_print: InkSet Color, so InkType changed to RGB (CMY)\n");
+ stp_set_string_parameter(v, "InkType", "RGB");
+ }
+ } /* no restriction for InkSet set to "Both" or "Photo" */
+
+ /* --- 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);
+ if(!privdata.mode) {
+ privdata.mode = &caps->modelist->modes[caps->modelist->default_mode];
+ }
+
+ /* 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");
+
+ privdata.mode = canon_check_current_mode(v);
+
+ /* --- completed all adjustments: options should be consistent --- */
+
/* set quality */
privdata.quality = privdata.mode->quality;
+
/* force grayscale if image is grayscale
* or single black cartridge installed
*/
privdata.used_inks = canon_printhead_colors(v);
if (privdata.used_inks == CANON_INK_K)
stp_set_string_parameter(v, "PrintingMode", "BW");
+ else
+ stp_set_string_parameter(v, "PrintingMode", "Color");
setup_page(v,&privdata);
image_height = stp_image_height(image);
+
+#if 0
image_width = stp_image_width(image);
+#endif
- privdata.pt = get_media_type(caps,stp_get_string_parameter(v, "MediaType"));
- privdata.slot = canon_source_type(media_source,caps);
- privdata.duplex_str = duplex_mode;
privdata.is_first_page = (page_number == 0);
/*
* Convert image size to printer resolution...
*/
+#if 0
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: unused image_width is %i pts(?)\n",image_width);
+#endif
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.out_width is %i pts\n",privdata.out_width);
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.out_height is %i pts\n",privdata.out_height);
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.left is %i pts\n",privdata.left);
privdata.out_width = privdata.mode->xdpi * privdata.out_width / 72;
privdata.out_height = privdata.mode->ydpi * privdata.out_height / 72;
+ privdata.left = privdata.mode->xdpi * privdata.left / 72;
- privdata.left = privdata.mode->xdpi * privdata.left / 72;
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.out_width is %i dots\n",privdata.out_width);
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.out_height is %i dots\n",privdata.out_height);
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.left is %i dots\n",privdata.left);
stp_deprintf(STP_DBG_CANON,"density is %f\n",
stp_get_float_parameter(v, "Density"));
@@ -2033,22 +4951,37 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
stp_set_string_parameter(v, "STPIOutputType", "KCMY");
else if(privdata.used_inks & CANON_INK_CMY_MASK)
stp_set_string_parameter(v, "STPIOutputType", "CMY");
+ /* Gernot: addition */
+ /*else if(privdata.used_inks & CANON_INK_cmy_MASK)
+ stp_set_string_parameter(v, "STPIOutputType", "cmy");*/
else
stp_set_string_parameter(v, "STPIOutputType", "Grayscale");
privdata.length = (privdata.out_width + 7) / 8;
+ stp_deprintf(STP_DBG_CANON,"privdata.length is %i\n",privdata.length);
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.num_channels is %i\n",privdata.num_channels);
+
stp_dither_init(v, image, privdata.out_width, privdata.mode->xdpi, privdata.mode->ydpi);
+
+ stp_deprintf(STP_DBG_CANON,"privdata.out_width is %i (after stp_dither_init)\n",privdata.out_width);
+ stp_deprintf(STP_DBG_CANON,"privdata.length is %i (after stp_dither_init)\n",privdata.length);
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.num_channels is %i (after stp_dither_init)\n",privdata.num_channels);
+
canon_setup_channels(v,&privdata);
+ stp_deprintf(STP_DBG_CANON,"privdata.out_width is %i (after canon_setup_channels)\n",privdata.out_width);
+ stp_deprintf(STP_DBG_CANON,"privdata.length is %i (after canon_setup_channels)\n",privdata.length);
+ stp_deprintf(STP_DBG_CANON,"canon_do_print: privdata.num_channels is %i (after canon_setup_channels)\n",privdata.num_channels);
stp_deprintf(STP_DBG_CANON,
"canon: driver will use colors %s\n",privdata.channel_order);
/* Allocate compression buffer */
if(caps->features & CANON_CAP_I)
- privdata.comp_buf = stp_zalloc(privdata.buf_length_max * 2 * caps->raster_lines_per_block * privdata.num_channels); /* for multiraster we need to buffer 8 lines for every color */
+ /*privdata.comp_buf = stp_zalloc(privdata.buf_length_max * 2 * caps->raster_lines_per_block * privdata.num_channels); */
+ privdata.comp_buf = stp_zalloc(privdata.buf_length_max * 2 * privdata.mode->raster_lines_per_block * privdata.num_channels); /* for multiraster we need to buffer 8 lines for every color */
else
privdata.comp_buf = stp_zalloc(privdata.buf_length_max * 2);
/* Allocate fold buffer */
@@ -2096,7 +5029,7 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
privdata.ncolors = 4;
privdata.head_offset = stp_zalloc(sizeof(int) * privdata.ncolors);
- memset(privdata.head_offset, 0, sizeof(privdata.head_offset));
+ memset(privdata.head_offset, 0, sizeof(*privdata.head_offset));
if ( privdata.used_inks == CANON_INK_K )
privdata.nozzles = 64; /* black nozzles */
@@ -2121,6 +5054,7 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
}
else /* colormode == CMY */
{
+ privdata.ncolors = 3;
privdata.head_offset[0] = 0; /* K starts at 0 */
privdata.head_offset[1] = 0 ;/* how far C starts after K */
privdata.head_offset[2] = 64;/* how far M starts after K */
@@ -2163,13 +5097,30 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
stp_compute_uncompressed_linewidth);
privdata.last_pass_offset = 0;
+ if (ERRPRINT) {
+ for(x=0;x<4;x++){
+ stp_eprintf(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",
+ x, (unsigned int)privdata.channel_order[x]);
+ }
+ }
+
+ for(i=0;i<4;i++){/* need all 4 channels for weave_cols, but not for privdata.num_channels! */
+ /* see if it helps to initialize to zero */
+ weave_cols[i] = 0;
+ privdata.weave_bits[i] = 0;
- for(i=0;i<4;i++){
- int x;
for(x=0;x<privdata.num_channels;x++){
- 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(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",
+ i, x);
+ }
}
}
}
@@ -2186,7 +5137,10 @@ canon_do_print(stp_vars_t *v, stp_image_t *image)
canon_set_curve_parameter(v,"LumMap",STP_CURVE_COMPOSE_MULTIPLY,caps->lum_adjustment,privdata.pt->lum_adjustment,privdata.mode->lum_adjustment);
canon_set_curve_parameter(v,"SatMap",STP_CURVE_COMPOSE_MULTIPLY,caps->sat_adjustment,privdata.pt->sat_adjustment,privdata.mode->sat_adjustment);
+#if 0
out_channels = stp_color_init(v, image, 65536);
+#endif
+ (void) stp_color_init(v, image, 65536);
stp_allocate_component_data(v, "Driver", NULL, NULL, &privdata);
privdata.emptylines = 0;
@@ -2325,7 +5279,7 @@ static const stp_printfuncs_t print_canon_printfuncs =
canon_parameters,
stp_default_media_size,
canon_imageable_area,
- canon_imageable_area,
+ canon_maximum_imageable_area,
canon_limit,
canon_print,
canon_describe_resolution,
@@ -2358,21 +5312,22 @@ static int canon_compress(stp_vars_t *v, canon_privdata_t *pd, unsigned char* li
int offset2,bitoffset;
/* Don't send blank lines... */
-
+
if (line[0] == 0 && memcmp(line, line + 1, (length * bits) - 1) == 0)
return 0;
-
+
+ /* if no modulation: 1 bit per pixel */
+
offset2 = offset / 8;
bitoffset = offset % 8;
-
+
/* fold lsb/msb pairs if drop modulation is active */
-
-
+
if (bits==2) {
int pixels_per_byte = 4;
if(ink_flags & INK_FLAG_5pixel_in_1byte)
pixels_per_byte = 5;
-
+
stp_fold(line,length,pd->fold_buf);
in_ptr= pd->fold_buf;
length= (length*8/4); /* 4 pixels in 8bit */
@@ -2402,10 +5357,18 @@ static int canon_compress(stp_vars_t *v, canon_privdata_t *pd, unsigned char* li
offset2 = offset / 2;
bitoffset= offset % 2;
}
+ else if (bits==8) {
+ stp_fold_8bit(line,length,pd->fold_buf);
+ in_ptr= pd->fold_buf;
+ length = length*8; /* 1 pixel per 8 bits */
+ offset2 = offset;
+ bitoffset = 0;
+ }
/* pack left border rounded to multiples of 8 dots */
comp_data= comp_buf;
+
while (offset2>0) {
unsigned char toffset = offset2 > 127 ? 127 : offset2;
comp_data[0] = 1 - toffset;
@@ -2415,25 +5378,25 @@ static int canon_compress(stp_vars_t *v, canon_privdata_t *pd, unsigned char* li
}
if (bitoffset) {
if (bitoffset<8)
- {
- in_ptr[ length++ ] = 0;
- canon_shift_buffer(in_ptr,length,bitoffset);
- }
+ {
+ in_ptr[ length++ ] = 0;
+ canon_shift_buffer(in_ptr,length,bitoffset);
+ }
else if (bitoffset == 8)
- {
- memmove(in_ptr + 1,in_ptr,length++);
- in_ptr[0] = 0;
- }
+ {
+ memmove(in_ptr + 1,in_ptr,length++);
+ in_ptr[0] = 0;
+ }
else
stp_deprintf(STP_DBG_CANON,"SEVERE BUG IN print-canon.c::canon_write() "
- "bitoffset=%d!!\n",bitoffset);
+ "bitoffset=%d!!\n",bitoffset);
}
-
- if(ink_flags & INK_FLAG_5pixel_in_1byte)
- length = pack_pixels(in_ptr,length);
-
+
+ if(ink_flags & INK_FLAG_5pixel_in_1byte)
+ length = pack_pixels(in_ptr,length);
+
stp_pack_tiff(v, in_ptr, length, comp_data, &comp_ptr, NULL, NULL);
-
+
return comp_ptr - comp_buf;
}
@@ -2497,7 +5460,7 @@ canon_write_line(stp_vars_t *v)
/* TODO optimize => move reorder code to do_print */
for(x=0;x < pd->num_channels; x++){
- if(pd->channels[x].name == write_sequence[i]){
+ if(pd->channels[x].name == write_sequence[i]){
channel = &(pd->channels[x]);
break;
}
@@ -2530,7 +5493,8 @@ static void canon_write_block(stp_vars_t* v,canon_privdata_t* pd,unsigned char*
static void canon_write_multiraster(stp_vars_t *v,canon_privdata_t* pd,int y){
int i;
- int raster_lines_per_block = pd->caps->raster_lines_per_block;
+ /*int raster_lines_per_block = pd->caps->raster_lines_per_block;*/
+ int raster_lines_per_block = pd->mode->raster_lines_per_block;
unsigned int max_length = 2*pd->buf_length_max * raster_lines_per_block;
/* a new raster block begins */
if(!(y % raster_lines_per_block)){
diff --git a/src/main/print-canon.h b/src/main/print-canon.h
index 26607ed..3baeb2c 100644
--- a/src/main/print-canon.h
+++ b/src/main/print-canon.h
@@ -35,13 +35,21 @@
#define CANON_INK_K 1
#define CANON_INK_CMY 2
#define CANON_INK_CMYK 4
-#define CANON_INK_CcMmYK 8
-#define CANON_INK_CcMmYyK 16
+#define CANON_INK_CMYKk 8
+#define CANON_INK_CcMmYK 16
+#define CANON_INK_CcMmYKk 32
+#define CANON_INK_CcMmYyK 64
+#define CANON_INK_CcMmYyKk 128
+#define CANON_INK_cmy 256
+#define CANON_INK_CcMmYy 512
-#define CANON_INK_CcMmYyKk_MASK (CANON_INK_CcMmYK|CANON_INK_CcMmYyK) /* Ink is CcMmYyKk */
-#define CANON_INK_CMYK_MASK (CANON_INK_CMYK|CANON_INK_CcMmYyKk_MASK) /* Ink is CMYK */
-#define CANON_INK_CMY_MASK (CANON_INK_CMY|CANON_INK_CMYK_MASK) /* Ink is CMY */
-#define CANON_INK_K_MASK (CANON_INK_K|CANON_INK_CMYK_MASK) /* Ink is K */
+#define CANON_INK_CcMmYyKk_MASK (CANON_INK_CcMmYK|CANON_INK_CcMmYKk|CANON_INK_CcMmYyK|CANON_INK_CcMmYyKk) /* Ink is CcMmYyKk */
+#define CANON_INK_CMYKk_MASK (CANON_INK_CMYKk|CANON_INK_CcMmYyKk_MASK) /* Ink is CMYKk */
+#define CANON_INK_CMYK_MASK (CANON_INK_CMYK|CANON_INK_CMYKk_MASK) /* Ink is CMYK */
+#define CANON_INK_CMY_MASK (CANON_INK_CMY|CANON_INK_CMYK_MASK|CANON_INK_CcMmYy|CANON_INK_cmy) /* Ink is CMY --- or CMYcmy */
+#define CANON_INK_K_MASK (CANON_INK_K|CANON_INK_CMYK_MASK) /* Ink is K */
+/* completely different inks */
+/*#define CANON_INK_cmy_MASK (CANON_INK_cmy) */ /* Ink is cmy */
@@ -55,8 +63,11 @@ static struct canon_inktype_s {
const char* name;
const char* text;
} canon_inktypes[] = {
+ {CANON_INK_CcMmYyKk,8,"PhotoCMYKk","Photo CcMmYyKk Color"}, /* Gernot: inserted */
{CANON_INK_CcMmYyK,7,"PhotoCMYK","Photo CcMmYyK Color"},
+ {CANON_INK_CcMmYKk,7,"PhotoCMYKk","Photo CcMmYKk Color"}, /* Gernot: inserted */
{CANON_INK_CcMmYK,6,"PhotoCMY", "Photo CcMmYK Color"},
+ {CANON_INK_CMYKk,5,"CMYKk","CMYKk Color"}, /* Gernot: inserted */
{CANON_INK_CMYK,4,"CMYK","CMYK Color"},
{CANON_INK_CMY,3,"RGB","CMY Color"},
{CANON_INK_K,1,"Gray","Black"}
diff --git a/src/main/print-color.c b/src/main/print-color.c
index e663420..e7d5f4f 100644
--- a/src/main/print-color.c
+++ b/src/main/print-color.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-color.c,v 1.143 2011/03/08 13:03:05 rlk Exp $"
+ * "$Id: print-color.c,v 1.145 2012/01/19 13:25:40 m0m Exp $"
*
* Gutenprint color management module - traditional Gutenprint algorithm.
*
@@ -831,7 +831,7 @@ compute_gcr_curve(const stp_vars_t *vars)
}
curve = stp_curve_create(STP_CURVE_WRAP_NONE);
stp_curve_set_bounds(curve, 0, 65535);
- STPI_ASSERT(stp_curve_set_data(curve, lut->steps, tmp_data), v);
+ STPI_ASSERT(stp_curve_set_data(curve, lut->steps, tmp_data), vars);
stp_free(tmp_data);
return curve;
}
@@ -1575,7 +1575,7 @@ stpi_color_traditional_describe_parameter(const stp_vars_t *v,
description->is_active = 1;
else
description->is_active = 0;
- if (param->color_only &&
+ if (param->color_only && color_description &&
!(color_description->channels & ~CMASK_K))
description->is_active = 0;
}
@@ -1698,7 +1698,7 @@ stpi_color_traditional_describe_parameter(const stp_vars_t *v,
description->is_active = 1;
else
description->is_active = 0;
- if (param->color_only &&
+ if (param->color_only && color_description &&
!(color_description->channels & ~CMASK_K))
description->is_active = 0;
}
diff --git a/src/main/print-escp2.c b/src/main/print-escp2.c
index 2fd9083..3c95d8e 100644
--- a/src/main/print-escp2.c
+++ b/src/main/print-escp2.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-escp2.c,v 1.433 2010/12/11 22:04:07 rlk Exp $"
+ * "$Id: print-escp2.c,v 1.438 2012/01/19 13:26:28 m0m Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -899,6 +899,14 @@ static const float_param_t float_parameters[] =
},
{
{
+ "SubchannelCutoff", N_("Subchannel Cutoff"), "Color=Yes,Category=Advanced Output Control",
+ N_("Upper limit for using light ink"),
+ STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT,
+ STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0
+ }, 0.0, 1.0, 1.0, 1
+ },
+ {
+ {
"PageDryTime", N_("Drying Time Per Page"), "Color=No,Category=Advanced Printer Functionality",
N_("Set drying time per page"),
STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_FEATURE,
@@ -1673,15 +1681,18 @@ get_inktype(const stp_vars_t *v)
* This may mean duplicate work, but that's cheap enough.
*/
ink_type = get_default_inktype(v);
- for (i = 0; i < ink_list->n_inks; i++)
+ if (ink_type && ink_list)
{
- if (strcmp(ink_type, ink_list->inknames[i].name) == 0)
- return &(ink_list->inknames[i]);
+ for (i = 0; i < ink_list->n_inks; i++)
+ {
+ if (strcmp(ink_type, ink_list->inknames[i].name) == 0)
+ return &(ink_list->inknames[i]);
+ }
}
/*
* If even *that* doesn't work, try using the first ink type on the list.
*/
- return &(ink_list->inknames[0]);
+ return (ink_list) ? &(ink_list->inknames[0]) : NULL;
}
static const inkname_t *
@@ -2160,6 +2171,8 @@ escp2_parameters(const stp_vars_t *v, const char *name,
if (name == NULL)
return;
+ memset(&description->deflt, 0, sizeof(description->deflt));
+
for (i = 0; i < float_parameter_count; i++)
if (strcmp(name, float_parameters[i].param.name) == 0)
{
@@ -2194,7 +2207,6 @@ escp2_parameters(const stp_vars_t *v, const char *name,
break;
}
- description->deflt.str = NULL;
if (strcmp(name, "AutoMode") == 0)
{
description->bounds.str = stp_string_list_create();
@@ -2366,14 +2378,11 @@ escp2_parameters(const stp_vars_t *v, const char *name,
description->bounds.str = stp_string_list_create();
if (ninklists > 1)
{
- int has_default_choice = 0;
for (i = 0; i < ninklists; i++)
{
stp_string_list_add_string(description->bounds.str,
inks->inklists[i].name,
gettext(inks->inklists[i].text));
- if (strcmp(inks->inklists[i].name, "None") == 0)
- has_default_choice = 1;
}
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
@@ -3363,7 +3372,6 @@ setup_inks(stp_vars_t *v)
escp2_dropsize_t *drops;
const inkname_t *ink_type = pd->inkname;
const stp_vars_t *pv = pd->paper_type->v;
- int gloss_channel = -1;
double gloss_scale = get_double_param(v, "Density");
drops = escp2_copy_dropsizes(v);
@@ -3409,7 +3417,6 @@ setup_inks(stp_vars_t *v)
else if (strcmp(param, "GlossDensity") == 0)
{
gloss_scale *= get_double_param(v, param);
- gloss_channel = i;
}
}
for (j = 0; j < channel->n_subchannels; j++)
@@ -4301,7 +4308,6 @@ escp2_print_page(stp_vars_t *v, stp_image_t *image)
{
int status;
escp2_privdata_t *pd = get_privdata(v);
- int out_channels; /* Output bytes per pixel */
int line_width = (pd->image_printed_width + 7) / 8 * pd->bitwidth;
int weave_pattern = STP_WEAVE_ZIGZAG;
if (stp_check_string_parameter(v, "Weave", STP_PARAMETER_ACTIVE))
@@ -4351,7 +4357,7 @@ escp2_print_page(stp_vars_t *v, stp_image_t *image)
pd->res->printed_vres);
allocate_channels(v, line_width);
adjust_print_quality(v);
- out_channels = stp_color_init(v, image, 65536);
+ (void) stp_color_init(v, image, 65536);
/* stpi_dither_set_expansion(v, pd->res->hres / pd->res->printed_hres); */
@@ -4396,7 +4402,7 @@ escp2_do_print(stp_vars_t *v, stp_image_t *image, int print_op)
stp_allocate_component_data(v, "Driver", NULL, NULL, pd);
pd->inkname = get_inktype(v);
- if (pd->inkname->inkset != INKSET_EXTENDED &&
+ if (pd->inkname && pd->inkname->inkset != INKSET_EXTENDED &&
stp_check_boolean_parameter(v, "UseGloss", STP_PARAMETER_ACTIVE) &&
stp_get_boolean_parameter(v, "UseGloss"))
pd->use_aux_channels = 1;
diff --git a/src/main/print-lexmark.c b/src/main/print-lexmark.c
index b92242e..e43d9b4 100644
--- a/src/main/print-lexmark.c
+++ b/src/main/print-lexmark.c
@@ -1,6 +1,6 @@
/*
- * "$Id: print-lexmark.c,v 1.160 2010/12/05 21:38:14 rlk Exp $"
+ * "$Id: print-lexmark.c,v 1.161 2012/01/19 13:25:51 m0m Exp $"
*
* Print plug-in Lexmark driver for the GIMP.
*
@@ -1409,6 +1409,8 @@ lexmark_init_printer(const stp_vars_t *v, const lexmark_cap_t * caps,
#ifdef DEBUG
lex_write_tmp_file(dbgfileprn, (void *)startHeader_z52, LXM_Z52_STARTSIZE);
#endif
+ break;
+
case m_z42:
stp_zfwrite((const char *) startHeader_z42,
LXM_Z42_STARTSIZE,1,v);
diff --git a/src/main/print-list.c b/src/main/print-list.c
index 64ddf8e..16c24bc 100644
--- a/src/main/print-list.c
+++ b/src/main/print-list.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-list.c,v 1.25 2010/08/04 00:33:57 rlk Exp $"
+ * "$Id: print-list.c,v 1.26 2012/01/19 13:25:40 m0m Exp $"
*
* Gutenprint list functions. A doubly-linked list implementation,
* with callbacks for freeing, sorting, and retrieving nodes by name
@@ -346,10 +346,10 @@ stp_list_get_item_by_name(const stp_list_t *list, const char *name)
stp_list_t *ulist = deconst_list(list);
check_list(list);
- if (!list->namefunc)
+ if (!list->namefunc || !name)
return NULL;
- if (list->name_cache && name && list->name_cache_node)
+ if (list->name_cache && list->name_cache_node)
{
const char *new_name;
node = list->name_cache_node;
@@ -420,10 +420,10 @@ stp_list_get_item_by_long_name(const stp_list_t *list, const char *long_name)
stp_list_t *ulist = deconst_list(list);
check_list(list);
- if (!list->long_namefunc)
+ if (!list->long_namefunc || !long_name)
return NULL;
- if (list->long_name_cache && long_name && list->long_name_cache_node)
+ if (list->long_name_cache && list->long_name_cache_node)
{
const char *new_long_name;
node = list->long_name_cache_node;
diff --git a/src/main/print-olympus.c b/src/main/print-olympus.c
index 6b6b747..a98fea4 100644
--- a/src/main/print-olympus.c
+++ b/src/main/print-olympus.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-olympus.c,v 1.97 2010/12/05 21:38:15 rlk Exp $"
+ * "$Id: print-olympus.c,v 1.99 2011/07/06 23:16:23 gernot2270 Exp $"
*
* Print plug-in DyeSub driver (formerly Olympus driver) for the GIMP.
*
@@ -771,7 +771,7 @@ static void cpx00_printer_init_func(stp_vars_t *v)
(strcmp(privdata.pagesize, "w155h244") == 0 ?
(strcmp(stp_get_driver(v),"canon-cp10") == 0 ?
'\0' : '\3' ) :
- (strcmp(privdata.pagesize, "w283h566") == 0 ? '\4' :
+ (strcmp(privdata.pagesize, "w283h566") == 0 ? '\4' :
'\1' ))));
stp_put16_be(0x4000, v);
@@ -783,7 +783,8 @@ static void cpx00_printer_init_func(stp_vars_t *v)
static void cpx00_plane_init_func(stp_vars_t *v)
{
stp_put16_be(0x4001, v);
- stp_put16_le(3 - privdata.plane, v);
+ stp_putc(3 - privdata.plane, v);
+ stp_putc('\0', v);
stp_put32_le(privdata.w_size * privdata.h_size, v);
dyesub_nputc(v, '\0', 4);
}
@@ -851,53 +852,40 @@ 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)
{
- char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? '\1' :
- (strcmp(privdata.pagesize, "w253h337") == 0 ? '\2' :
- (strcmp(privdata.pagesize, "w155h244") == 0 ? '\3' :
- (strcmp(privdata.pagesize, "w283h566") == 0 ? '\4' :
- '\1' ))));
-
- stp_put16_be(0x4000, v);
- stp_putc('\0', v);
- stp_putc(pg, v);
- dyesub_nputc(v, '\0', 8);
+ 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);
}
-static void cp520_plane_init_func(stp_vars_t *v)
+/* Canon SELPHY CP-790 */
+static void cp790_printer_init_func(stp_vars_t *v)
{
- stp_put16_be(0x4001, v);
- stp_putc(3 - privdata.plane, v); /* The CP520 differs from the cp-printer
- in that it reqires the plane in the 3rd
- byte not in the 4th */
+ char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? '\0' :
+ (strcmp(privdata.pagesize, "w253h337") == 0 ? '\1' :
+ (strcmp(privdata.pagesize, "w155h244") == 0 ? '\2' :
+ (strcmp(privdata.pagesize, "w283h566") == 0 ? '\3' :
+ '\0' ))));
+
+ stp_put16_be(0x4000, v);
+ stp_putc(pg, v);
stp_putc('\0', v);
+ dyesub_nputc(v, '\0', 8);
stp_put32_le(privdata.w_size * privdata.h_size, v);
- dyesub_nputc(v, '\0', 4);
}
-
/* Canon SELPHY ES series */
static void es1_printer_init_func(stp_vars_t *v)
{
char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? 0x11 :
- (strcmp(privdata.pagesize, "w253h337") == 0 ? '\2' :
- (strcmp(privdata.pagesize, "w155h244") == 0 ? '\3' : 0x11 )));
-
- /*
- differs from cp-220 in that after the 0x4000, the next character
- seems to be 0x01 instead of 0x00, and the P card size code is
- '0x11' instead of '0x1'
- codes for other paper types are unknown.
- */
+ (strcmp(privdata.pagesize, "w253h337") == 0 ? 0x12 :
+ (strcmp(privdata.pagesize, "w155h244") == 0 ? 0x13 : 0x11)));
stp_put16_be(0x4000, v);
- stp_putc(0x10, v);
+ stp_putc(0x10, v); /* 0x20 for P-BW */
stp_putc(pg, v);
dyesub_nputc(v, '\0', 8);
}
@@ -919,12 +907,80 @@ static void es1_plane_init_func(stp_vars_t *v)
}
stp_put16_be(0x4001, v);
- stp_putc(0x1, v);
+ stp_putc(0x1, v); /* 0x02 for P-BW */
stp_putc(plane, v);
stp_put32_le(privdata.w_size * privdata.h_size, v);
dyesub_nputc(v, '\0', 4);
}
+static void es2_printer_init_func(stp_vars_t *v)
+{
+ char pg2 = 0x0;
+ char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? 0x1:
+ (strcmp(privdata.pagesize, "w253h337") == 0 ? 0x2 :
+ (strcmp(privdata.pagesize, "w155h244") == 0 ? 0x3 : 0x1)));
+
+ if (pg == 0x03)
+ pg2 = 0x01;
+
+ stp_put16_be(0x4000, v);
+ stp_putc(pg, v);
+ stp_putc(0x0, v);
+
+ stp_putc(0x2, v);
+ dyesub_nputc(v, 0x0, 2);
+ stp_putc(0x0, v); /* 0x1 for P-BW */
+
+ dyesub_nputc(v, 0x0, 3);
+ stp_putc(pg2, v);
+ stp_put32_le(privdata.w_size * privdata.h_size, v);
+}
+
+static void es2_plane_init_func(stp_vars_t *v)
+{
+ stp_put16_be(0x4001, v);
+ stp_putc(4 - privdata.plane, v);
+ stp_putc(0x0, v);
+ dyesub_nputc(v, '\0', 8);
+}
+
+static void es3_printer_init_func(stp_vars_t *v)
+{
+ char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? 0x1:
+ (strcmp(privdata.pagesize, "w253h337") == 0 ? 0x2 :
+ (strcmp(privdata.pagesize, "w155h244") == 0 ? 0x3 : 0x1)));
+
+ /* We also have Pg and Ps (Gold/Silver) papers on the ES3/30/40 */
+
+ stp_put16_be(0x4000, v);
+ stp_putc(pg, v);
+ stp_putc(0x0, v); /* 0x1 for P-BW */
+ dyesub_nputc(v, 0x0, 8);
+ stp_put32_le(privdata.w_size * privdata.h_size, v);
+}
+
+static void es3_printer_end_func(stp_vars_t *v)
+{
+ stp_put16_be(0x4020, v);
+ dyesub_nputc(v, 0x0, 10);
+}
+
+static void es40_printer_init_func(stp_vars_t *v)
+{
+ char pg = (strcmp(privdata.pagesize, "Postcard") == 0 ? 0x0:
+ (strcmp(privdata.pagesize, "w253h337") == 0 ? 0x1 :
+ (strcmp(privdata.pagesize, "w155h244") == 0 ? 0x2 : 0x0)));
+
+ /* We also have Pg and Ps (Gold/Silver) papers on the ES3/30/40 */
+
+ stp_put16_be(0x4000, v);
+ stp_putc(pg, v);
+ stp_putc(0x0, v); /* 0x1 for P-BW */
+ dyesub_nputc(v, 0x0, 8);
+
+ stp_put32_le(privdata.w_size * privdata.h_size, v);
+}
+
/* Sony DPP-EX5, DPP-EX7 */
static const dyesub_resolution_t res_403dpi[] =
{
@@ -1646,7 +1702,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
},
{ /* 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-740, SELPHY CP-750 */
+ SELPHY CP-760, SELPHY CP-770, SELPHY CP-780 */
1001,
&ymc_ink_list,
&res_300dpi_list,
@@ -1662,7 +1718,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
NULL,
},
- { /* Canon CP-520, SELPHY CP-530 */
+ { /* Canon CP-520, SELPHY CP-530, SELPHY CP-740, SELPHY CP-750 */
1004,
&ymc_ink_list,
&res_300dpi_list,
@@ -1673,12 +1729,12 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
| DYESUB_FEATURE_BORDERLESS | DYESUB_FEATURE_WHITE_BORDER
| DYESUB_FEATURE_PLANE_INTERLACE,
&cp520_printer_init_func, NULL,
- &cp520_plane_init_func, NULL,
+ &cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
NULL,
},
- { /* Canon SELPHY ES1, ES2, ES20 (!experimental) */
+ { /* Canon SELPHY ES1 (!experimental) */
1003,
&ymc_ink_list,
&res_300dpi_list,
@@ -1694,6 +1750,87 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
NULL,
},
+ { /* Canon SELPHY ES2, ES20 (!experimental) */
+ 1005,
+ &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 | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &es2_printer_init_func, NULL,
+ &es2_plane_init_func, NULL,
+ NULL, NULL,
+ cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
+ NULL,
+ },
+ { /* Canon SELPHY ES3, ES30 (!experimental) */
+ 1006,
+ &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 | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &es3_printer_init_func, &es3_printer_end_func,
+ &es2_plane_init_func, NULL,
+ NULL, NULL,
+ cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
+ NULL,
+ },
+ { /* Canon SELPHY ES40 (!experimental) */
+ 1007,
+ &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 | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &es40_printer_init_func, &es3_printer_end_func,
+ &es2_plane_init_func, NULL,
+ NULL, NULL,
+ cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
+ NULL,
+ },
+ { /* Canon SELPHY CP790 (!experimental) */
+ 1008,
+ &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,
+ &cp790_printer_init_func, &es3_printer_end_func,
+ &es2_plane_init_func, NULL,
+ NULL, NULL,
+ cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
+ NULL,
+ },
+ { /* Canon SELPHY CP-800 */
+ 1009,
+ &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 | 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,
+ },
+
{ /* Sony DPP-EX5, DPP-EX7 */
2002,
&rgb_ink_list,
diff --git a/src/main/print-papers.c b/src/main/print-papers.c
index 48ae5f8..ed1438a 100644
--- a/src/main/print-papers.c
+++ b/src/main/print-papers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-papers.c,v 1.41 2008/07/13 18:05:16 rlk Exp $"
+ * "$Id: print-papers.c,v 1.42 2011/12/22 03:07:45 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -284,10 +284,6 @@ stp_xml_process_paper(stp_mxml_node_t *paper) /* The paper node */
name = 0, /* Check name is present */
height = 0, /* Check height is present */
width = 0, /* Check width is present */
- left = 0, /* Check left is present */
- right = 0, /* Check right is present */
- bottom = 0, /* Check bottom is present */
- top = 0, /* Check top is present */
unit = 0; /* Check unit is present */
if (stp_get_debug_level() & STP_DBG_XML)
@@ -346,25 +342,21 @@ stp_xml_process_paper(stp_mxml_node_t *paper) /* The paper node */
{
stmp = stp_mxmlElementGetAttr(prop, "value");
outpaper->left = stp_xmlstrtoul(stmp);
- left = 1;
}
if (!strcmp(prop_name, "right"))
{
stmp = stp_mxmlElementGetAttr(prop, "value");
outpaper->right = stp_xmlstrtoul(stmp);
- right = 1;
}
if (!strcmp(prop_name, "bottom"))
{
stmp = stp_mxmlElementGetAttr(prop, "value");
outpaper->bottom = stp_xmlstrtoul(stmp);
- bottom = 1;
}
if (!strcmp(prop_name, "top"))
{
stmp = stp_mxmlElementGetAttr(prop, "value");
outpaper->top = stp_xmlstrtoul(stmp);
- top = 1;
}
if (!strcmp(prop_name, "unit"))
{
diff --git a/src/main/print-ps.c b/src/main/print-ps.c
index 298a976..d969596 100644
--- a/src/main/print-ps.c
+++ b/src/main/print-ps.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-ps.c,v 1.104 2011/03/04 13:05:08 rlk Exp $"
+ * "$Id: print-ps.c,v 1.105 2012/01/19 13:25:40 m0m Exp $"
*
* Print plug-in Adobe PostScript driver for the GIMP.
*
@@ -821,9 +821,9 @@ ps_print_device_settings(stp_vars_t *v)
if(node)
{
node=stp_mxmlFindElement(node,node, "choice", "name", val, STP_MXML_DESCEND);
- if(node)
+ if(node && node->child)
{
- if(node->child && node->child->value.opaque && (strlen(node->child->value.opaque)>1))
+ if(node->child->value.opaque && (strlen(node->child->value.opaque)>1))
{
/* If we have opaque data for the child, we use %%BeginFeature and copy the code verbatim. */
stp_puts("[{\n", v);
diff --git a/src/main/print-vars.c b/src/main/print-vars.c
index 218474f..1a5cf5c 100644
--- a/src/main/print-vars.c
+++ b/src/main/print-vars.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-vars.c,v 1.91 2010/12/05 21:38:15 rlk Exp $"
+ * "$Id: print-vars.c,v 1.94 2012/01/19 13:26:02 m0m Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -1454,6 +1454,88 @@ stp_vars_copy(stp_vars_t *vd, const stp_vars_t *vs)
}
void
+stpi_vars_print_error(const stp_vars_t *v, const char *prefix)
+{
+ int i;
+ char *cptr;
+ static const char *data_types[] = {
+ "String",
+ "Int",
+ "Bool",
+ "Double",
+ "Curve",
+ "File",
+ "Raw",
+ "Array",
+ "Dimension",
+ "(Inactive)"
+ };
+ stp_erprintf("%s: Gutenprint: === BEGIN GUTENPRINT SETTINGS ===\n", prefix);
+ stp_erprintf("%s: Gutenprint: Driver: %s\n", prefix, stp_get_driver(v));
+ stp_erprintf("%s: Gutenprint: L: %d T: %d W: %d H: %d\n", prefix, stp_get_left(v),
+ stp_get_top(v), stp_get_width(v), stp_get_height(v));
+ stp_erprintf("%s: Gutenprint: Page: %dx%d\n", prefix, stp_get_page_width(v),
+ stp_get_page_height(v));
+ stp_erprintf("%s: Gutenprint: Conversion: %s\n", prefix, stp_get_color_conversion(v));
+ for (i = 0; i < STP_PARAMETER_TYPE_INVALID; i++)
+ {
+ const stp_list_item_t *item =
+ stp_list_get_start((const stp_list_t *) v->params[i]);
+ while (item)
+ {
+ char *crep;
+ const value_t *val = (const value_t *) stp_list_item_get_data(item);
+ switch (val->typ)
+ {
+ case STP_PARAMETER_TYPE_CURVE:
+ crep = stp_curve_write_string(val->value.cval);
+ cptr = crep;
+ while (cptr && *cptr)
+ {
+ if (*cptr == '\n')
+ *cptr = ' ';
+ cptr++;
+ }
+ stp_erprintf("%s: Gutenprint: (%s) (%i) (%s) [%s]\n", prefix,
+ val->name, val->active, data_types[val->typ],
+ crep ? crep : "NULL");
+ if (crep)
+ stp_free(crep);
+ break;
+ case STP_PARAMETER_TYPE_ARRAY:
+ break;
+ case STP_PARAMETER_TYPE_STRING_LIST:
+ case STP_PARAMETER_TYPE_FILE:
+ case STP_PARAMETER_TYPE_RAW:
+ crep = stp_rawtoxmlstr(&(val->value.rval));
+ stp_erprintf("%s: Gutenprint: (%s) (%i) (%s) [%s]\n", prefix,
+ val->name, val->active, data_types[val->typ],
+ crep ? crep : "NULL");
+ if (crep)
+ stp_free(crep);
+ break;
+ case STP_PARAMETER_TYPE_INT:
+ case STP_PARAMETER_TYPE_DIMENSION:
+ case STP_PARAMETER_TYPE_BOOLEAN:
+ stp_erprintf("%s: Gutenprint: (%s) (%i) (%s) [%d]\n", prefix,
+ val->name, val->active, data_types[val->typ],
+ val->value.ival);
+ break;
+ case STP_PARAMETER_TYPE_DOUBLE:
+ stp_erprintf("%s: Gutenprint: (%s) (%i) (%s) [%f]\n", prefix,
+ val->name, val->active, data_types[val->typ],
+ val->value.dval);
+ break;
+ default:
+ break;
+ }
+ item = stp_list_item_next(item);
+ }
+ }
+ stp_erprintf("%s: Gutenprint: === END GUTENPRINT SETTINGS ===\n", prefix);
+}
+
+void
stp_prune_inactive_options(stp_vars_t *v)
{
stp_parameter_list_t params = stp_get_parameter_list(v);
@@ -1712,7 +1794,6 @@ stp_parameter_has_category_value(const stp_vars_t *v,
const stp_parameter_t *desc,
const char *category, const char *value)
{
- const char *dptr;
char *cptr;
int answer = 0;
if (!v || !desc || !category)
@@ -1757,11 +1838,16 @@ const stp_parameter_t *
stp_parameter_list_param(stp_const_parameter_list_t list, size_t item)
{
const stp_list_t *ilist = (const stp_list_t *)list;
+ stp_list_item_t *i = NULL;
if (item >= stp_list_get_length(ilist))
return NULL;
else
- return (const stp_parameter_t *)
- stp_list_item_get_data(stp_list_get_item_by_index(ilist, item));
+ {
+ i = stp_list_get_item_by_index(ilist, item);
+ if (i == NULL)
+ return NULL;
+ return (const stp_parameter_t *) stp_list_item_get_data(i);
+ }
}
void
@@ -1796,6 +1882,57 @@ stp_parameter_list_append(stp_parameter_list_t list,
}
}
+void
+stp_copy_vars_from(stp_vars_t *to, const stp_vars_t *from)
+{
+ int i;
+ if (!from || !to)
+ return;
+ for (i = 0; i < STP_PARAMETER_TYPE_INVALID; i++)
+ {
+ const stp_list_item_t *item =
+ stp_list_get_start((const stp_list_t *) from->params[i]);
+ while (item)
+ {
+ const value_t *val = (const value_t *) stp_list_item_get_data(item);
+ switch (val->typ)
+ {
+ case STP_PARAMETER_TYPE_CURVE:
+ stp_set_curve_parameter(to, val->name, val->value.cval);
+ break;
+ case STP_PARAMETER_TYPE_ARRAY:
+ stp_set_array_parameter(to, val->name, val->value.aval);
+ break;
+ case STP_PARAMETER_TYPE_STRING_LIST:
+ stp_set_string_parameter(to, val->name, val->value.rval.data);
+ break;
+ case STP_PARAMETER_TYPE_FILE:
+ stp_set_file_parameter(to, val->name, val->value.rval.data);
+ break;
+ case STP_PARAMETER_TYPE_RAW:
+ stp_set_raw_parameter(to, val->name, val->value.rval.data,
+ val->value.rval.bytes);
+ break;
+ case STP_PARAMETER_TYPE_INT:
+ stp_set_int_parameter(to, val->name, val->value.ival);
+ break;
+ case STP_PARAMETER_TYPE_DIMENSION:
+ stp_set_dimension_parameter(to, val->name, val->value.ival);
+ break;
+ case STP_PARAMETER_TYPE_BOOLEAN:
+ stp_set_boolean_parameter(to, val->name, val->value.bval);
+ break;
+ case STP_PARAMETER_TYPE_DOUBLE:
+ stp_set_float_parameter(to, val->name, val->value.dval);
+ break;
+ default:
+ break;
+ }
+ item = stp_list_item_next(item);
+ }
+ }
+}
+
static void
fill_vars_from_xmltree(stp_mxml_node_t *prop, stp_mxml_node_t *root,
stp_vars_t *v)
@@ -1804,10 +1941,13 @@ fill_vars_from_xmltree(stp_mxml_node_t *prop, stp_mxml_node_t *root,
char *locale = stp_strdup(setlocale(LC_ALL, NULL));
setlocale(LC_ALL, "C");
#endif
+ stp_deprintf(STP_DBG_XML, "Enter fill_vars_from_xmltree()\n");
while (prop)
{
+ stp_deprintf(STP_DBG_XML, "Property type %d (%s)\n", prop->type,
+ prop->type == STP_MXML_ELEMENT ? prop->value.element.name :
+ (prop->type == STP_MXML_TEXT ? prop->value.text.string : "(nil)"));
if (prop->type == STP_MXML_ELEMENT &&
- !strcmp(prop->value.element.name, "parameter") &&
(prop->child || stp_mxmlElementGetAttr(prop, "name")))
{
stp_mxml_node_t *child = prop->child;
@@ -1975,6 +2115,9 @@ fill_vars_from_xmltree(stp_mxml_node_t *prop, stp_mxml_node_t *root,
}
else if (child->type == STP_MXML_TEXT)
{
+ stp_deprintf(STP_DBG_XML, " Set property %s ('%s')\n",
+ prop_name, child->value.text.string ?
+ child->value.text.string : "(nil)");
if (!strcmp(prop_name, "driver"))
stp_set_driver(v, child->value.text.string);
else if (!strcmp(prop_name, "color_conversion"))
@@ -1993,8 +2136,15 @@ fill_vars_from_xmltree(stp_mxml_node_t *prop, stp_mxml_node_t *root,
stp_set_page_height(v, stp_xmlstrtol(child->value.text.string));
}
}
+ else
+ {
+ if (prop->type == STP_MXML_ELEMENT)
+ stp_deprintf(STP_DBG_XML, "Unexpected node type %d name %s\n",
+ prop->type, prop->value.element.name);
+ }
prop = prop->next;
}
+ stp_deprintf(STP_DBG_XML, "End fill_vars_from_xmltree()\n");
#ifdef HAVE_LOCALE_H
setlocale(LC_ALL, locale);
stp_free(locale);
diff --git a/src/main/print-weave.c b/src/main/print-weave.c
index ce47715..c17a367 100644
--- a/src/main/print-weave.c
+++ b/src/main/print-weave.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-weave.c,v 1.76 2010/08/04 00:33:57 rlk Exp $"
+ * "$Id: print-weave.c,v 1.81 2012/05/26 16:03:19 rlk Exp $"
*
* Softweave calculator for Gutenprint.
*
@@ -1473,8 +1473,8 @@ initialize_row(stp_vars_t *v, stpi_softweave_t *sw,
}
static void
-add_to_row(stp_vars_t *v, stpi_softweave_t *sw, int row, unsigned char *buf,
- size_t nbytes, int color, int setactive, int h_pass)
+add_to_row_1(stp_vars_t *v, stpi_softweave_t *sw, int row, unsigned char *buf,
+ size_t nbytes, int color, int setactive, int h_pass)
{
const stp_linebufs_t *bufs =
stpi_get_linebases(v, sw, sw->lineno, h_pass, sw->head_offset[color]);
@@ -1535,6 +1535,19 @@ add_to_row(stp_vars_t *v, stpi_softweave_t *sw, int row, unsigned char *buf,
}
static void
+add_to_row(stp_vars_t *v, stpi_softweave_t *sw, int row, unsigned char *buf,
+ size_t nbytes, int color, int setactive, int h_pass)
+{
+ if (!sw->head_offset)
+ {
+ stp_eprintf(v, "ERROR: %s\n", _("Fatal error!"));
+ stp_eprintf(v, "ERROR: add_to_row: sw->head_offset == NULL\n");
+ return;
+ }
+ add_to_row_1(v, sw, row, buf, nbytes, color, setactive, h_pass);
+}
+
+static void
stpi_flush_passes(stp_vars_t *v, int flushall)
{
stpi_softweave_t *sw = get_sw(v);
@@ -1592,11 +1605,7 @@ stp_write_weave(stp_vars_t *v, unsigned char *const cols[])
{
stpi_softweave_t *sw = get_sw(v);
int length = (sw->linewidth + 7) / 8;
- stp_lineoff_t *lineoffs[STP_MAX_WEAVE];
- stp_lineactive_t *lineactives[STP_MAX_WEAVE];
- stp_linecount_t *linecounts[STP_MAX_WEAVE];
stp_linebounds_t *linebounds[STP_MAX_WEAVE];
- const stp_linebufs_t *bufs[STP_MAX_WEAVE];
int xlength = (length + sw->horizontal_weave - 1) / sw->horizontal_weave;
int ylength = xlength * sw->horizontal_weave;
unsigned char *comp_ptr;
@@ -1640,16 +1649,8 @@ stp_write_weave(stp_vars_t *v, unsigned char *const cols[])
if (!sw->s[i])
sw->s[i] = stp_zalloc(sw->bitwidth *
(sw->compute_linewidth)(v, ylength));
- lineoffs[i] =
- stpi_get_lineoffsets(v, sw, sw->lineno, pass, offset);
- linecounts[i] =
- stpi_get_linecount(v, sw, sw->lineno, pass, offset);
- lineactives[i] =
- stpi_get_lineactive(v, sw, sw->lineno, pass,offset);
linebounds[i] =
stpi_get_linebounds(v, sw, sw->lineno, pass, offset);
- bufs[i] =
- stpi_get_linebases(v, sw, sw->lineno, pass, offset);
}
if (sw->bitwidth == 2)
diff --git a/src/main/xmlppd.c b/src/main/xmlppd.c
index 60f4365..0ee9dc9 100644
--- a/src/main/xmlppd.c
+++ b/src/main/xmlppd.c
@@ -214,7 +214,6 @@ stpi_xmlppd_read_ppd_file(const char *filename) /* I - PPD file */
int option_count;
int order_length;
char *order_list;
- int in_comment;
stp_string_list_t *ialist = stp_string_list_create();
stp_string_list_t *pdlist = stp_string_list_create();
@@ -281,7 +280,6 @@ stpi_xmlppd_read_ppd_file(const char *filename) /* I - PPD file */
bufptr = buffer + 1;
inquote = 0;
sawcolon = 0;
- in_comment = 0;
if (ch == '*')
{
if ((ch = getc(fp)) == '%')
diff --git a/src/testpattern/Makefile.in b/src/testpattern/Makefile.in
index 6b1b6cc..9b39a29 100644
--- a/src/testpattern/Makefile.in
+++ b/src/testpattern/Makefile.in
@@ -156,6 +156,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -232,6 +233,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -252,6 +254,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -275,6 +279,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -321,7 +326,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/testpattern/printer_options.c b/src/testpattern/printer_options.c
index ec03a1e..e0f1bf2 100644
--- a/src/testpattern/printer_options.c
+++ b/src/testpattern/printer_options.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printer_options.c,v 1.5 2008/06/07 22:47:35 rlk Exp $"
+ * "$Id: printer_options.c,v 1.6 2012/05/26 15:56:03 rlk Exp $"
*
* Dump the per-printer options for the OpenPrinting database
*
@@ -146,6 +146,7 @@ main(int argc, char **argv)
driver, "y_resolution", param->name, y);
}
}
+ stp_clear_string_parameter(pv, "Resolution");
}
}
}
diff --git a/src/testpattern/run-testpattern-2.in b/src/testpattern/run-testpattern-2.in
index 6d0302c..79e1466 100644
--- a/src/testpattern/run-testpattern-2.in
+++ b/src/testpattern/run-testpattern-2.in
@@ -36,6 +36,7 @@ my %stpdata = ();
my %models_found = ();
my %models;
my %families;
+my %defaults;
my $skip_duplicate_printers = 0;
my $std_pages = 1;
my $duplex_pages = 4;
@@ -43,6 +44,9 @@ my $skip_resolutions = 0;
my $quiet = 0;
my $single = 0;
my $rerun = 0;
+my $list_printers = 0;
+my $list_options = 0;
+my $verbose = 0;
my @default_options = ();
my %base_settings = ("DitherAlgorithm" => "Fast");
@@ -74,6 +78,9 @@ GetOptions("v+" => \$valgrind,
"m:s" => \$calc_md5_dir,
"M:s" => \$calc_md5_file,
"X" => \$rerun,
+ "l" => \$list_printers,
+ "L" => \$list_options,
+ "V" => \$verbose,
"h" => \$help);
sub print_help_and_exit() {
@@ -126,6 +133,9 @@ Usage: run-testpattern-2 [opts] [model ...]
-vv Additional leak checking
-vvv Show reachable data also
-vvvv Minimal checks only
+ -l List available printers
+ -L List available options for specified printer
+ -V List available values for each option
EOF
exit 1;
}
@@ -636,7 +646,46 @@ foreach my $printer (@printer_list) {
}
@printer_list = @nprinter_list;
-if ($dontrun) {
+if ($list_printers) {
+ print join("\n", sort @printer_list), "\n";
+ exit 0;
+} elsif ($list_options) {
+ if ($#printer_list > 0) {
+ die "-L must be used with one printer\n";
+ }
+ my ($printer) = $printer_list[0];
+ foreach my $opt (sort keys %{$stpdata{$printer}}) {
+ next if $opt eq "x_resolution";
+ next if $opt eq "y_resolution";
+ print "$opt\n";
+ if ($verbose) {
+ if ($param_types{$printer}{$opt} == 3) {
+ print " $stp_float_values{$printer}{'MINVAL'}{$opt}\n";
+ print " =>$stp_float_values{$printer}{'DEFVAL'}{$opt}\n";
+ print " $stp_float_values{$printer}{'MAXVAL'}{$opt}\n";
+ } elsif ($param_types{$printer}{$opt} == 1) {
+ print " $stp_int_values{$printer}{'MINVAL'}{$opt}\n";
+ print " $stp_int_values{$printer}{'MAXVAL'}{$opt}\n";
+ } elsif ($param_types{$printer}{$opt} == 2) {
+ if ($defaults{$printer}{$opt}) {
+ print " 0\n";
+ print " =>1\n";
+ } else {
+ print " =>0\n";
+ print " 1\n";
+ }
+ } else {
+ foreach my $val (sort keys %{$stpdata{$printer}{$opt}}) {
+ if ($val eq $defaults{$printer}{$opt}) {
+ print " =>$val\n";
+ } else {
+ print " $val\n";
+ }
+ }
+ }
+ }
+ }
+} elsif ($dontrun) {
map { do_printer($_, \*STDOUT) } @printer_list;
exit 0;
} else {
@@ -683,6 +732,7 @@ if ($dontrun) {
my ($qopt) = $quiet ? "-q" : "";
$testpattern_command = "$valgrind_command ./testpattern -y $suppress $qopt";
if ($single) {
+ $SIG{PIPE} = sub() { die "\ntestpattern crashed!\n" };
foreach my $printer (@printer_list) {
open TESTPATTERN, "|$testpattern_command" or
die "Can't run $testpattern_command: $!\n";
@@ -692,6 +742,7 @@ if ($dontrun) {
last if ($? & 255);
}
} else {
+ $SIG{PIPE} = sub() { die "\ntestpattern crashed!\n" };
open TESTPATTERN, "|$testpattern_command" or
die "Can't run $testpattern_command: $!\n";
map { do_printer($_, \*TESTPATTERN) } @printer_list;
diff --git a/src/testpattern/testpatternl.c b/src/testpattern/testpatternl.c
index eb4bc23..e8ec86b 100644
--- a/src/testpattern/testpatternl.c
+++ b/src/testpattern/testpatternl.c
@@ -751,7 +751,7 @@ int yy_flex_debug = 0;
char *yytext;
#line 1 "testpatternl.l"
/*
- * "$Id: testpatternl.l,v 1.26 2010/09/06 17:08:39 rlk Exp $"
+ * "$Id: testpatternl.l,v 1.27 2012/05/11 13:16:12 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -786,6 +786,8 @@ char *yytext;
int mylineno = 1;
+extern YYSTYPE yylval;
+
static char *
c_strstrip(char *s)
{
@@ -811,7 +813,7 @@ do \
while (0)
-#line 815 "testpatternl.c"
+#line 817 "testpatternl.c"
#define INITIAL 0
@@ -993,10 +995,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 77 "testpatternl.l"
+#line 79 "testpatternl.l"
-#line 1000 "testpatternl.c"
+#line 1002 "testpatternl.c"
if ( !(yy_init) )
{
@@ -1081,267 +1083,267 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 79 "testpatternl.l"
+#line 81 "testpatternl.l"
DBG(GAMMA); return GAMMA;
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 80 "testpatternl.l"
+#line 82 "testpatternl.l"
DBG(LEVEL); return LEVEL;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 81 "testpatternl.l"
+#line 83 "testpatternl.l"
DBG(STEPS); return STEPS;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 82 "testpatternl.l"
+#line 84 "testpatternl.l"
DBG(INK_LIMIT); return INK_LIMIT;
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 83 "testpatternl.l"
+#line 85 "testpatternl.l"
DBG(PRINTER); return PRINTER;
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 84 "testpatternl.l"
+#line 86 "testpatternl.l"
DBG(PARAMETER); return PARAMETER;
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 85 "testpatternl.l"
+#line 87 "testpatternl.l"
DBG(PARAMETER_INT); return PARAMETER_INT;
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 86 "testpatternl.l"
+#line 88 "testpatternl.l"
DBG(PARAMETER_BOOL); return PARAMETER_BOOL;
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 87 "testpatternl.l"
+#line 89 "testpatternl.l"
DBG(PARAMETER); return PARAMETER;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 88 "testpatternl.l"
+#line 90 "testpatternl.l"
DBG(PARAMETER_FLOAT); return PARAMETER_FLOAT;
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 89 "testpatternl.l"
+#line 91 "testpatternl.l"
DBG(PARAMETER_CURVE); return PARAMETER_CURVE;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 90 "testpatternl.l"
+#line 92 "testpatternl.l"
DBG(DENSITY); return DENSITY;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 91 "testpatternl.l"
+#line 93 "testpatternl.l"
DBG(TOP); return TOP;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 92 "testpatternl.l"
+#line 94 "testpatternl.l"
DBG(LEFT); return LEFT;
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 93 "testpatternl.l"
+#line 95 "testpatternl.l"
DBG(SIZE_MODE); return SIZE_MODE;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 94 "testpatternl.l"
+#line 96 "testpatternl.l"
DBG(RELATIVE); return RELATIVE;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 95 "testpatternl.l"
+#line 97 "testpatternl.l"
DBG(PT); return PT;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 96 "testpatternl.l"
+#line 98 "testpatternl.l"
DBG(IN); return IN;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 97 "testpatternl.l"
+#line 99 "testpatternl.l"
DBG(MM); return MM;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 98 "testpatternl.l"
+#line 100 "testpatternl.l"
DBG(HSIZE); return HSIZE;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 99 "testpatternl.l"
+#line 101 "testpatternl.l"
DBG(VSIZE); return VSIZE;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 100 "testpatternl.l"
+#line 102 "testpatternl.l"
DBG(BLACKLINE); return BLACKLINE;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 101 "testpatternl.l"
+#line 103 "testpatternl.l"
DBG(PATTERN); return PATTERN;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 102 "testpatternl.l"
+#line 104 "testpatternl.l"
DBG(XPATTERN); return XPATTERN;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 103 "testpatternl.l"
+#line 105 "testpatternl.l"
DBG(IMAGE); return IMAGE;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 104 "testpatternl.l"
+#line 106 "testpatternl.l"
DBG(EXTENDED); return EXTENDED;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 105 "testpatternl.l"
+#line 107 "testpatternl.l"
DBG(GRID); return GRID;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 106 "testpatternl.l"
+#line 108 "testpatternl.l"
DBG(CHANNEL); return CHANNEL;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 107 "testpatternl.l"
+#line 109 "testpatternl.l"
DBG(PAGESIZE); return PAGESIZE;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 108 "testpatternl.l"
+#line 110 "testpatternl.l"
DBG(SEMI); return SEMI;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 109 "testpatternl.l"
+#line 111 "testpatternl.l"
DBG(MODE); return MODE;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 110 "testpatternl.l"
+#line 112 "testpatternl.l"
yylval.ival = CMYK;DBG(CMYK); return CMYK;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 111 "testpatternl.l"
+#line 113 "testpatternl.l"
yylval.ival = CMYK;DBG(KCMY); return KCMY;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 112 "testpatternl.l"
+#line 114 "testpatternl.l"
yylval.ival = RGB;DBG(RGB); return RGB;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 113 "testpatternl.l"
+#line 115 "testpatternl.l"
yylval.ival = RGB;DBG(CMY); return CMY;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 114 "testpatternl.l"
+#line 116 "testpatternl.l"
yylval.ival = GRAY;DBG(GRAY); return GRAY;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 115 "testpatternl.l"
+#line 117 "testpatternl.l"
yylval.ival = GRAY;DBG(GRAY); return GRAY;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 116 "testpatternl.l"
+#line 118 "testpatternl.l"
yylval.ival = WHITE;DBG(WHITE); return WHITE;
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 117 "testpatternl.l"
+#line 119 "testpatternl.l"
DBG(OUTPUT); return OUTPUT;
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 118 "testpatternl.l"
+#line 120 "testpatternl.l"
DBG(MESSAGE); return MESSAGE;
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 119 "testpatternl.l"
+#line 121 "testpatternl.l"
DBG(NOSCALE); return NOSCALE;
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 120 "testpatternl.l"
+#line 122 "testpatternl.l"
DBG(START_JOB); return START_JOB;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 121 "testpatternl.l"
+#line 123 "testpatternl.l"
DBG(END_JOB); return END_JOB;
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 122 "testpatternl.l"
+#line 124 "testpatternl.l"
DBG(END); return END;
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 124 "testpatternl.l"
+#line 126 "testpatternl.l"
yylval.sval = yytext;DBG(COLOR); return COLOR;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 125 "testpatternl.l"
+#line 127 "testpatternl.l"
yylval.ival = strtol(yytext, NULL, 0); yylval.dval = (double) yylval.ival; DBG(tINT); return tINT;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 126 "testpatternl.l"
+#line 128 "testpatternl.l"
yylval.dval = strtod(yytext, NULL); DBG(tDOUBLE); return tDOUBLE;
YY_BREAK
case 48:
/* rule 48 can match eol */
YY_RULE_SETUP
-#line 127 "testpatternl.l"
+#line 129 "testpatternl.l"
yylval.sval = c_strstrip(yytext); DBG(tSTRING); return tSTRING;
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 128 "testpatternl.l"
+#line 130 "testpatternl.l"
DBG(whitespace); /* Skip blanks/tabs */
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 129 "testpatternl.l"
+#line 131 "testpatternl.l"
DBG(comment); /* Skip comments */
YY_BREAK
case 51:
/* rule 51 can match eol */
YY_RULE_SETUP
-#line 130 "testpatternl.l"
+#line 132 "testpatternl.l"
DBG(newline); mylineno++;
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 131 "testpatternl.l"
+#line 133 "testpatternl.l"
ECHO;
YY_BREAK
-#line 1345 "testpatternl.c"
+#line 1347 "testpatternl.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -2339,4 +2341,4 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 131 "testpatternl.l"
+#line 133 "testpatternl.l"
diff --git a/src/testpattern/testpatternl.l b/src/testpattern/testpatternl.l
index c2f5803..16cb38c 100644
--- a/src/testpattern/testpatternl.l
+++ b/src/testpattern/testpatternl.l
@@ -1,5 +1,5 @@
/*
- * "$Id: testpatternl.l,v 1.26 2010/09/06 17:08:39 rlk Exp $"
+ * "$Id: testpatternl.l,v 1.27 2012/05/11 13:16:12 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -35,6 +35,8 @@
int mylineno = 1;
+extern YYSTYPE yylval;
+
static char *
c_strstrip(char *s)
{
diff --git a/src/xml/Makefile.in b/src/xml/Makefile.in
index f6f23da..530164f 100644
--- a/src/xml/Makefile.in
+++ b/src/xml/Makefile.in
@@ -171,6 +171,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -247,6 +248,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -267,6 +269,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -290,6 +294,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -336,7 +341,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/xml/escp2/Makefile.in b/src/xml/escp2/Makefile.in
index 2f786ec..56b3b34 100644
--- a/src/xml/escp2/Makefile.in
+++ b/src/xml/escp2/Makefile.in
@@ -128,6 +128,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -204,6 +205,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -224,6 +226,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -247,6 +251,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -293,7 +298,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/xml/escp2/inks/Makefile.in b/src/xml/escp2/inks/Makefile.in
index 3bd104f..0a2220e 100644
--- a/src/xml/escp2/inks/Makefile.in
+++ b/src/xml/escp2/inks/Makefile.in
@@ -112,6 +112,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -188,6 +189,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -208,6 +210,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -231,6 +235,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -277,7 +282,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/xml/escp2/inputslots/Makefile.in b/src/xml/escp2/inputslots/Makefile.in
index 1e93697..e092488 100644
--- a/src/xml/escp2/inputslots/Makefile.in
+++ b/src/xml/escp2/inputslots/Makefile.in
@@ -112,6 +112,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -188,6 +189,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -208,6 +210,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -231,6 +235,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -277,7 +282,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/xml/escp2/media/Makefile.in b/src/xml/escp2/media/Makefile.in
index 4025510..9e3f5d0 100644
--- a/src/xml/escp2/media/Makefile.in
+++ b/src/xml/escp2/media/Makefile.in
@@ -112,6 +112,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -188,6 +189,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -208,6 +210,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -231,6 +235,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -277,7 +282,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/xml/escp2/mediasizes/Makefile.in b/src/xml/escp2/mediasizes/Makefile.in
index 655767d..1ad4db8 100644
--- a/src/xml/escp2/mediasizes/Makefile.in
+++ b/src/xml/escp2/mediasizes/Makefile.in
@@ -112,6 +112,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -188,6 +189,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -208,6 +210,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -231,6 +235,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -277,7 +282,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/xml/escp2/model/Makefile.am b/src/xml/escp2/model/Makefile.am
index 44427f2..479267b 100644
--- a/src/xml/escp2/model/Makefile.am
+++ b/src/xml/escp2/model/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.27 2011/03/05 18:49:13 rlk Exp $
+## $Id: Makefile.am,v 1.30 2011/12/14 03:02:58 rlk Exp $
## Copyright (C) 2008 Robert Krawitz
##
## This program is free software; you can redistribute it and/or modify
@@ -141,7 +141,9 @@ pkgxmldata_DATA = \
model_112.xml \
model_113.xml \
model_114.xml \
- model_115.xml
+ model_115.xml \
+ model_116.xml \
+ model_117.xml
xml-stamp: $(pkgxmldata_DATA) Makefile.am
-rm -f $@ $@.tmp
diff --git a/src/xml/escp2/model/Makefile.in b/src/xml/escp2/model/Makefile.in
index aa4c874..c3994ba 100644
--- a/src/xml/escp2/model/Makefile.in
+++ b/src/xml/escp2/model/Makefile.in
@@ -112,6 +112,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -188,6 +189,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -208,6 +210,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -231,6 +235,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -277,7 +282,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -412,7 +416,9 @@ pkgxmldata_DATA = \
model_112.xml \
model_113.xml \
model_114.xml \
- model_115.xml
+ model_115.xml \
+ model_116.xml \
+ model_117.xml
CLEANFILES = xmli18n-tmp.h xml-stamp xml-stamp.tmp
EXTRA_DIST = $(pkgxmldata_DATA)
diff --git a/src/xml/escp2/model/model_115.xml b/src/xml/escp2/model/model_115.xml
index bd5c3e1..a51af5c 100644
--- a/src/xml/escp2/model/model_115.xml
+++ b/src/xml/escp2/model/model_115.xml
@@ -66,8 +66,6 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<CDOffset>221 262</CDOffset>
<CDMediaSize>595 842</CDMediaSize>
<AlignmentChoices>4 15 0 0</AlignmentChoices>
- <ChannelNames>
- </ChannelNames>
<resolutions>
<resolution translate="text" name="360x180sw" text="360 x 180 DPI Draft">
<physicalResolution>360 180</physicalResolution>
diff --git a/src/xml/escp2/model/model_116.xml b/src/xml/escp2/model/model_116.xml
new file mode 100644
index 0000000..f9b7725
--- /dev/null
+++ b/src/xml/escp2/model/model_116.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2:model id="116">
+ <media src="escp2/media/pro_ultrachrome_k3v.xml"/>
+ <inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
+ <qualityPresets src="escp2/qualitypresets/prox900.xml"/>
+ <inkGroup src="escp2/inks/pro_ultrachrome_k3v.xml"/>
+ <printerWeaves src="escp2/weaves/pro7600.xml"/>
+ <preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
+ <postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
+ <commandSet>Pro</commandSet>
+ <borderless>HorizontalOnly</borderless>
+ <supportsVariableDropsizes/>
+ <hasFastGraymode/>
+ <sendZeroAdvance/>
+ <supportsD4Mode/>
+ <preferredEnvelopeOrientation>Landscape</preferredEnvelopeOrientation>
+ <headConfiguration type="default">
+ <Nozzles>1</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <physicalChannels>8</physicalChannels>
+ <baseSeparation>360</baseSeparation>
+ <resolutionScale>14400</resolutionScale>
+ <minimumResolution>360 180</minimumResolution>
+ <maximumResolution>2880 2880</maximumResolution>
+ <separationRows>1</separationRows>
+ <zeroMarginOffset>43</zeroMarginOffset>
+ <microLeftMargin>5</microLeftMargin>
+ <minHorizontalAlignment>1</minHorizontalAlignment>
+ <baseHorizontalAlignment>28800</baseHorizontalAlignment>
+ <bidirectionalAutoUpperLimit>2073600</bidirectionalAutoUpperLimit>
+ <minimumMediaSize>144 144</minimumMediaSize>
+ <maximumMediaSize>1728 86400</maximumMediaSize>
+ <maximumImageableArea>1728 86400</maximumImageableArea>
+ <margins interleave="soft" media="sheet">9 9 9 40</margins>
+ <margins interleave="printer" media="sheet">9 9 9 40</margins>
+ <margins interleave="soft" media="roll">9 9 0 0</margins>
+ <margins interleave="printer" media="roll">9 9 0 0</margins>
+ <AlignmentChoices>3 15 0 0</AlignmentChoices>
+ <resolutions>
+ <resolution translate="text" name="360pro" text="360 DPI">
+ <physicalResolution>360 360</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">5.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.290000</parameter>
+ <parameter type="float" name="DropSize2">0.630000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360mw" text="720 x 360 DPI">
+ <physicalResolution>720 360</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">2.520000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.290000</parameter>
+ <parameter type="float" name="DropSize2">0.630000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720mw" text="720 DPI">
+ <physicalResolution>720 720</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">1.260000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.290000</parameter>
+ <parameter type="float" name="DropSize2">0.630000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x1440mw" text="1440 x 720 DPI">
+ <physicalResolution>720 1440</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.891000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.275000</parameter>
+ <parameter type="float" name="DropSize2">0.450000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x1440mw" text="1440 x 1440 DPI">
+ <physicalResolution>1440 1440</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.446000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.275000</parameter>
+ <parameter type="float" name="DropSize2">0.450000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x1440mw" text="2880 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.775000</parameter>
+ <parameter type="integer" name="escp2_ink_type">5</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">1</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x2880mw" text="2880 x 2880 DPI">
+ <physicalResolution>2880 2880</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.388000</parameter>
+ <parameter type="integer" name="escp2_ink_type">5</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">1</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ </resolutions>
+</escp2:model>
+</gutenprint>
diff --git a/src/xml/escp2/model/model_117.xml b/src/xml/escp2/model/model_117.xml
new file mode 100644
index 0000000..97b0ea7
--- /dev/null
+++ b/src/xml/escp2/model/model_117.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2:model id="117">
+ <media src="escp2/media/pro_ultrachrome_k3v.xml"/>
+ <inputSlots src="escp2/inputslots/pro_cutter_roll_feed.xml"/>
+ <qualityPresets src="escp2/qualitypresets/prox900.xml"/>
+ <inkGroup src="escp2/inks/pro_ultrachrome_k3v.xml"/>
+ <printerWeaves src="escp2/weaves/pro7600.xml"/>
+ <preinitSequence>\000\000\000\033\001@EJL\0401284.4\012@EJL\040\040\040\040\040\012\033@</preinitSequence>
+ <postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
+ <commandSet>Pro</commandSet>
+ <borderless>HorizontalOnly</borderless>
+ <supportsVariableDropsizes/>
+ <hasFastGraymode/>
+ <sendZeroAdvance/>
+ <supportsD4Mode/>
+ <preferredEnvelopeOrientation>Landscape</preferredEnvelopeOrientation>
+ <headConfiguration type="default">
+ <Nozzles>1</Nozzles>
+ <MinNozzles>1</MinNozzles>
+ <FirstNozzle>0</FirstNozzle>
+ <NozzleSeparation>1</NozzleSeparation>
+ </headConfiguration>
+ <physicalChannels>8</physicalChannels>
+ <baseSeparation>360</baseSeparation>
+ <resolutionScale>14400</resolutionScale>
+ <minimumResolution>360 180</minimumResolution>
+ <maximumResolution>2880 2880</maximumResolution>
+ <separationRows>1</separationRows>
+ <zeroMarginOffset>43</zeroMarginOffset>
+ <microLeftMargin>5</microLeftMargin>
+ <minHorizontalAlignment>1</minHorizontalAlignment>
+ <baseHorizontalAlignment>28800</baseHorizontalAlignment>
+ <bidirectionalAutoUpperLimit>2073600</bidirectionalAutoUpperLimit>
+ <minimumMediaSize>144 144</minimumMediaSize>
+ <maximumMediaSize>3168 86400</maximumMediaSize>
+ <maximumImageableArea>3168 86400</maximumImageableArea>
+ <margins interleave="soft" media="sheet">9 9 9 40</margins>
+ <margins interleave="printer" media="sheet">9 9 9 40</margins>
+ <margins interleave="soft" media="roll">9 9 0 0</margins>
+ <margins interleave="printer" media="roll">9 9 0 0</margins>
+ <AlignmentChoices>3 15 0 0</AlignmentChoices>
+ <resolutions>
+ <resolution translate="text" name="360pro" text="360 DPI">
+ <physicalResolution>360 360</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">5.000000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.290000</parameter>
+ <parameter type="float" name="DropSize2">0.630000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x360mw" text="720 x 360 DPI">
+ <physicalResolution>720 360</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">2.520000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.290000</parameter>
+ <parameter type="float" name="DropSize2">0.630000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720mw" text="720 DPI">
+ <physicalResolution>720 720</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">1.260000</parameter>
+ <parameter type="integer" name="escp2_ink_type">17</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.290000</parameter>
+ <parameter type="float" name="DropSize2">0.630000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="720x1440mw" text="1440 x 720 DPI">
+ <physicalResolution>720 1440</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.891000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.275000</parameter>
+ <parameter type="float" name="DropSize2">0.450000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="1440x1440mw" text="1440 x 1440 DPI">
+ <physicalResolution>1440 1440</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.446000</parameter>
+ <parameter type="integer" name="escp2_ink_type">18</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">2</parameter>
+ <parameter type="float" name="DropSize1">0.275000</parameter>
+ <parameter type="float" name="DropSize2">0.450000</parameter>
+ <parameter type="float" name="DropSize3">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x1440mw" text="2880 x 1440 DPI">
+ <physicalResolution>2880 1440</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.775000</parameter>
+ <parameter type="integer" name="escp2_ink_type">5</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">1</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ <resolution translate="text" name="2880x2880mw" text="2880 x 2880 DPI">
+ <physicalResolution>2880 2880</physicalResolution>
+ <printerWeave command="\033(i\001\000\001"/>
+ <parameter type="float" name="escp2_density">0.388000</parameter>
+ <parameter type="integer" name="escp2_ink_type">5</parameter>
+ <parameter type="integer" name="escp2_base_res">2880</parameter>
+ <parameter type="integer" name="escp2_bits">1</parameter>
+ <parameter type="float" name="DropSize1">1.000000</parameter>
+ </resolution>
+ </resolutions>
+</escp2:model>
+</gutenprint>
diff --git a/src/xml/escp2/qualitypresets/Makefile.am b/src/xml/escp2/qualitypresets/Makefile.am
index cc77328..8da6950 100644
--- a/src/xml/escp2/qualitypresets/Makefile.am
+++ b/src/xml/escp2/qualitypresets/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.4 2009/05/30 14:10:32 rlk Exp $
+## $Id: Makefile.am,v 1.5 2011/12/14 03:02:58 rlk Exp $
## Copyright (C) 2008 Robert Krawitz
##
## This program is free software; you can redistribute it and/or modify
@@ -28,6 +28,7 @@ pkgxmldatadir = $(pkgdatadir)/@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSI
pkgxmldata_DATA = \
p1_5.xml \
picturemate.xml \
+ prox900.xml \
standard.xml \
v2880.xml \
wf40.xml
diff --git a/src/xml/escp2/qualitypresets/Makefile.in b/src/xml/escp2/qualitypresets/Makefile.in
index 386aa44..3f23a6d 100644
--- a/src/xml/escp2/qualitypresets/Makefile.in
+++ b/src/xml/escp2/qualitypresets/Makefile.in
@@ -112,6 +112,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -188,6 +189,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -208,6 +210,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -231,6 +235,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -277,7 +282,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -299,6 +303,7 @@ pkgxmldatadir = $(pkgdatadir)/@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSI
pkgxmldata_DATA = \
p1_5.xml \
picturemate.xml \
+ prox900.xml \
standard.xml \
v2880.xml \
wf40.xml
diff --git a/src/xml/escp2/qualitypresets/prox900.xml b/src/xml/escp2/qualitypresets/prox900.xml
new file mode 100644
index 0000000..35ab6e7
--- /dev/null
+++ b/src/xml/escp2/qualitypresets/prox900.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+
+<gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd">
+<copyright>
+ * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+</copyright>
+<escp2:QualityPresets name="standard">
+ <quality translate="text" name="FastEconomy" text="Fast Economy">
+ <minimumResolution>180 90</minimumResolution>
+ <maximumResolution>360 120</maximumResolution>
+ <desiredResolution>360 90</desiredResolution>
+ </quality>
+ <quality translate="text" name="Economy" text="Economy">
+ <minimumResolution>360 180</minimumResolution>
+ <maximumResolution>360 240</maximumResolution>
+ <desiredResolution>360 180</desiredResolution>
+ </quality>
+ <quality translate="text" name="Draft" text="Draft">
+ <minimumResolution>360 360</minimumResolution>
+ <maximumResolution>360 360</maximumResolution>
+ <desiredResolution>360 360</desiredResolution>
+ </quality>
+ <quality translate="text" name="Standard" text="Standard">
+ <minimumResolution>0 0</minimumResolution>
+ <maximumResolution>0 0</maximumResolution>
+ <desiredResolution>720 360</desiredResolution>
+ </quality>
+ <quality translate="text" name="High" text="High">
+ <minimumResolution>0 0</minimumResolution>
+ <maximumResolution>0 0</maximumResolution>
+ <desiredResolution>720 720</desiredResolution>
+ </quality>
+ <quality translate="text" name="Photo" text="Photo">
+ <minimumResolution>720 1440</minimumResolution>
+ <maximumResolution>720 2880</maximumResolution>
+ <desiredResolution>720 1440</desiredResolution>
+ </quality>
+ <quality translate="text" name="HighPhoto" text="Super Photo">
+ <minimumResolution>1440 1440</minimumResolution>
+ <maximumResolution>2880 1440</maximumResolution>
+ <desiredResolution>1440 1440</desiredResolution>
+ </quality>
+ <quality translate="text" name="UltraPhoto" text="Ultra Photo">
+ <minimumResolution>2880 1440</minimumResolution>
+ <maximumResolution>2880 1440</maximumResolution>
+ <desiredResolution>2880 1440</desiredResolution>
+ </quality>
+ <quality translate="text" name="Best" text="Best">
+ <minimumResolution>720 360</minimumResolution>
+ <maximumResolution>0 1440</maximumResolution>
+ <desiredResolution>-1 -1</desiredResolution>
+ </quality>
+</escp2:QualityPresets>
+</gutenprint>
diff --git a/src/xml/escp2/weaves/Makefile.in b/src/xml/escp2/weaves/Makefile.in
index d20c246..ab4ac94 100644
--- a/src/xml/escp2/weaves/Makefile.in
+++ b/src/xml/escp2/weaves/Makefile.in
@@ -112,6 +112,7 @@ DB2PS = @DB2PS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -188,6 +189,7 @@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -208,6 +210,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PLUG_IN_PATH = @PLUG_IN_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
@@ -231,6 +235,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -277,7 +282,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
diff --git a/src/xml/papers.xml b/src/xml/papers.xml
index b774529..86e2e5a 100644
--- a/src/xml/papers.xml
+++ b/src/xml/papers.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
- "$Id: papers.xml,v 1.9 2010/11/16 13:51:55 gernot2270 Exp $"
+ "$Id: papers.xml,v 1.10 2011/11/06 06:21:15 gernot2270 Exp $"
XML description of papers known to libgutenprint.
You can add additional paper sizes here.
@@ -1159,6 +1159,34 @@
<unit value="metric-extended"/>
<type value="envelope"/>
</paper>
+ <paper name="w297h666">
+ <description translate="value" value="Japanese Western-style envelope #4"/>
+ <width value="297"/>
+ <height value="666"/>
+ <unit value="metric-extended"/>
+ <type value="envelope"/>
+ </paper>
+ <paper name="w297h666_l">
+ <description translate="value" value="Japanese Western-style envelope #4 landscape"/>
+ <width value="666"/>
+ <height value="297"/>
+ <unit value="metric-extended"/>
+ <type value="envelope"/>
+ </paper>
+ <paper name="w277h538">
+ <description translate="value" value="Japanese Western-style envelope #6"/>
+ <width value="277"/>
+ <height value="538"/>
+ <unit value="metric-extended"/>
+ <type value="envelope"/>
+ </paper>
+ <paper name="w277h538_l">
+ <description translate="value" value="Japanese Western-style envelope #6 landscape"/>
+ <width value="538"/>
+ <height value="277"/>
+ <unit value="metric-extended"/>
+ <type value="envelope"/>
+ </paper>
<paper name="w680h941">
<description translate="value" value="Japanese Kaku envelope #4"/>
<width value="680"/>
@@ -1245,9 +1273,16 @@
<height value="244"/>
<unit value="metric-extended"/>
</paper>
+ <paper name="w155h257">
+ <description translate="value" value="Card"/>
+ <comment value="55mm x 91mm"/>
+ <width value="155"/>
+ <height value="257"/>
+ <unit value="metric-extended"/>
+ </paper>
<paper name="w283h566">
<description translate="value" value="Wide Postcard"/>
- <comment value="100mm x 200mm"/>
+ <comment value="148mm x 200mm"/>
<width value="283"/>
<height value="566"/>
<unit value="english-extended"/>
diff --git a/src/xml/printers.xml b/src/xml/printers.xml
index ed84699..d94996f 100644
--- a/src/xml/printers.xml
+++ b/src/xml/printers.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
- "$Id: printers.xml,v 1.126 2011/05/01 15:36:25 gernot2270 Exp $"
+ "$Id: printers.xml,v 1.247 2012/05/27 15:11:29 gernot2270 Exp $"
XML description of printers known to libgutenprint
You can add additional printers here, but the underlying driver has
@@ -110,6 +110,7 @@
<printer translate="name" name="Canon BJC-4000" driver="bjc-4000" manufacturer="Canon" model="4300" parameters="gamma_750_params" foomaticid="Canon-BJC-4000" />
<printer translate="name" name="Canon BJC-4300" deviceid="MFG:Canon;MDL:BJC-4300;DES:Canon BJC-4300;CMD:BJ,LQ,BJL,BJRaster,BSCC;" driver="bjc-4300" manufacturer="Canon" model="4300" parameters="gamma_750_params" foomaticid="Canon-BJC-4300" />
<printer translate="name" name="Canon BJC-4400" deviceid="MFG:Canon;MDL:BJC-4400;DES:Canon BJC-4400;CMD:BJ,LQ,BJL,BJRaster,BSCC;" driver="bjc-4400" manufacturer="Canon" model="4400" parameters="density_800_params" foomaticid="Canon-BJC-4400" />
+ <printer translate="name" name="Canon BJC-4550" driver="bjc-4550" manufacturer="Canon" model="4550" parameters="density_800_params" foomaticid="Canon-BJC-4550" />
<printer translate="name" name="Canon BJC-5100" driver="bjc-5100" manufacturer="Canon" model="5100" parameters="density_800_params" foomaticid="Canon-BJC-5100" />
<printer translate="name" name="Canon BJC-5500" driver="bjc-5500" manufacturer="Canon" model="5500" parameters="density_800_params" foomaticid="Canon-BJC-5500" />
<printer translate="name" name="Canon BJC-6000" deviceid="MFG:Canon;MDL:BJC-6000;DES:Canon BJC-6000;CMD:BJL,BJRaster3,BSCC,TXT;" driver="bjc-6000" manufacturer="Canon" model="6000" parameters="gamma_750_params" foomaticid="Canon-BJC-6000" />
@@ -123,45 +124,66 @@
<printer translate="name" name="Canon S100" deviceid="MFG:Canon;MDL:S100SP;DES:Canon S100SP;CMD:BJL,BJRaster,BSCC,TXT01;" driver="bjc-s100" manufacturer="Canon" model="4300" parameters="gamma_750_params" foomaticid="Canon-S100" />
<printer translate="name" name="Canon S200" driver="bjc-s200" manufacturer="Canon" model="1000200" parameters="gamma_8_density_900_params" foomaticid="Canon-S200" />
<printer translate="name" name="Canon S300" driver="bjc-s300" manufacturer="Canon" model="1000300" parameters="density_800_params" foomaticid="Canon-S300" />
+ <printer translate="name" name="Canon S330" driver="bjc-s330" manufacturer="Canon" model="1000330" parameters="density_800_params" foomaticid="Canon-S330" />
<printer translate="name" name="Canon S400" driver="bjc-s400" manufacturer="Canon" model="3000" parameters="density_800_params" foomaticid="Canon-S400" />
<printer translate="name" name="Canon S450" driver="bjc-s450" manufacturer="Canon" model="6200" parameters="gamma_750_params" foomaticid="Canon-S450" />
<printer translate="name" name="Canon S500" driver="bjc-s500" manufacturer="Canon" model="1000500" parameters="density_800_params" foomaticid="Canon-S500" />
- <printer translate="name" name="Canon S600" deviceid="MFG:Canon;MDL:S600;DES:Canon S600;CMD:BJL,BJRaster3,BSCC,TXT01;" driver="bjc-s600" manufacturer="Canon" model="8200" parameters="density_800_params" foomaticid="Canon-S600" />
- <printer translate="name" name="Canon S630" driver="bjc-s630" manufacturer="Canon" model="8200" parameters="density_800_params" foomaticid="Canon-S630" />
- <printer translate="name" name="Canon S800" driver="bjc-s800" manufacturer="Canon" model="8200" parameters="density_800_params" foomaticid="Canon-S800" />
+ <printer translate="name" name="Canon S520" driver="bjc-s520" manufacturer="Canon" model="1000520" parameters="density_800_params" foomaticid="Canon-S520" />
+ <printer translate="name" name="Canon S530D" driver="bjc-s530D" manufacturer="Canon" model="1000520" parameters="density_800_params" foomaticid="Canon-S530D" />
+ <printer translate="name" name="Canon S600" deviceid="MFG:Canon;MDL:S600;DES:Canon S600;CMD:BJL,BJRaster3,BSCC,TXT01;" driver="bjc-s600" manufacturer="Canon" model="1000600" parameters="density_800_params" foomaticid="Canon-S600" />
+ <printer translate="name" name="Canon S630" driver="bjc-s630" manufacturer="Canon" model="1000600" parameters="density_800_params" foomaticid="Canon-S630" />
+ <printer translate="name" name="Canon S750" driver="bjc-s750" manufacturer="Canon" model="1000750" parameters="density_800_params" foomaticid="Canon-S750" />
+ <printer translate="name" name="Canon S800" driver="bjc-s800" manufacturer="Canon" model="1000800" parameters="density_800_params" foomaticid="Canon-S800" />
+ <printer translate="name" name="Canon S820" driver="bjc-s820" manufacturer="Canon" model="1000820" parameters="density_800_params" foomaticid="Canon-S820" />
+ <printer translate="name" name="Canon S830D" driver="bjc-s830" manufacturer="Canon" model="1000830" parameters="density_800_params" foomaticid="Canon-S830D" />
+ <printer translate="name" name="Canon S900" driver="bjc-s900" manufacturer="Canon" model="1000900" parameters="density_800_params" foomaticid="Canon-S900" />
+ <printer translate="name" name="Canon S9000" driver="bjc-s9000" manufacturer="Canon" model="1000900" parameters="density_800_params" foomaticid="Canon-S9000" />
<printer translate="name" name="Canon S4500" driver="bjc-s4500" manufacturer="Canon" model="6500" parameters="gamma_750_params" foomaticid="Canon-S4500" />
- <printer translate="name" name="Canon PIXMA iP1000" driver="bjc-PIXMA-iP1000" manufacturer="Canon" model="3001000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1000" />
- <printer translate="name" name="Canon PIXMA iP1200" driver="bjc-PIXMA-iP1200" manufacturer="Canon" model="3001200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1200" />
- <printer translate="name" name="Canon PIXMA iP1300" driver="bjc-PIXMA-iP1200" manufacturer="Canon" model="3001200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1300" />
- <printer translate="name" name="Canon PIXMA iP1500" driver="bjc-PIXMA-iP1500" manufacturer="Canon" model="3001500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1500" />
- <printer translate="name" name="Canon PIXMA iP1600" driver="bjc-PIXMA-iP1600" manufacturer="Canon" model="3001600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1600" />
- <printer translate="name" name="Canon PIXMA iP1700" driver="bjc-PIXMA-iP1600" manufacturer="Canon" model="3001600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1700" />
- <printer translate="name" name="Canon PIXMA iP1800" driver="bjc-PIXMA-iP1600" manufacturer="Canon" model="3001600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1800" />
- <printer translate="name" name="Canon PIXMA iP1900" driver="bjc-PIXMA-iP1900" manufacturer="Canon" model="3001900" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP1900" />
+ <printer translate="name" name="Canon SELPHY DS700" driver="bjc-SELPHY-DS700" manufacturer="Canon" model="10000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-SELPHY-DS700" />
+ <printer translate="name" name="Canon SELPHY DS810" driver="bjc-SELPHY-DS810" manufacturer="Canon" model="10000810" parameters="PIXMA_iP4000_params" foomaticid="Canon-SELPHY-DS810" />
+ <printer translate="name" name="Canon PIXMA mini220" driver="bjc-PIXMA-mini220" manufacturer="Canon" model="11000220" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-mini220" />
+ <printer translate="name" name="Canon PIXMA mini320" driver="bjc-PIXMA-mini320" manufacturer="Canon" model="11000320" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-mini320" />
+ <printer translate="name" name="Canon PIXMA mini360" driver="bjc-PIXMA-mini360" manufacturer="Canon" model="11000320" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-mini360" />
+ <printer translate="name" name="Canon PIXMA iP90" driver="bjc-PIXMA-iP90" manufacturer="Canon" model="3000090" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP90" />
+ <printer translate="name" name="Canon PIXMA iP90v" driver="bjc-PIXMA-iP90v" manufacturer="Canon" model="3000090" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP90v" />
+ <printer translate="name" name="Canon PIXMA iP100" driver="bjc-PIXMA-iP100" manufacturer="Canon" model="3000100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP100" />
<printer translate="name" name="Canon PIXMA iP2000" driver="bjc-PIXMA-iP2000" manufacturer="Canon" model="3002000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2000" />
- <printer translate="name" name="Canon PIXMA iP2200" driver="bjc-PIXMA-iP2200" manufacturer="Canon" model="3002200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2200" />
- <printer translate="name" name="Canon PIXMA iP2500" driver="bjc-PIXMA-iP2500" manufacturer="Canon" model="3002500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2500" />
- <printer translate="name" name="Canon PIXMA iP2600" driver="bjc-PIXMA-iP2600" manufacturer="Canon" model="3002600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2600" />
- <printer translate="name" name="Canon PIXUS iP2700" driver="bjc-PIXUS-iP2700" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP2700" />
+ <printer translate="name" name="Canon PIXMA iP2700" driver="bjc-PIXMA-iP2700" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP2700" />
<printer translate="name" name="Canon PIXMA iP3000" driver="bjc-PIXMA-iP3000" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3000" />
- <printer translate="name" name="Canon PIXMA iP3100" driver="bjc-PIXMA-iP3100" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3100" />
+ <printer translate="name" name="Canon PIXMA iP3100" driver="bjc-PIXMA-iP3100" manufacturer="Canon" model="3003100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3100" />
+ <printer translate="name" name="Canon PIXMA iP3300" driver="bjc-PIXMA-iP3300" manufacturer="Canon" model="3003300" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3300" />
+ <printer translate="name" name="Canon PIXMA iP3500" driver="bjc-PIXMA-iP3500" manufacturer="Canon" model="3003500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3500" />
+ <printer translate="name" name="Canon PIXMA iP3600" driver="bjc-PIXMA-iP3600" manufacturer="Canon" model="3003600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP3600" />
<printer translate="name" name="Canon PIXMA iP4000" driver="bjc-iP4000" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP4000" />
- <printer translate="name" name="Canon PIXMA iP4100" driver="bjc-PIXMA-iP4100" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP4100" />
+ <printer translate="name" name="Canon PIXMA iP4000R" driver="bjc-PIXMA-iP4000R" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-iP4000R" />
+ <printer translate="name" name="Canon PIXMA iP4100" driver="bjc-PIXMA-iP4100" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP4100" />
+ <printer translate="name" name="Canon PIXMA iP4100R" driver="bjc-PIXMA-iP4100R" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP4100R" />
<printer translate="name" name="Canon PIXMA iP4200" driver="bjc-PIXMA-iP4200" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4200_params" foomaticid="Canon-PIXMA-iP4200" />
- <printer translate="name" name="Canon PIXMA iP4300" driver="bjc-PIXMA-iP4300" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4300" />
+ <printer translate="name" name="Canon PIXMA iP4300" driver="bjc-PIXMA-iP4300" manufacturer="Canon" model="3004300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4300" />
<printer translate="name" name="Canon PIXMA iP4500" driver="bjc-PIXMA-iP4500" manufacturer="Canon" model="3004500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4500" />
<printer translate="name" name="Canon PIXMA iP4600" driver="bjc-PIXMA-iP4600" manufacturer="Canon" model="3004600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4600" />
<printer translate="name" name="Canon PIXMA iP4700" driver="bjc-PIXMA-iP4700" manufacturer="Canon" model="3004700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4700" />
<printer translate="name" name="Canon PIXMA iP4800" driver="bjc-PIXMA-iP4800" manufacturer="Canon" model="3004800" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4800" />
- <printer translate="name" name="Canon PIXMA iP5000" driver="bjc-PIXMA-iP5000" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5000" />
+ <printer translate="name" name="Canon PIXMA iP4900" driver="bjc-PIXMA-iP4900" manufacturer="Canon" model="3004900" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-iP4900" />
+ <printer translate="name" name="Canon PIXMA iP5000" driver="bjc-PIXMA-iP5000" manufacturer="Canon" model="3005000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5000" />
<printer translate="name" name="Canon PIXMA iP5200" driver="bjc-PIXMA-iP5200" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5200" />
+ <printer translate="name" name="Canon PIXMA iP5200R" driver="bjc-PIXMA-iP5200R" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5200R" />
<printer translate="name" name="Canon PIXMA iP5300" driver="bjc-PIXMA-iP5300" manufacturer="Canon" model="3005300" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP5300" />
<printer translate="name" name="Canon PIXMA iP6000D" driver="bjc-PIXMA-iP6000D" manufacturer="Canon" model="3006000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6000D" />
<printer translate="name" name="Canon PIXMA iP6100D" driver="bjc-PIXMA-iP6100D" manufacturer="Canon" model="3006100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6100D" />
+ <printer translate="name" name="Canon PIXMA iP6210D" driver="bjc-PIXMA-iP6210D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6210D" />
+ <printer translate="name" name="Canon PIXMA iP6220D" driver="bjc-PIXMA-iP6220D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6220D" />
+ <printer translate="name" name="Canon PIXMA iP6310D" driver="bjc-PIXMA-iP6310D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6310D" />
+ <printer translate="name" name="Canon PIXMA iP6320D" driver="bjc-PIXMA-iP6320D" manufacturer="Canon" model="3006210" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6320D" />
<printer translate="name" name="Canon PIXMA iP6600D" driver="bjc-PIXMA-iP6600D" manufacturer="Canon" model="3006600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6600D" />
<printer translate="name" name="Canon PIXMA iP6700" driver="bjc-PIXMA-iP6700" manufacturer="Canon" model="3006700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP6700" />
+ <printer translate="name" name="Canon PIXMA iP7100" driver="bjc-PIXMA-iP7100" manufacturer="Canon" model="3007100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7100" />
+ <printer translate="name" name="Canon PIXMA iP7500" driver="bjc-PIXMA-iP7500" manufacturer="Canon" model="3007500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP7500" />
+ <printer translate="name" name="Canon PIXMA iP8100" driver="bjc-PIXMA-iP8100" manufacturer="Canon" model="3008100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8100" />
<printer translate="name" name="Canon PIXMA iP8500" driver="bjc-PIXMA-iP8500" manufacturer="Canon" model="3008500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8500" />
- <printer translate="name" name="Canon PIXMA iX4000" driver="bjc-PIXMA-iX4000" manufacturer="Canon" model="4005000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX4000" />
+ <printer translate="name" name="Canon PIXMA iP8600" driver="bjc-PIXMA-iP8600" manufacturer="Canon" model="3008600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8600" />
+ <printer translate="name" name="Canon PIXMA iP9910" driver="bjc-PIXMA-iP9910" manufacturer="Canon" model="3009910" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP9910" />
+ <printer translate="name" name="Canon PIXMA iX4000" driver="bjc-PIXMA-iX4000" manufacturer="Canon" model="4004000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX4000" />
<printer translate="name" name="Canon PIXMA iX5000" driver="bjc-PIXMA-iX5000" manufacturer="Canon" model="4005000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX5000" />
<printer translate="name" name="Canon PIXMA iX6500" driver="bjc-PIXMA-iX6500" manufacturer="Canon" model="4006500" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX6500" />
<printer translate="name" name="Canon PIXMA iX7000" driver="bjc-PIXMA-iX7000" manufacturer="Canon" model="4007000" parameters="PIXMA_iX5000_params" foomaticid="Canon-PIXMA-iX7000" />
@@ -169,74 +191,145 @@
<printer translate="name" name="Canon PIXMA Pro9000mk2" driver="bjc-PIXMA-Pro9000mk2" manufacturer="Canon" model="7009002" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9000-Mk2" />
<printer translate="name" name="Canon PIXMA Pro9500" driver="bjc-PIXMA-Pro9500" manufacturer="Canon" model="7009500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9500" />
<printer translate="name" name="Canon PIXMA Pro9500mk2" driver="bjc-PIXMA-Pro9500mk2" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9500-Mk2" />
+ <printer translate="name" name="Canon PIXMA MP140" driver="bjc-MULTIPASS-MP140" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP140" />
<printer translate="name" name="Canon PIXMA MP150" driver="bjc-MULTIPASS-MP150" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP150" />
<printer translate="name" name="Canon PIXMA MP160" driver="bjc-MULTIPASS-MP160" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP160" />
- <printer translate="name" name="Canon PIXMA MP170" driver="bjc-MULTIPASS-MP170" manufacturer="Canon" model="5000170" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP170" />
+ <printer translate="name" name="Canon PIXMA MP170" driver="bjc-MULTIPASS-MP170" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP170" />
<printer translate="name" name="Canon PIXMA MP180" driver="bjc-MULTIPASS-MP180" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP180" />
- <printer translate="name" name="Canon PIXMA MP220" driver="bjc-MULTIPASS-MP220" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP220" />
+ <printer translate="name" name="Canon PIXMA MP190" driver="bjc-MULTIPASS-MP190" manufacturer="Canon" model="5000190" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP190" />
+ <printer translate="name" name="Canon PIXMA MP210" driver="bjc-MULTIPASS-MP210" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP210" />
+ <printer translate="name" name="Canon PIXMA MP220" driver="bjc-MULTIPASS-MP220" manufacturer="Canon" model="5000210" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP220" />
+ <printer translate="name" name="Canon PIXMA MP240" driver="bjc-MULTIPASS-MP240" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP240" />
<printer translate="name" name="Canon PIXMA MP250" driver="bjc-MULTIPASS-MP250" manufacturer="Canon" model="5000250" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP250" />
+ <printer translate="name" name="Canon PIXMA MP260" driver="bjc-MULTIPASS-MP260" manufacturer="Canon" model="5000240" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP260" />
<printer translate="name" name="Canon PIXMA MP270" driver="bjc-MULTIPASS-MP270" manufacturer="Canon" model="5000270" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP270" />
<printer translate="name" name="Canon PIXMA MP280" driver="bjc-MULTIPASS-MP280" manufacturer="Canon" model="5000280" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP280" />
- <printer translate="name" name="Canon PIXMA MP360" driver="bjc-MULTIPASS-MP360" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP360" />
- <printer translate="name" name="Canon PIXMA MP370" driver="bjc-MULTIPASS-MP370" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP370" />
- <printer translate="name" name="Canon PIXMA MP390" driver="bjc-MULTIPASS-MP390" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP390" />
+ <printer translate="name" name="Canon PIXMA MP360" driver="bjc-MULTIPASS-MP360" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP360" />
+ <printer translate="name" name="Canon PIXMA MP370" driver="bjc-MULTIPASS-MP370" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP370" />
+ <printer translate="name" name="Canon PIXMA MP375R" driver="bjc-MULTIPASS-MP375R" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP375R" />
+ <printer translate="name" name="Canon PIXMA MP390" driver="bjc-MULTIPASS-MP390" manufacturer="Canon" model="5000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP390" />
<printer translate="name" name="Canon PIXMA MP450" driver="bjc-MULTIPASS-MP450" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP450" />
<printer translate="name" name="Canon PIXMA MP460" driver="bjc-MULTIPASS-MP460" manufacturer="Canon" model="5000450" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP460" />
+ <printer translate="name" name="Canon PIXMA MP470" driver="bjc-MULTIPASS-MP470" manufacturer="Canon" model="5000470" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP470" />
<printer translate="name" name="Canon PIXMA MP480" driver="bjc-MULTIPASS-MP480" manufacturer="Canon" model="5000480" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP480" />
+ <printer translate="name" name="Canon PIXMA MP490" driver="bjc-MULTIPASS-MP490" manufacturer="Canon" model="5000490" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP490" />
<printer translate="name" name="Canon PIXMA MP493" driver="bjc-MULTIPASS-MP493" manufacturer="Canon" model="5000493" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP493" />
<printer translate="name" name="Canon PIXMA MP495" driver="bjc-MULTIPASS-MP495" manufacturer="Canon" model="5000495" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP495" />
<printer translate="name" name="Canon PIXMA MP500" driver="bjc-MULTIPASS-MP500" manufacturer="Canon" model="3004200" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP500" />
<printer translate="name" name="Canon PIXMA MP510" driver="bjc-MULTIPASS-MP510" manufacturer="Canon" model="5000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP510" />
<printer translate="name" name="Canon PIXMA MP520" driver="bjc-MULTIPASS-MP520" manufacturer="Canon" model="5000520" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP520" />
+ <printer translate="name" name="Canon PIXMA MP530" driver="bjc-MULTIPASS-MP530" manufacturer="Canon" model="5000530" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP530" />
<printer translate="name" name="Canon PIXMA MP540" driver="bjc-MULTIPASS-MP540" manufacturer="Canon" model="5000540" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP540" />
<printer translate="name" name="Canon PIXMA MP550" driver="bjc-MULTIPASS-MP550" manufacturer="Canon" model="5000550" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP550" />
+ <printer translate="name" name="Canon PIXMA MP560" driver="bjc-MULTIPASS-MP560" manufacturer="Canon" model="5000560" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP560" />
<printer translate="name" name="Canon PIXMA MP600" driver="bjc-MULTIPASS-MP600" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP600" />
- <printer translate="name" name="Canon PIXMA MP610" driver="bjc-MULTIPASS-MP610" manufacturer="Canon" model="3005300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP610" />
- <printer translate="name" name="Canon PIXMA MP620" driver="bjc-MULTIPASS-MP620" manufacturer="Canon" model="5000540" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP620" />
+ <printer translate="name" name="Canon PIXMA MP600R" driver="bjc-MULTIPASS-MP600R" manufacturer="Canon" model="5000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP600R" />
+ <printer translate="name" name="Canon PIXMA MP610" driver="bjc-MULTIPASS-MP610" manufacturer="Canon" model="5000610" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP610" />
+ <printer translate="name" name="Canon PIXMA MP620" driver="bjc-MULTIPASS-MP620" manufacturer="Canon" model="5000620" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP620" />
<printer translate="name" name="Canon PIXMA MP630" driver="bjc-MULTIPASS-MP630" manufacturer="Canon" model="5000630" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP630" />
<printer translate="name" name="Canon PIXMA MP640" driver="bjc-MULTIPASS-MP640" manufacturer="Canon" model="5000640" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP640" />
- <printer translate="name" name="Canon PIXMA MP700" driver="bjc-MULTIPASS-MP700" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP700" />
- <printer translate="name" name="Canon PIXMA MP710" driver="bjc-MULTIPASS-MP710" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP710" />
- <printer translate="name" name="Canon PIXMA MP730" driver="bjc-MULTIPASS-MP730" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP730" />
- <printer translate="name" name="Canon PIXMA MP740" driver="bjc-MULTIPASS-MP740" manufacturer="Canon" model="5000740" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP740" />
- <printer translate="name" name="Canon PIXMA MP750" driver="bjc-MULTIPASS-MP750" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP750" />
- <printer translate="name" name="Canon PIXMA MP760" driver="bjc-MULTIPASS-MP760" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP760" />
- <printer translate="name" name="Canon PIXMA MP770" driver="bjc-MULTIPASS-MP770" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP770" />
- <printer translate="name" name="Canon PIXMA MP780" driver="bjc-MULTIPASS-MP780" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP780" />
- <printer translate="name" name="Canon PIXMA MP790" driver="bjc-MULTIPASS-MP790" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP790" />
+ <printer translate="name" name="Canon PIXMA MP700" driver="bjc-MULTIPASS-MP700" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP700" />
+ <printer translate="name" name="Canon PIXMA MP710" driver="bjc-MULTIPASS-MP710" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP710" />
+ <printer translate="name" name="Canon PIXMA MP730" driver="bjc-MULTIPASS-MP730" manufacturer="Canon" model="5000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP730" />
+ <printer translate="name" name="Canon PIXMA MP740" driver="bjc-MULTIPASS-MP740" manufacturer="Canon" model="5000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP740" />
+ <printer translate="name" name="Canon PIXMA MP750" driver="bjc-MULTIPASS-MP750" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP750" />
+ <printer translate="name" name="Canon PIXMA MP760" driver="bjc-MULTIPASS-MP760" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP760" />
+ <printer translate="name" name="Canon PIXMA MP770" driver="bjc-MULTIPASS-MP770" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP770" />
+ <printer translate="name" name="Canon PIXMA MP780" driver="bjc-MULTIPASS-MP780" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP780" />
+ <printer translate="name" name="Canon PIXMA MP790" driver="bjc-MULTIPASS-MP790" manufacturer="Canon" model="5000750" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP790" />
<printer translate="name" name="Canon PIXMA MP800" driver="bjc-MULTIPASS-MP800" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP800" />
+ <printer translate="name" name="Canon PIXMA MP800R" driver="bjc-MULTIPASS-MP800R" manufacturer="Canon" model="5000800" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP800R" />
<printer translate="name" name="Canon PIXMA MP810" driver="bjc-MULTIPASS-MP810" manufacturer="Canon" model="5000810" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP810" />
<printer translate="name" name="Canon PIXMA MP830" driver="bjc-MULTIPASS-MP830" manufacturer="Canon" model="5000830" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP830" />
+ <printer translate="name" name="Canon PIXMA MP900" driver="bjc-MULTIPASS-MP900" manufacturer="Canon" model="5000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP900" />
<printer translate="name" name="Canon PIXMA MP950" driver="bjc-MULTIPASS-MP950" manufacturer="Canon" model="5000950" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP950" />
<printer translate="name" name="Canon PIXMA MP960" driver="bjc-MULTIPASS-MP960" manufacturer="Canon" model="5000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP960" />
<printer translate="name" name="Canon PIXMA MP970" driver="bjc-MULTIPASS-MP970" manufacturer="Canon" model="5000970" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP970" />
<printer translate="name" name="Canon PIXMA MP980" driver="bjc-MULTIPASS-MP980" manufacturer="Canon" model="5000980" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP980" />
<printer translate="name" name="Canon PIXMA MP990" driver="bjc-MULTIPASS-MP990" manufacturer="Canon" model="5000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP990" />
- <printer translate="name" name="Canon PIXUS iP3100" driver="bjc-PIXUS-iP3100" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP3100" />
- <printer translate="name" name="Canon PIXUS iP4100" driver="bjc-PIXUS-iP4100" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP4100" />
+ <printer translate="name" name="Canon PIXUS iP2700" driver="bjc-PIXUS-iP2700" manufacturer="Canon" model="3002700" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP2700" />
+ <printer translate="name" name="Canon PIXUS iP3100" driver="bjc-PIXUS-iP3100" manufacturer="Canon" model="3003100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP3100" />
+ <printer translate="name" name="Canon PIXUS iP4100" driver="bjc-PIXUS-iP4100" manufacturer="Canon" model="3004100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP4100" />
+ <printer translate="name" name="Canon PIXMA MG2100" driver="bjc-PIXMA-MG2100" manufacturer="Canon" model="8002100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2100" />
+ <printer translate="name" name="Canon PIXMA MG3100" driver="bjc-PIXMA-MG3100" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3100" />
+ <printer translate="name" name="Canon PIXMA MG4100" driver="bjc-PIXMA-MG4100" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4100" />
<printer translate="name" name="Canon PIXMA MG5100" driver="bjc-PIXMA-MG5100" manufacturer="Canon" model="8005100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5100" />
<printer translate="name" name="Canon PIXMA MG5200" driver="bjc-PIXMA-MG5200" manufacturer="Canon" model="8005200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5200" />
+ <printer translate="name" name="Canon PIXMA MG5300" driver="bjc-PIXMA-MG5300" manufacturer="Canon" model="8005300" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5300" />
<printer translate="name" name="Canon PIXMA MG6100" driver="bjc-PIXMA-MG6100" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6100" />
+ <printer translate="name" name="Canon PIXMA MG6200" driver="bjc-PIXMA-MG6200" manufacturer="Canon" model="8006200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6200" />
<printer translate="name" name="Canon PIXMA MG8100" driver="bjc-PIXMA-MG8100" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8100" />
+ <printer translate="name" name="Canon PIXMA MG8200" driver="bjc-PIXMA-MG8200" manufacturer="Canon" model="8008200" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8200" />
<printer translate="name" name="Canon PIXMA MX300" driver="bjc-MULTIPASS-MX300" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX300" />
- <printer translate="name" name="Canon PIXMA MX310" driver="bjc-MULTIPASS-MX300" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX310" />
+ <printer translate="name" name="Canon PIXMA MX310" driver="bjc-MULTIPASS-MX310" manufacturer="Canon" model="9000300" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX310" />
+ <printer translate="name" name="Canon PIXMA MX320" driver="bjc-MULTIPASS-MX320" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX320" />
<printer translate="name" name="Canon PIXMA MX330" driver="bjc-MULTIPASS-MX330" manufacturer="Canon" model="9000330" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX330" />
<printer translate="name" name="Canon PIXMA MX340" driver="bjc-MULTIPASS-MX340" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX340" />
- <printer translate="name" name="Canon PIXMA MX350" driver="bjc-MULTIPASS-MX340" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX350" />
+ <printer translate="name" name="Canon PIXMA MX350" driver="bjc-MULTIPASS-MX350" manufacturer="Canon" model="9000340" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX350" />
<printer translate="name" name="Canon PIXMA MX360" driver="bjc-MULTIPASS-MX360" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX360" />
+ <printer translate="name" name="Canon PIXMA MX370" driver="bjc-MULTIPASS-MX370" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX370" />
<printer translate="name" name="Canon PIXMA MX410" driver="bjc-MULTIPASS-MX410" manufacturer="Canon" model="9000360" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX410" />
<printer translate="name" name="Canon PIXMA MX420" driver="bjc-MULTIPASS-MX420" manufacturer="Canon" model="9000420" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX420" />
+ <printer translate="name" name="Canon PIXMA MX430" driver="bjc-MULTIPASS-MX430" manufacturer="Canon" model="9000370" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX430" />
+ <printer translate="name" name="Canon PIXMA MX510" driver="bjc-MULTIPASS-MX510" manufacturer="Canon" model="9000510" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX510" />
<printer translate="name" name="Canon PIXMA MX700" driver="bjc-MULTIPASS-MX700" manufacturer="Canon" model="9000700" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX700" />
- <printer translate="name" name="Canon PIXMA MX850" driver="bjc-MULTIPASS-MX850" manufacturer="Canon" model="9000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX850" />
- <printer translate="name" name="Canon PIXMA MX860" driver="bjc-MULTIPASS-MX860" manufacturer="Canon" model="9000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX860" />
- <printer translate="name" name="Canon PIXMA MX870" driver="bjc-MULTIPASS-MX870" manufacturer="Canon" model="9000870" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX870" />
- <printer translate="name" name="Canon PIXMA MX880" driver="bjc-MULTIPASS-MX880" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX880" />
- <printer translate="name" name="Canon PIXMA MX7600" driver="bjc-MULTIPASS-MX7600" manufacturer="Canon" model="9007600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX7600" />
- <printer translate="name" name="Canon i80" driver="bjc-i80" manufacturer="Canon" model="2000080" parameters="density_800_params" foomaticid="Canon-i80" />
+ <printer translate="name" name="Canon PIXMA MX710" driver="bjc-MULTIPASS-MX710" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX710" />
+ <printer translate="name" name="Canon PIXMA MX850" driver="bjc-MULTIPASS-MX850" manufacturer="Canon" model="9000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX850" />
+ <printer translate="name" name="Canon PIXMA MX860" driver="bjc-MULTIPASS-MX860" manufacturer="Canon" model="9000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX860" />
+ <printer translate="name" name="Canon PIXMA MX870" driver="bjc-MULTIPASS-MX870" manufacturer="Canon" model="9000870" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX870" />
+ <printer translate="name" name="Canon PIXMA MX880" driver="bjc-MULTIPASS-MX880" manufacturer="Canon" model="9000880" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX880" />
+ <printer translate="name" name="Canon PIXMA MX890" driver="bjc-MULTIPASS-MX890" manufacturer="Canon" model="9000710" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX890" />
+ <printer translate="name" name="Canon PIXMA MX7600" driver="bjc-MULTIPASS-MX7600" manufacturer="Canon" model="9007600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MX7600" />
+ <printer translate="name" name="Canon PIXMA E500" driver="bjc-MULTIPASS-E500" manufacturer="Canon" model="12000500" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-E500" />
+ <printer translate="name" name="Canon PIXMA E600" driver="bjc-MULTIPASS-E600" manufacturer="Canon" model="12000600" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-E600" />
+ <printer translate="name" name="Canon 50i" driver="bjc-50i" manufacturer="Canon" model="2000050" parameters="density_800_params" foomaticid="Canon-50i" />
+ <printer translate="name" name="Canon 80i" driver="bjc-80i" manufacturer="Canon" model="2000080" parameters="density_800_params" foomaticid="Canon-80i" />
+ <printer translate="name" name="Canon 450i" driver="bjc-450i" manufacturer="Canon" model="2000450" parameters="density_800_params" foomaticid="Canon-450i" />
+ <printer translate="name" name="Canon 455i" driver="bjc-455i" manufacturer="Canon" model="2000455" parameters="density_800_params" foomaticid="Canon-455i" />
+ <printer translate="name" name="Canon 470PD" driver="bjc-470PD" manufacturer="Canon" model="2000450" parameters="density_800_params" foomaticid="Canon-470PD" />
+ <printer translate="name" name="Canon 475PD" driver="bjc-475PD" manufacturer="Canon" model="2000455" parameters="density_800_params" foomaticid="Canon-475PD" />
+ <printer translate="name" name="Canon 550i" driver="bjc-550i" manufacturer="Canon" model="2000550" parameters="density_800_params" foomaticid="Canon-550i" />
+ <printer translate="name" name="Canon 560i" driver="bjc-560i" manufacturer="Canon" model="2000560" parameters="gamma_6_density_800_params" foomaticid="Canon-560i" />
+ <printer translate="name" name="Canon 850i" driver="bjc-850i" manufacturer="Canon" model="2000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-850i" />
+ <printer translate="name" name="Canon 860i" driver="bjc-860i" manufacturer="Canon" model="2000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-860i" />
+ <printer translate="name" name="Canon 865R" driver="bjc-865R" manufacturer="Canon" model="2000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-865R" />
+ <printer translate="name" name="Canon 900PD" driver="bjc-900PD" manufacturer="Canon" model="2000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-900PD" />
+ <printer translate="name" name="Canon 950i" driver="bjc-950i" manufacturer="Canon" model="2000950" parameters="PIXMA_iP4000_params" foomaticid="Canon-950i" />
+ <printer translate="name" name="Canon 960i" driver="bjc-960i" manufacturer="Canon" model="2000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-960i" />
+ <printer translate="name" name="Canon 990i" driver="bjc-990i" manufacturer="Canon" model="2000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-990i" />
+ <printer translate="name" name="Canon 6100i" driver="bjc-6100i" manufacturer="Canon" model="2006100" parameters="PIXMA_iP4000_params" foomaticid="Canon-6100i" />
+ <printer translate="name" name="Canon 6500i" driver="bjc-6500i" manufacturer="Canon" model="2006100" parameters="PIXMA_iP4000_params" foomaticid="Canon-6500i" />
+ <printer translate="name" name="Canon 9100i" driver="bjc-9100i" manufacturer="Canon" model="2009100" parameters="PIXMA_iP4000_params" foomaticid="Canon-9100i" />
+ <printer translate="name" name="Canon 9900i" driver="bjc-9900i" manufacturer="Canon" model="2009900" parameters="PIXMA_iP4000_params" foomaticid="Canon-9900i" />
+ <printer translate="name" name="Canon i70" driver="bjc-i70" manufacturer="Canon" model="2000050" parameters="density_800_params" foomaticid="Canon-i70" />
+ <printer translate="name" name="Canon i80" driver="bjc-i80" manufacturer="Canon" model="2000080" parameters="density_800_params" foomaticid="Canon-i80" />
+ <printer translate="name" name="Canon i450" driver="bjc-i450" manufacturer="Canon" model="2000450" parameters="density_800_params" foomaticid="Canon-i450" />
+ <printer translate="name" name="Canon i450X" driver="bjc-i450X" manufacturer="Canon" model="2000450" parameters="density_800_params" foomaticid="Canon-i450X" />
+ <printer translate="name" name="Canon i455" driver="bjc-i455" manufacturer="Canon" model="2000455" parameters="density_800_params" foomaticid="Canon-i455" />
+ <printer translate="name" name="Canon i455X" driver="bjc-i455X" manufacturer="Canon" model="2000455" parameters="density_800_params" foomaticid="Canon-i455X" />
+ <printer translate="name" name="Canon i470D" driver="bjc-i470D" manufacturer="Canon" model="2000450" parameters="density_800_params" foomaticid="Canon-i470D" />
+ <printer translate="name" name="Canon i475D" driver="bjc-i475D" manufacturer="Canon" model="2000455" parameters="density_800_params" foomaticid="Canon-i475D" />
+ <printer translate="name" name="Canon i550" driver="bjc-i550" manufacturer="Canon" model="2000550" parameters="density_800_params" foomaticid="Canon-i550" />
+ <printer translate="name" name="Canon i550X" driver="bjc-i550X" manufacturer="Canon" model="2000550" parameters="density_800_params" foomaticid="Canon-i550X" />
<printer translate="name" name="Canon i560" driver="bjc-i560" manufacturer="Canon" model="2000560" parameters="gamma_6_density_800_params" foomaticid="Canon-i560" />
- <printer translate="name" name="Canon i850" driver="bjc-i850" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-i850" />
- <printer translate="name" name="Canon i860" driver="bjc-i860" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-i860" />
- <printer translate="name" name="Canon i865" driver="bjc-i865" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-i865" />
+ <printer translate="name" name="Canon i560X" driver="bjc-i560X" manufacturer="Canon" model="2000560" parameters="gamma_6_density_800_params" foomaticid="Canon-i560X" />
+ <printer translate="name" name="Canon i850old" driver="bjc-i850old" manufacturer="Canon" model="3003000" parameters="PIXMA_iP4000_params" foomaticid="Canon-i850old" />
+ <printer translate="name" name="Canon i850" driver="bjc-i850" manufacturer="Canon" model="2000850" parameters="PIXMA_iP4000_params" foomaticid="Canon-i850" />
+ <printer translate="name" name="Canon i860old" driver="bjc-i860old" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-i860old" />
+ <printer translate="name" name="Canon i860" driver="bjc-i860" manufacturer="Canon" model="2000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-i860" />
+ <printer translate="name" name="Canon i865old" driver="bjc-i865old" manufacturer="Canon" model="3004000" parameters="PIXMA_iP4000_params" foomaticid="Canon-i865old" />
+ <printer translate="name" name="Canon i865" driver="bjc-i865" manufacturer="Canon" model="2000860" parameters="PIXMA_iP4000_params" foomaticid="Canon-i865" />
+ <printer translate="name" name="Canon i900D" driver="bjc-i900D" manufacturer="Canon" model="2000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-i900D" />
+ <printer translate="name" name="Canon i905D" driver="bjc-i905D" manufacturer="Canon" model="2000900" parameters="PIXMA_iP4000_params" foomaticid="Canon-i905D" />
+ <printer translate="name" name="Canon i950" driver="bjc-i950" manufacturer="Canon" model="2000950" parameters="PIXMA_iP4000_params" foomaticid="Canon-i950" />
+ <printer translate="name" name="Canon i960" driver="bjc-i960" manufacturer="Canon" model="2000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-i960" />
+ <printer translate="name" name="Canon i965" driver="bjc-i965" manufacturer="Canon" model="2000960" parameters="PIXMA_iP4000_params" foomaticid="Canon-i965" />
+ <printer translate="name" name="Canon i990" driver="bjc-i990" manufacturer="Canon" model="2000990" parameters="PIXMA_iP4000_params" foomaticid="Canon-i990" />
+ <printer translate="name" name="Canon i6100" driver="bjc-i6100" manufacturer="Canon" model="2006100" parameters="PIXMA_iP4000_params" foomaticid="Canon-i6100" />
+ <printer translate="name" name="Canon i6500" driver="bjc-i6500" manufacturer="Canon" model="2006100" parameters="PIXMA_iP4000_params" foomaticid="Canon-i6500" />
+ <printer translate="name" name="Canon i9100" driver="bjc-i9100" manufacturer="Canon" model="2009100" parameters="PIXMA_iP4000_params" foomaticid="Canon-i9100" />
+ <printer translate="name" name="Canon i9900" driver="bjc-i9900" manufacturer="Canon" model="2009900" parameters="PIXMA_iP4000_params" foomaticid="Canon-i9900" />
+ <printer translate="name" name="Canon i9950" driver="bjc-i9950" manufacturer="Canon" model="2009900" parameters="PIXMA_iP4000_params" foomaticid="Canon-i9950" />
</family>
<family name="escp2">
<parameters name="standard_params">
@@ -266,6 +359,7 @@
<printer translate="name" name="Epson Artisan 710" driver="escp2-artisan710" manufacturer="Epson" model="96" parameters="claria_params" foomaticid="Epson-Artisan_710" />
<printer translate="name" name="Epson Artisan 800" driver="escp2-artisan800" manufacturer="Epson" model="96" parameters="claria_params" foomaticid="Epson-Artisan_800" />
<printer translate="name" name="Epson Artisan 810" driver="escp2-artisan810" manufacturer="Epson" model="96" parameters="claria_params" foomaticid="Epson-Artisan_810" />
+ <printer translate="name" name="Epson Artisan 835" driver="escp2-artisan835" manufacturer="Epson" model="96" parameters="claria_params" foomaticid="Epson-Artisan_835" />
<printer translate="name" name="Epson B-300" driver="escp2-b300" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-B300" />
<printer translate="name" name="Epson B-308" driver="escp2-b308" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-B308" />
<printer translate="name" name="Epson B-310" driver="escp2-b310" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-B310" />
@@ -356,10 +450,14 @@
<printer translate="name" name="Epson Stylus Office T1100" driver="escp2-of-t1100" manufacturer="Epson" model="99" parameters="standard_params" foomaticid="Epson-Stylus_Office_T1100" />
<printer translate="name" name="Epson Stylus Office T1110" driver="escp2-of-t1110" manufacturer="Epson" model="99" parameters="standard_params" foomaticid="Epson-Stylus_Office_T1110" />
<printer translate="name" name="Epson Stylus Office BX300F" driver="escp2-of-bx300f" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_Office_BX300F" />
+ <printer translate="name" name="Epson Stylus Office BX535WD" driver="escp2-of-bx535wd" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_Office_BX535WD" />
<printer translate="name" name="Epson Stylus Office BX600FW" driver="escp2-of-bx600fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_Office_BX600FW" />
+ <printer translate="name" name="Epson Stylus Office BX630FW" driver="escp2-of-bx630fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_Office_BX630FW" />
+ <printer translate="name" name="Epson Stylus Office BX635FWD" driver="escp2-of-bx635fwd" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_Office_BX635FWD" />
<printer translate="name" name="Epson Stylus Office SX600FW" driver="escp2-of-sx600fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_Office_SX600FW" />
<printer translate="name" name="Epson Stylus Office TX300F" driver="escp2-of-tx300f" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_Office_TX300F" />
<printer translate="name" name="Epson Stylus Office TX600FW" driver="escp2-of-tx600fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_Office_TX600FW" />
+ <printer translate="name" name="Epson Stylus Office TX620FWD" driver="escp2-of-tx620fwd" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_Office_TX620FWD" />
<printer translate="name" name="Epson Stylus Photo" driver="escp2-photo" manufacturer="Epson" model="9" parameters="standard_params" foomaticid="Epson-Stylus_Photo" />
<printer translate="name" name="Epson Stylus Photo 700" deviceid="MFG:EPSON;MDL:Stylus Photo 700;DES:EPSON Stylus Photo 700;CMD:ESCPL2,BDC;" driver="escp2-700" manufacturer="Epson" model="7" parameters="standard_params" foomaticid="Epson-Stylus_Photo_700" />
<printer translate="name" name="Epson Stylus Photo EX" deviceid="MFG:EPSON;MDL:Stylus Photo EX;CMD:ESCPL2,BDC;" driver="escp2-ex" manufacturer="Epson" model="8" parameters="standard_params" foomaticid="Epson-Stylus_Photo_EX" />
@@ -422,6 +520,7 @@
<printer translate="name" name="Epson Stylus Photo R800" driver="escp2-r800" manufacturer="Epson" model="64" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R800" />
<printer translate="name" name="Epson Stylus Photo R1800" driver="escp2-r1800" manufacturer="Epson" model="67" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R1800" />
<printer translate="name" name="Epson Stylus Photo R1900" driver="escp2-r1900" manufacturer="Epson" model="91" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R1900" />
+ <printer translate="name" name="Epson Stylus Photo R2000" driver="escp2-r2000" manufacturer="Epson" model="91" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R2000" />
<printer translate="name" name="Epson Stylus Photo R2400" driver="escp2-r2400" manufacturer="Epson" model="71" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R2400" />
<printer translate="name" name="Epson Stylus Photo R2880" driver="escp2-r2880" manufacturer="Epson" model="98" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R2880" />
<printer translate="name" name="Epson Stylus Photo R3000" driver="escp2-r3000" manufacturer="Epson" model="115" parameters="standard_params" foomaticid="Epson-Stylus_Photo_R3000" />
@@ -441,6 +540,7 @@
<printer translate="name" name="Epson Stylus Photo RX620" deviceid="MFG:EPSON;MDL:Stylus Photo RX620;DES:EPSON Stylus Photo RX620;CMD:ESCPL2,BDC,D4;" driver="escp2-rx620" manufacturer="Epson" model="84" parameters="standard_params" foomaticid="Epson-Stylus_Photo_RX620" />
<printer translate="name" name="Epson Stylus Photo RX630" deviceid="MFG:EPSON;MDL:Stylus Photo RX630;DES:EPSON Stylus Photo RX630;CMD:ESCPL2,BDC,D4;" driver="escp2-rx630" manufacturer="Epson" model="84" parameters="standard_params" foomaticid="Epson-Stylus_Photo_RX630" />
<printer translate="name" name="Epson Stylus Photo RX640" driver="escp2-rx640" manufacturer="Epson" model="81" parameters="claria_params" foomaticid="Epson-Stylus_Photo_RX640" />
+ <printer translate="name" name="Epson Stylus Photo RX650" driver="escp2-rx650" manufacturer="Epson" model="81" parameters="claria_params" foomaticid="Epson-Stylus_Photo_RX650" />
<printer translate="name" name="Epson Stylus Photo RX680" driver="escp2-rx680" manufacturer="Epson" model="97" parameters="claria_params" foomaticid="Epson-Stylus_Photo_RX680" />
<printer translate="name" name="Epson Stylus Photo RX685" driver="escp2-rx685" manufacturer="Epson" model="97" parameters="claria_params" foomaticid="Epson-Stylus_Photo_RX685" />
<printer translate="name" name="Epson Stylus Photo RX690" driver="escp2-rx690" manufacturer="Epson" model="97" parameters="claria_params" foomaticid="Epson-Stylus_Photo_RX690" />
@@ -465,6 +565,7 @@
<printer translate="name" name="Epson Stylus Pro 7800" driver="escp2-7800" manufacturer="Epson" model="103" parameters="standard_params" foomaticid="Epson-Stylus_Pro_7800" />
<printer translate="name" name="Epson Stylus Pro 7880" driver="escp2-7880" manufacturer="Epson" model="89" parameters="standard_params" foomaticid="Epson-Stylus_Pro_7880" />
<printer translate="name" name="Epson Stylus Pro 7890" driver="escp2-7890" manufacturer="Epson" model="89" parameters="standard_params" foomaticid="Epson-Stylus_Pro_7890" />
+ <printer translate="name" name="Epson Stylus Pro 7900" driver="escp2-7900" manufacturer="Epson" model="116" parameters="standard_params" foomaticid="Epson-Stylus_Pro_7900" />
<printer translate="name" name="Epson Stylus Pro 9000" driver="escp2-9000" manufacturer="Epson" model="30" parameters="standard_params" foomaticid="Epson-Stylus_Pro_9000" />
<printer translate="name" name="Epson Stylus Pro 9500" driver="escp2-9500" manufacturer="Epson" model="31" parameters="pro_5500_params" foomaticid="Epson-Stylus_Pro_9500" />
<printer translate="name" name="Epson Stylus Pro 9600" driver="escp2-9600" manufacturer="Epson" model="49" parameters="standard_params" foomaticid="Epson-Stylus_Pro_9600" />
@@ -472,6 +573,7 @@
<printer translate="name" name="Epson Stylus Pro 9800" driver="escp2-9800" manufacturer="Epson" model="104" parameters="standard_params" foomaticid="Epson-Stylus_Pro_9800" />
<printer translate="name" name="Epson Stylus Pro 9880" driver="escp2-9880" manufacturer="Epson" model="90" parameters="standard_params" foomaticid="Epson-Stylus_Pro_9880" />
<printer translate="name" name="Epson Stylus Pro 9890" driver="escp2-9890" manufacturer="Epson" model="90" parameters="standard_params" foomaticid="Epson-Stylus_Pro_9890" />
+ <printer translate="name" name="Epson Stylus Pro 9900" driver="escp2-9900" manufacturer="Epson" model="117" parameters="standard_params" foomaticid="Epson-Stylus_Pro_9900" />
<printer translate="name" name="Epson Stylus Pro 10000" driver="escp2-10000" manufacturer="Epson" model="41" parameters="standard_params" foomaticid="Epson-Stylus_Pro_10000" />
<printer translate="name" name="Epson Stylus Pro 11800/11880 Back Compatible" driver="escp2-11600" manufacturer="Epson" model="113" parameters="standard_params" foomaticid="Epson-Stylus_Pro_11600" />
<printer translate="name" name="Epson Stylus Pro 11800" driver="escp2-11800" manufacturer="Epson" model="105" parameters="standard_params" foomaticid="Epson-Stylus_Pro_11800" />
@@ -488,6 +590,7 @@
<printer translate="name" name="Epson Stylus CX3800" deviceid="MFG:EPSON;MDL:Stylus CX3800;DES:EPSON Stylus CX3800;CMD:ESCPL2,BDC,D4;" driver="escp2-cx3800" manufacturer="Epson" model="72" parameters="standard_params" foomaticid="Epson-Stylus_CX3800" />
<printer translate="name" name="Epson Stylus CX3805" deviceid="MFG:EPSON;MDL:Stylus CX3805;DES:EPSON Stylus CX3805;CMD:ESCPL2,BDC,D4;" driver="escp2-cx3805" manufacturer="Epson" model="72" parameters="standard_params" foomaticid="Epson-Stylus_CX3805" />
<printer translate="name" name="Epson Stylus CX3810" deviceid="MFG:EPSON;MDL:Stylus CX3810;DES:EPSON Stylus CX3810;CMD:ESCPL2,BDC,D4;" driver="escp2-cx3810" manufacturer="Epson" model="72" parameters="standard_params" foomaticid="Epson-Stylus_CX3810" />
+ <printer translate="name" name="Epson Stylus CX3900" deviceid="MFG:EPSON;MDL:Stylus CX3900;DES:EPSON Stylus CX3900;CMD:ESCPL2,BDC,D4;" driver="escp2-cx3900" manufacturer="Epson" model="72" parameters="standard_params" foomaticid="Epson-Stylus_CX3900" />
<printer translate="name" name="Epson Stylus CX4100" deviceid="MFG:EPSON;MDL:Stylus CX4100;DES:EPSON Stylus CX4100;CMD:ESCPL2,BDC,D4;" driver="escp2-cx4100" manufacturer="Epson" model="95" parameters="cx3500_params" foomaticid="Epson-Stylus_CX4100" />
<printer translate="name" name="Epson Stylus CX4200" deviceid="MFG:EPSON;MDL:Stylus CX4200;DES:EPSON Stylus CX4200;CMD:ESCPL2,BDC,D4;" driver="escp2-cx4200" manufacturer="Epson" model="95" parameters="cx3500_params" foomaticid="Epson-Stylus_CX4200" />
<printer translate="name" name="Epson Stylus CX4400" driver="escp2-cx4400" manufacturer="Epson" model="72" parameters="standard_params" foomaticid="Epson-Stylus_CX4400" />
@@ -544,12 +647,15 @@
<printer translate="name" name="Epson Stylus NX100" driver="escp2-nx100" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_NX100" />
<printer translate="name" name="Epson Stylus NX105" driver="escp2-nx105" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_NX105" />
<printer translate="name" name="Epson Stylus NX115" driver="escp2-nx115" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_NX115" />
- <printer translate="name" name="Epson Stylus NX200" driver="escp2-nx200" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_NX200" />
+ <printer translate="name" name="Epson Stylus NX200" driver="escp2-nx200" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_NX200" />
<printer translate="name" name="Epson Stylus NX215" driver="escp2-nx215" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_NX215" />
<printer translate="name" name="Epson Stylus NX300" driver="escp2-nx300" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_NX300" />
<printer translate="name" name="Epson Stylus NX400" driver="escp2-nx400" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_NX400" />
<printer translate="name" name="Epson Stylus NX415" driver="escp2-nx415" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_NX415" />
+ <printer translate="name" name="Epson Stylus NX420" driver="escp2-nx420" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_NX420" />
<printer translate="name" name="Epson Stylus NX515" driver="escp2-nx515" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_NX515" />
+ <printer translate="name" name="Epson Stylus NX530" driver="escp2-nx530" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_NX530" />
+ <printer translate="name" name="Epson Stylus NX635" driver="escp2-nx635" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_NX635" />
<printer translate="name" name="Epson Stylus Photo PX650" driver="escp2-px650" manufacturer="Epson" model="97" parameters="standard_params" foomaticid="Epson-Stylus_Photo_PX650" />
<printer translate="name" name="Epson Stylus Photo PX700W" driver="escp2-px700fw" manufacturer="Epson" model="96" parameters="claria_params" foomaticid="Epson-Stylus_Photo_PX700W" />
<printer translate="name" name="Epson Stylus Photo PX710W" driver="escp2-px710fw" manufacturer="Epson" model="96" parameters="claria_params" foomaticid="Epson-Stylus_Photo_PX710W" />
@@ -562,16 +668,19 @@
<printer translate="name" name="Epson Stylus SX105" driver="escp2-sx105" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX105" />
<printer translate="name" name="Epson Stylus SX110" driver="escp2-sx110" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX110" />
<printer translate="name" name="Epson Stylus SX115" driver="escp2-sx115" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX115" />
- <printer translate="name" name="Epson Stylus SX200" driver="escp2-sx200" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX200" />
- <printer translate="name" name="Epson Stylus SX205" driver="escp2-sx205" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX205" />
+ <printer translate="name" name="Epson Stylus SX200" driver="escp2-sx200" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX200" />
+ <printer translate="name" name="Epson Stylus SX205" driver="escp2-sx205" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX205" />
<printer translate="name" name="Epson Stylus SX210" driver="escp2-sx210" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX210" />
<printer translate="name" name="Epson Stylus SX215" driver="escp2-sx215" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX215" />
<printer translate="name" name="Epson Stylus SX400" driver="escp2-sx400" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX400" />
<printer translate="name" name="Epson Stylus SX405" driver="escp2-sx405" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX405" />
<printer translate="name" name="Epson Stylus SX410" driver="escp2-sx410" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX410" />
<printer translate="name" name="Epson Stylus SX415" driver="escp2-sx415" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_SX415" />
+ <printer translate="name" name="Epson Stylus SX420" driver="escp2-sx420" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_SX420" />
<printer translate="name" name="Epson Stylus SX510W" driver="escp2-sx510w" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX510W" />
<printer translate="name" name="Epson Stylus SX515" driver="escp2-sx515" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX515" />
+ <printer translate="name" name="Epson Stylus SX525" driver="escp2-sx525" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX525" />
+ <printer translate="name" name="Epson Stylus SX535FW" driver="escp2-sx535FW" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX535FW" />
<printer translate="name" name="Epson Stylus SX600FW" driver="escp2-sx600fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX600FW" />
<printer translate="name" name="Epson Stylus SX610FW" driver="escp2-sx610fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX610FW" />
<printer translate="name" name="Epson Stylus SX615" driver="escp2-sx615" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_SX615" />
@@ -602,6 +711,7 @@
<printer translate="name" name="Epson Stylus TX300F" driver="escp2-tx300f" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_TX300F" />
<printer translate="name" name="Epson Stylus TX400" driver="escp2-tx400" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_TX400" />
<printer translate="name" name="Epson Stylus TX410" driver="escp2-tx410" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-Stylus_TX410" />
+ <printer translate="name" name="Epson Stylus TX420" driver="escp2-tx420" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-Stylus_TX420" />
<printer translate="name" name="Epson Stylus TX510FN" driver="escp2-tx510fn" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_TX510FN" />
<printer translate="name" name="Epson Stylus TX550W" driver="escp2-tx550w" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_TX550W" />
<printer translate="name" name="Epson Stylus TX610FW" driver="escp2-tx610fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-Stylus_TX610FW" />
@@ -631,9 +741,13 @@
<printer translate="name" name="Epson WorkForce 310" driver="escp2-wf310" manufacturer="Epson" model="85" parameters="standard_params" foomaticid="Epson-WorkForce_310" />
<printer translate="name" name="Epson WorkForce 315" driver="escp2-wf315" manufacturer="Epson" model="85" parameters="standard_params" foomaticid="Epson-WorkForce_315" />
<printer translate="name" name="Epson WorkForce 500" driver="escp2-wf500" manufacturer="Epson" model="93" parameters="standard_params" foomaticid="Epson-WorkForce_500" />
+ <printer translate="name" name="Epson WorkForce 545" driver="escp2-wf545" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_545" />
<printer translate="name" name="Epson WorkForce 600" driver="escp2-wf600" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_600" />
<printer translate="name" name="Epson WorkForce 610" driver="escp2-wf610" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_610" />
<printer translate="name" name="Epson WorkForce 615" driver="escp2-wf615" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_615" />
+ <printer translate="name" name="Epson WorkForce 630" driver="escp2-wf630" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_630" />
+ <printer translate="name" name="Epson WorkForce 635" driver="escp2-wf636" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_635" />
+ <printer translate="name" name="Epson WorkForce 645" driver="escp2-wf645" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-WorkForce_645" />
<printer translate="name" name="Epson WorkForce 1100" driver="escp2-wf1100" manufacturer="Epson" model="99" parameters="standard_params" foomaticid="Epson-WorkForce_1100" />
<printer translate="name" name="Epson CL 700" driver="escp2-cl700" manufacturer="Epson" model="38" parameters="480_params" foomaticid="Epson-CL_700" />
<printer translate="name" name="Epson CL 750" driver="escp2-cl750" manufacturer="Epson" model="43" parameters="480_params" foomaticid="Epson-CL_750" />
@@ -666,6 +780,7 @@
<printer translate="name" name="Epson ME Office 600F" driver="escp2-meof600f" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-ME_Office_600F" />
<printer translate="name" name="Epson ME Office 620F" driver="escp2-meof620f" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-ME_Office_620F" />
<printer translate="name" name="Epson ME Office 700FW" driver="escp2-meof700fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-ME_Office_700FW" />
+ <printer translate="name" name="Epson ME Office 940FW" driver="escp2-meof940fw" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-ME_Office_940FW" />
<printer translate="name" name="Epson ME Office 1100" driver="escp2-meof1100" manufacturer="Epson" model="99" parameters="standard_params" foomaticid="Epson-ME_Office_1100" />
<printer translate="name" name="Epson MJ 930C" driver="escp2-mj930c" manufacturer="Epson" model="4" parameters="standard_params" foomaticid="Epson-MJ_930C" />
<printer translate="name" name="Epson MJ 5100C" driver="escp2-mj5100c" manufacturer="Epson" model="39" parameters="standard_params" foomaticid="Epson-MJ_5100C" />
@@ -724,9 +839,12 @@
<printer translate="name" name="Epson PX A650" driver="escp2-pxa650" manufacturer="Epson" model="95" parameters="cx3500_params" foomaticid="Epson-PX_A650" />
<printer translate="name" name="Epson Offirio PX B300" driver="escp2-pxb300" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-Offirio-PX_B300" />
<printer translate="name" name="Epson Offirio PX B500" driver="escp2-pxb500" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-Offirio-PX_B500" />
+ <printer translate="name" name="Epson PX 7V" driver="escp2-px7v" manufacturer="Epson" model="91" parameters="standard_params" foomaticid="Epson-PX_7V" />
<printer translate="name" name="Epson PX 101" driver="escp2-px101" manufacturer="Epson" model="85" parameters="standard_params" foomaticid="Epson-PX_101" />
<printer translate="name" name="Epson PX 201" driver="escp2-px201" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-PX_201" />
+ <printer translate="name" name="Epson PX 204" driver="escp2-px204" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-PX_204" />
<printer translate="name" name="Epson PX 401A" driver="escp2-px401a" manufacturer="Epson" model="94" parameters="standard_params" foomaticid="Epson-PX_401" />
+ <printer translate="name" name="Epson PX 504A" driver="escp2-px504a" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-PX_504A" />
<printer translate="name" name="Epson PX 601F" driver="escp2-px601f" manufacturer="Epson" model="92" parameters="standard_params" foomaticid="Epson-PX_601F" />
<printer translate="name" name="Epson PX 1001" driver="escp2-px1001" manufacturer="Epson" model="100" parameters="standard_params" foomaticid="Epson-PX_1001" />
<printer translate="name" name="Epson PX G900" driver="escp2-pxg900" manufacturer="Epson" model="64" parameters="standard_params" foomaticid="Epson-PX_G900" />
@@ -1734,21 +1852,36 @@
<printer translate="name" name="Canon CP-220" driver="canon-cp220" manufacturer="Canon" model="1001" foomaticid="Canon-CP-220" />
<printer translate="name" name="Canon CP-300" driver="canon-cp300" manufacturer="Canon" model="1000" foomaticid="Canon-CP-300" />
<printer translate="name" name="Canon CP-330" driver="canon-cp330" manufacturer="Canon" model="1001" foomaticid="Canon-CP-330" />
- <printer translate="name" name="Canon SELPHY-CP-400" driver="canon-cp400" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-400" />
- <printer translate="name" name="Canon SELPHY-CP-500" driver="canon-cp500" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-500" />
- <printer translate="name" name="Canon SELPHY-CP-510" driver="canon-cp510" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-510" />
- <printer translate="name" name="Canon SELPHY-CP-520" driver="canon-cp520" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-520" />
- <printer translate="name" name="Canon SELPHY-CP-530" driver="canon-cp530" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-530" />
- <printer translate="name" name="Canon SELPHY-CP-600" driver="canon-cp600" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-600" />
- <printer translate="name" name="Canon SELPHY-CP-710" driver="canon-cp710" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-710" />
- <printer translate="name" name="Canon SELPHY-CP-720" driver="canon-cp720" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-720" />
- <printer translate="name" name="Canon SELPHY-CP-730" driver="canon-cp730" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-730" />
- <printer translate="name" name="Canon SELPHY-CP-740" driver="canon-cp740" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-740" />
- <printer translate="name" name="Canon SELPHY-CP-750" driver="canon-cp750" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-750" />
- <printer translate="name" name="Canon SELPHY-CP-800" driver="canon-cp800" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-800" />
+ <printer translate="name" name="Canon SELPHY-CP400" driver="canon-cp400" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-400" />
+ <printer translate="name" name="Canon SELPHY-CP500" driver="canon-cp500" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-500" />
+ <printer translate="name" name="Canon SELPHY-CP510" driver="canon-cp510" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-510" />
+ <printer translate="name" name="Canon SELPHY-CP520" driver="canon-cp520" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-520" />
+ <printer translate="name" name="Canon SELPHY-CP530" driver="canon-cp530" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-530" />
+<!--
+ <printer translate="name" name="Canon SELPHY-CP600" driver="canon-cp600" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-600" />
+-->
+ <printer translate="name" name="Canon SELPHY-CP710" driver="canon-cp710" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-710" />
+<!--
+ <printer translate="name" name="Canon SELPHY-CP720" driver="canon-cp720" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-720" />
+-->
+ <printer translate="name" name="Canon SELPHY-CP730" driver="canon-cp730" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP-730" />
+ <printer translate="name" name="Canon SELPHY-CP740" driver="canon-cp740" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-740" />
+ <printer translate="name" name="Canon SELPHY-CP750" driver="canon-cp750" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-750" />
+ <printer translate="name" name="Canon SELPHY-CP760" driver="canon-cp760" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-760" />
+ <printer translate="name" name="Canon SELPHY-CP770" driver="canon-cp770" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-770" />
+<!--
+ <printer translate="name" name="Canon SELPHY-CP780" driver="canon-cp780" manufacturer="Canon" model="1004" foomaticid="Canon-SELPHY-CP-780" />
+-->
+ <printer translate="name" name="Canon SELPHY-CP790" driver="canon-cp790" manufacturer="Canon" model="1008" foomaticid="Canon-SELPHY-CP-790" />
+<!--
+ <printer translate="name" name="Canon SELPHY-CP800" driver="canon-cp800" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP-800" />
<printer translate="name" name="Canon SELPHY ES1" driver="canon-es1" manufacturer="Canon" model="1003" foomaticid="Canon-SELPHY-ES1" />
- <printer translate="name" name="Canon SELPHY ES2" driver="canon-es2" manufacturer="Canon" model="1003" foomaticid="Canon-SELPHY-ES2" />
- <printer translate="name" name="Canon SELPHY ES20" driver="canon-es20" manufacturer="Canon" model="1003" foomaticid="Canon-SELPHY-ES20" />
+ <printer translate="name" name="Canon SELPHY ES2" driver="canon-es2" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES2" />
+ <printer translate="name" name="Canon SELPHY ES3" driver="canon-es3" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES3" />
+ <printer translate="name" name="Canon SELPHY ES20" driver="canon-es20" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES20" />
+ <printer translate="name" name="Canon SELPHY ES30" driver="canon-es30" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES30" />
+ <printer translate="name" name="Canon SELPHY ES40" driver="canon-es40" manufacturer="Canon" model="1007" foomaticid="Canon-SELPHY-ES40" />
+-->
<printer translate="name" name="Sony DPP-EX5" driver="sony-dppex5" manufacturer="Sony" model="2002" foomaticid="Sony-DPP-EX5" />
<printer translate="name" name="Sony DPP-EX7" driver="sony-dppex7" manufacturer="Sony" model="2002" foomaticid="Sony-DPP-EX7" />
<printer translate="name" name="Sony UP-DP10" driver="sony-updp10" manufacturer="Sony" model="2000" foomaticid="Sony-UP-DP10" />