diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/Makefile.in | 164 | ||||
-rw-r--r-- | src/main/canon-inks.h | 1520 | ||||
-rw-r--r-- | src/main/canon-media.h | 971 | ||||
-rw-r--r-- | src/main/canon-modes.h | 1063 | ||||
-rw-r--r-- | src/main/canon-printers.h | 831 | ||||
-rw-r--r-- | src/main/channel.c | 172 | ||||
-rw-r--r-- | src/main/dither-main.c | 8 | ||||
-rw-r--r-- | src/main/escp2-channels.c | 32 | ||||
-rw-r--r-- | src/main/escp2-driver.c | 6 | ||||
-rw-r--r-- | src/main/generic-options.c | 10 | ||||
-rw-r--r-- | src/main/print-canon.c | 235 | ||||
-rw-r--r-- | src/main/print-canon.h | 4 | ||||
-rw-r--r-- | src/main/print-color.c | 111 | ||||
-rw-r--r-- | src/main/print-escp2.c | 245 | ||||
-rw-r--r-- | src/main/print-escp2.h | 8 | ||||
-rw-r--r-- | src/main/print-lexmark.c | 28 | ||||
-rw-r--r-- | src/main/print-olympus.c | 20 | ||||
-rw-r--r-- | src/main/print-pcl.c | 32 | ||||
-rw-r--r-- | src/main/print-ps.c | 39 | ||||
-rw-r--r-- | src/main/print-raw.c | 6 | ||||
-rw-r--r-- | src/main/print-vars.c | 141 | ||||
-rw-r--r-- | src/main/sequence.c | 20 | ||||
-rw-r--r-- | src/main/xmlppd.c | 9 |
23 files changed, 5134 insertions, 541 deletions
diff --git a/src/main/Makefile.in b/src/main/Makefile.in index 4dc66db..4c520bb 100644 --- a/src/main/Makefile.in +++ b/src/main/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -22,8 +23,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -58,16 +60,30 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = gutenprint.pc +CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgmoduledir)" \ "$(DESTDIR)$(pkgconfigdatadir)" -libLTLIBRARIES_INSTALL = $(INSTALL) -pkgmoduleLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) $(pkgmodule_LTLIBRARIES) color_traditional_la_LIBADD = am_color_traditional_la_OBJECTS = print-color.lo color-conversions.lo @@ -177,6 +193,7 @@ print_raw_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp am__depfiles_maybe = depfiles +am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -196,7 +213,6 @@ DIST_SOURCES = $(color_traditional_la_SOURCES) \ $(print_dyesub_la_SOURCES) $(print_escp2_la_SOURCES) \ $(print_lexmark_la_SOURCES) $(print_pcl_la_SOURCES) \ $(print_ps_la_SOURCES) $(print_raw_la_SOURCES) -pkgconfigdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfigdata_DATA) ETAGS = etags CTAGS = ctags @@ -318,6 +334,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ @@ -536,14 +553,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/main/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/main/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -561,25 +578,30 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): gutenprint.pc: $(top_builddir)/config.status $(srcdir)/gutenprint.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + list2="$$list2 $$p"; \ else :; fi; \ - done + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: @@ -593,20 +615,24 @@ clean-libLTLIBRARIES: install-pkgmoduleLTLIBRARIES: $(pkgmodule_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(pkgmoduledir)" || $(MKDIR_P) "$(DESTDIR)$(pkgmoduledir)" - @list='$(pkgmodule_LTLIBRARIES)'; for p in $$list; do \ + @list='$(pkgmodule_LTLIBRARIES)'; test -n "$(pkgmoduledir)" || list=; \ + list2=; for p in $$list; do \ if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(pkgmoduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkgmoduledir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(pkgmoduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkgmoduledir)/$$f"; \ + list2="$$list2 $$p"; \ else :; fi; \ - done + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgmoduledir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgmoduledir)"; \ + } uninstall-pkgmoduleLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(pkgmodule_LTLIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgmoduledir)/$$p'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgmoduledir)/$$p"; \ + @list='$(pkgmodule_LTLIBRARIES)'; test -n "$(pkgmoduledir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgmoduledir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgmoduledir)/$$f"; \ done clean-pkgmoduleLTLIBRARIES: @@ -693,21 +719,21 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< @@ -720,34 +746,37 @@ clean-libtool: install-pkgconfigdataDATA: $(pkgconfigdata_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdatadir)" - @list='$(pkgconfigdata_DATA)'; for p in $$list; do \ + @list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(pkgconfigdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdatadir)/$$f'"; \ - $(pkgconfigdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdatadir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdatadir)" || exit $$?; \ done uninstall-pkgconfigdataDATA: @$(NORMAL_UNINSTALL) - @list='$(pkgconfigdata_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pkgconfigdatadir)/$$f'"; \ - rm -f "$(DESTDIR)$(pkgconfigdatadir)/$$f"; \ - done + @list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pkgconfigdatadir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pkgconfigdatadir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -755,29 +784,34 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -798,13 +832,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -835,6 +873,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -857,6 +896,8 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: @@ -866,18 +907,28 @@ install-data-am: install-pkgconfigdataDATA \ install-dvi: install-dvi-am +install-dvi-am: + install-exec-am: install-libLTLIBRARIES install-html: install-html-am +install-html-am: + install-info: install-info-am +install-info-am: + install-man: install-pdf: install-pdf-am +install-pdf-am: + install-ps: install-ps-am +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-am @@ -936,6 +987,7 @@ $(top_builddir)/src/gutenprintui/libgutenprintui.la: $(top_builddir)/src/gutenprintui2/libgutenprintui2.la: cd $(top_builddir)/src/gutenprintui2; \ $(MAKE) + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/src/main/canon-inks.h b/src/main/canon-inks.h index 41e8796..90fbb1e 100644 --- a/src/main/canon-inks.h +++ b/src/main/canon-inks.h @@ -88,6 +88,8 @@ static const stp_dotsize_t dotsizes_2l[] = { DECLARE_INK(1,2); +/* test */ +DECLARE_INK(2,2); static const stp_dotsize_t dotsizes_3l[] = { { 0x1, 0.5 }, @@ -106,16 +108,19 @@ static const stp_dotsize_t dotsizes_4l[] = { DECLARE_INK(2,4); -static const stp_dotsize_t dotsizes_7l[] = { +/*under development*/ +DECLARE_INK(4,4); + +static const stp_dotsize_t dotsizes_5l[] = { { 0x1, 0.45 }, { 0x2, 0.55 }, - { 0x3, 0.66 }, - { 0x4, 0.77 }, - { 0x5, 0.88 }, - { 0x6, 1.0 } + { 0x3, 0.68 }, + { 0x4, 1.0 } }; -DECLARE_INK(3,7); +/*under development*/ +DECLARE_INK(4,5); +DECLARE_INK_EXTENDED(4,5,INK_FLAG_5pixel_in_1byte); static const stp_dotsize_t dotsizes_6l[] = { { 0x1, 0.2 }, @@ -125,7 +130,23 @@ static const stp_dotsize_t dotsizes_6l[] = { { 0x5, 1.0 } }; +/*under development*/ DECLARE_INK(4,6); +DECLARE_INK_EXTENDED(4,6,INK_FLAG_5pixel_in_1byte); + +static const stp_dotsize_t dotsizes_7l[] = { + { 0x1, 0.45 }, + { 0x2, 0.55 }, + { 0x3, 0.66 }, + { 0x4, 0.77 }, + { 0x5, 0.88 }, + { 0x6, 1.0 } +}; + +DECLARE_INK(3,7); + +/*under development*/ +DECLARE_INK(4,7); static const stp_dotsize_t dotsizes_8l[] = { { 0x1, 0.14 }, @@ -139,6 +160,21 @@ static const stp_dotsize_t dotsizes_8l[] = { DECLARE_INK(4,8); +static const stp_dotsize_t dotsizes_9l[] = { + { 0x1, 0.14 }, + { 0x2, 0.29 }, + { 0x3, 0.43 }, + { 0x4, 0.55 }, + { 0x5, 0.66 }, + { 0x6, 0.71 }, + { 0x7, 0.88 }, + { 0x8, 1.00 } +}; + +/*under development*/ +DECLARE_INK(4,9); +DECLARE_INK(8,9); + static const stp_dotsize_t dotsizes_16l[] = { { 0x1, 0.07 }, { 0x2, 0.13 }, @@ -158,6 +194,7 @@ static const stp_dotsize_t dotsizes_16l[] = { }; DECLARE_INK(4,16); +DECLARE_INK(8,16); /* A inkset is a list of inks and their (relative) densities @@ -288,10 +325,22 @@ static const canon_inkset_t canon_7_C4M4Y4c4m4k4K4_inkset[] = { {'K',1.0,&canon_2b_4l_ink}, }; -static const canon_inkset_t canon_9_C3M3Y2K2_inkset[] = { +static const canon_inkset_t canon_9_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}, + {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}, - {'Y',1.0,&canon_1b_2l_ink}, + {'Y',1.0,&canon_2b_2l_ink}, {'K',1.0,&canon_1b_2l_ink}, {0,0.0,NULL}, {0,0.0,NULL}, @@ -300,10 +349,10 @@ static const canon_inkset_t canon_9_C3M3Y2K2_inkset[] = { {0,0.0,NULL}, }; -static const canon_inkset_t canon_9_C4M4Y4K2_inkset[] = { - {'C',1.0,&canon_2b_4l_ink}, - {'M',1.0,&canon_2b_4l_ink}, - {'Y',1.0,&canon_2b_4l_ink}, +static const canon_inkset_t canon_9_C3M3Y2K2_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_1b_2l_ink}, {0,0.0,NULL}, {0,0.0,NULL}, @@ -350,6 +399,18 @@ static const canon_inkset_t canon_9_C3M3Y2K2k3_c_inkset[] = { {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}, + {'Y',1.0,&canon_2b_3l_c_ink}, + {'K',0.0,&canon_1b_2l_ink}, + {'c',0.5,&canon_2b_3l_c_ink}, + {'m',0.5,&canon_2b_3l_c_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, @@ -363,6 +424,18 @@ static const canon_inkset_t canon_9_C3M3Y3K2c3m3k3_c_inkset[] = { {0,0.0,NULL} }; +static const canon_inkset_t canon_9_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}, +}; + /* iP4000 mode used for T-Shirt (quality 2) */ static const canon_inkset_t canon_9_C4M4Y4K2k4_inkset[] = { {'C',1.0,&canon_2b_4l_ink}, @@ -376,7 +449,72 @@ static const canon_inkset_t canon_9_C4M4Y4K2k4_inkset[] = { {0,0.0,NULL}, }; +static const canon_inkset_t canon_9_C4M4Y4K3_inkset[] = { + {'C',1.0,&canon_2b_4l_ink}, + {'M',1.0,&canon_2b_4l_ink}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',1.0,&canon_2b_3l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* check this one!!!! */ +static const canon_inkset_t canon_9_C4M4Y4K2c4m4_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}, + {0,0.0,NULL}, + {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 */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_4b_4l_ink}, + {'K',0.0,&canon_2b_4l_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} +}; + +/* check this one!!! */ +static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4_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}, + {'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} +}; + /* 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[] = { {'C',1.0,&canon_2b_4l_ink}, {'M',1.0,&canon_2b_4l_ink}, @@ -389,6 +527,53 @@ static const canon_inkset_t canon_9_C4M4Y4K2c4m4k4_inkset[] = { {0,0.0,NULL} }; +static const canon_inkset_t canon_9_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}, +}; + +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 */ + {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_C8M8Y4K4c8m8_inkset[] = { + {'C',1.0,&canon_4b_8l_ink}, + {'M',1.0,&canon_4b_8l_ink}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',1.0,&canon_2b_4l_ink}, + {'c',1.0,&canon_4b_8l_ink}, + {'m',1.0,&canon_4b_8l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL} +}; + +static const canon_inkset_t canon_9_C8M8Y8c16m16_inkset[] = { + {'C',1.0,&canon_4b_8l_ink}, + {'M',1.0,&canon_4b_8l_ink}, + {'Y',1.0,&canon_4b_8l_ink}, + {0,0.0,NULL}, + {'c',0.5,&canon_8b_16l_ink}, + {'m',0.5,&canon_8b_16l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL} +}; /* iP4000 mode used for Professional Photo Paper in Quality 4 */ static const canon_inkset_t canon_9_C8M8Y8c16m16k8_inkset[] = { @@ -403,7 +588,47 @@ static const canon_inkset_t canon_9_C8M8Y8c16m16k8_inkset[] = { {0,0.0,NULL} }; -/* PIXMA Pro9500, PIXMA iP8500 */ +static const canon_inkset_t canon_9_C9M9Y9K2_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_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_C9M9Y9K2c9m9y9_inkset[] = { + {'C',1.0,&canon_4b_9l_ink}, + {'M',1.0,&canon_4b_9l_ink}, + {'Y',1.0,&canon_4b_9l_ink}, + {'K',0.0,&canon_1b_2l_ink}, /* for PPpro, so no use */ + {'c',1.0,&canon_4b_9l_ink}, + {'m',1.0,&canon_4b_9l_ink}, + {'y',1.0,&canon_4b_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,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_C2M2Y2K2_inkset[] = { {'C',1.0,&canon_1b_2l_ink}, {'M',1.0,&canon_1b_2l_ink}, @@ -418,6 +643,162 @@ static const canon_inkset_t canon_11_C2M2Y2K2_inkset[] = { {0,0.0,NULL} }; +/* Pro9000 */ +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}, + {'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}, + {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_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}, + {0,0.0,NULL}, + {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}, + {'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}, + {0,0.0,NULL}, + {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}, + {'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}, + {0,0.0,NULL}, + {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}, + {'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}, + {0,0.0,NULL}, + {0,0.0,NULL} +}; + +/* PIXMA Pro9500, Pro9500 Mk.II */ +static const canon_inkset_t canon_11_C16M16Y16k16_inkset[] = { + {'C',1.0,&canon_4b_16l_ink}, + {'M',1.0,&canon_4b_16l_ink}, + {'Y',1.0,&canon_4b_16l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {'k',1.0,&canon_4b_16l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_4b_16l_ink}, + {'K',1.0,&canon_4b_16l_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}, + {0,0.0,NULL}, + {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}, + {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}, + {0,0.0,NULL}, + {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}, + {0,0.0,NULL}, + {'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}, +}; + +/* 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}, + {'Y',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, @@ -434,6 +815,7 @@ static const canon_inkset_t canon_13_C2M2Y2K2_inkset[] = { {0,0.0,NULL}, }; +/* MX7600, iX7000 */ static const canon_inkset_t canon_13_C2M2Y2K2k2_inkset[] = { {'C',1.0,&canon_1b_2l_ink}, {'M',1.0,&canon_1b_2l_ink}, @@ -441,8 +823,42 @@ static const canon_inkset_t canon_13_C2M2Y2K2k2_inkset[] = { {'K',1.0,&canon_1b_2l_ink}, {0,0.0,NULL}, {0,0.0,NULL}, + {'k',1.0,&canon_1b_2l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* 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}, + {'Y',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_2b_2l_ink}, + {0,0.0,NULL}, + {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}, @@ -466,6 +882,45 @@ 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_C3M3Y2K2b_inkset[] = { + {'C',1.0,&canon_2b_3l_ink}, + {'M',1.0,&canon_2b_3l_ink}, + {'Y',1.0,&canon_2b_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}, + {0,0.0,NULL}, + {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}, + {'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 for k, but in any case it is not in output 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}, +}; + +/* iX7000 */ static const canon_inkset_t canon_13_C3M3Y2K2k3_c_inkset[] = { {'C',1.0,&canon_2b_3l_c_ink}, {'M',1.0,&canon_2b_3l_c_ink}, @@ -473,7 +928,24 @@ static const canon_inkset_t canon_13_C3M3Y2K2k3_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}, + {'k',0.0,&canon_2b_3l_c_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* 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}, + {'Y',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}, @@ -482,6 +954,212 @@ static const canon_inkset_t canon_13_C3M3Y2K2k3_c_inkset[] = { {0,0.0,NULL}, }; +static const canon_inkset_t canon_13_C4M4Y4K2_inkset[] = { + {'C',1.0,&canon_2b_4l_ink}, + {'M',1.0,&canon_2b_4l_ink}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* 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}, + {'Y',1.0,&canon_2b_3l_ink}, + {'K',1.0,&canon_2b_3l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'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}, /* output uses y */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_4b_4l_ink}, + {'K',0.0,&canon_1b_2l_ink}, /* do not use for photo modes */ + {'c',1.0,&canon_4b_4l_ink}, + {'m',1.0,&canon_4b_4l_ink}, + {'k',1.0,&canon_4b_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}, +}; + +/* 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,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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_4b_4l_ink}, + {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 */ + {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) T-shirt transfers */ +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}, +}; + +/* Gernot: added for iP4700 CD printing */ +/* iP4800 also uses this */ +/* also MG5200 */ +static const canon_inkset_t canon_13_C5M5Y4y4_inkset[] = { + {'C',1.0,&canon_4b_5l_ink}, + {'M',1.0,&canon_4b_5l_ink}, + {'Y',1.0,&canon_2b_4l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* iX7000 photo mode */ +static const canon_inkset_t canon_13_C6M6Y2K2k4_inkset[] = { + {'C',1.0,&canon_4b_6l_ink}, + {'M',1.0,&canon_4b_6l_ink}, + {'Y',1.0,&canon_2b_2l_ink}, + {'K',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* 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}, + {'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}, +}; + +/* 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_C6M6Y4K2y4_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',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_C6M6Y4K2k4_inkset[] = { {'C',1.0,&canon_4b_6l_ink}, {'M',1.0,&canon_4b_6l_ink}, @@ -498,6 +1176,23 @@ 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}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',1.0,&canon_2b_3l_c_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {'k',0.0,&canon_2b_4l_ink},/* swapped y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + static const canon_inkset_t canon_13_C6M6Y4k4yask_inkset[] = { {'C',1.0,&canon_4b_6l_ink}, {'M',1.0,&canon_4b_6l_ink}, @@ -514,6 +1209,26 @@ 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}, + {'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}, @@ -546,6 +1261,194 @@ 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,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, +}; + +/* 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}, + {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_16_C6M6Y4K2k4_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',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_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}, + {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_16_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}, + {'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_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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {'k',1.0,&canon_2b_3l_c_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_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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {'k',1.0,&canon_1b_2l_ink},/* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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_C3M3Y3k3_inkset[] = { {'C',1.0,&canon_2b_3l_ink}, {'M',1.0,&canon_2b_3l_ink}, @@ -553,7 +1456,77 @@ static const canon_inkset_t canon_19_C3M3Y3k3_inkset[] = { {0,0.0,NULL}, {0,0.0,NULL}, {0,0.0,NULL}, - {'k',1.0,&canon_2b_3l_ink}, + {'k',1.0,&canon_2b_3l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* works OK on MP960 */ +static const canon_inkset_t canon_19_C3M3Y3K2k3_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',1.0,&canon_2b_3l_ink},/* need to swap y -> 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}, +}; + +/* 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}, + {'Y',1.0,&canon_2b_4l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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',1.0,&canon_1b_2l_ink}, + {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}, @@ -565,6 +1538,285 @@ static const canon_inkset_t canon_19_C3M3Y3k3_inkset[] = { {0,0.0,NULL}, {0,0.0,NULL}, {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}, + {'Y',1.0,&canon_2b_4l_ink}, + {0,0.0,NULL}, + {'c',1.0,&canon_2b_4l_ink}, + {'m',1.0,&canon_2b_4l_ink}, + {'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}, +}; + +/* 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}, + {'Y',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}, + {'c',1.0,&canon_2b_4l_ink}, + {'m',1.0,&canon_2b_4l_ink}, + {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* 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}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',0.0,&canon_1b_2l_ink}, /* works when K is set to 0 */ + {'c',1.0,&canon_2b_4l_ink}, + {'m',1.0,&canon_2b_4l_ink}, + {'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}, +}; + +/* 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}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_2b_4l_ink}, + {0,0.0,NULL}, + {'c',0.0,&canon_4b_6l_ink}, /* not used */ + {'m',0.0,&canon_4b_6l_ink}, /* not used */ + {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_2b_4l_ink}, + {0,0.0,NULL}, + {'c',1.0,&canon_4b_6l_ink}, + {'m',1.0,&canon_4b_6l_ink}, + {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',1.0,&canon_1b_2l_ink}, + {'c',0.0,&canon_4b_6l_ink}, /* will not use, so have to set to 0 */ + {'m',0.0,&canon_4b_6l_ink}, /* will not use, so have to set to 0 */ + {'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}, +}; + +/* 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}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',0.0,&canon_1b_2l_ink}, /* will not use K */ + {'c',1.0,&canon_4b_6l_ink}, + {'m',1.0,&canon_4b_6l_ink}, + {'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}, +}; + +/* iP6700D Photo High: CMYkcm */ +static const canon_inkset_t canon_19_C7M7Y4c7m7k4_inkset[] = { + {'C',1.0,&canon_4b_7l_ink}, + {'M',1.0,&canon_4b_7l_ink}, + {'Y',1.0,&canon_2b_4l_ink}, + {0,0.0,NULL}, + {'c',1.0,&canon_4b_7l_ink}, + {'m',1.0,&canon_4b_7l_ink}, + {'k',1.0,&canon_2b_4l_ink}, /* swap y and k */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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}, + {'Y',1.0,&canon_2b_4l_ink}, + {'K',0.0,&canon_1b_2l_ink}, /* will not use K */ + {'c',1.0,&canon_4b_7l_ink}, + {'m',1.0,&canon_4b_7l_ink}, + {'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_22_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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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_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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, {0,0.0,NULL}, }; @@ -593,10 +1845,61 @@ static const canon_inkset_t canon_22_C3M3Y2K2k3_c_inkset[] = { {0,0.0,NULL}, }; -static const canon_inkset_t canon_22_C3M3Y2K2_c_inkset[] = { +/* 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}, - {'Y',1.0,&canon_1b_2l_ink}, + {'Y',1.0,&canon_2b_3l_c_ink}, + {'K',0.0,&canon_1b_2l_ink}, /* set to 0 */ + {'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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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_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}, /* set to 0 */ + {'c',1.0,&canon_2b_3l_c_ink}, + {'m',1.0,&canon_2b_3l_c_ink}, + {0,0.0,NULL}, + {'k',1.0,&canon_2b_3l_c_ink}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +static const canon_inkset_t canon_22_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}, @@ -618,6 +1921,58 @@ static const canon_inkset_t canon_22_C3M3Y2K2_c_inkset[] = { {0,0.0,NULL}, }; +/* MP830 T-Shirt */ +static const canon_inkset_t canon_22_C4M4Y4K2k4_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}, + {'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}, +}; + +/* 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',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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {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_C4M4Y4K2c4m4k4_inkset[] = { {'C',1.0,&canon_2b_4l_ink}, {'M',1.0,&canon_2b_4l_ink}, @@ -629,8 +1984,8 @@ static const canon_inkset_t canon_22_C4M4Y4K2c4m4k4_inkset[] = { {'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}, - {0xa3,0.0,&canon_2b_4l_ink}, - {0xad,0.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}, @@ -643,11 +1998,132 @@ static const canon_inkset_t canon_22_C4M4Y4K2c4m4k4_inkset[] = { {0,0.0,NULL}, }; -static const canon_inkset_t canon_22_C2M2Y2K2_inkset[] = { +/* high */ +/* 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[] = { + {'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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* standard */ +/* 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_K2C3M3Y2k3_c_inkset[] = { + {'K',1.0,&canon_1b_2l_ink}, + {'C',1.0,&canon_2b_3l_c_ink}, + {0,0.0,NULL}, + {'M',1.0,&canon_2b_3l_c_ink}, + {0,0.0,NULL}, + {'Y',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, + {'k',0.0,&canon_2b_3l_c_ink}, /* will not use it, but need to specify it */ + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* fast */ +/* MP990, MG6100, MG800 */ +/* reorder: KCcMmYyk*H* not sure what the 2 missing ones are but they are only needed for ud1 anyway */ +/*static const canon_inkset_t canon_30_C2M2K2m2_inkset[] = {*/ +static const canon_inkset_t canon_30_K2C2M2Y2_inkset[] = { + {'K',1.0,&canon_1b_2l_ink}, {'C',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, {'M',1.0,&canon_1b_2l_ink}, + {0,0.0,NULL}, {'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}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, + {0,0.0,NULL}, +}; + +/* CD photo */ +/* reorder: KCcMmYyk*H* not sure what the 2 missing ones are but they are only needed for ud1 anyway */ +/*static const canon_inkset_t canon_30_M5K5m4k4_inkset[] = {*/ +static const canon_inkset_t canon_30_C5M5Y4k4_inkset[] = { + {0,0.0,NULL}, + {'C',1.0,&canon_4b_5l_ink}, + {0,0.0,NULL}, + {'M',1.0,&canon_4b_5l_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}, diff --git a/src/main/canon-media.h b/src/main/canon-media.h index 0db683f..2f354ef 100644 --- a/src/main/canon-media.h +++ b/src/main/canon-media.h @@ -62,25 +62,123 @@ static const canon_slot_t canon_default_slots[] = { }; DECLARE_SLOTS(canon_default); - +/* Gernot: changes 2010-10-02 */ static const canon_slot_t canon_PIXMA_iP4000_slots[] = { - { "SelectKey", N_ ("Selected by Paper Select Key"), 3 }, - { "Auto", N_ ("Auto Sheet Feeder"), 4 }, + { "SelectKey", N_ ("Selected by Paper Select Key"), 0x3 }, + { "Auto", N_ ("Auto Sheet Feeder"), 0x4 }, { "Cassette", N_ ("Cassette"), 0x8 }, - { "CD", N_ ("CD tray"), 10 }, - { "AutoSwitch", N_ ("Automatic Paper Source Switching"), 15 }, + { "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*/ }; DECLARE_SLOTS(canon_PIXMA_iP4000); +static const canon_slot_t canon_PIXMA_iP3100_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 }, +}; +DECLARE_SLOTS(canon_PIXMA_iP3100); + +/* MP170, MP450, MP460, MX300 */ +static const canon_slot_t canon_MULTIPASS_MP170_slots[] = { + { "Auto", N_ ("Auto Sheet Feeder"), 0x4 }, +}; +DECLARE_SLOTS(canon_MULTIPASS_MP170); + +/* 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_MULTIPASS_MX7600_slots[] = { + { "Cassette", N_ ("Cassette"), 0x8 }, +}; +DECLARE_SLOTS(canon_MULTIPASS_MX7600); + +static const canon_slot_t canon_PIXMA_iX7000_slots[] = { + { "Cassette", N_ ("Cassette"), 0x8 }, + { "HandFeed", N_ ("Hand Feeding"), 0x1 }, + { "Rear", N_ ("Rear tray"), 0x4 }, +}; +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*/ +}; +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 */ +}; +DECLARE_SLOTS(canon_MULTIPASS_MX850); + +static const canon_slot_t canon_MULTIPASS_MP520_slots[] = { + { "SelectKey", N_ ("Selected by Paper Select Key"), 0x3 }, + { "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_MULTIPASS_MP520); + +/* iP4600, iP4700 */ 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 }, + { "Continuous", N_ ("Continuous Autofeed (both)"), 0xf }, { "CD", N_ ("CD tray"), 0xa } }; DECLARE_SLOTS(canon_PIXMA_iP4600); +/* Pro9000, Pro9500 series */ +static const canon_slot_t canon_PIXMA_Pro9000_slots[] = { + { "Rear", N_ ("Rear tray"), 0x4 }, + { "Front", N_ ("Front tray"), 0xb }, + { "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*/ +}; +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 } +}; +DECLARE_SLOTS(canon_PIXMA_MG5200); /* also MG6100 */ + + /* media types */ typedef struct { @@ -142,10 +240,704 @@ static const canon_paper_t canon_PIXMA_iP4000_papers[] = { { "CD", N_ ("CD"), 0x00,0x12,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 }, - { "PhotopaperPlusDouble", N_ ("Photoper Plus Double-Sided"), 0x10,0x15,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 }, }; DECLARE_PAPERS(canon_PIXMA_iP4000); +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 }, + { "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 }, + { "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.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 */ +}; +DECLARE_PAPERS(canon_PIXMA_iP3100); + +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 }, + { "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 }, + { "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 }, + { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,1.00, 1.00, 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 }, + { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/*experiment*/ + { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/*experiment*/ +}; +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 }, + { "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 }, + { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,1.00, 1.00, 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 }, +}; +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 }, + { "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 },/* experimental */ + { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 1.00, 0.900, 0, 0, 0 },/* experimental */ +}; +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 }, + { "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 }, + { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 1.00, 0.900, 0, 0, 0 }, +}; +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 }, + { "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 */ + { "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_iP2600); + +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 }, + { "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 }, + { "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 }, + { "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 }, + { "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_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 }, + { "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 }, + { "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 }, +}; +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 }, + { "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"), 0x16,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 }, + { "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_iP6700); + +/* 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*/ + { "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 }, + { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,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 }, + { "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 }, + { "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*/ + /* 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 }, + { "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_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*/ + { "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*/ + { "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 }, + { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,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 }, + { "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,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 }, + { "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*/ + { "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 */ + { "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 */ + { "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 }, + { "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*/ + { "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 */ + { "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 */ + { "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 }, + { "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_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 }, + { "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_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[] = { + { "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 }, + { "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_MULTIPASS_MP170); + +/* 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 }, + { "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_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 */ + { "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 */ + { "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_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 */ + { "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 */ + { "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*/ + { "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_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 */ + { "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 */ + { "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*/ + { "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_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 */ + { "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 */ + { "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*/ + { "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 }, + { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 }, +}; +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 }, + { "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 !! */ + { "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*/ + { "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_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 */ +}; +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 */ + { "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*/ +}; +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 */ + { "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 }, + { "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 }, + { "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 }, + { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 }, +}; +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_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 */ +}; +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 */ +}; +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_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 */ +}; +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 */ +}; +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 */ +}; +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 */ + { "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 */ +}; +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 }, + { "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 (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_MP600); + +/* MP640 */ +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*/ + { "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 */ +}; +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*/ + { "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 */ +}; +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_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 */ +}; +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_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 }, + { "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 (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_PIXMA_iP4500); static const canon_paper_t canon_PIXMA_iP4600_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */ /* Name Text (c (l (P Density k_upper *lum_adjustment */ @@ -167,6 +959,171 @@ static const canon_paper_t canon_PIXMA_iP4600_papers[] = { /* }; DECLARE_PAPERS(canon_PIXMA_iP4600); +static const canon_paper_t canon_PIXMA_iP4700_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 }, + { "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 }, + { "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*/ + { "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 }, + { "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 } +}; +DECLARE_PAPERS(canon_PIXMA_iP4700); + +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*/ +}; +DECLARE_PAPERS(canon_MULTIPASS_MP960); + +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 }, + { "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 }, + { "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 }, + { "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 }, + { "TShirtTransfer", 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 }, +}; +DECLARE_PAPERS(canon_MULTIPASS_MP980); + +static const canon_paper_t canon_MULTIPASS_MP990_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 }, + { "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*/ + { "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 }, + { "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*/ + { "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 */ + { "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 */ + { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 }, + { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 }, + { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 }, + { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 }, /* all hagaki */ + { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 }, /* inkjet hagaki */ + { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 }, /* Canon photo hagaki*/ + { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 }, /* hagaki*/ + { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 }, /* T-shirt */ + { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 }, /* env */ + { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 }, /* PP other */ +}; +DECLARE_PAPERS(canon_PIXMA_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 */ + { "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 */ + { "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 */ +}; +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 */ + { "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 */ + { "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 */ +}; +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 +*/ diff --git a/src/main/canon-modes.h b/src/main/canon-modes.h index 075350d..b5d8e25 100644 --- a/src/main/canon-modes.h +++ b/src/main/canon-modes.h @@ -104,7 +104,7 @@ typedef struct { #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 */ +#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 */ const canon_delay_t* delay; /* delay settings for this printmode */ const double density; /* density multiplier */ @@ -287,85 +287,1096 @@ static const canon_mode_t canon_S500_modes[] = { }; DECLARE_MODES(canon_S500,2); -static const canon_mode_t canon_PIXMA_iP2000_modes[] = { - { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,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); + +/* 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}, + /* 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}, + /* 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}, + /* 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}, +}; +DECLARE_MODES(canon_PIXMA_iP1200,4); + +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}, + /* 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}, + /* 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}, }; -DECLARE_MODES(canon_PIXMA_iP2000,0); +DECLARE_MODES(canon_PIXMA_iP1500,3); + +/* 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}, + /* 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}, + /* 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}, +}; +DECLARE_MODES(canon_PIXMA_iP1900,2); + +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); static const canon_mode_t canon_PIXMA_iP3000_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",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}, + { 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}, }; DECLARE_MODES(canon_PIXMA_iP3000,1); +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}, +}; +DECLARE_MODES(canon_PIXMA_iP3100,5); static const canon_mode_t canon_PIXMA_iP4000_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(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2}, - { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2k3_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}, + { 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,NULL}, */ +/* { 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,2); - +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 */ 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,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,iP4200_300dpi_draft_lum_adjustment,NULL,NULL,0}, + { 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,"300x300dpi",N_("300x300 DPI"),INKSET(22_C2M2Y2K2),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,iP4200_300dpi_lum_adjustment,NULL,NULL,1}, + { 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}, /* Q2 - standard mode for this driver (in windows driver it's Q3) */ - { 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}, - /* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(22_C4M4Y4K2c4m4k4),MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL}, */ + { 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); 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}, + /* 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}, + /* 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}, }; -DECLARE_MODES(canon_PIXMA_iP6000,0); +DECLARE_MODES(canon_PIXMA_iP6000,4); 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}, + /* 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}, + /* 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); - 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); + +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); + +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); + +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); + +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 */ +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 */ +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 */ +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 */ +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 */ +}; +DECLARE_MODES(canon_MULTIPASS_MP520,1); + +/* similar to iP4500 */ +/* Hagaki, Envelope use plain mode but adds k to output inks */ +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 */ +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 */ +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); + +/* 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); + +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. +*/ +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); + 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}, + /*{ 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,0); +DECLARE_MODES(canon_PIXMA_iP5300,4); + +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); static const canon_mode_t canon_MULTIPASS_MP830_modes[] = { - { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(4_C2M2Y2K2),0,NULL,1.0,1.0,NULL,NULL,NULL,2}, + /* 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); +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); + +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}, + /* 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); + 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}, + /* { 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); +/* 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}, + /* 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}, + /* 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}, +}; +DECLARE_MODES(canon_MULTIPASS_MP980,0); + +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); + static const canon_mode_t canon_PIXMA_iX5000_modes[] = { - { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(22_C3M3Y2K2_c),MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, + { 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}, + /* 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}, }; DECLARE_MODES(canon_PIXMA_iX5000,0); +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 */ +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}, +/* 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); + +/* all use normal BJ format and ink codes */ +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}, + /* 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}, + /* 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); + +/* 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[] = { - { 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 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}, +/* 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}, +/* 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}, }; DECLARE_MODES(canon_PIXMA_Pro9500,0); +/* 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}, +/* 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}, +/* 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}, +}; +DECLARE_MODES(canon_PIXMA_Pro9500mk2,0); + +/* 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 */ static const canon_mode_t canon_PIXMA_iP8500_modes[] = { - { 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,2}, + { 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}, + /* 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}, +}; +DECLARE_MODES(canon_PIXMA_iP8500,3); + +/* 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_iP8500,0); +DECLARE_MODES(canon_PIXMA_MG5100,13); + +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. */ +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. */ +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); + #endif diff --git a/src/main/canon-printers.h b/src/main/canon-printers.h index 713987f..4e8f6be 100644 --- a/src/main/canon-printers.h +++ b/src/main/canon-printers.h @@ -159,13 +159,19 @@ static const char* control_cmd_PIXMA_iP4200[] = { "PEdgeDetection=ON", NULL }; - + static const char* control_cmd_MULTIPASS_MP150[] = { "AckTime=Short", "MediaDetection=ON", NULL }; +static const char* control_cmd_PIXMA_iP2700[] = { +/*"SetTime=20060722092503", */ /*what is this for?*/ + "SetSilent=OFF", + NULL +}; + static const char iP4500_channel_order[STP_NCOLORS] = {1,2,3,0}; /* CMYK */ static const canon_cap_t canon_model_capabilities[] = @@ -177,14 +183,72 @@ static const canon_cap_t canon_model_capabilities[] = 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_px,0,control_cmd_MULTIPASS_MP150, /*features */ + /* 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_MULTIPASS_MP830_modelist, + /* &canon_PIXMA_iP4000_paperlist, */ + &canon_MULTIPASS_MP600_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP800_modelist, + &canon_MULTIPASS_MP600_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP810_modelist, + &canon_MULTIPASS_MP600_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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 */ + &canon_MULTIPASS_MP950_modelist, &canon_PIXMA_iP4000_paperlist, NULL, NULL, NULL, NULL }, + { /* 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 */ + &canon_MULTIPASS_MP960_modelist, + &canon_PIXMA_iP4600_paperlist, /* changed from iP4000 */ + NULL, + NULL, + NULL, + iP4500_channel_order + }, { /* Canon PIXMA MP970 */ "PIXMA MP970", 3, /*model, model_id*/ 842, 17*72, /* max paper width and height */ @@ -199,6 +263,35 @@ static const canon_cap_t canon_model_capabilities[] = NULL, NULL }, + { /* 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, + &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_MULTIPASS_MP980_modelist, + &canon_MULTIPASS_MP980_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP990_modelist, + &canon_MULTIPASS_MP990_paperlist, + NULL, + NULL, + NULL, + NULL + }, + /* ******************************** */ /* */ /* tested and color-adjusted models */ @@ -601,6 +694,76 @@ static const canon_cap_t canon_model_capabilities[] = NULL, NULL }, + { /* 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 */ + &canon_PIXMA_iP1000_modelist, + &canon_PIXMA_iP1000_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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 */ + &canon_PIXMA_iP1200_modelist, + &canon_PIXMA_iP1200_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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 */ + &canon_PIXMA_iP1500_modelist, + &canon_PIXMA_iP1500_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_PIXMA_iP1500_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_MULTIPASS_MP250_slotlist, /* rear only */ + CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ + &canon_PIXMA_iP1900_modelist, + &canon_PIXMA_iP1900_paperlist, + NULL, + NULL, + NULL, + NULL + }, { /* Canon PIXMA iP2000 */ "PIXMA iP2000", 3, /*model, model_id*/ 842, 17*72, /* max paper width and height */ @@ -615,13 +778,69 @@ static const canon_cap_t canon_model_capabilities[] = NULL, NULL }, + { /* 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 */ + &canon_PIXMA_iP1900_modelist, + &canon_PIXMA_iP2200_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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 */ + &canon_PIXMA_iP1900_modelist, + &canon_PIXMA_iP2200_paperlist,/* OHP experimental */ + NULL, + NULL, + NULL, + NULL + }, + { /* 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 */ + &canon_PIXMA_iP1900_modelist, + &canon_PIXMA_iP2600_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_PIXMA_iP2700_modelist, + &canon_PIXMA_iP2700_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, { /* 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,0x61,control_cmd_PIXMA_iP4000, /*features */ + CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ &canon_PIXMA_iP3000_modelist, &canon_PIXMA_iP4000_paperlist, NULL, @@ -629,6 +848,20 @@ static const canon_cap_t canon_model_capabilities[] = NULL, NULL }, + { /* 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, + &canon_PIXMA_iP3100_slotlist, + CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ + &canon_PIXMA_iP3100_modelist, + &canon_PIXMA_iP3100_paperlist, + NULL, + NULL, + NULL, + NULL + }, { /* Canon PIXMA iP4000 */ "PIXMA iP4000", 3, /*model, model_id*/ 842, 17*72, /* max paper width and height */ @@ -665,7 +898,8 @@ static const canon_cap_t canon_model_capabilities[] = &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_PIXMA_iP4000_paperlist,*/ + &canon_MULTIPASS_MP600_paperlist, NULL, NULL, NULL, @@ -685,15 +919,29 @@ static const canon_cap_t canon_model_capabilities[] = NULL, iP4500_channel_order }, - { /* Canon PIXMA iP4500 */ + { /* 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, - &canon_PIXMA_iP4000_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_iP4000_paperlist, + &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_PIXMA_iP4500_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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 */ + &canon_PIXMA_iP4700_modelist, + &canon_PIXMA_iP4700_paperlist, NULL, NULL, NULL, @@ -710,9 +958,24 @@ static const canon_cap_t canon_model_capabilities[] = &canon_PIXMA_iP4000_paperlist, iP4200_lum_adjustment, iP4200_hue_adjustment, - iP4200_sat_adjustment + iP4200_sat_adjustment, + NULL }, - { /* Canon PIXMA iP6700 */ + { /* 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 */ + &canon_PIXMA_iP4700_modelist,/* same for iP4800 */ + &canon_PIXMA_iP4700_paperlist,/* same for iP4800 */ + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* Canon PIXMA iP6000 */ "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 */ @@ -724,7 +987,35 @@ static const canon_cap_t canon_model_capabilities[] = NULL, NULL, NULL, - NULL + iP4500_channel_order + }, + { /* Canon PIXMA iP6100 */ + "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, + &canon_PIXMA_iP4000_slotlist, + CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ + &canon_PIXMA_iP6000_modelist, + &canon_PIXMA_iP6100_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* Canon PIXMA iP6600 */ + "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, + &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_PIXMA_iP6600_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order }, { /* Canon PIXMA iP6700 */ "PIXMA iP6700", 3, /*model, model_id*/ @@ -732,23 +1023,66 @@ static const canon_cap_t canon_model_capabilities[] = 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 */ + 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_PIXMA_iP4000_paperlist, + &canon_PIXMA_iP6700_paperlist, NULL, NULL, NULL, - NULL + iP4500_channel_order }, { /* 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_PIXMA_iP4000_slotlist, - CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x61,control_cmd_PIXMA_iP4000, /*features */ + &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 */ &canon_PIXMA_iX5000_modelist, - &canon_PIXMA_iP4000_paperlist, + &canon_PIXMA_iP1500_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP540_modelist, + &canon_MULTIPASS_MX880_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_PIXMA_iX7000_modelist, + &canon_PIXMA_iX7000_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_MULTIPASS_MP520_slotlist, + CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP2700, /*features */ + &canon_MULTIPASS_MP520_modelist, + &canon_MULTIPASS_MP520_paperlist, /* Windows driver lacks PPGgold, but let us try anyway */ NULL, NULL, NULL, @@ -759,10 +1093,108 @@ static const canon_cap_t canon_model_capabilities[] = 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,0x61,control_cmd_PIXMA_iP4000, /*features */ - &canon_PIXMA_iX5000_modelist, - &canon_PIXMA_iP4000_paperlist, + &canon_MULTIPASS_MP520_slotlist, + CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP2700, /*features */ + &canon_MULTIPASS_MP520_modelist, + &canon_MULTIPASS_MP520_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_PIXMA_MG5100_slotlist, + CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r,0x64,control_cmd_MULTIPASS_MP150, /*features */ + &canon_MULTIPASS_MP540_modelist, + &canon_MULTIPASS_MX330_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* Canon PIXMA MP550 ---wth 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, + &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_MULTIPASS_MP250_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP600_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_PIXMA_MG5200_slotlist, + CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r,0x64,control_cmd_PIXMA_iP4200, /*features */ + &canon_MULTIPASS_MP640_modelist, + &canon_MULTIPASS_MP630_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP640_modelist, + &canon_MULTIPASS_MP640_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_PIXMA_Pro9000_slotlist, + CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ + &canon_PIXMA_Pro9000_modelist, + &canon_PIXMA_Pro9000_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_PIXMA_Pro9000_slotlist, + CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ + &canon_PIXMA_Pro9000mk2_modelist, + &canon_PIXMA_Pro9000mk2_paperlist, NULL, NULL, NULL, @@ -773,10 +1205,24 @@ static const canon_cap_t canon_model_capabilities[] = 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 */ + &canon_PIXMA_Pro9000_slotlist, + CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ &canon_PIXMA_Pro9500_modelist, - &canon_PIXMA_iP4000_paperlist, + &canon_PIXMA_Pro9500_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &canon_PIXMA_Pro9000_slotlist, + CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ + &canon_PIXMA_Pro9500mk2_modelist, + &canon_PIXMA_Pro9500mk2_paperlist, NULL, NULL, NULL, @@ -788,7 +1234,8 @@ static const canon_cap_t canon_model_capabilities[] = 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 */ + /*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_PIXMA_iP8500_modelist, &canon_PIXMA_iP4000_paperlist, NULL, @@ -801,15 +1248,341 @@ static const canon_cap_t canon_model_capabilities[] = 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,0x61,control_cmd_MULTIPASS_MP150, /*features */ + /* &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 */ &canon_MULTIPASS_MP150_modelist, - &canon_PIXMA_iP4000_paperlist, + /* &canon_PIXMA_iP4000_paperlist, */ + &canon_MULTIPASS_MP150_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP480_modelist, + &canon_MULTIPASS_MP480_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* Canon MULTIPASS MP493: new model after MP480(?) --- 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, + &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_MULTIPASS_MP493_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP280_modelist, + &canon_MULTIPASS_MP280_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* Canon MULTIPASS MP250 */ + "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, + &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_MULTIPASS_MP250_modelist, + &canon_MULTIPASS_MP250_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* Canon MULTIPASS MP270 */ + "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, + &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_MULTIPASS_MP250_modelist, + &canon_MULTIPASS_MP250_paperlist, NULL, NULL, NULL, NULL }, + { /* Canon MULTIPASS MP280 */ + "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 */ + &canon_MULTIPASS_MP280_modelist, + &canon_MULTIPASS_MP280_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_PIXMA_MG5100_modelist, + &canon_PIXMA_MG5100_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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 */ + &canon_PIXMA_MG5200_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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 */ + &canon_PIXMA_MG6100_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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 */ + NULL, + NULL, + NULL, + iP4500_channel_order + }, + /* 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 */ + &canon_MULTIPASS_MX300_modelist, + &canon_MULTIPASS_MX300_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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 */ + &canon_MULTIPASS_MX330_modelist, + &canon_MULTIPASS_MX330_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* Canon MULTIPASS MX340 */ + "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 */ + &canon_MULTIPASS_MX340_modelist, + &canon_MULTIPASS_MX340_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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, + &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_MX360_modelist, + &canon_MULTIPASS_MX360_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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, + &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_MULTIPASS_MX420_paperlist, + NULL, + NULL, + NULL, + NULL + }, + { /* 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, + &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_MULTIPASS_MP520_modelist, + &canon_MULTIPASS_MX300_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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, + &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_PIXMA_iP4500_modelist, /* same inksets as iP4500 */ + &canon_MULTIPASS_MX850_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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, + &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_MULTIPASS_MX860_modelist, + &canon_MULTIPASS_MX330_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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, + &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_MULTIPASS_MX340_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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, + &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_MULTIPASS_MX880_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, + { /* 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, + &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_MULTIPASS_MX7600_modelist, + &canon_MULTIPASS_MX7600_paperlist, + NULL, + NULL, + NULL, + iP4500_channel_order + }, }; #endif diff --git a/src/main/channel.c b/src/main/channel.c index 96043a2..4bea5e2 100644 --- a/src/main/channel.c +++ b/src/main/channel.c @@ -1,5 +1,5 @@ /* - * "$Id: channel.c,v 1.32 2009/03/01 17:14:15 rlk Exp $" + * "$Id: channel.c,v 1.34 2011/04/16 15:48:20 rlk Exp $" * * Dither routine entrypoints * @@ -94,6 +94,14 @@ typedef struct } stpi_channel_group_t; +static stpi_channel_group_t * +get_channel_group(const stp_vars_t *v) +{ + stpi_channel_group_t *cg = + ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + return cg; +} + static void clear_a_channel(stpi_channel_group_t *cg, int channel) { @@ -139,8 +147,7 @@ stpi_channel_clear(void *vc) void stp_channel_reset(stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); if (cg) stpi_channel_clear(cg); } @@ -148,8 +155,7 @@ stp_channel_reset(stp_vars_t *v) void stp_channel_reset_channel(stp_vars_t *v, int channel) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); if (cg) clear_a_channel(cg, channel); } @@ -164,8 +170,7 @@ stpi_channel_free(void *vc) static stpi_subchannel_t * get_channel(stp_vars_t *v, unsigned channel, unsigned subchannel) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); if (!cg) return NULL; if (channel >= cg->channel_count) @@ -179,21 +184,25 @@ void stp_channel_add(stp_vars_t *v, unsigned channel, unsigned subchannel, double value) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); stpi_channel_t *chan; + stp_dprintf(STP_DBG_INK, v, "Add channel %d, %d, %f\n", + channel, subchannel, value); if (!cg) { cg = stp_zalloc(sizeof(stpi_channel_group_t)); cg->black_channel = -1; cg->gloss_channel = -1; stp_allocate_component_data(v, "Channel", NULL, stpi_channel_free, cg); + stp_dprintf(STP_DBG_INK, v, "*** Set up channel data ***\n"); } if (channel >= cg->channel_count) { unsigned oc = cg->channel_count; cg->c = stp_realloc(cg->c, sizeof(stpi_channel_t) * (channel + 1)); memset(cg->c + oc, 0, sizeof(stpi_channel_t) * (channel + 1 - oc)); + stp_dprintf(STP_DBG_INK, v, "*** Increment channel count from %d to %d\n", + oc, channel + 1); if (channel >= cg->channel_count) cg->channel_count = channel + 1; } @@ -206,6 +215,9 @@ stp_channel_add(stp_vars_t *v, unsigned channel, unsigned subchannel, (void) memset (chan->sc + oc, 0, sizeof(stpi_subchannel_t) * (subchannel + 1 - oc)); chan->sc[subchannel].value = value; + stp_dprintf(STP_DBG_INK, v, + "*** Increment subchannel count for %d from %d to %d\n", + channel, oc, subchannel + 1); if (subchannel >= chan->subchannel_count) chan->subchannel_count = subchannel + 1; } @@ -261,71 +273,76 @@ stp_channel_get_density_adjustment(stp_vars_t *v, int color, int subchannel) void stp_channel_set_ink_limit(stp_vars_t *v, double limit) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); stp_dprintf(STP_DBG_INK, v, "ink_limit %f\n", limit); - if (limit > 0) + if (cg && limit > 0) cg->ink_limit = 65535 * limit; } double stp_channel_get_ink_limit(stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); + if (!cg) + return 0.0; return cg->ink_limit / 65535.0; } void stp_channel_set_black_channel(stp_vars_t *v, int channel) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); stp_dprintf(STP_DBG_INK, v, "black_channel %d\n", channel); - cg->black_channel = channel; + if (cg) + cg->black_channel = channel; } int stp_channel_get_black_channel(stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); - return cg->black_channel; + stpi_channel_group_t *cg = get_channel_group(v); + if (cg) + return cg->black_channel; + else + return -1; } void stp_channel_set_gloss_channel(stp_vars_t *v, int channel) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); stp_dprintf(STP_DBG_INK, v, "gloss_channel %d\n", channel); - cg->gloss_channel = channel; + if (cg) + cg->gloss_channel = channel; } int stp_channel_get_gloss_channel(stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); - return cg->gloss_channel; + stpi_channel_group_t *cg = get_channel_group(v); + if (cg) + return cg->gloss_channel; + else + return -1; } void stp_channel_set_gloss_limit(stp_vars_t *v, double limit) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); stp_dprintf(STP_DBG_INK, v, "gloss_limit %f\n", limit); - if (limit > 0) + if (cg && limit > 0) cg->gloss_limit = 65535 * limit; } double stp_channel_get_gloss_limit(stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); - return cg->gloss_limit / 65535.0; + stpi_channel_group_t *cg = get_channel_group(v); + if (cg) + return cg->gloss_limit / 65535.0; + else + return 0; } void @@ -353,8 +370,7 @@ stp_channel_get_cutoff_adjustment(stp_vars_t *v, int color, int subchannel) void stp_channel_set_gcr_curve(stp_vars_t *v, const stp_curve_t *curve) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); if (!cg) return; stp_dprintf(STP_DBG_INK, v, "set_gcr_curve\n"); @@ -367,8 +383,7 @@ stp_channel_set_gcr_curve(stp_vars_t *v, const stp_curve_t *curve) const stp_curve_t * stp_channel_get_gcr_curve(stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); if (!cg) return NULL; stp_dprintf(STP_DBG_INK, v, "set_gcr_curve\n"); @@ -379,8 +394,7 @@ void stp_channel_set_curve(stp_vars_t *v, int color, const stp_curve_t *curve) { stpi_channel_t *ch; - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); if (!cg || color >= cg->channel_count) return; ch = &(cg->c[color]); @@ -398,8 +412,7 @@ const stp_curve_t * stp_channel_get_curve(stp_vars_t *v, int color) { stpi_channel_t *ch; - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); if (!cg || color >= cg->channel_count) return NULL; ch = &(cg->c[color]); @@ -458,8 +471,7 @@ void stp_channel_initialize(stp_vars_t *v, stp_image_t *image, int input_channel_count) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); int width = stp_image_width(image); int curve_count = 0; int i, j, k; @@ -723,10 +735,9 @@ limit_ink(const stp_vars_t *v) { int i; int retval = 0; - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); unsigned short *ptr = cg->output_data; - if (cg->ink_limit == 0 || cg->ink_limit >= cg->max_density) + if (!cg || cg->ink_limit == 0 || cg->ink_limit >= cg->max_density) return 0; for (i = 0; i < cg->width; i++) { @@ -776,11 +787,14 @@ short_copy(unsigned short *out, const unsigned short *in, size_t count) static void copy_channels(const stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); int i, j, k; - const unsigned short *input = cg->input_data; - unsigned short *output = cg->output_data; + const unsigned short *input; + unsigned short *output; + if (!cg) + return; + input = cg->input_data; + output = cg->output_data; for (i = 0; i < cg->width; i++) { for (j = 0; j < cg->channel_count; j++) @@ -830,15 +844,20 @@ interpolate_value(const double *vec, double val) static void generate_special_channels(const stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); int i, j; const unsigned short *input_cache = NULL; const unsigned short *output_cache = NULL; - const unsigned short *input = cg->input_data; - unsigned short *output = cg->multi_tmp; - int offset = (cg->black_channel >= 0 ? 0 : -1); - int outbytes = cg->aux_output_channels * sizeof(unsigned short); + const unsigned short *input; + unsigned short *output; + int offset; + int outbytes; + if (!cg) + return; + input = cg->input_data; + output = cg->multi_tmp; + offset = (cg->black_channel >= 0 ? 0 : -1); + outbytes = cg->aux_output_channels * sizeof(unsigned short); for (i = 0; i < cg->width; input += cg->input_channels, output += cg->aux_output_channels, i++) { @@ -900,15 +919,19 @@ generate_special_channels(const stp_vars_t *v) static void split_channels(const stp_vars_t *v, unsigned *zero_mask) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); int i, j, k; int nz[STP_CHANNEL_LIMIT]; - int outbytes = cg->total_channels * sizeof(unsigned short); + int outbytes; const unsigned short *input_cache = NULL; const unsigned short *output_cache = NULL; - const unsigned short *input = cg->split_input; - unsigned short *output = cg->output_data; + const unsigned short *input; + unsigned short *output; + if (!cg) + return; + outbytes = cg->total_channels * sizeof(unsigned short); + input = cg->split_input; + output = cg->output_data; for (i = 0; i < cg->total_channels; i++) nz[i] = 0; for (i = 0; i < cg->width; i++) @@ -996,10 +1019,11 @@ split_channels(const stp_vars_t *v, unsigned *zero_mask) static void scale_channels(const stp_vars_t *v, unsigned *zero_mask) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); int i, j; int physical_channel = 0; + if (!cg) + return; if (zero_mask) *zero_mask = 0; for (i = 0; i < cg->channel_count; i++) @@ -1040,12 +1064,11 @@ scale_channels(const stp_vars_t *v, unsigned *zero_mask) static void generate_gloss(const stp_vars_t *v, unsigned *zero_mask) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); unsigned short *output = cg->output_data; unsigned gloss_mask; int i, j, k; - if (cg->gloss_channel == -1 || cg->gloss_limit <= 0) + if (!cg || cg->gloss_channel == -1 || cg->gloss_limit <= 0) return; gloss_mask = ~(1 << cg->gloss_physical_channel); for (i = 0; i < cg->width; i++) @@ -1084,13 +1107,16 @@ generate_gloss(const stp_vars_t *v, unsigned *zero_mask) static void do_gcr(const stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); const unsigned short *gcr_lookup; - unsigned short *output = cg->gcr_data; + unsigned short *output; size_t count; int i; + if (!cg) + return; + + output = cg->gcr_data; stp_curve_resample(cg->gcr_curve, 65536); gcr_lookup = stp_curve_get_ushort_data(cg->gcr_curve, &count); for (i = 0; i < cg->width; i++) @@ -1132,15 +1158,17 @@ stp_channel_convert(const stp_vars_t *v, unsigned *zero_mask) unsigned short * stp_channel_get_input(const stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); + if (!cg) + return NULL; return (unsigned short *) cg->input_data; } unsigned short * stp_channel_get_output(const stp_vars_t *v) { - stpi_channel_group_t *cg = - ((stpi_channel_group_t *) stp_get_component_data(v, "Channel")); + stpi_channel_group_t *cg = get_channel_group(v); + if (!cg) + return NULL; return cg->output_data; } diff --git a/src/main/dither-main.c b/src/main/dither-main.c index 719421c..cd614d6 100644 --- a/src/main/dither-main.c +++ b/src/main/dither-main.c @@ -1,5 +1,5 @@ /* - * "$Id: dither-main.c,v 1.62 2010/08/04 00:33:56 rlk Exp $" + * "$Id: dither-main.c,v 1.63 2010/12/05 21:38:14 rlk Exp $" * * Dither routine entrypoints * @@ -41,9 +41,9 @@ static const stpi_dither_algorithm_t dither_algos[] = { + { "None", N_ ("Default"), -1 }, /* TRANSLATORS: "EvenTone" is the proper name, rather than a */ /* descriptive name, of this algorithm. */ - { "None", N_ ("Default"), -1 }, { "EvenTone", N_ ("EvenTone"), D_EVENTONE }, { "HybridEvenTone", N_ ("Hybrid EvenTone"), D_HYBRID_EVENTONE }, /* Placeholders for future implementation of EvenBetter Screening */ @@ -88,7 +88,7 @@ static const unsigned sq2[] = static const stp_parameter_t dither_parameters[] = { { - "Density", N_("Density"), N_("Output Level Adjustment"), + "Density", N_("Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the density (amount of ink) of the print. " "Reduce the density if the ink bleeds through the " "paper or smears; increase the density if black " @@ -97,7 +97,7 @@ static const stp_parameter_t dither_parameters[] = STP_PARAMETER_LEVEL_ADVANCED, 0, 1, STP_CHANNEL_NONE, 1, 0 }, { - "DitherAlgorithm", N_("Dither Algorithm"), N_("Screening Adjustment"), + "DitherAlgorithm", N_("Dither Algorithm"), "Color=Yes,Category=Screening Adjustment", N_("Choose the dither algorithm to be used.\n" "Adaptive Hybrid usually produces the best all-around quality.\n" "EvenTone is a new, experimental algorithm that often produces excellent results.\n" diff --git a/src/main/escp2-channels.c b/src/main/escp2-channels.c index ac607c0..be98302 100644 --- a/src/main/escp2-channels.c +++ b/src/main/escp2-channels.c @@ -1,5 +1,5 @@ /* - * "$Id: escp2-channels.c,v 1.90 2010/08/04 00:33:56 rlk Exp $" + * "$Id: escp2-channels.c,v 1.91 2010/12/19 02:51:37 rlk Exp $" * * Print plug-in EPSON ESC/P2 driver for the GIMP. * @@ -155,7 +155,8 @@ load_channel(stp_mxml_node_t *node, stp_mxml_node_t *root, ink_channel_t *icl) } static void -load_inkname(stp_mxml_node_t *node, stp_mxml_node_t *root, inkname_t *inl) +load_inkname(stp_mxml_node_t *node, stp_mxml_node_t *root, inkname_t *inl, + inklist_t *ikl) { const char *name; stp_mxml_node_t *child = node->child; @@ -283,6 +284,12 @@ load_inkname(stp_mxml_node_t *node, stp_mxml_node_t *root, inkname_t *inl) cchild = cchild->next; } } + else if (!strcmp(child->value.element.name, "initSequence") && + child->child && child->child->type == STP_MXML_TEXT) + ikl->init_sequence = stp_xmlstrtoraw(child->child->value.text.string); + else if (!strcmp(child->value.element.name, "deinitSequence") && + child->child && child->child->type == STP_MXML_TEXT) + ikl->deinit_sequence = stp_xmlstrtoraw(child->child->value.text.string); } child = child->next; } @@ -349,9 +356,17 @@ load_inklist(stp_mxml_node_t *node, stp_mxml_node_t *root, inklist_t *ikl) while (child) { - if (child->type == STP_MXML_ELEMENT && - !strcmp(child->value.element.name, "InkName")) - count++; + if (child->type == STP_MXML_ELEMENT) + { + if (!strcmp(child->value.element.name, "InkName")) + count++; + else if (!strcmp(child->value.element.name, "initSequence") && + child->child && child->child->type == STP_MXML_TEXT) + ikl->init_sequence = stp_xmlstrtoraw(child->child->value.text.string); + else if (!strcmp(child->value.element.name, "deinitSequence") && + child->child && child->child->type == STP_MXML_TEXT) + ikl->deinit_sequence = stp_xmlstrtoraw(child->child->value.text.string); + } child = child->next; } name = stp_mxmlElementGetAttr(node, "name"); @@ -369,7 +384,12 @@ load_inklist(stp_mxml_node_t *node, stp_mxml_node_t *root, inklist_t *ikl) if (child->type == STP_MXML_ELEMENT) { if (!strcmp(child->value.element.name, "InkName")) - load_inkname(child, root, &(ikl->inknames[count++])); + { + inkname_t *inl = &(ikl->inknames[count++]); + inl->init_sequence = ikl->init_sequence; + inl->deinit_sequence = ikl->deinit_sequence; + load_inkname(child, root, inl, ikl); + } else if (!strcmp(child->value.element.name, "Shades")) load_shades(child, root, ikl); } diff --git a/src/main/escp2-driver.c b/src/main/escp2-driver.c index fe964ec..a2fc23e 100644 --- a/src/main/escp2-driver.c +++ b/src/main/escp2-driver.c @@ -1,5 +1,5 @@ /* - * "$Id: escp2-driver.c,v 1.56 2010/06/26 20:02:02 rlk Exp $" + * "$Id: escp2-driver.c,v 1.57 2010/12/19 02:51:37 rlk Exp $" * * Print plug-in EPSON ESC/P2 driver for the GIMP. * @@ -294,6 +294,8 @@ escp2_set_remote_sequence(stp_vars_t *v) if (pd->borderless_sequence) stp_write_raw(pd->borderless_sequence, v); } + if (pd->inkname->init_sequence) + stp_write_raw(pd->inkname->init_sequence, v); /* Exit remote mode */ stp_send_command(v, "\033", "ccc", 0, 0, 0); @@ -627,6 +629,8 @@ stpi_escp2_deinit_printer(stp_vars_t *v) if (pd->advanced_command_set || pd->input_slot) { stp_send_command(v, "\033(R", "bcs", 0, "REMOTE1"); + if (pd->inkname->deinit_sequence) + stp_write_raw(pd->inkname->deinit_sequence, v); if (pd->input_slot && pd->input_slot->deinit_sequence) stp_write_raw(pd->input_slot->deinit_sequence, v); /* Load settings from NVRAM */ diff --git a/src/main/generic-options.c b/src/main/generic-options.c index d0e52da..1c7b674 100644 --- a/src/main/generic-options.c +++ b/src/main/generic-options.c @@ -1,5 +1,5 @@ /* - * "$Id: generic-options.c,v 1.11 2008/07/04 14:29:29 rlk Exp $" + * "$Id: generic-options.c,v 1.12 2010/12/05 21:38:14 rlk Exp $" * * Copyright 2003 Robert Krawitz (rlk@alum.mit.edu) * @@ -59,25 +59,25 @@ static const stpi_job_mode_t standard_job_modes[] = static const stp_parameter_t the_parameters[] = { { - "Quality", N_("Print Quality"), N_("Basic Output Adjustment"), + "Quality", N_("Print Quality"), "Color=Yes,Category=Basic Output Adjustment", N_("Print Quality"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0 }, { - "ImageType", N_("Image Type"), N_("Basic Image Adjustment"), + "ImageType", N_("Image Type"), "Color=Yes,Category=Basic Image Adjustment", N_("Type of image being printed"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0 }, { - "JobMode", N_("Job Mode"), N_("Job Mode"), + "JobMode", N_("Job Mode"), "Color=No,Category=Job Mode", N_("Job vs. page mode"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0 }, { - "PageNumber", N_("Page Number"), N_("Job Mode"), + "PageNumber", N_("Page Number"), "Color=No,Category=Job Mode", N_("Page number"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 0, 1, STP_CHANNEL_NONE, 1, 0 diff --git a/src/main/print-canon.c b/src/main/print-canon.c index 149202e..c824474 100644 --- a/src/main/print-canon.c +++ b/src/main/print-canon.c @@ -1,5 +1,5 @@ /* - * "$Id: print-canon.c,v 1.230 2008/12/21 10:49:50 faust3 Exp $" + * "$Id: print-canon.c,v 1.249 2011/05/01 07:40:55 gernot2270 Exp $" * * Print plug-in CANON BJL driver for the GIMP. * @@ -120,8 +120,11 @@ pack_pixels(unsigned char* buf,int len) #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_STD0 (CANON_CAP_b|CANON_CAP_c|CANON_CAP_d|\ CANON_CAP_l|CANON_CAP_q|CANON_CAP_t) @@ -196,85 +199,85 @@ static void canon_write_multiraster(stp_vars_t *v,canon_privdata_t* pd,int y); static const stp_parameter_t the_parameters[] = { { - "PageSize", N_("Page Size"), N_("Basic Printer Setup"), + "PageSize", N_("Page Size"), "Color=No,Category=Basic Printer Setup", N_("Size of the paper being printed to"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "MediaType", N_("Media Type"), N_("Basic Printer Setup"), + "MediaType", N_("Media Type"), "Color=Yes,Category=Basic Printer Setup", N_("Type of media (plain paper, photo paper, etc.)"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InputSlot", N_("Media Source"), N_("Basic Printer Setup"), + "InputSlot", N_("Media Source"), "Color=No,Category=Basic Printer Setup", N_("Source (input slot) of the media"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDInnerRadius", N_("CD Hub Size"), N_("Basic Printer Setup"), + "CDInnerRadius", N_("CD Hub Size"), "Color=No,Category=Basic Printer Setup", N_("Print only outside of the hub of the CD, or all the way to the hole"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDOuterDiameter", N_("CD Size (Custom)"), N_("Basic Printer Setup"), + "CDOuterDiameter", N_("CD Size (Custom)"), "Color=No,Category=Basic Printer Setup", N_("Variable adjustment for the outer diameter of CD"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDInnerDiameter", N_("CD Hub Size (Custom)"), N_("Basic Printer Setup"), + "CDInnerDiameter", N_("CD Hub Size (Custom)"), "Color=No,Category=Basic Printer Setup", N_("Variable adjustment to the inner hub of the CD"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDXAdjustment", N_("CD Horizontal Fine Adjustment"), N_("Advanced Printer Setup"), + "CDXAdjustment", N_("CD Horizontal Fine Adjustment"), "Color=No,Category=Advanced Printer Setup", N_("Fine adjustment to horizontal position for CD printing"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDYAdjustment", N_("CD Vertical Fine Adjustment"), N_("Advanced Printer Setup"), + "CDYAdjustment", N_("CD Vertical Fine Adjustment"), "Color=No,Category=Advanced Printer Setup", N_("Fine adjustment to horizontal position for CD printing"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "Resolution", N_("Resolution"), N_("Basic Printer Setup"), + "Resolution", N_("Resolution"), "Color=Yes,Category=Basic Printer Setup", N_("Resolution and quality of the print"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InkType", N_("Ink Type"), N_("Advanced Printer Setup"), + "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 }, { - "InkChannels", N_("Ink Channels"), N_("Advanced Printer Functionality"), + "InkChannels", N_("Ink Channels"), "Color=Yes,Category=Advanced Printer Functionality", N_("Ink Channels"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "PrintingMode", N_("Printing Mode"), N_("Core Parameter"), + "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, 1, 0 }, { - "Duplex", N_("Double-Sided Printing"), N_("Basic Printer Setup"), + "Duplex", N_("Double-Sided Printing"), "Color=No,Category=Basic Printer Setup", N_("Duplex/Tumble Setting"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "Quality", N_("Print Quality"), N_("Basic Output Adjustment"), + "Quality", N_("Print Quality"), "Color=Yes,Category=Basic Output Adjustment", N_("Print Quality"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0 @@ -297,7 +300,7 @@ static const float_param_t float_parameters[] = { { { - "CyanDensity", N_("Cyan Density"), N_("Output Level Adjustment"), + "CyanDensity", N_("Cyan Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the cyan density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 1, 1, 0 @@ -305,7 +308,7 @@ static const float_param_t float_parameters[] = }, { { - "MagentaDensity", N_("Magenta Density"), N_("Output Level Adjustment"), + "MagentaDensity", N_("Magenta Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the magenta density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 2, 1, 0 @@ -313,7 +316,7 @@ static const float_param_t float_parameters[] = }, { { - "YellowDensity", N_("Yellow Density"), N_("Output Level Adjustment"), + "YellowDensity", N_("Yellow Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the yellow density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 3, 1, 0 @@ -321,7 +324,7 @@ static const float_param_t float_parameters[] = }, { { - "BlackDensity", N_("Black Density"), N_("Output Level Adjustment"), + "BlackDensity", N_("Black Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the black density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 0, 1, 0 @@ -329,7 +332,7 @@ static const float_param_t float_parameters[] = }, { { - "LightCyanTrans", N_("Light Cyan Transition"), N_("Advanced Ink Adjustment"), + "LightCyanTrans", N_("Light Cyan Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Cyan Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -337,7 +340,7 @@ static const float_param_t float_parameters[] = }, { { - "LightMagentaTrans", N_("Light Magenta Transition"), N_("Advanced Ink Adjustment"), + "LightMagentaTrans", N_("Light Magenta Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Magenta Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -345,7 +348,7 @@ static const float_param_t float_parameters[] = }, { { - "LightYellowTrans", N_("Light Yellow Transition"), N_("Advanced Ink Adjustment"), + "LightYellowTrans", N_("Light Yellow Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Yellow Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -396,7 +399,9 @@ static const char* canon_families[] = { "PIXMA iX", "PIXMA MP", "PIXUS", - "PIXMA Pro" + "PIXMA Pro", + "PIXMA MG", + "PIXMA MX", }; /* canon model ids look like the following @@ -538,17 +543,32 @@ canon_size_type(const stp_vars_t *v, const canon_cap_t * caps) { const char *name = pp->name; /* used internally: do not translate */ - /* built ins: */ + /* built ins: Japanese driver notation */ if (!strcmp(name,"A5")) return 0x01; if (!strcmp(name,"A4")) return 0x03; - if (!strcmp(name,"B5")) return 0x08; + if (!strcmp(name,"A3")) return 0x05; + if (!strcmp(name,"B5")) return 0x08; + if (!strcmp(name,"B4")) return 0x0a; if (!strcmp(name,"Letter")) return 0x0d; if (!strcmp(name,"Legal")) return 0x0f; - 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,"w288h144")) return 0x2d; + 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,"A3plus")) return 0x2c; /* A3navi --- A3+ */ + if (!strcmp(name,"w288h144")) return 0x2d; + 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,"w360h504")) return 0x37; /* US5x7 */ + if (!strcmp(name,"w420h567")) return 0x39; /* Ofuku Hagaki */ + 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,"w288h512")) return 0x52; /* Wide101.6x180.6 */ /* custom */ stp_deprintf(STP_DBG_CANON,"canon: Unknown paper size '%s' - using custom\n",name); @@ -833,6 +853,30 @@ canon_parameters(const stp_vars_t *v, const char *name, _("Standard")); description->deflt.str = "Standard"; } + /* Cartridge selection for those printers that have it */ + else if (strcmp(name, "Cartridge") == 0) + { + int offer_cartridge_selection = 0; + description->bounds.str = stp_string_list_create(); + stp_string_list_add_string(description->bounds.str, "Both", + _("Both")); + stp_string_list_add_string(description->bounds.str, "Color", + _("Color")); + stp_string_list_add_string(description->bounds.str, "Black", + _("Black")); + + /* description->deflt.str = "Both"; */ + /* Note: not necessary set cartridge if Mono mode */ + + if (caps->features & CANON_CAP_CARTRIDGE) + { + description->deflt.str = + stp_string_list_param(description->bounds.str, 0)->name; + } + else + description->is_active = 0; + } + } @@ -1248,13 +1292,53 @@ canon_init_setPageMargins2(const stp_vars_t *v, const canon_privdata_t *init) } /* ESC (P -- 0x50 -- unknown -- : - */ + 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) { - if(!(init->caps->features & CANON_CAP_P)) - return; - canon_cmd( v,ESC28,0x50,4,0x00,0x03,0x00,0x00 ); + unsigned char arg_ESCP_2; + if(!(init->caps->features & CANON_CAP_P)) + return; + + 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 */ + {/* 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); + } + else + /* size media */ + canon_cmd( v,ESC28,0x50,4,0x00,0x03,0x00,arg_ESCP_2 ); +} + +/* ESC (T -- 0x54 -- setCartridge -- : + */ +static void +canon_init_setCartridge(const stp_vars_t *v, const canon_privdata_t *init) +{ + if (!(init->caps->features & CANON_CAP_T)) + return; + + canon_cmd(v,ESC28,0x54,3,0x03,0x04,0x04); /* default: both cartridges */ } /* ESC (q -- 0x71 -- setPageID -- : @@ -1313,7 +1397,7 @@ canon_init_setImage(const stp_vars_t *v, const canon_privdata_t *init) unsigned char* buf = stp_zalloc(length); buf[0]=0x80; if(init->mode->flags & MODE_FLAG_PRO){ - buf[1]=0x10; + buf[1]=0x90; /* was 0x10, but this should probably be 0x90 */ buf[2]=0x4; }else if(init->mode->flags & MODE_FLAG_IP8500){ buf[1]=0x00; @@ -1326,9 +1410,25 @@ canon_init_setImage(const stp_vars_t *v, const canon_privdata_t *init) if(init->mode->inks[i].ink){ 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) + { + buf[3+i*3+1]=0x01; + buf[3+i*3+0]=init->mode->inks[i].ink->bits; + }*/ else buf[3+i*3+0]=init->mode->inks[i].ink->bits; + + /* workaround for now on the 4-4 inkset and others */ + /*if (init->mode->inks[i].ink->bits == 4) + buf[3+i*3+2] = 0x04;*/ + /*else if (init->mode->inks[i].ink->bits == 2) + 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 + buf[3+i*3+2] = 0x00;*/ + /* this should show that there is an error */ } } stp_zfwrite(ESC28,2,1,v); @@ -1383,6 +1483,9 @@ canon_init_setImage(const stp_vars_t *v, const canon_privdata_t *init) static void canon_init_setMultiRaster(const stp_vars_t *v, const canon_privdata_t *init){ + int i; /* introduced for channel counting */ + char* raster_channel_order; /* introduced for channel counting */ + if(!(init->caps->features & CANON_CAP_I)) return; @@ -1392,7 +1495,26 @@ canon_init_setMultiRaster(const stp_vars_t *v, const canon_privdata_t *init){ /* set the color sequence */ stp_zfwrite("\033(L", 3, 1, v); stp_put16_le(init->num_channels, v); - stp_zfwrite((const char *)init->channel_order,init->num_channels, 1, 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 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;;*/ + } + } + /*}*/ + 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); + }*/ } @@ -1416,7 +1538,8 @@ canon_init_printer(const stp_vars_t *v, const canon_privdata_t *init) canon_init_setColor(v,init); /* ESC (c */ canon_init_setPageMargins(v,init); /* ESC (g */ canon_init_setPageMargins2(v,init); /* ESC (p */ - canon_init_setESC_P(v,init); /* ESD (P */ + canon_init_setESC_P(v,init); /* ESC (P */ + canon_init_setCartridge(v,init); /* ESC (T */ canon_init_setTray(v,init); /* ESC (l */ canon_init_setX72(v,init); /* ESC (r */ canon_init_setMultiRaster(v,init); /* ESC (I (J (L */ @@ -1447,13 +1570,25 @@ canon_deinit_printer(const stp_vars_t *v, const canon_privdata_t *init) static int canon_start_job(const stp_vars_t *v, stp_image_t *image) { + const canon_cap_t * caps = canon_get_model_capabilities(v); + /* output XML for iP2700 and other devices */ + if (caps->features & CANON_CAP_XML) { + int length=strlen(prexml_iP2700); /* 680 */ + stp_zfwrite((const char*)prexml_iP2700,length,1,v); + } return 1; } static int canon_end_job(const stp_vars_t *v, stp_image_t *image) { + const canon_cap_t * caps = canon_get_model_capabilities(v); canon_cmd(v,ESC40,0,0); + /* output XML for iP2700 and other devices */ + if (caps->features & CANON_CAP_XML) { + int length=strlen(postxml_iP2700); /* 263 */ + stp_zfwrite((const char*)postxml_iP2700,length,1,v); + } return 1; } @@ -1578,7 +1713,7 @@ static int canon_setup_channel(stp_vars_t *v,canon_privdata_t* privdata,int chan current->props = ink->ink; current->delay = delay; /* calculate buffer length */ - current->buf_length = ((privdata->length * current->props->bits)+1)*(delay + 1); + current->buf_length = ((privdata->length * current->props->bits)+1)*(delay + 1); /* update maximum buffer length */ if(current->buf_length > privdata->buf_length_max) privdata->buf_length_max = current->buf_length; @@ -1633,6 +1768,7 @@ static void canon_setup_channels(stp_vars_t *v,canon_privdata_t* privdata){ int i; unsigned int subchannel = 0; stp_shade_t* shades = NULL; + int is_black_channel = 0; channel = channel_order[channel_idx]; if(channel == STP_ECOLOR_K && privdata->used_inks & CANON_INK_K_MASK){ /* black channel */ /* find K and k inks */ @@ -1641,7 +1777,7 @@ static void canon_setup_channels(stp_vars_t *v,canon_privdata_t* privdata){ if(ink->channel == primary[channel] || ink->channel == secondary[channel]) subchannel += canon_setup_channel(v,privdata,channel,subchannel,ink,&shades); } - stp_channel_set_black_channel(v, STP_ECOLOR_K); + is_black_channel = 1; }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]; @@ -1652,17 +1788,18 @@ static void canon_setup_channels(stp_vars_t *v,canon_privdata_t* privdata){ /* set inks and density */ if(shades){ - 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"); - 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); - } - stp_free(shades); - } + 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"); + 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); + } + if (is_black_channel) + stp_channel_set_black_channel(v, channel); + stp_free(shades); + } } - } diff --git a/src/main/print-canon.h b/src/main/print-canon.h index 812d3c1..26607ed 100644 --- a/src/main/print-canon.h +++ b/src/main/print-canon.h @@ -135,4 +135,8 @@ static const unsigned char tentoeight[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +const char* prexml_iP2700 ="<?xml version=\"1.0\" encoding=\"utf-8\" ?><cmd xmlns:ivec=\"http://www.canon.com/ns/cmd/2008/07/common/\"><ivec:contents><ivec:operation>StartJob</ivec:operation><ivec:param_set servicetype=\"print\"><ivec:jobID>00000001</ivec:jobID><ivec:bidi>0</ivec:bidi></ivec:param_set></ivec:contents></cmd><?xml version=\"1.0\" encoding=\"utf-8\" ?><cmd xmlns:ivec=\"http://www.canon.com/ns/cmd/2008/07/common/\" xmlns:vcn=\"http://www.canon.com/ns/cmd/2008/07/canon/\"><ivec:contents><ivec:operation>VendorCmd</ivec:operation><ivec:param_set servicetype=\"print\"><vcn:ijoperation>ModeShift</vcn:ijoperation><vcn:ijmode>1</vcn:ijmode><ivec:jobID>00000001</ivec:jobID></ivec:param_set></ivec:contents></cmd>"; + +const char* postxml_iP2700 ="<?xml version=\"1.0\" encoding=\"utf-8\" ?><cmd xmlns:ivec=\"http://www.canon.com/ns/cmd/2008/07/common/\"><ivec:contents><ivec:operation>EndJob</ivec:operation><ivec:param_set servicetype=\"print\"><ivec:jobID>00000001</ivec:jobID></ivec:param_set></ivec:contents></cmd>"; + #endif diff --git a/src/main/print-color.c b/src/main/print-color.c index aa91432..e663420 100644 --- a/src/main/print-color.c +++ b/src/main/print-color.c @@ -1,5 +1,5 @@ /* - * "$Id: print-color.c,v 1.141 2010/08/04 00:33:56 rlk Exp $" + * "$Id: print-color.c,v 1.143 2011/03/08 13:03:05 rlk Exp $" * * Gutenprint color management module - traditional Gutenprint algorithm. * @@ -159,21 +159,21 @@ typedef struct int is_rgb; } float_param_t; -#define RAW_GAMMA_CHANNEL(channel) \ - { \ - { \ - "GammaCh" #channel, N_("Channel " #channel " Gamma"), N_("Gamma"), \ - N_("Gamma for raw channel " #channel), \ - STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, \ - STP_PARAMETER_LEVEL_INTERNAL, 0, 1, channel, 1, 0 \ - }, 0.1, 4.0, 1.0, CMASK_RAW, 0, -1 \ +#define RAW_GAMMA_CHANNEL(channel) \ + { \ + { \ + "GammaCh" #channel, N_("Channel " #channel " Gamma"), "Color=Yes,Category=Gamma", \ + N_("Gamma for raw channel " #channel), \ + STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, \ + STP_PARAMETER_LEVEL_INTERNAL, 0, 1, channel, 1, 0 \ + }, 0.1, 4.0, 1.0, CMASK_RAW, 0, -1 \ } static const float_param_t float_parameters[] = { { { - "ColorCorrection", N_("Color Correction"), N_("Basic Image Adjustment"), + "ColorCorrection", N_("Color Correction"), "Color=Yes,Category=Basic Image Adjustment", N_("Color correction to be applied"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_BASIC, 1, 1, -1, 1, 0 @@ -181,7 +181,7 @@ static const float_param_t float_parameters[] = }, { { - "ChannelBitDepth", N_("Channel Bit Depth"), N_("Core Parameter"), + "ChannelBitDepth", N_("Channel Bit Depth"), "Color=Yes,Category=Core Parameter", N_("Bit depth per channel"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, -1, 1, 0 @@ -189,7 +189,7 @@ static const float_param_t float_parameters[] = }, { { - "InputImageType", N_("Input Image Type"), N_("Core Parameter"), + "InputImageType", N_("Input Image Type"), "Color=Yes,Category=Core Parameter", N_("Input image type"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, -1, 1, 0 @@ -197,7 +197,7 @@ static const float_param_t float_parameters[] = }, { { - "STPIOutputType", N_("Output Image Type"), N_("Core Parameter"), + "STPIOutputType", N_("Output Image Type"), "Color=Yes,Category=Core Parameter", N_("Output image type"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_INTERNAL, 1, 1, -1, 1, 0 @@ -205,7 +205,7 @@ static const float_param_t float_parameters[] = }, { { - "STPIRawChannels", N_("Raw Channels"), N_("Core Parameter"), + "STPIRawChannels", N_("Raw Channels"), "Color=Yes,Category=Core Parameter", N_("Raw Channels"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_INTERNAL, 1, 1, -1, 1, 0 @@ -213,7 +213,7 @@ static const float_param_t float_parameters[] = }, { { - "SimpleGamma", N_("SimpleGamma"), N_("Gamma"), + "SimpleGamma", N_("SimpleGamma"), "Color=Yes,Category=Gamma", N_("Do not correct for screen gamma"), STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_INTERNAL, 0, 1, -1, 1, 0 @@ -221,7 +221,7 @@ static const float_param_t float_parameters[] = }, { { - "Brightness", N_("Brightness"), N_("Basic Image Adjustment"), + "Brightness", N_("Brightness"), "Color=Yes,Category=Basic Image Adjustment", N_("Brightness of the print"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_BASIC, 1, 1, -1, 1, 0 @@ -229,7 +229,7 @@ static const float_param_t float_parameters[] = }, { { - "Contrast", N_("Contrast"), N_("Basic Image Adjustment"), + "Contrast", N_("Contrast"), "Color=Yes,Category=Basic Image Adjustment", N_("Contrast of the print (0 is solid gray)"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_BASIC, 1, 1, -1, 1, 0 @@ -237,7 +237,7 @@ static const float_param_t float_parameters[] = }, { { - "LinearContrast", N_("Linear Contrast Adjustment"), N_("Advanced Image Control"), + "LinearContrast", N_("Linear Contrast Adjustment"), "Color=Yes,Category=Advanced Image Control", N_("Use linear vs. fixed end point contrast adjustment"), STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED3, 1, 1, -1, 1, 0 @@ -245,7 +245,7 @@ static const float_param_t float_parameters[] = }, { { - "Gamma", N_("Composite Gamma"), N_("Gamma"), + "Gamma", N_("Composite Gamma"), "Color=Yes,Category=Gamma", N_("Adjust the gamma of the print. Larger values will " "produce a generally brighter print, while smaller " "values will produce a generally darker print. "), @@ -255,7 +255,7 @@ static const float_param_t float_parameters[] = }, { { - "AppGamma", N_("AppGamma"), N_("Gamma"), + "AppGamma", N_("AppGamma"), "Color=Yes,Category=Gamma", N_("Gamma value assumed by application"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_INTERNAL, 0, 1, -1, 1, 0 @@ -263,7 +263,7 @@ static const float_param_t float_parameters[] = }, { { - "CyanGamma", N_("Cyan"), N_("Gamma"), + "CyanGamma", N_("Cyan"), "Color=Yes,Category=Gamma", N_("Adjust the cyan gamma"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 1, 1, 0 @@ -271,7 +271,7 @@ static const float_param_t float_parameters[] = }, { { - "MagentaGamma", N_("Magenta"), N_("Gamma"), + "MagentaGamma", N_("Magenta"), "Color=Yes,Category=Gamma", N_("Adjust the magenta gamma"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 2, 1, 0 @@ -279,7 +279,7 @@ static const float_param_t float_parameters[] = }, { { - "YellowGamma", N_("Yellow"), N_("Gamma"), + "YellowGamma", N_("Yellow"), "Color=Yes,Category=Gamma", N_("Adjust the yellow gamma"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 3, 1, 0 @@ -287,7 +287,7 @@ static const float_param_t float_parameters[] = }, { { - "RedGamma", N_("Red"), N_("Gamma"), + "RedGamma", N_("Red"), "Color=Yes,Category=Gamma", N_("Adjust the red gamma"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 1, 1, 0 @@ -295,7 +295,7 @@ static const float_param_t float_parameters[] = }, { { - "GreenGamma", N_("Green"), N_("Gamma"), + "GreenGamma", N_("Green"), "Color=Yes,Category=Gamma", N_("Adjust the green gamma"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 2, 1, 0 @@ -303,7 +303,7 @@ static const float_param_t float_parameters[] = }, { { - "BlueGamma", N_("Blue"), N_("Gamma"), + "BlueGamma", N_("Blue"), "Color=Yes,Category=Gamma", N_("Adjust the blue gamma"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 3, 1, 0 @@ -311,7 +311,7 @@ static const float_param_t float_parameters[] = }, { { - "BlackGamma", N_("Black"), N_("Gamma"), + "BlackGamma", N_("Black"), "Color=Yes,Category=Gamma", N_("Adjust the black gamma"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 3, 1, 0 @@ -319,7 +319,7 @@ static const float_param_t float_parameters[] = }, { { - "CyanBalance", N_("Cyan Balance"), N_("GrayBalance"), + "CyanBalance", N_("Cyan Balance"), "Color=Yes,Category=GrayBalance", N_("Adjust the cyan gray balance"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 1, 1, 0 @@ -327,7 +327,7 @@ static const float_param_t float_parameters[] = }, { { - "MagentaBalance", N_("Magenta Balance"), N_("GrayBalance"), + "MagentaBalance", N_("Magenta Balance"), "Color=Yes,Category=GrayBalance", N_("Adjust the magenta gray balance"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 2, 1, 0 @@ -335,7 +335,7 @@ static const float_param_t float_parameters[] = }, { { - "YellowBalance", N_("Yellow Balance"), N_("GrayBalance"), + "YellowBalance", N_("Yellow Balance"), "Color=Yes,Category=GrayBalance", N_("Adjust the yellow gray balance"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED1, 0, 1, 3, 1, 0 @@ -343,7 +343,7 @@ static const float_param_t float_parameters[] = }, { { - "Saturation", N_("Saturation"), N_("Basic Image Adjustment"), + "Saturation", N_("Saturation"), "Color=Yes,Category=Basic Image Adjustment", N_("Adjust the saturation (color balance) of the print\n" "Use zero saturation to produce grayscale output " "using color and black inks"), @@ -354,7 +354,7 @@ static const float_param_t float_parameters[] = /* Need to think this through a bit more -- rlk 20030712 */ { { - "InkLimit", N_("Ink Limit"), N_("Advanced Output Control"), + "InkLimit", N_("Ink Limit"), "Color=Yes,Category=Advanced Output Control", N_("Limit the total ink printed to the page"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, -1, 0, 0 @@ -362,7 +362,7 @@ static const float_param_t float_parameters[] = }, { { - "BlackTrans", N_("GCR Transition"), N_("Advanced Output Control"), + "BlackTrans", N_("GCR Transition"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the gray component transition rate"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0 @@ -370,7 +370,7 @@ static const float_param_t float_parameters[] = }, { { - "GCRLower", N_("GCR Lower Bound"), N_("Advanced Output Control"), + "GCRLower", N_("GCR Lower Bound"), "Color=Yes,Category=Advanced Output Control", N_("Lower bound of gray component reduction"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0 @@ -378,7 +378,7 @@ static const float_param_t float_parameters[] = }, { { - "GCRUpper", N_("GCR Upper Bound"), N_("Advanced Output Control"), + "GCRUpper", N_("GCR Upper Bound"), "Color=Yes,Category=Advanced Output Control", N_("Upper bound of gray component reduction"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0 @@ -448,21 +448,22 @@ static stp_curve_t *color_curve_bounds = NULL; static stp_curve_t *gcr_curve_bounds = NULL; -#define RAW_CURVE_CHANNEL(channel) \ - { \ - { \ - "CurveCh" #channel, N_("Channel " #channel " Curve"), \ - N_("Output Curves"), N_("Curve for raw channel " #channel), \ - STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, \ - STP_PARAMETER_LEVEL_INTERNAL, 0, 1, channel, 1, 0 \ - }, &color_curve_bounds, CMASK_RAW, 0, 0, -1 \ +#define RAW_CURVE_CHANNEL(channel) \ + { \ + { \ + "CurveCh" #channel, N_("Channel " #channel " Curve"), \ + "Color=Yes,Category=Output Curves", \ + N_("Curve for raw channel " #channel), \ + STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, \ + STP_PARAMETER_LEVEL_INTERNAL, 0, 1, channel, 1, 0 \ + }, &color_curve_bounds, CMASK_RAW, 0, 0, -1 \ } static curve_param_t curve_parameters[] = { { { - "CyanCurve", N_("Cyan Curve"), N_("Output Curves"), + "CyanCurve", N_("Cyan Curve"), "Color=Yes,Category=Output Curves", N_("Cyan curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 1, 1, 0 @@ -470,7 +471,7 @@ static curve_param_t curve_parameters[] = }, { { - "MagentaCurve", N_("Magenta Curve"), N_("Output Curves"), + "MagentaCurve", N_("Magenta Curve"), "Color=Yes,Category=Output Curves", N_("Magenta curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 2, 1, 0 @@ -478,7 +479,7 @@ static curve_param_t curve_parameters[] = }, { { - "YellowCurve", N_("Yellow Curve"), N_("Output Curves"), + "YellowCurve", N_("Yellow Curve"), "Color=Yes,Category=Output Curves", N_("Yellow curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 3, 1, 0 @@ -486,7 +487,7 @@ static curve_param_t curve_parameters[] = }, { { - "BlackCurve", N_("Black Curve"), N_("Output Curves"), + "BlackCurve", N_("Black Curve"), "Color=Yes,Category=Output Curves", N_("Black curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 0, 1, 0 @@ -494,7 +495,7 @@ static curve_param_t curve_parameters[] = }, { { - "RedCurve", N_("Red Curve"), N_("Output Curves"), + "RedCurve", N_("Red Curve"), "Color=Yes,Category=Output Curves", N_("Red curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 1, 1, 0 @@ -502,7 +503,7 @@ static curve_param_t curve_parameters[] = }, { { - "GreenCurve", N_("Green Curve"), N_("Output Curves"), + "GreenCurve", N_("Green Curve"), "Color=Yes,Category=Output Curves", N_("Green curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 2, 1, 0 @@ -510,7 +511,7 @@ static curve_param_t curve_parameters[] = }, { { - "BlueCurve", N_("Blue Curve"), N_("Output Curves"), + "BlueCurve", N_("Blue Curve"), "Color=Yes,Category=Output Curves", N_("Blue curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 3, 1, 0 @@ -518,7 +519,7 @@ static curve_param_t curve_parameters[] = }, { { - "WhiteCurve", N_("White Curve"), N_("Output Curves"), + "WhiteCurve", N_("White Curve"), "Color=Yes,Category=Output Curves", N_("White curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, 1, 1, 0 @@ -526,7 +527,7 @@ static curve_param_t curve_parameters[] = }, { { - "HueMap", N_("Hue Map"), N_("Advanced HSL Curves"), + "HueMap", N_("Hue Map"), "Color=Yes,Category=Advanced HSL Curves", N_("Hue adjustment curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, -1, 1, 0 @@ -534,7 +535,7 @@ static curve_param_t curve_parameters[] = }, { { - "SatMap", N_("Saturation Map"), N_("Advanced HSL Curves"), + "SatMap", N_("Saturation Map"), "Color=Yes,Category=Advanced HSL Curves", N_("Saturation adjustment curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, -1, 1, 0 @@ -542,7 +543,7 @@ static curve_param_t curve_parameters[] = }, { { - "LumMap", N_("Luminosity Map"), N_("Advanced HSL Curves"), + "LumMap", N_("Luminosity Map"), "Color=Yes,Category=Advanced HSL Curves", N_("Luminosity adjustment curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, -1, 1, 0 @@ -550,7 +551,7 @@ static curve_param_t curve_parameters[] = }, { { - "GCRCurve", N_("Gray Component Reduction"), N_("Advanced Output Control"), + "GCRCurve", N_("Gray Component Reduction"), "Color=Yes,Category=Advanced Output Control", N_("Gray component reduction curve"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0 diff --git a/src/main/print-escp2.c b/src/main/print-escp2.c index c5d9957..2fd9083 100644 --- a/src/main/print-escp2.c +++ b/src/main/print-escp2.c @@ -1,5 +1,5 @@ /* - * "$Id: print-escp2.c,v 1.431 2010/08/04 00:33:57 rlk Exp $" + * "$Id: print-escp2.c,v 1.433 2010/12/11 22:04:07 rlk Exp $" * * Print plug-in EPSON ESC/P2 driver for the GIMP. * @@ -102,25 +102,28 @@ static const double ink_darknesses[] = #define INCH(x) (72 * x) -#define PARAMETER_INT(s) \ -{ \ - "escp2_" #s, "escp2_" #s, N_("Advanced Printer Functionality"), NULL, \ - STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, \ - STP_PARAMETER_LEVEL_INTERNAL, 0, 1, STP_CHANNEL_NONE, 1, 0 \ +#define PARAMETER_INT(s) \ +{ \ + "escp2_" #s, "escp2_" #s, \ + "Color=Yes,Category=Advanced Printer Functionality", NULL, \ + STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, \ + STP_PARAMETER_LEVEL_INTERNAL, 0, 1, STP_CHANNEL_NONE, 1, 0 \ } -#define PARAMETER_INT_RO(s) \ -{ \ - "escp2_" #s, "escp2_" #s, N_("Advanced Printer Functionality"), NULL, \ - STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, \ - STP_PARAMETER_LEVEL_INTERNAL, 0, 1, STP_CHANNEL_NONE, 1, 1 \ +#define PARAMETER_INT_RO(s) \ +{ \ + "escp2_" #s, "escp2_" #s, \ + "Color=Yes,Category=Advanced Printer Functionality", NULL, \ + STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, \ + STP_PARAMETER_LEVEL_INTERNAL, 0, 1, STP_CHANNEL_NONE, 1, 1 \ } -#define PARAMETER_RAW(s) \ -{ \ - "escp2_" #s, "escp2_" #s, N_("Advanced Printer Functionality"), NULL, \ - STP_PARAMETER_TYPE_RAW, STP_PARAMETER_CLASS_FEATURE, \ - STP_PARAMETER_LEVEL_INTERNAL, 0, 1, STP_CHANNEL_NONE, 1, 0 \ +#define PARAMETER_RAW(s) \ +{ \ + "escp2_" #s, "escp2_" #s, \ + "Color=Yes,Category=Advanced Printer Functionality", NULL, \ + STP_PARAMETER_TYPE_RAW, STP_PARAMETER_CLASS_FEATURE, \ + STP_PARAMETER_LEVEL_INTERNAL, 0, 1, STP_CHANNEL_NONE, 1, 0 \ } typedef struct @@ -144,7 +147,7 @@ static const stp_parameter_t the_parameters[] = { #if 0 { - "AutoMode", N_("Automatic Printing Mode"), N_("Basic Output Adjustment"), + "AutoMode", N_("Automatic Printing Mode"), "Color=Yes,Category=Basic Output Adjustment", N_("Automatic printing mode"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 @@ -156,73 +159,73 @@ static const stp_parameter_t the_parameters[] = * files that don't have constraints set up. */ { - "Quality", N_("Print Quality"), N_("Basic Output Adjustment"), + "Quality", N_("Print Quality"), "Color=Yes,Category=Basic Output Adjustment", N_("Print Quality"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0 }, { - "PageSize", N_("Page Size"), N_("Basic Printer Setup"), + "PageSize", N_("Page Size"), "Color=No,Category=Basic Printer Setup", N_("Size of the paper being printed to"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "MediaType", N_("Media Type"), N_("Basic Printer Setup"), + "MediaType", N_("Media Type"), "Color=Yes,Category=Basic Printer Setup", N_("Type of media (plain paper, photo paper, etc.)"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InputSlot", N_("Media Source"), N_("Basic Printer Setup"), + "InputSlot", N_("Media Source"), "Color=No,Category=Basic Printer Setup", N_("Source (input slot) of the media"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "Duplex", N_("Double-Sided Printing"), N_("Basic Printer Setup"), + "Duplex", N_("Double-Sided Printing"), "Color=No,Category=Basic Printer Setup", N_("Duplex/Tumble Setting"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDInnerRadius", N_("CD Hub Size"), N_("Basic Printer Setup"), + "CDInnerRadius", N_("CD Hub Size"), "Color=No,Category=Basic Printer Setup", N_("Print only outside of the hub of the CD, or all the way to the hole"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDOuterDiameter", N_("CD Size (Custom)"), N_("Basic Printer Setup"), + "CDOuterDiameter", N_("CD Size (Custom)"), "Color=No,Category=Basic Printer Setup", N_("Variable adjustment for the outer diameter of CD"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDInnerDiameter", N_("CD Hub Size (Custom)"), N_("Basic Printer Setup"), + "CDInnerDiameter", N_("CD Hub Size (Custom)"), "Color=No,Category=Basic Printer Setup", N_("Variable adjustment to the inner hub of the CD"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDXAdjustment", N_("CD Horizontal Fine Adjustment"), N_("Advanced Printer Setup"), + "CDXAdjustment", N_("CD Horizontal Fine Adjustment"), "Color=No,Category=Advanced Printer Setup", N_("Fine adjustment to horizontal position for CD printing"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDYAdjustment", N_("CD Vertical Fine Adjustment"), N_("Advanced Printer Setup"), + "CDYAdjustment", N_("CD Vertical Fine Adjustment"), "Color=No,Category=Advanced Printer Setup", N_("Fine adjustment to horizontal position for CD printing"), STP_PARAMETER_TYPE_DIMENSION, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CDAllowOtherMedia", N_("CD Allow Other Media Sizes"), N_("Advanced Printer Setup"), + "CDAllowOtherMedia", N_("CD Allow Other Media Sizes"), "Color=No,Category=Advanced Printer Setup", N_("Allow non-CD media sizes when printing to CD"), STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "Resolution", N_("Resolution"), N_("Basic Printer Setup"), + "Resolution", N_("Resolution"), "Color=Yes,Category=Basic Printer Setup", N_("Resolution of the print"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED, 1, 1, STP_CHANNEL_NONE, 1, 0 @@ -233,151 +236,151 @@ static const stp_parameter_t the_parameters[] = * files that don't have constraints set up. */ { - "InkType", N_("Ink Type"), N_("Advanced Printer Setup"), + "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_ADVANCED2, 1, 1, STP_CHANNEL_NONE, 0, 0 }, { - "UseGloss", N_("Enhanced Gloss"), N_("Basic Printer Setup"), + "UseGloss", N_("Enhanced Gloss"), "Color=Yes,Category=Basic Printer Setup", N_("Add gloss enhancement"), STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0 }, { - "InkSet", N_("Ink Set"), N_("Basic Printer Setup"), + "InkSet", N_("Ink Set"), "Color=Yes,Category=Basic 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 }, { - "PrintingDirection", N_("Printing Direction"), N_("Advanced Output Adjustment"), + "PrintingDirection", N_("Printing Direction"), "Color=Yes,Category=Advanced Output Adjustment", N_("Printing direction (unidirectional is higher quality, but slower)"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED1, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "FullBleed", N_("Borderless"), N_("Basic Printer Setup"), + "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 }, { - "Weave", N_("Interleave Method"), N_("Advanced Output Adjustment"), + "Weave", N_("Interleave Method"), "Color=Yes,Category=Advanced Output Adjustment", N_("Interleave pattern to use"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED1, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "OutputOrder", N_("Output Order"), N_("Basic Printer Setup"), + "OutputOrder", N_("Output Order"), "Color=No,Category=Basic Printer Setup", N_("Output Order"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "AlignmentPasses", N_("Alignment Passes"), N_("Advanced Printer Functionality"), + "AlignmentPasses", N_("Alignment Passes"), "Color=No,Category=Advanced Printer Functionality", N_("Alignment Passes"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "AlignmentChoices", N_("Alignment Choices"), N_("Advanced Printer Functionality"), + "AlignmentChoices", N_("Alignment Choices"), "Color=No,Category=Advanced Printer Functionality", N_("Alignment Choices"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "InkChange", N_("Ink change command"), N_("Advanced Printer Functionality"), + "InkChange", N_("Ink change command"), "Color=No,Category=Advanced Printer Functionality", N_("Ink change command"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "AlternateAlignmentPasses", N_("Alternate Alignment Passes"), N_("Advanced Printer Functionality"), + "AlternateAlignmentPasses", N_("Alternate Alignment Passes"), "Color=No,Category=Advanced Printer Functionality", N_("Alternate Alignment Passes"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "AlternateAlignmentChoices", N_("Alternate Alignment Choices"), N_("Advanced Printer Functionality"), + "AlternateAlignmentChoices", N_("Alternate Alignment Choices"), "Color=No,Category=Advanced Printer Functionality", N_("Alternate Alignment Choices"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "SupportsPacketMode", N_("Supports Packet Mode"), N_("Advanced Printer Functionality"), + "SupportsPacketMode", N_("Supports Packet Mode"), "Color=No,Category=Advanced Printer Functionality", N_("Supports D4 Packet Mode"), STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "InterchangeableInk", N_("Has Interchangeable Ink Cartridges"), N_("Advanced Printer Functionality"), + "InterchangeableInk", N_("Has Interchangeable Ink Cartridges"), "Color=No,Category=Advanced Printer Functionality", N_("Has multiple choices of ink cartridges"), STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "InkChannels", N_("Ink Channels"), N_("Advanced Printer Functionality"), + "InkChannels", N_("Ink Channels"), "Color=No,Category=Advanced Printer Functionality", N_("Ink Channels"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "RawChannelNames", N_("Raw Channel Names"), N_("Advanced Printer Functionality"), + "RawChannelNames", N_("Raw Channel Names"), "Color=No,Category=Advanced Printer Functionality", N_("Raw Channel Names"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "ChannelNames", N_("Channel Names"), N_("Advanced Printer Functionality"), + "ChannelNames", N_("Channel Names"), "Color=No,Category=Advanced Printer Functionality", N_("Channel Names"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "PrintingMode", N_("Printing Mode"), N_("Core Parameter"), + "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, 1, 0 }, { - "RawChannels", N_("Raw Channels"), N_("Core Parameter"), + "RawChannels", N_("Raw Channels"), "Color=Yes,Category=Core Parameter", N_("Raw Channel Count"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 0, 1, STP_CHANNEL_NONE, 1, 0 }, { - "CyanHueCurve", N_("Cyan Map"), N_("Advanced Output Control"), + "CyanHueCurve", N_("Cyan Map"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the cyan map"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 1, 1, 0 }, { - "MagentaHueCurve", N_("Magenta Map"), N_("Advanced Output Control"), + "MagentaHueCurve", N_("Magenta Map"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the magenta map"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 2, 1, 0 }, { - "YellowHueCurve", N_("Yellow Map"), N_("Advanced Output Control"), + "YellowHueCurve", N_("Yellow Map"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the yellow map"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 3, 1, 0 }, { - "BlueHueCurve", N_("Blue Map"), N_("Advanced Output Control"), + "BlueHueCurve", N_("Blue Map"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the blue map"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 4, 1, 0 }, { - "OrangeHueCurve", N_("Orange Map"), N_("Advanced Output Control"), + "OrangeHueCurve", N_("Orange Map"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the orange map"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 4, 1, 0 }, { - "RedHueCurve", N_("Red Map"), N_("Advanced Output Control"), + "RedHueCurve", N_("Red Map"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the red map"), STP_PARAMETER_TYPE_CURVE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 5, 1, 0 @@ -448,7 +451,7 @@ static const float_param_t float_parameters[] = { { { - "CyanDensity", N_("Cyan Density"), N_("Output Level Adjustment"), + "CyanDensity", N_("Cyan Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the cyan density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 1, 1, 0 @@ -456,7 +459,7 @@ static const float_param_t float_parameters[] = }, { { - "MagentaDensity", N_("Magenta Density"), N_("Output Level Adjustment"), + "MagentaDensity", N_("Magenta Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the magenta density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 2, 1, 0 @@ -464,7 +467,7 @@ static const float_param_t float_parameters[] = }, { { - "YellowDensity", N_("Yellow Density"), N_("Output Level Adjustment"), + "YellowDensity", N_("Yellow Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the yellow density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 3, 1, 0 @@ -472,7 +475,7 @@ static const float_param_t float_parameters[] = }, { { - "BlackDensity", N_("Black Density"), N_("Output Level Adjustment"), + "BlackDensity", N_("Black Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the black density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 0, 1, 0 @@ -480,7 +483,7 @@ static const float_param_t float_parameters[] = }, { { - "RedDensity", N_("Red Density"), N_("Output Level Adjustment"), + "RedDensity", N_("Red Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the red density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 4, 1, 0 @@ -488,7 +491,7 @@ static const float_param_t float_parameters[] = }, { { - "BlueDensity", N_("Blue Density"), N_("Output Level Adjustment"), + "BlueDensity", N_("Blue Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the blue density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 5, 1, 0 @@ -496,7 +499,7 @@ static const float_param_t float_parameters[] = }, { { - "OrangeDensity", N_("Orange Density"), N_("Output Level Adjustment"), + "OrangeDensity", N_("Orange Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the orange density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 5, 1, 0 @@ -504,7 +507,7 @@ static const float_param_t float_parameters[] = }, { { - "GlossLimit", N_("Gloss Level"), N_("Output Level Adjustment"), + "GlossLimit", N_("Gloss Level"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the gloss level"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 6, 1, 0 @@ -512,7 +515,7 @@ static const float_param_t float_parameters[] = }, { { - "DropSize1", N_("Drop Size Small"), N_("Advanced Ink Adjustment"), + "DropSize1", N_("Drop Size Small"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Drop Size 1 (small)"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -520,7 +523,7 @@ static const float_param_t float_parameters[] = }, { { - "DropSize2", N_("Drop Size Medium"), N_("Advanced Ink Adjustment"), + "DropSize2", N_("Drop Size Medium"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Drop Size 2 (medium)"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -528,7 +531,7 @@ static const float_param_t float_parameters[] = }, { { - "DropSize3", N_("Drop Size Large"), N_("Advanced Ink Adjustment"), + "DropSize3", N_("Drop Size Large"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Drop Size 3 (large)"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -536,7 +539,7 @@ static const float_param_t float_parameters[] = }, { { - "LightCyanValue", N_("Light Cyan Value"), N_("Advanced Ink Adjustment"), + "LightCyanValue", N_("Light Cyan Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Cyan Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -544,7 +547,7 @@ static const float_param_t float_parameters[] = }, { { - "LightCyanTrans", N_("Light Cyan Transition"), N_("Advanced Ink Adjustment"), + "LightCyanTrans", N_("Light Cyan Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Cyan Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -552,7 +555,7 @@ static const float_param_t float_parameters[] = }, { { - "LightCyanScale", N_("Light Cyan Density Scale"), N_("Advanced Ink Adjustment"), + "LightCyanScale", N_("Light Cyan Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Cyan Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -560,7 +563,7 @@ static const float_param_t float_parameters[] = }, { { - "LightMagentaValue", N_("Light Magenta Value"), N_("Advanced Ink Adjustment"), + "LightMagentaValue", N_("Light Magenta Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Magenta Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -568,7 +571,7 @@ static const float_param_t float_parameters[] = }, { { - "LightMagentaScale", N_("Light Magenta Density Scale"), N_("Advanced Ink Adjustment"), + "LightMagentaScale", N_("Light Magenta Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Magenta Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -576,7 +579,7 @@ static const float_param_t float_parameters[] = }, { { - "LightMagentaTrans", N_("Light Magenta Transition"), N_("Advanced Ink Adjustment"), + "LightMagentaTrans", N_("Light Magenta Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Magenta Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -584,7 +587,7 @@ static const float_param_t float_parameters[] = }, { { - "DarkYellowValue", N_("Dark Yellow Value"), N_("Advanced Ink Adjustment"), + "DarkYellowValue", N_("Dark Yellow Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Dark Yellow Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -592,7 +595,7 @@ static const float_param_t float_parameters[] = }, { { - "DarkYellowTrans", N_("Dark Yellow Transition"), N_("Advanced Ink Adjustment"), + "DarkYellowTrans", N_("Dark Yellow Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Dark Yellow Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -600,7 +603,7 @@ static const float_param_t float_parameters[] = }, { { - "DarkYellowScale", N_("Dark Yellow Density Scale"), N_("Advanced Ink Adjustment"), + "DarkYellowScale", N_("Dark Yellow Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Dark Yellow Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -608,7 +611,7 @@ static const float_param_t float_parameters[] = }, { { - "GrayValue", N_("Gray Value"), N_("Advanced Ink Adjustment"), + "GrayValue", N_("Gray Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Gray Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -616,7 +619,7 @@ static const float_param_t float_parameters[] = }, { { - "GrayTrans", N_("Gray Transition"), N_("Advanced Ink Adjustment"), + "GrayTrans", N_("Gray Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Gray Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -624,7 +627,7 @@ static const float_param_t float_parameters[] = }, { { - "GrayScale", N_("Gray Density Scale"), N_("Advanced Ink Adjustment"), + "GrayScale", N_("Gray Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Gray Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -632,7 +635,7 @@ static const float_param_t float_parameters[] = }, { { - "DarkGrayValue", N_("Gray Value"), N_("Advanced Ink Adjustment"), + "DarkGrayValue", N_("Gray Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Gray Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -640,7 +643,7 @@ static const float_param_t float_parameters[] = }, { { - "DarkGrayTrans", N_("Gray Transition"), N_("Advanced Ink Adjustment"), + "DarkGrayTrans", N_("Gray Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Gray Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -648,7 +651,7 @@ static const float_param_t float_parameters[] = }, { { - "DarkGrayScale", N_("Gray Density Scale"), N_("Advanced Ink Adjustment"), + "DarkGrayScale", N_("Gray Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Gray Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -656,7 +659,7 @@ static const float_param_t float_parameters[] = }, { { - "LightGrayValue", N_("Light Gray Value"), N_("Advanced Ink Adjustment"), + "LightGrayValue", N_("Light Gray Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Gray Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -664,7 +667,7 @@ static const float_param_t float_parameters[] = }, { { - "LightGrayTrans", N_("Light Gray Transition"), N_("Advanced Ink Adjustment"), + "LightGrayTrans", N_("Light Gray Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Gray Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -672,7 +675,7 @@ static const float_param_t float_parameters[] = }, { { - "LightGrayScale", N_("Light Gray Density Scale"), N_("Advanced Ink Adjustment"), + "LightGrayScale", N_("Light Gray Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Gray Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -680,7 +683,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray3Value", N_("Dark Gray Value"), N_("Advanced Ink Adjustment"), + "Gray3Value", N_("Dark Gray Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Dark Gray Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -688,7 +691,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray3Trans", N_("Dark Gray Transition"), N_("Advanced Ink Adjustment"), + "Gray3Trans", N_("Dark Gray Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Dark Gray Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -696,7 +699,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray3Scale", N_("Dark Gray Density Scale"), N_("Advanced Ink Adjustment"), + "Gray3Scale", N_("Dark Gray Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Dark Gray Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -704,7 +707,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray2Value", N_("Mid Gray Value"), N_("Advanced Ink Adjustment"), + "Gray2Value", N_("Mid Gray Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Medium Gray Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -712,7 +715,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray2Trans", N_("Mid Gray Transition"), N_("Advanced Ink Adjustment"), + "Gray2Trans", N_("Mid Gray Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Medium Gray Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -720,7 +723,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray2Scale", N_("Mid Gray Density Scale"), N_("Advanced Ink Adjustment"), + "Gray2Scale", N_("Mid Gray Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Medium Gray Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -728,7 +731,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray1Value", N_("Light Gray Value"), N_("Advanced Ink Adjustment"), + "Gray1Value", N_("Light Gray Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Gray Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -736,7 +739,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray1Trans", N_("Light Gray Transition"), N_("Advanced Ink Adjustment"), + "Gray1Trans", N_("Light Gray Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Gray Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -744,7 +747,7 @@ static const float_param_t float_parameters[] = }, { { - "Gray1Scale", N_("Light Gray Density Scale"), N_("Advanced Ink Adjustment"), + "Gray1Scale", N_("Light Gray Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Gray Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -752,7 +755,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray5Value", N_("Hextone Gray 5 Value"), N_("Advanced Ink Adjustment"), + "HGray5Value", N_("Hextone Gray 5 Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 5 (Darkest) Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -760,7 +763,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray5Trans", N_("Hextone Gray 5 Transition"), N_("Advanced Ink Adjustment"), + "HGray5Trans", N_("Hextone Gray 5 Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 5 (Darkest) Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -768,7 +771,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray5Scale", N_("Hextone Gray 5 Density Scale"), N_("Advanced Ink Adjustment"), + "HGray5Scale", N_("Hextone Gray 5 Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 5 (Darkest) Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -776,7 +779,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray4Value", N_("Hextone Gray 4 Value"), N_("Advanced Ink Adjustment"), + "HGray4Value", N_("Hextone Gray 4 Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 4 Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -784,7 +787,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray4Trans", N_("Hextone Gray 4 Transition"), N_("Advanced Ink Adjustment"), + "HGray4Trans", N_("Hextone Gray 4 Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 4 Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -792,7 +795,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray4Scale", N_("Hextone Gray 4 Density Scale"), N_("Advanced Ink Adjustment"), + "HGray4Scale", N_("Hextone Gray 4 Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 4 Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -800,7 +803,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray3Value", N_("Hextone Gray 3 Value"), N_("Advanced Ink Adjustment"), + "HGray3Value", N_("Hextone Gray 3 Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 3 Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -808,7 +811,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray3Trans", N_("Hextone Gray 3 Transition"), N_("Advanced Ink Adjustment"), + "HGray3Trans", N_("Hextone Gray 3 Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 3 Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -816,7 +819,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray3Scale", N_("Hextone Gray 3 Density Scale"), N_("Advanced Ink Adjustment"), + "HGray3Scale", N_("Hextone Gray 3 Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 3 Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -824,7 +827,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray2Value", N_("Hextone Gray 2 Value"), N_("Advanced Ink Adjustment"), + "HGray2Value", N_("Hextone Gray 2 Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 2 Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -832,7 +835,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray2Trans", N_("Hextone Gray 2 Transition"), N_("Advanced Ink Adjustment"), + "HGray2Trans", N_("Hextone Gray 2 Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 2 Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -840,7 +843,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray2Scale", N_("Hextone Gray 2 Density Scale"), N_("Advanced Ink Adjustment"), + "HGray2Scale", N_("Hextone Gray 2 Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 2 Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -848,7 +851,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray1Value", N_("Hextone Gray 1 Value"), N_("Advanced Ink Adjustment"), + "HGray1Value", N_("Hextone Gray 1 Value"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 1 (Lightest) Value"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -856,7 +859,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray1Trans", N_("Hextone Gray 1 Transition"), N_("Advanced Ink Adjustment"), + "HGray1Trans", N_("Hextone Gray 1 Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 1 (Lightest) Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -864,7 +867,7 @@ static const float_param_t float_parameters[] = }, { { - "HGray1Scale", N_("Hextone Gray 1 Density Scale"), N_("Advanced Ink Adjustment"), + "HGray1Scale", N_("Hextone Gray 1 Density Scale"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Hextone Gray 1 (Lightest) Density Scale"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -872,7 +875,7 @@ static const float_param_t float_parameters[] = }, { { - "BlackTrans", N_("GCR Transition"), N_("Advanced Output Control"), + "BlackTrans", N_("GCR Transition"), "Color=Yes,Category=Advanced Output Control", N_("Adjust the gray component transition rate"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0 @@ -880,7 +883,7 @@ static const float_param_t float_parameters[] = }, { { - "GCRLower", N_("GCR Lower Bound"), N_("Advanced Output Control"), + "GCRLower", N_("GCR Lower Bound"), "Color=Yes,Category=Advanced Output Control", N_("Lower bound of gray component reduction"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0 @@ -888,7 +891,7 @@ static const float_param_t float_parameters[] = }, { { - "GCRUpper", N_("GCR Upper Bound"), N_("Advanced Output Control"), + "GCRUpper", N_("GCR Upper Bound"), "Color=Yes,Category=Advanced Output Control", N_("Upper bound of gray component reduction"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, 0, 1, 0 @@ -896,7 +899,7 @@ static const float_param_t float_parameters[] = }, { { - "PageDryTime", N_("Drying Time Per Page"), N_("Advanced Printer Functionality"), + "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, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -904,7 +907,7 @@ static const float_param_t float_parameters[] = }, { { - "ScanDryTime", N_("Drying Time Per Scan"), N_("Advanced Printer Functionality"), + "ScanDryTime", N_("Drying Time Per Scan"), "Color=No,Category=Advanced Printer Functionality", N_("Set drying time per scan"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -912,7 +915,7 @@ static const float_param_t float_parameters[] = }, { { - "ScanMinDryTime", N_("Minimum Drying Time Per Scan"), N_("Advanced Printer Functionality"), + "ScanMinDryTime", N_("Minimum Drying Time Per Scan"), "Color=No,Category=Advanced Printer Functionality", N_("Set minimum drying time per scan"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -928,7 +931,7 @@ static const int_param_t int_parameters[] = { { { - "BandEnhancement", N_("Quality Enhancement"), N_("Advanced Printer Functionality"), + "BandEnhancement", N_("Quality Enhancement"), "Color=No,Category=Advanced Printer Functionality", N_("Enhance print quality by additional passes"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED2, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -936,7 +939,7 @@ static const int_param_t int_parameters[] = }, { { - "PaperThickness", N_("Paper Thickness"), N_("Advanced Printer Functionality"), + "PaperThickness", N_("Paper Thickness"), "Color=No,Category=Advanced Printer Functionality", N_("Set printer paper thickness"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -944,7 +947,7 @@ static const int_param_t int_parameters[] = }, { { - "VacuumIntensity", N_("Vacuum Intensity"), N_("Advanced Printer Functionality"), + "VacuumIntensity", N_("Vacuum Intensity"), "Color=No,Category=Advanced Printer Functionality", N_("Set vacuum intensity (printer-specific)"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -952,7 +955,7 @@ static const int_param_t int_parameters[] = }, { { - "FeedSequence", N_("Feed Sequence"), N_("Advanced Printer Functionality"), + "FeedSequence", N_("Feed Sequence"), "Color=No,Category=Advanced Printer Functionality", N_("Set paper feed sequence (printer-specific)"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -960,7 +963,7 @@ static const int_param_t int_parameters[] = }, { { - "PrintMethod", N_("Print Method"), N_("Advanced Printer Functionality"), + "PrintMethod", N_("Print Method"), "Color=No,Category=Advanced Printer Functionality", N_("Set print method (printer-specific)"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -968,7 +971,7 @@ static const int_param_t int_parameters[] = }, { { - "PlatenGap", N_("Platen Gap"), N_("Advanced Printer Functionality"), + "PlatenGap", N_("Platen Gap"), "Color=No,Category=Advanced Printer Functionality", N_("Set platen gap (printer-specific)"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_ADVANCED3, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -976,7 +979,7 @@ static const int_param_t int_parameters[] = }, { { - "FeedAdjustment", N_("Feed Adjustment"), N_("Advanced Printer Functionality"), + "FeedAdjustment", N_("Feed Adjustment"), "Color=No,Category=Advanced Printer Functionality", /* xgettext:no-c-format */ N_("Set paper feed adjustment (0.01% units)"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, @@ -2651,6 +2654,8 @@ escp2_parameters(const stp_vars_t *v, const char *name, description->deflt.str = stp_string_list_param(description->bounds.str, 0)->name; } + else + description->p_type = STP_PARAMETER_TYPE_INVALID; } else if (strcmp(name, "SupportsPacketMode") == 0) { diff --git a/src/main/print-escp2.h b/src/main/print-escp2.h index 4720c20..7280629 100644 --- a/src/main/print-escp2.h +++ b/src/main/print-escp2.h @@ -1,5 +1,5 @@ /* - * "$Id: print-escp2.h,v 1.138 2010/06/20 21:24:10 rlk Exp $" + * "$Id: print-escp2.h,v 1.139 2010/12/19 02:51:37 rlk Exp $" * * Print plug-in EPSON ESC/P2 driver for the GIMP. * @@ -194,6 +194,8 @@ typedef struct short channel_count; short aux_channel_count; inkset_id_t inkset; + const stp_raw_t *init_sequence; + const stp_raw_t *deinit_sequence; ink_channel_t *channels; ink_channel_t *aux_channels; } inkname_t; @@ -210,6 +212,8 @@ typedef struct const char *text; short n_shades; short n_inks; + const stp_raw_t *init_sequence; + const stp_raw_t *deinit_sequence; shade_t *shades; inkname_t *inknames; } inklist_t; @@ -620,5 +624,5 @@ extern void stpi_escp2_terminate_page(stp_vars_t *v); #endif /* GUTENPRINT_INTERNAL_ESCP2_H */ /* - * End of "$Id: print-escp2.h,v 1.138 2010/06/20 21:24:10 rlk Exp $". + * End of "$Id: print-escp2.h,v 1.139 2010/12/19 02:51:37 rlk Exp $". */ diff --git a/src/main/print-lexmark.c b/src/main/print-lexmark.c index 7d8cb0d..b92242e 100644 --- a/src/main/print-lexmark.c +++ b/src/main/print-lexmark.c @@ -1,6 +1,6 @@ /* - * "$Id: print-lexmark.c,v 1.159 2010/08/04 00:33:57 rlk Exp $" + * "$Id: print-lexmark.c,v 1.160 2010/12/05 21:38:14 rlk Exp $" * * Print plug-in Lexmark driver for the GIMP. * @@ -263,43 +263,43 @@ static const int lr_shift_black[10] = { 9, 18, 2*18 }; /* vertical distance betw static const stp_parameter_t the_parameters[] = { { - "PageSize", N_("Page Size"), N_("Basic Printer Setup"), + "PageSize", N_("Page Size"), "Color=No,Category=Basic Printer Setup", N_("Size of the paper being printed to"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "MediaType", N_("Media Type"), N_("Basic Printer Setup"), + "MediaType", N_("Media Type"), "Color=Yes,Category=Basic Printer Setup", N_("Type of media (plain paper, photo paper, etc.)"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InputSlot", N_("Media Source"), N_("Basic Printer Setup"), + "InputSlot", N_("Media Source"), "Color=No,Category=Basic Printer Setup", N_("Source (input slot) of the media"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "Resolution", N_("Resolution"), N_("Basic Printer Setup"), + "Resolution", N_("Resolution"), "Color=Yes,Category=Basic Printer Setup", N_("Resolution and quality of the print"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InkType", N_("Ink Type"), N_("Advanced Printer Setup"), + "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 }, { - "InkChannels", N_("Ink Channels"), N_("Advanced Printer Functionality"), + "InkChannels", N_("Ink Channels"), "Color=Yes,Category=Advanced Printer Functionality", N_("Ink Channels"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "PrintingMode", N_("Printing Mode"), N_("Core Parameter"), + "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, 1, 0 @@ -322,7 +322,7 @@ static const float_param_t float_parameters[] = { { { - "CyanDensity", N_("Cyan Density"), N_("Output Level Adjustment"), + "CyanDensity", N_("Cyan Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the cyan density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 1, 1, 0 @@ -330,7 +330,7 @@ static const float_param_t float_parameters[] = }, { { - "MagentaDensity", N_("Magenta Density"), N_("Output Level Adjustment"), + "MagentaDensity", N_("Magenta Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the magenta density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 2, 1, 0 @@ -338,7 +338,7 @@ static const float_param_t float_parameters[] = }, { { - "YellowDensity", N_("Yellow Density"), N_("Output Level Adjustment"), + "YellowDensity", N_("Yellow Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the yellow density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 3, 1, 0 @@ -346,7 +346,7 @@ static const float_param_t float_parameters[] = }, { { - "BlackDensity", N_("Black Density"), N_("Output Level Adjustment"), + "BlackDensity", N_("Black Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the black density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 0, 1, 0 @@ -354,7 +354,7 @@ static const float_param_t float_parameters[] = }, { { - "LightCyanTrans", N_("Light Cyan Transition"), N_("Advanced Ink Adjustment"), + "LightCyanTrans", N_("Light Cyan Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Cyan Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -362,7 +362,7 @@ static const float_param_t float_parameters[] = }, { { - "LightMagentaTrans", N_("Light Magenta Transition"), N_("Advanced Ink Adjustment"), + "LightMagentaTrans", N_("Light Magenta Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Magenta Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 diff --git a/src/main/print-olympus.c b/src/main/print-olympus.c index 3df470e..6b6b747 100644 --- a/src/main/print-olympus.c +++ b/src/main/print-olympus.c @@ -1,5 +1,5 @@ /* - * "$Id: print-olympus.c,v 1.96 2010/06/26 20:02:02 rlk Exp $" + * "$Id: print-olympus.c,v 1.97 2010/12/05 21:38:15 rlk Exp $" * * Print plug-in DyeSub driver (formerly Olympus driver) for the GIMP. * @@ -1860,53 +1860,53 @@ static const dyesub_cap_t dyesub_model_capabilities[] = static const stp_parameter_t the_parameters[] = { { - "PageSize", N_("Page Size"), N_("Basic Printer Setup"), + "PageSize", N_("Page Size"), "Color=No,Category=Basic Printer Setup", N_("Size of the paper being printed to"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "MediaType", N_("Media Type"), N_("Basic Printer Setup"), + "MediaType", N_("Media Type"), "Color=Yes,Category=Basic Printer Setup", N_("Type of media (plain paper, photo paper, etc.)"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InputSlot", N_("Media Source"), N_("Basic Printer Setup"), + "InputSlot", N_("Media Source"), "Color=No,Category=Basic Printer Setup", N_("Source (input slot) of the media"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "Resolution", N_("Resolution"), N_("Basic Printer Setup"), + "Resolution", N_("Resolution"), "Color=Yes,Category=Basic Printer Setup", N_("Resolution and quality of the print"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InkType", N_("Ink Type"), N_("Advanced Printer Setup"), + "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 }, { - /* TRANSLATORS: Some dye sublimation printers are able achieve */ + /* TRANSLATORS: Some dye sublimation printers are able to achieve */ /* better durability of output by covering it with transparent */ /* laminate surface. This surface can be of different patterns: */ /* common are matte, glossy or texture. */ - "Laminate", N_("Laminate Pattern"), N_("Advanced Printer Setup"), + "Laminate", N_("Laminate Pattern"), "Color=Yes,Category=Advanced Printer Setup", N_("Laminate Pattern"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 0, STP_CHANNEL_NONE, 1, 0 }, { - "Borderless", N_("Borderless"), N_("Advanced Printer Setup"), + "Borderless", N_("Borderless"), "Color=No,Category=Advanced Printer Setup", N_("Print without borders"), STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 0, STP_CHANNEL_NONE, 1, 0 }, { - "PrintingMode", N_("Printing Mode"), N_("Core Parameter"), + "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, 1, 0 diff --git a/src/main/print-pcl.c b/src/main/print-pcl.c index 357a86f..7c028c2 100644 --- a/src/main/print-pcl.c +++ b/src/main/print-pcl.c @@ -1,5 +1,5 @@ /* - * "$Id: print-pcl.c,v 1.159 2010/08/07 23:51:20 rlk Exp $" + * "$Id: print-pcl.c,v 1.160 2010/12/05 21:38:15 rlk Exp $" * * Print plug-in HP PCL driver for the GIMP. * @@ -1343,55 +1343,55 @@ static const char standard_hue_adjustment[] = static const stp_parameter_t the_parameters[] = { { - "PageSize", N_("Page Size"), N_("Basic Printer Setup"), + "PageSize", N_("Page Size"), "Color=No,Category=Basic Printer Setup", N_("Size of the paper being printed to"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "MediaType", N_("Media Type"), N_("Basic Printer Setup"), + "MediaType", N_("Media Type"), "Color=Yes,Category=Basic Printer Setup", N_("Type of media (plain paper, photo paper, etc.)"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InputSlot", N_("Media Source"), N_("Basic Printer Setup"), + "InputSlot", N_("Media Source"), "Color=No,Category=Basic Printer Setup", N_("Source (input slot) of the media"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "Quality", N_("Print Quality"), N_("Basic Output Adjustment"), + "Quality", N_("Print Quality"), "Color=Yes,Category=Basic Output Adjustment", N_("Print Quality"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 0, 0 }, { - "Resolution", N_("Resolution"), N_("Basic Printer Setup"), + "Resolution", N_("Resolution"), "Color=Yes,Category=Basic Printer Setup", N_("Resolution of the print"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "InkType", N_("Ink Type"), N_("Advanced Printer Setup"), + "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 }, { - "InkChannels", N_("Ink Channels"), N_("Advanced Printer Functionality"), + "InkChannels", N_("Ink Channels"), "Color=Yes,Category=Advanced Printer Functionality", N_("Ink Channels"), STP_PARAMETER_TYPE_INT, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "PrintingMode", N_("Printing Mode"), N_("Core Parameter"), + "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, 1, 0 }, { - "Duplex", N_("Double-Sided Printing"), N_("Basic Printer Setup"), + "Duplex", N_("Double-Sided Printing"), "Color=No,Category=Basic Printer Setup", N_("Duplex/Tumble Setting"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 @@ -1414,7 +1414,7 @@ static const float_param_t float_parameters[] = { { { - "CyanDensity", N_("Cyan Density"), N_("Output Level Adjustment"), + "CyanDensity", N_("Cyan Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the cyan density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 1, 1, 0 @@ -1422,7 +1422,7 @@ static const float_param_t float_parameters[] = }, { { - "MagentaDensity", N_("Magenta Density"), N_("Output Level Adjustment"), + "MagentaDensity", N_("Magenta Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the magenta density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 2, 1, 0 @@ -1430,7 +1430,7 @@ static const float_param_t float_parameters[] = }, { { - "YellowDensity", N_("Yellow Density"), N_("Output Level Adjustment"), + "YellowDensity", N_("Yellow Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the yellow density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 3, 1, 0 @@ -1438,7 +1438,7 @@ static const float_param_t float_parameters[] = }, { { - "BlackDensity", N_("Black Density"), N_("Output Level Adjustment"), + "BlackDensity", N_("Black Density"), "Color=Yes,Category=Output Level Adjustment", N_("Adjust the black density"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED, 0, 1, 0, 1, 0 @@ -1446,7 +1446,7 @@ static const float_param_t float_parameters[] = }, { { - "LightCyanTrans", N_("Light Cyan Transition"), N_("Advanced Ink Adjustment"), + "LightCyanTrans", N_("Light Cyan Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Cyan Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 @@ -1454,7 +1454,7 @@ static const float_param_t float_parameters[] = }, { { - "LightMagentaTrans", N_("Light Magenta Transition"), N_("Advanced Ink Adjustment"), + "LightMagentaTrans", N_("Light Magenta Transition"), "Color=Yes,Category=Advanced Ink Adjustment", N_("Light Magenta Transition"), STP_PARAMETER_TYPE_DOUBLE, STP_PARAMETER_CLASS_OUTPUT, STP_PARAMETER_LEVEL_ADVANCED4, 0, 1, STP_CHANNEL_NONE, 1, 0 diff --git a/src/main/print-ps.c b/src/main/print-ps.c index 228d241..298a976 100644 --- a/src/main/print-ps.c +++ b/src/main/print-ps.c @@ -1,5 +1,5 @@ /* - * "$Id: print-ps.c,v 1.102 2009/09/03 00:33:52 rlk Exp $" + * "$Id: print-ps.c,v 1.104 2011/03/04 13:05:08 rlk Exp $" * * Print plug-in Adobe PostScript driver for the GIMP. * @@ -65,25 +65,25 @@ static void ps_ascii85(const stp_vars_t *, unsigned short *, int, int); static const stp_parameter_t the_parameters[] = { { - "PPDFile", N_("PPDFile"), N_("Basic Printer Setup"), + "PPDFile", N_("PPDFile"), "Color=Yes,Category=Basic Printer Setup", N_("PPD File"), STP_PARAMETER_TYPE_FILE, STP_PARAMETER_CLASS_FEATURE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "PageSize", N_("Page Size"), N_("Basic Printer Setup"), + "PageSize", N_("Page Size"), "Color=No,Category=Basic Printer Setup", N_("Size of the paper being printed to"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0 }, { - "ModelName", N_("Model Name"), N_("Basic Printer Setup"), + "ModelName", N_("Model Name"), "Color=Yes,Category=Basic Printer Setup", N_("PPD File Model Name"), STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE, STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 0 }, { - "PrintingMode", N_("Printing Mode"), N_("Core Parameter"), + "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, 1, 0 @@ -1201,7 +1201,6 @@ ps_hex(const stp_vars_t *v, /* I - File to print to */ int col; /* Current column */ static const char *hex = "0123456789ABCDEF"; - col = 0; while (length > 0) { @@ -1245,6 +1244,9 @@ ps_ascii85(const stp_vars_t *v, /* I - File to print to */ unsigned char c[5]; /* ASCII85 encoded chars */ static int column = 0; /* Current column */ +#define OUTBUF_SIZE 4096 + unsigned char outbuffer[OUTBUF_SIZE+10]; + int outp=0; while (length > 3) { @@ -1256,35 +1258,44 @@ ps_ascii85(const stp_vars_t *v, /* I - File to print to */ if (b == 0) { - stp_putc('z', v); + outbuffer[outp++]='z'; column ++; } else { - c[4] = (b % 85) + '!'; + outbuffer[outp+4] = (b % 85) + '!'; b /= 85; - c[3] = (b % 85) + '!'; + outbuffer[outp+3] = (b % 85) + '!'; b /= 85; - c[2] = (b % 85) + '!'; + outbuffer[outp+2] = (b % 85) + '!'; b /= 85; - c[1] = (b % 85) + '!'; + outbuffer[outp+1] = (b % 85) + '!'; b /= 85; - c[0] = b + '!'; + outbuffer[outp] = b + '!'; - stp_zfwrite((const char *)c, 5, 1, v); + outp+=5; column += 5; } if (column > 72) { - stp_putc('\n', v); + outbuffer[outp++]='\n'; column = 0; } + if(outp>=OUTBUF_SIZE) + { + stp_zfwrite((const char *)outbuffer, outp, 1, v); + outp=0; + } + data += 4; length -= 4; } + if(outp) + stp_zfwrite((const char *)outbuffer, outp, 1, v); + if (last_line) { if (length > 0) diff --git a/src/main/print-raw.c b/src/main/print-raw.c index 5290390..856dd07 100644 --- a/src/main/print-raw.c +++ b/src/main/print-raw.c @@ -1,5 +1,5 @@ /* - * "$Id: print-raw.c,v 1.41 2008/07/18 10:57:24 rlk Exp $" + * "$Id: print-raw.c,v 1.42 2010/12/05 21:38:15 rlk Exp $" * * Print plug-in RAW driver for the GIMP. * @@ -77,13 +77,13 @@ static const int ink_count = sizeof(inks) / sizeof(ink_t); static const stp_parameter_t the_parameters[] = { { - "InkType", N_("Ink Type"), N_("Advanced Printer Setup"), + "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 }, { - "PrintingMode", N_("Printing Mode"), N_("Core Parameter"), + "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, 1, 0 diff --git a/src/main/print-vars.c b/src/main/print-vars.c index 5214414..218474f 100644 --- a/src/main/print-vars.c +++ b/src/main/print-vars.c @@ -1,5 +1,5 @@ /* - * "$Id: print-vars.c,v 1.90 2010/08/04 00:33:57 rlk Exp $" + * "$Id: print-vars.c,v 1.91 2010/12/05 21:38:15 rlk Exp $" * * Print plug-in driver utility functions for the GIMP. * @@ -84,6 +84,31 @@ struct stp_vars /* Plug-in variables */ static int standard_vars_initialized = 0; + +void +stp_parameter_description_destroy(stp_parameter_t *desc) +{ + switch (desc->p_type) + { + case STP_PARAMETER_TYPE_CURVE: + if (desc->bounds.curve) + stp_curve_destroy(desc->bounds.curve); + desc->bounds.curve = NULL; + break; + case STP_PARAMETER_TYPE_ARRAY: + if (desc->bounds.array) + stp_array_destroy(desc->bounds.array); + desc->bounds.array = NULL; + break; + case STP_PARAMETER_TYPE_STRING_LIST: + if (desc->bounds.str) + stp_string_list_destroy(desc->bounds.str); + desc->bounds.str = NULL; + break; + default: + break; + } +} static stp_vars_t default_vars; #define CHECK_VARS(v) STPI_ASSERT(v, NULL) @@ -1602,29 +1627,103 @@ stp_describe_parameter(const stp_vars_t *v, const char *name, stp_deprintf(STP_DBG_VARS, "Describing invalid parameter %s\n", name); } -void -stp_parameter_description_destroy(stp_parameter_t *desc) +stp_string_list_t * +stp_parameter_get_categories(const stp_vars_t *v, const stp_parameter_t *desc) { - switch (desc->p_type) + const char *dptr; + stp_string_list_t *answer; + int count = 0; + if (!v || !desc || !(desc->category)) + return NULL; + answer = stp_string_list_create(); + dptr = desc->category; + while (dptr) { - case STP_PARAMETER_TYPE_CURVE: - if (desc->bounds.curve) - stp_curve_destroy(desc->bounds.curve); - desc->bounds.curve = NULL; - break; - case STP_PARAMETER_TYPE_ARRAY: - if (desc->bounds.array) - stp_array_destroy(desc->bounds.array); - desc->bounds.array = NULL; - break; - case STP_PARAMETER_TYPE_STRING_LIST: - if (desc->bounds.str) - stp_string_list_destroy(desc->bounds.str); - desc->bounds.str = NULL; - break; - default: - break; + const char *xptr = strchr(dptr, '='); + if (xptr) + { + char *name = stp_strndup(dptr, xptr - dptr); + char *text; + dptr = xptr + 1; + xptr = strchr(dptr, ','); + if (xptr) + { + text = stp_strndup(dptr, xptr - dptr); + dptr = xptr + 1; + } + else + { + text = stp_strdup(dptr); + dptr = NULL; + } + stp_string_list_add_string(answer, name, text); + stp_free(name); + stp_free(text); + count++; + } + else + dptr = NULL; } + if (count == 0) + { + stp_string_list_destroy(answer); + return NULL; + } + else + return answer; +} + +char * +stp_parameter_get_category(const stp_vars_t *v, const stp_parameter_t *desc, + const char *category) +{ + const char *dptr; + char *cptr; + int len; + if (!v || !desc || !(desc->category) || !category) + return NULL; + dptr = desc->category; + stp_asprintf(&cptr, "%s=", category); + len = stp_strlen(cptr); + while (dptr) + { + if (strncmp(dptr, cptr, len) == 0) + { + const char *xptr; + char *answer; + dptr += len; + xptr = strchr(dptr, ','); + if (xptr) + answer = stp_strndup(dptr, xptr - dptr); + else + answer = stp_strdup(dptr); + stp_free(cptr); + return answer; + } + dptr = strchr(dptr, ','); + if (dptr) + dptr++; + } + return NULL; +} + +int +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) + return -1; + cptr = stp_parameter_get_category(v, desc, category); + if (cptr == NULL) + return 0; + if (value == NULL || strcmp(value, cptr) == 0) + answer = 1; + stp_free(cptr); + return answer; } const stp_parameter_t * diff --git a/src/main/sequence.c b/src/main/sequence.c index 403d89f..b6a8d2e 100644 --- a/src/main/sequence.c +++ b/src/main/sequence.c @@ -1,5 +1,5 @@ /* - * "$Id: sequence.c,v 1.28 2010/08/04 00:33:57 rlk Exp $" + * "$Id: sequence.c,v 1.29 2011/02/17 02:15:18 rlk Exp $" * * Sequence data type. This type is designed to be derived from by * the curve and dither matrix types. @@ -491,6 +491,8 @@ stp_xmltree_create_from_sequence(const stp_sequence_t *seq) /* The sequence */ } +#define isfinite_null(x) (1) + /* "Overloaded" functions */ #define DEFINE_DATA_SETTER(t, name, checkfinite) \ @@ -505,7 +507,7 @@ stp_sequence_set_##name##_data(stp_sequence_t *sequence, \ \ /* Validate the data before we commit to it. */ \ for (i = 0; i < count; i++) \ - if (((checkfinite) && ! isfinite(data[i])) || \ + if ((! checkfinite(data[i])) || \ data[i] < sequence->blo || \ data[i] > sequence->bhi) \ return 0; \ @@ -515,13 +517,13 @@ stp_sequence_set_##name##_data(stp_sequence_t *sequence, \ return 1; \ } -DEFINE_DATA_SETTER(float, float, 1) -DEFINE_DATA_SETTER(long, long, 0) -DEFINE_DATA_SETTER(unsigned long, ulong, 0) -DEFINE_DATA_SETTER(int, int, 0) -DEFINE_DATA_SETTER(unsigned int, uint, 0) -DEFINE_DATA_SETTER(short, short, 0) -DEFINE_DATA_SETTER(unsigned short, ushort, 0) +DEFINE_DATA_SETTER(float, float, isfinite) +DEFINE_DATA_SETTER(long, long, isfinite_null) +DEFINE_DATA_SETTER(unsigned long, ulong, isfinite_null) +DEFINE_DATA_SETTER(int, int, isfinite_null) +DEFINE_DATA_SETTER(unsigned int, uint, isfinite_null) +DEFINE_DATA_SETTER(short, short, isfinite_null) +DEFINE_DATA_SETTER(unsigned short, ushort, isfinite_null) #define DEFINE_DATA_ACCESSOR(t, lb, ub, name) \ const t * \ diff --git a/src/main/xmlppd.c b/src/main/xmlppd.c index c633694..60f4365 100644 --- a/src/main/xmlppd.c +++ b/src/main/xmlppd.c @@ -489,6 +489,15 @@ stpi_xmlppd_read_ppd_file(const char *filename) /* I - PPD file */ stp_string_list_add_string(pdlist, keyword, value); } } + if (option) + { + char buf[64]; + (void) sprintf(buf, "%d", num_choices); + stp_mxmlElementSetAttr(option, "num_choices", buf); + option = NULL; + stp_option_data_name[0] = '\0'; + } + for (i = 0; i < stp_string_list_count(ialist); i++) { stp_param_string_t *pstr = stp_string_list_param(ialist, i); |