diff options
author | Roger Leigh <rleigh@debian.org> | 2012-06-21 23:30:20 +0100 |
---|---|---|
committer | Roger Leigh <rleigh@debian.org> | 2012-06-21 23:30:20 +0100 |
commit | 3514df18b289ec827cb6e4c446419feab1813231 (patch) | |
tree | 0fe6a3d1afbe720aac197918c6f4fb3583b240e1 /src | |
parent | 15578e218035547ca17e25ef351fbe56bc55a4ae (diff) |
Imported Upstream version 5.2.8
Diffstat (limited to 'src')
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="@@REMAP@@STP_VERSION=@@STPVER@@,%B"%Z -sOutputFile=- -</prototype> + <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOINTERPOLATE -sDEVICE=ijs -sIjsServer=ijsgutenprint.@@STPREL@@ -dIjsUseOutputFD%A -sIjsParams="@@REMAP@@STP_VERSION=@@STPVER@@,%B"%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 <, &, >, , ", &#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" /> |