summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2015-10-19 10:40:17 +0200
committerDidier Raboud <odyx@debian.org>2015-10-19 10:40:17 +0200
commit82a5e2a21f1cc4ea142514a1a045a63158f10256 (patch)
tree43bb3f0d058d6f632c273f1073708f2017b6d1bb /src
parent92976f71a4aa7f84cd8aadf013d2b03873dead7c (diff)
Imported Upstream version 5.2.11~pre2
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in2
-rw-r--r--src/cups/Makefile.am4
-rw-r--r--src/cups/Makefile.in40
-rw-r--r--src/cups/backend_common.c433
-rw-r--r--src/cups/backend_common.h69
-rw-r--r--src/cups/blacklist3
-rw-r--r--src/cups/citizencw01_print.c65
-rw-r--r--src/cups/dnpds40_print.c541
-rw-r--r--src/cups/genppd.c69
-rw-r--r--src/cups/kodak1400_print.c30
-rw-r--r--src/cups/kodak605_print.c548
-rw-r--r--src/cups/kodak6800_print.c1186
-rw-r--r--src/cups/mitsu70x_print.c38
-rw-r--r--src/cups/mitsu9550_print.c88
-rw-r--r--src/cups/selphy_print.c92
-rw-r--r--src/cups/shinko_s1245_print.c1621
-rw-r--r--src/cups/shinko_s2145_print.c344
-rw-r--r--src/cups/shinko_s6245_print.c1863
-rw-r--r--src/cups/sony_updr150_print.c36
-rwxr-xr-x[-rw-r--r--]src/cups/test-ppds2
-rwxr-xr-xsrc/cups/test-rastertogutenprint.in31
-rw-r--r--src/escputil/Makefile.in2
-rw-r--r--src/escputil/d4lib.c2
-rw-r--r--src/foomatic/Makefile.in2
-rw-r--r--src/foomatic/foomatic-generator.in3
-rw-r--r--src/foomatic/paper_sizes.c8
-rw-r--r--src/foomatic/printer_margins.c14
-rw-r--r--src/foomatic/printer_options.c127
-rw-r--r--src/ghost/Makefile.in2
-rw-r--r--src/gimp2/Makefile.in2
-rw-r--r--src/gutenprintui2/Makefile.in2
-rw-r--r--src/gutenprintui2/panel.c4
-rw-r--r--src/main/Makefile.in2
-rw-r--r--src/main/canon-inks.h278
-rw-r--r--src/main/canon-media-mode.h1812
-rw-r--r--src/main/canon-media.h3244
-rw-r--r--src/main/canon-modes.h718
-rw-r--r--src/main/canon-printers.h105
-rw-r--r--src/main/print-canon.c319
-rw-r--r--src/main/print-escp2.c15
-rw-r--r--src/main/print-lexmark.c15
-rw-r--r--src/main/print-olympus.c1194
-rw-r--r--src/main/print-papers.c4
-rw-r--r--src/main/print-pcl.c17
-rw-r--r--src/main/print-raw.c23
-rw-r--r--src/main/print-util.c10
-rw-r--r--src/main/printers.c2
-rw-r--r--src/testpattern/Makefile.am6
-rw-r--r--src/testpattern/Makefile.in17
-rwxr-xr-xsrc/testpattern/compare-checksums.in109
-rw-r--r--src/testpattern/printer_options.c5
-rw-r--r--src/testpattern/run-testpattern-2.in13
-rw-r--r--src/xml/Makefile.in2
-rw-r--r--src/xml/escp2/Makefile.in2
-rw-r--r--src/xml/escp2/inks/Makefile.in2
-rw-r--r--src/xml/escp2/inputslots/Makefile.in2
-rw-r--r--src/xml/escp2/media/Makefile.in2
-rw-r--r--src/xml/escp2/mediasizes/Makefile.in2
-rw-r--r--src/xml/escp2/model/Makefile.in2
-rw-r--r--src/xml/escp2/model/model_47.xml2
-rw-r--r--src/xml/escp2/qualitypresets/Makefile.in2
-rw-r--r--src/xml/escp2/weaves/Makefile.in2
-rw-r--r--src/xml/papers.xml140
-rw-r--r--src/xml/printers.xml215
64 files changed, 10357 insertions, 5199 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index f1fe497..a40f25e 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -221,6 +221,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
index 7bd6cd9..d4789ad 100644
--- a/src/cups/Makefile.am
+++ b/src/cups/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.150 2015/01/10 14:27:55 speachy Exp $
+## $Id: Makefile.am,v 1.151 2015/10/05 13:55:40 speachy Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -115,7 +115,7 @@ commandtoepson_SOURCES = commandtoepson.c
commandtoepson_LDADD = $(CUPS_LIBS)
if BUILD_LIBUSB_BACKENDS
-backend_gutenprint_SOURCES = selphy_print.c kodak1400_print.c kodak6800_print.c kodak605_print.c shinko_s2145_print.c sony_updr150_print.c dnpds40_print.c mitsu70x_print.c citizencw01_print.c mitsu9550_print.c backend_common.c backend_common.h
+backend_gutenprint_SOURCES = selphy_print.c kodak1400_print.c kodak6800_print.c kodak605_print.c shinko_s2145_print.c sony_updr150_print.c dnpds40_print.c mitsu70x_print.c citizencw01_print.c mitsu9550_print.c backend_common.c backend_common.h shinko_s1245_print.c shinko_s6245_print.c
backend_gutenprint_LDADD = $(LIBUSB_LIBS)
backend_gutenprint_CPPFLAGS = $(LIBUSB_CFLAGS) -DURI_PREFIX=\"gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb\" -DLIBUSB_PRE_1_0_10
diff --git a/src/cups/Makefile.in b/src/cups/Makefile.in
index c5b156b..2074e88 100644
--- a/src/cups/Makefile.in
+++ b/src/cups/Makefile.in
@@ -129,7 +129,7 @@ am__backend_gutenprint_SOURCES_DIST = selphy_print.c kodak1400_print.c \
kodak6800_print.c kodak605_print.c shinko_s2145_print.c \
sony_updr150_print.c dnpds40_print.c mitsu70x_print.c \
citizencw01_print.c mitsu9550_print.c backend_common.c \
- backend_common.h
+ backend_common.h shinko_s1245_print.c shinko_s6245_print.c
@BUILD_LIBUSB_BACKENDS_TRUE@am_backend_gutenprint_OBJECTS = backend_gutenprint-selphy_print.$(OBJEXT) \
@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-kodak1400_print.$(OBJEXT) \
@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-kodak6800_print.$(OBJEXT) \
@@ -140,7 +140,9 @@ am__backend_gutenprint_SOURCES_DIST = selphy_print.c kodak1400_print.c \
@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-mitsu70x_print.$(OBJEXT) \
@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-citizencw01_print.$(OBJEXT) \
@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-mitsu9550_print.$(OBJEXT) \
-@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-backend_common.$(OBJEXT)
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-backend_common.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-shinko_s1245_print.$(OBJEXT) \
+@BUILD_LIBUSB_BACKENDS_TRUE@ backend_gutenprint-shinko_s6245_print.$(OBJEXT)
backend_gutenprint_OBJECTS = $(am_backend_gutenprint_OBJECTS)
am__DEPENDENCIES_1 =
@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_DEPENDENCIES = \
@@ -508,6 +510,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
@@ -719,7 +723,7 @@ commandtocanon_SOURCES = commandtocanon.c
commandtocanon_LDADD = $(CUPS_LIBS)
commandtoepson_SOURCES = commandtoepson.c
commandtoepson_LDADD = $(CUPS_LIBS)
-@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_SOURCES = selphy_print.c kodak1400_print.c kodak6800_print.c kodak605_print.c shinko_s2145_print.c sony_updr150_print.c dnpds40_print.c mitsu70x_print.c citizencw01_print.c mitsu9550_print.c backend_common.c backend_common.h
+@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_SOURCES = selphy_print.c kodak1400_print.c kodak6800_print.c kodak605_print.c shinko_s2145_print.c sony_updr150_print.c dnpds40_print.c mitsu70x_print.c citizencw01_print.c mitsu9550_print.c backend_common.c backend_common.h shinko_s1245_print.c shinko_s6245_print.c
@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_LDADD = $(LIBUSB_LIBS)
@BUILD_LIBUSB_BACKENDS_TRUE@backend_gutenprint_CPPFLAGS = $(LIBUSB_CFLAGS) -DURI_PREFIX=\"gutenprint$(GUTENPRINT_MAJOR_VERSION)$(GUTENPRINT_MINOR_VERSION)+usb\" -DLIBUSB_PRE_1_0_10
cups_genppd_@GUTENPRINT_RELEASE_VERSION@_SOURCES = genppd.c i18n.c i18n.h
@@ -1117,7 +1121,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-mitsu70x_print.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-mitsu9550_print.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-selphy_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-shinko_s1245_print.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-shinko_s2145_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-shinko_s6245_print.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backend_gutenprint-sony_updr150_print.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commandtocanon.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commandtoepson.Po@am__quote@
@@ -1304,6 +1310,34 @@ backend_gutenprint-backend_common.obj: backend_common.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-backend_common.obj `if test -f 'backend_common.c'; then $(CYGPATH_W) 'backend_common.c'; else $(CYGPATH_W) '$(srcdir)/backend_common.c'; fi`
+backend_gutenprint-shinko_s1245_print.o: shinko_s1245_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-shinko_s1245_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-shinko_s1245_print.Tpo -c -o backend_gutenprint-shinko_s1245_print.o `test -f 'shinko_s1245_print.c' || echo '$(srcdir)/'`shinko_s1245_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-shinko_s1245_print.Tpo $(DEPDIR)/backend_gutenprint-shinko_s1245_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shinko_s1245_print.c' object='backend_gutenprint-shinko_s1245_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-shinko_s1245_print.o `test -f 'shinko_s1245_print.c' || echo '$(srcdir)/'`shinko_s1245_print.c
+
+backend_gutenprint-shinko_s1245_print.obj: shinko_s1245_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-shinko_s1245_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-shinko_s1245_print.Tpo -c -o backend_gutenprint-shinko_s1245_print.obj `if test -f 'shinko_s1245_print.c'; then $(CYGPATH_W) 'shinko_s1245_print.c'; else $(CYGPATH_W) '$(srcdir)/shinko_s1245_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-shinko_s1245_print.Tpo $(DEPDIR)/backend_gutenprint-shinko_s1245_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shinko_s1245_print.c' object='backend_gutenprint-shinko_s1245_print.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-shinko_s1245_print.obj `if test -f 'shinko_s1245_print.c'; then $(CYGPATH_W) 'shinko_s1245_print.c'; else $(CYGPATH_W) '$(srcdir)/shinko_s1245_print.c'; fi`
+
+backend_gutenprint-shinko_s6245_print.o: shinko_s6245_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-shinko_s6245_print.o -MD -MP -MF $(DEPDIR)/backend_gutenprint-shinko_s6245_print.Tpo -c -o backend_gutenprint-shinko_s6245_print.o `test -f 'shinko_s6245_print.c' || echo '$(srcdir)/'`shinko_s6245_print.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-shinko_s6245_print.Tpo $(DEPDIR)/backend_gutenprint-shinko_s6245_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shinko_s6245_print.c' object='backend_gutenprint-shinko_s6245_print.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-shinko_s6245_print.o `test -f 'shinko_s6245_print.c' || echo '$(srcdir)/'`shinko_s6245_print.c
+
+backend_gutenprint-shinko_s6245_print.obj: shinko_s6245_print.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backend_gutenprint-shinko_s6245_print.obj -MD -MP -MF $(DEPDIR)/backend_gutenprint-shinko_s6245_print.Tpo -c -o backend_gutenprint-shinko_s6245_print.obj `if test -f 'shinko_s6245_print.c'; then $(CYGPATH_W) 'shinko_s6245_print.c'; else $(CYGPATH_W) '$(srcdir)/shinko_s6245_print.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/backend_gutenprint-shinko_s6245_print.Tpo $(DEPDIR)/backend_gutenprint-shinko_s6245_print.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shinko_s6245_print.c' object='backend_gutenprint-shinko_s6245_print.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(backend_gutenprint_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backend_gutenprint-shinko_s6245_print.obj `if test -f 'shinko_s6245_print.c'; then $(CYGPATH_W) 'shinko_s6245_print.c'; else $(CYGPATH_W) '$(srcdir)/shinko_s6245_print.c'; fi`
+
cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o: genppd.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cups_genppd_@GUTENPRINT_RELEASE_VERSION@_CFLAGS) $(CFLAGS) -MT cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o -MD -MP -MF $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo -c -o cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.o `test -f 'genppd.c' || echo '$(srcdir)/'`genppd.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Tpo $(DEPDIR)/cups_genppd_@GUTENPRINT_RELEASE_VERSION@-genppd.Po
diff --git a/src/cups/backend_common.c b/src/cups/backend_common.c
index 0a2aaba..02aa923 100644
--- a/src/cups/backend_common.c
+++ b/src/cups/backend_common.c
@@ -27,19 +27,41 @@
#include "backend_common.h"
-#define BACKEND_VERSION "0.54G"
+#define BACKEND_VERSION "0.62G"
#ifndef URI_PREFIX
#error "Must Define URI_PREFIX"
#endif
-/* Global variables */
+#define NUM_CLAIM_ATTEMPTS 10
+
+/* Global Variables */
int dyesub_debug = 0;
+int terminate = 0;
+int fast_return = 0;
int extra_vid = -1;
int extra_pid = -1;
int extra_type = -1;
+int copies = 1;
char *use_serno = NULL;
+int current_page = 0;
/* Support Functions */
+static int backend_claim_interface(struct libusb_device_handle *dev, int iface)
+{
+ int attempts = NUM_CLAIM_ATTEMPTS;
+ int ret;
+ do {
+ ret = libusb_claim_interface(dev, iface);
+ if (!ret)
+ break;
+ sleep(1);
+ } while (--attempts > 0);
+
+ if (ret)
+ ERROR("Printer open failure (Could not claim printer interface after %d attempts) (%d)\n", NUM_CLAIM_ATTEMPTS, ret);
+
+ return ret;
+}
#define ID_BUF_SIZE 2048
static char *get_device_id(struct libusb_device_handle *dev)
@@ -56,7 +78,8 @@ static char *get_device_id(struct libusb_device_handle *dev)
if (libusb_kernel_driver_active(dev, iface))
libusb_detach_kernel_driver(dev, iface);
- libusb_claim_interface(dev, iface);
+ if (backend_claim_interface(dev, iface))
+ return NULL;
if (libusb_control_transfer(dev,
LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_ENDPOINT_IN |
@@ -97,7 +120,6 @@ done:
}
/* Used with the IEEE1284 deviceid string parsing */
-
struct deviceid_dict {
char *key;
char *val;
@@ -112,6 +134,9 @@ static int parse1284_data(const char *device_id, struct deviceid_dict* dict)
char val[256];
int num = 0;
+ if (!device_id)
+ return 0;
+
//[whitespace]key[whitespace]:[whitespace]value[whitespace];
while (*device_id && num < MAX_DICT) {
/* Skip leading spaces */
@@ -165,7 +190,6 @@ static char *dict_find(const char *key, int dlen, struct deviceid_dict* dict)
}
/* I/O functions */
-
int read_data(struct libusb_device_handle *dev, uint8_t endp,
uint8_t *buf, int buflen, int *readlen)
{
@@ -254,8 +278,6 @@ int send_data(struct libusb_device_handle *dev, uint8_t endp,
}
/* More stuff */
-int terminate = 0;
-
static void sigterm_handler(int signum) {
UNUSED(signum);
@@ -339,7 +361,7 @@ static char *url_decode(char *str) {
static int print_scan_output(struct libusb_device *device,
struct libusb_device_descriptor *desc,
char *prefix, char *manuf2,
- int found, int match,
+ int found,
int scan_only, char *match_serno,
struct dyesub_backend *backend)
{
@@ -411,7 +433,11 @@ static int print_scan_output(struct libusb_device *device,
descr = malloc(256);
if (!descr) {
ERROR("Memory allocation failure (%d bytes)\n", 256);
- return found;
+ if (manuf3)
+ free(manuf3);
+ if (product2)
+ free(product2);
+ return -1;
}
sprintf(descr, "%s %s", manuf3, product2);
@@ -434,17 +460,16 @@ static int print_scan_output(struct libusb_device *device,
serial = url_encode(buf);
} else if (backend->query_serno) { /* Get from backend hook */
int iface = 0;
+
struct libusb_config_descriptor *config;
if (libusb_kernel_driver_active(dev, iface))
libusb_detach_kernel_driver(dev, iface);
- /* If we fail to claim the printer, it's already in use
- so we should just skip over it... */
- buf[0] = 0;
- if (!libusb_claim_interface(dev, iface)) {
+ /* Try to claim the printer, and handle transient failures */
+ if (!backend_claim_interface(dev, iface)) {
int i;
- uint8_t endp_up, endp_down;
+ uint8_t endp_up = 0, endp_down = 0;
libusb_get_active_config_descriptor(device, &config);
for (i = 0 ; i < config->interface[0].altsetting[0].bNumEndpoints ; i++) {
if ((config->interface[0].altsetting[0].endpoint[i].bmAttributes & 3) == LIBUSB_TRANSFER_TYPE_BULK) {
@@ -455,6 +480,7 @@ static int print_scan_output(struct libusb_device *device,
}
}
+ buf[0] = 0;
/* Ignore result since a failure isn't critical here */
backend->query_serno(dev, endp_up, endp_down, buf, STR_LEN_MAX);
libusb_release_interface(dev, iface);
@@ -471,8 +497,7 @@ static int print_scan_output(struct libusb_device *device,
}
if (dyesub_debug)
- DEBUG("%sVID: %04X PID: %04X Manuf: '%s' Product: '%s' Serial: '%s'\n",
- match ? "MATCH: " : "",
+ DEBUG("VID: %04X PID: %04X Manuf: '%s' Product: '%s' Serial: '%s'\n",
desc->idVendor, desc->idProduct, manuf, product, serial);
if (scan_only) {
@@ -518,12 +543,29 @@ abort:
return found;
}
+extern struct dyesub_backend updr150_backend;
+extern struct dyesub_backend kodak6800_backend;
+extern struct dyesub_backend kodak605_backend;
+extern struct dyesub_backend kodak1400_backend;
+extern struct dyesub_backend shinkos1245_backend;
+extern struct dyesub_backend shinkos2145_backend;
+extern struct dyesub_backend shinkos6145_backend;
+extern struct dyesub_backend shinkos6245_backend;
+extern struct dyesub_backend canonselphy_backend;
+extern struct dyesub_backend mitsu70x_backend;
+extern struct dyesub_backend mitsu9550_backend;
+extern struct dyesub_backend dnpds40_backend;
+extern struct dyesub_backend cw01_backend;
+
static struct dyesub_backend *backends[] = {
&canonselphy_backend,
&kodak6800_backend,
&kodak605_backend,
&kodak1400_backend,
+ &shinkos1245_backend,
&shinkos2145_backend,
+// &shinkos6145_backend,
+ &shinkos6245_backend,
&updr150_backend,
&mitsu70x_backend,
&mitsu9550_backend,
@@ -536,11 +578,10 @@ static int find_and_enumerate(struct libusb_context *ctx,
struct libusb_device ***list,
struct dyesub_backend *backend,
char *match_serno,
- int printer_type,
int scan_only)
{
int num;
- int i, j, k;
+ int i, j = 0, k;
int found = -1;
/* Enumerate and find suitable device */
@@ -548,45 +589,36 @@ static int find_and_enumerate(struct libusb_context *ctx,
for (i = 0 ; i < num ; i++) {
struct libusb_device_descriptor desc;
- int match = 0;
libusb_get_device_descriptor((*list)[i], &desc);
for (k = 0 ; backends[k] ; k++) {
if (backend && backend != backends[k])
continue;
for (j = 0 ; backends[k]->devices[j].vid ; j++) {
+ if (extra_pid != -1 &&
+ extra_vid != -1 &&
+ extra_type != -1) {
+ if (backends[k]->devices[j].type == extra_type &&
+ extra_vid == desc.idVendor &&
+ extra_pid == desc.idProduct) {
+ found = i;
+ goto match;
+ }
+ }
if (desc.idVendor == backends[k]->devices[j].vid &&
desc.idProduct == backends[k]->devices[j].pid) {
- match = 1;
- if (printer_type == P_ANY ||
- printer_type == backends[k]->devices[j].type)
- found = i;
+ found = i;
goto match;
}
}
}
- match:
- if (!match) {
- if (extra_pid != -1 &&
- extra_vid != -1 &&
- extra_type != -1) {
- if (extra_vid == desc.idVendor &&
- extra_pid == desc.idProduct) {
- match = 1;
- if (printer_type == P_ANY ||
- printer_type == extra_type)
- found = i;
- }
- }
- }
-
- if (!match)
- continue;
+ continue;
+ match:
found = print_scan_output((*list)[i], &desc,
URI_PREFIX, backends[k]->devices[j].manuf_str,
- found, (found == i),
+ found,
scan_only, match_serno,
backends[k]);
@@ -615,7 +647,7 @@ static struct dyesub_backend *find_backend(char *uri_prefix)
return NULL;
}
-static void print_license_blurb(void)
+void print_license_blurb(void)
{
const char *license = "\n\
Copyright 2007-2015 Solomon Peachy <pizza AT shaftnet DOT org>\n\
@@ -638,7 +670,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\
fprintf(stderr, "%s", license);
}
-static void print_help(char *argv0, struct dyesub_backend *backend)
+void print_help(char *argv0, struct dyesub_backend *backend)
{
struct libusb_context *ctx = NULL;
struct libusb_device **list = NULL;
@@ -655,21 +687,24 @@ static void print_help(char *argv0, struct dyesub_backend *backend)
if (!backend) {
int i;
+ DEBUG("Environment variables:\n");
+ DEBUG(" DYESUB_DEBUG EXTRA_PID EXTRA_VID EXTRA_TYPE BACKEND SERIAL\n");
DEBUG("CUPS Usage:\n");
DEBUG("\tDEVICE_URI=someuri %s job user title num-copies options [ filename ]\n", URI_PREFIX);
DEBUG("\n");
DEBUG("Standalone Usage:\n");
DEBUG("\t%s\n", URI_PREFIX);
- DEBUG(" [ -D ] [ -G ]\n");
- DEBUG(" [ -S serialnum ] [ -B backendname ] \n");
+ DEBUG(" [ -D ] [ -G ] [ -f ]\n");
+ DEBUG(" [ -S serialnum ] \n");
DEBUG(" [ -V extra_vid ] [ -P extra_pid ] [ -T extra_type ] \n");
DEBUG(" [ backend_specific_args ] \n");
- DEBUG(" [ -d copies ] [ - | infile ] \n");
+ DEBUG(" [ -d copies ] \n");
+ DEBUG(" [ - | infile ] \n");
for (i = 0; ; i++) {
backend = backends[i];
if (!backend)
break;
- DEBUG(" -B %s\t# %s version %s\n",
+ DEBUG(" BACKEND=%s\t# %s version %s\n",
backend->uri_prefix, backend->name, backend->version);
if (backend->cmdline_usage)
backend->cmdline_usage();
@@ -685,12 +720,13 @@ static void print_help(char *argv0, struct dyesub_backend *backend)
DEBUG("\t[ -d copies ] [ infile | - ]\n");
}
+ /* Probe for printers */
i = libusb_init(&ctx);
if (i) {
ERROR("Failed to initialize libusb (%d)\n", i);
exit(CUPS_BACKEND_STOP);
}
- find_and_enumerate(ctx, &list, backend, NULL, P_ANY, 1);
+ find_and_enumerate(ctx, &list, backend, NULL, 1);
libusb_free_device_list(list, 1);
libusb_exit(ctx);
}
@@ -712,18 +748,14 @@ int main (int argc, char **argv)
int i;
int claimed;
- int backend_cmd = 0;
int ret = CUPS_BACKEND_OK;
int iface = 0;
int found = -1;
- int copies = 1;
int jobid = 0;
- int pages = 0;
char *uri;
char *fname = NULL;
- int printer_type = P_ANY;
DEBUG("Multi-Call Dye-sublimation CUPS Backend version %s\n",
BACKEND_VERSION);
@@ -734,7 +766,7 @@ int main (int argc, char **argv)
/* First pass at cmdline parsing */
if (getenv("DYESUB_DEBUG"))
- dyesub_debug++;
+ dyesub_debug = atoi(getenv("DYESUB_DEBUG"));
if (getenv("EXTRA_PID"))
extra_pid = strtol(getenv("EXTRA_PID"), NULL, 16);
if (getenv("EXTRA_VID"))
@@ -743,114 +775,26 @@ int main (int argc, char **argv)
extra_type = atoi(getenv("EXTRA_TYPE"));
if (getenv("BACKEND"))
backend = find_backend(getenv("BACKEND"));
- use_serno = getenv("DEVICE");
- uri = getenv("DEVICE_URI"); /* For CUPS */
-
- /* Try to ensure we have a sane backend for standalone mode.
- CUPS mode uses 'uri' later on. */
- if (!backend) {
- char *ptr = strrchr(argv[0], '/');
- if (ptr)
- ptr++;
- else
- ptr = argv[0];
- backend = find_backend(ptr);
- }
-
- /* Reset arg parsing */
- optind = 1;
- opterr = 0;
- while ((i = getopt(argc, argv, "B:d:DGhP:S:T:V:")) >= 0) {
- switch(i) {
- case 'B':
- backend = find_backend(optarg);
- if (!backend) {
- fprintf(stderr, "ERROR: Unknown backend '%s'\n", optarg);
- }
- break;
- case 'd':
- copies = atoi(optarg);
- break;
- case 'D':
- dyesub_debug++;
- break;
- case 'G':
- print_license_blurb();
- exit(0);
- case 'h':
- print_help(argv[0], backend);
- exit(0);
- break;
- case 'P':
- extra_pid = strtol(optarg, NULL, 16);
- break;
- case 'S':
- use_serno = optarg;
- break;
- case 'T':
- extra_type = atoi(optarg);
- break;
- case 'V':
- extra_pid = strtol(optarg, NULL, 16);
- break;
- case '?':
- default: {
- /* Check to see if it is claimed by the backend */
- if (backend && backend->cmdline_arg) {
- int keep = optind;
- backend_cmd += backend->cmdline_arg(NULL, argc, argv);
- optind = keep;
- }
- break;
- }
- }
- }
+ if (getenv("FAST_RETURN"))
+ fast_return++;
+ use_serno = getenv("SERIAL");
+ uri = getenv("DEVICE_URI"); /* CUPS backend mode? */
-#ifndef LIBUSB_PRE_1_0_10
- if (dyesub_debug) {
- const struct libusb_version *ver;
- ver = libusb_get_version();
- DEBUG(" ** running with libusb %d.%d.%d%s (%d)\n",
- ver->major, ver->minor, ver->micro, (ver->rc? ver->rc : ""), ver->nano );
- }
-#endif
-
- /* Make sure a filename was specified */
- if (!backend_cmd && (optind == argc || !argv[optind])) {
- print_help(argv[0], backend);
- exit(0);
- }
-
- /* Are we running as a CUPS backend? */
if (uri) {
- int base = optind; // XXX aka 1.
- fname = argv[base + 5];
+ /* CUPS backend mode */
+ int base = optind; /* ie 1 */
+ if (argc < 6) {
+ ERROR("Insufficient arguments\n");
+ exit(1);
+ }
if (argv[base])
jobid = atoi(argv[base]);
if (argv[base + 3])
copies = atoi(argv[base + 3]);
- if (fname) { /* IOW, is it specified? */
- data_fd = open(fname, O_RDONLY);
- if (data_fd < 0) {
- perror("ERROR:Can't open input file");
- exit(1);
- }
- } else {
+ if (argc > 6)
+ fname = argv[base + 5];
+ else
fname = "-";
- }
-
- /* Ensure we're using BLOCKING I/O */
- i = fcntl(data_fd, F_GETFL, 0);
- if (i < 0) {
- perror("ERROR:Can't open input");
- exit(1);
- }
- i &= ~O_NONBLOCK;
- i = fcntl(data_fd, F_SETFL, 0);
- if (i < 0) {
- perror("ERROR:Can't open input");
- exit(1);
- }
/* Figure out backend based on URI */
{
@@ -884,46 +828,34 @@ int main (int argc, char **argv)
if (ptr)
*ptr = 0;
}
- } else {
- srand(getpid());
- jobid = rand();
- /* Grab the filename */
- fname = argv[optind];
+ /* Always enable fast return in CUPS mode */
+ fast_return++;
+ } else {
+ /* Standalone mode */
- if (!fname && !backend_cmd) {
- perror("ERROR:No input file");
- exit(1);
- }
- if (fname) {
- /* Open Input File */
- if (strcmp("-", fname)) {
- data_fd = open(fname, O_RDONLY);
- if (data_fd < 0) {
- perror("ERROR:Can't open input file");
- exit(1);
- }
- }
+ /* Try to guess backend from executable name */
+ if (!backend) {
+ char *ptr = strrchr(argv[0], '/');
+ if (ptr)
+ ptr++;
+ else
+ ptr = argv[0];
+ backend = find_backend(ptr);
}
+
+ srand(getpid());
+ jobid = rand();
}
- /* Ignore SIGPIPE */
- signal(SIGPIPE, SIG_IGN);
- signal(SIGTERM, sigterm_handler);
-
- /* Initialize backend */
- DEBUG("Initializing '%s' backend (version %s)\n",
- backend->name, backend->version);
- backend_ctx = backend->init();
-
- /* Parse printjob if necessary */
- if (fname && backend->early_parse) {
- printer_type = backend->early_parse(backend_ctx, data_fd);
- if (printer_type < 0) {
- ret = CUPS_BACKEND_CANCEL;
- goto done;
- }
+#ifndef LIBUSB_PRE_1_0_10
+ if (dyesub_debug) {
+ const struct libusb_version *ver;
+ ver = libusb_get_version();
+ DEBUG(" ** running with libusb %d.%d.%d%s (%d)\n",
+ ver->major, ver->minor, ver->micro, (ver->rc? ver->rc : ""), ver->nano );
}
+#endif
/* Libusb setup */
ret = libusb_init(&ctx);
@@ -933,16 +865,30 @@ int main (int argc, char **argv)
goto done;
}
+ /* If we don't have a valid backend, print help and terminate */
+ if (!backend) {
+ print_help(argv[0], NULL); // probes all devices
+ exit(1);
+ }
+
+ /* If we're in standalone mode, print help only if no args */
+ if (!uri) {
+ if (argc < 2) {
+ print_help(argv[0], backend); // probes all devices
+ exit(1);
+ }
+ }
+
/* Enumerate devices */
- found = find_and_enumerate(ctx, &list, backend, use_serno, printer_type, 0);
+ found = find_and_enumerate(ctx, &list, backend, use_serno, 0);
-#if 1
if (found == -1) {
- ERROR("Printer open failure (No suitable printers found!)\n");
+ ERROR("Printer open failure (No matching printers found!)\n");
ret = CUPS_BACKEND_HOLD;
goto done;
}
+ /* Open an appropriate device */
ret = libusb_open(list[found], &dev);
if (ret) {
ERROR("Printer open failure (Need to be root?) (%d)\n", ret);
@@ -960,9 +906,8 @@ int main (int argc, char **argv)
}
}
- ret = libusb_claim_interface(dev, iface);
+ ret = backend_claim_interface(dev, iface);
if (ret) {
- ERROR("Printer open failure (Could not claim printer interface) (%d)\n", ret);
ret = CUPS_BACKEND_STOP;
goto done_close;
}
@@ -982,35 +927,69 @@ int main (int argc, char **argv)
endp_down = config->interface[0].altsetting[0].endpoint[i].bEndpointAddress;
}
}
-#endif
+
+ /* Initialize backend */
+ DEBUG("Initializing '%s' backend (version %s)\n",
+ backend->name, backend->version);
+ backend_ctx = backend->init();
+
/* Attach backend to device */
backend->attach(backend_ctx, dev, endp_up, endp_down, jobid);
- if (backend_cmd && !uri) {
- if (backend->cmdline_arg(backend_ctx, argc, argv))
- goto done_claimed;
- if (!fname)
+ if (!uri) {
+ if (backend->cmdline_arg(backend_ctx, argc, argv) < 0)
goto done_claimed;
+
+ /* Grab the filename */
+ fname = argv[optind]; // XXX do this a smarter way?
}
+ if (!fname) {
+ if (uri)
+ fprintf(stderr, "ERROR: No input file specified\n");
+ goto done_claimed;
+ }
+
+ /* Open file if not STDIN */
+ if (strcmp("-", fname)) {
+ data_fd = open(fname, O_RDONLY);
+ if (data_fd < 0) {
+ perror("ERROR:Can't open input file");
+ exit(1);
+ }
+ }
+
+ /* Ensure we're using BLOCKING I/O */
+ i = fcntl(data_fd, F_GETFL, 0);
+ if (i < 0) {
+ perror("ERROR:Can't open input");
+ exit(1);
+ }
+ i &= ~O_NONBLOCK;
+ i = fcntl(data_fd, F_SETFL, i);
+ if (i < 0) {
+ perror("ERROR:Can't open input");
+ exit(1);
+ }
+
+ /* Ignore SIGPIPE */
+ signal(SIGPIPE, SIG_IGN);
+ signal(SIGTERM, sigterm_handler);
+
/* Time for the main processing loop */
INFO("Printing started (%d copies)\n", copies);
newpage:
- /* Do early parsing if needed for subsequent pages */
- if (pages && backend->early_parse &&
- backend->early_parse(backend_ctx, data_fd) < 0)
- goto done_multiple;
/* Read in data */
if ((ret = backend->read_parse(backend_ctx, data_fd))) {
- if (pages)
+ if (current_page)
goto done_multiple;
else
goto done_claimed;
}
- INFO("Printing page %d\n", ++pages);
+ INFO("Printing page %d\n", ++current_page);
ret = backend->main_loop(backend_ctx, copies);
if (ret)
@@ -1025,7 +1004,7 @@ done_multiple:
close(data_fd);
/* Done printing */
- INFO("All printing done (%d pages * %d copies)\n", pages, copies);
+ INFO("All printing done (%d pages * %d copies)\n", current_page, copies);
ret = CUPS_BACKEND_OK;
done_claimed:
@@ -1050,3 +1029,47 @@ done:
return ret;
}
+int lookup_printer_type(struct dyesub_backend *backend, uint16_t idVendor, uint16_t idProduct)
+{
+ int i;
+ int type = -1;
+
+ for (i = 0 ; backend->devices[i].vid ; i++) {
+ if (extra_pid != -1 &&
+ extra_vid != -1 &&
+ extra_type != -1) {
+ if (backend->devices[i].type == extra_type &&
+ extra_vid == idVendor &&
+ extra_pid == idProduct) {
+ return extra_type;
+ }
+ }
+ if (idVendor == backend->devices[i].vid &&
+ idProduct == backend->devices[i].pid) {
+ return backend->devices[i].type;
+ }
+ }
+
+ return type;
+}
+
+uint16_t uint16_to_packed_bcd(uint16_t val)
+{
+ uint16_t bcd;
+ uint16_t i;
+
+ /* Handle from 0-9999 */
+ i = val % 10;
+ bcd = i;
+ val /= 10;
+ i = val % 10;
+ bcd |= (i << 4);
+ val /= 10;
+ i = val % 10;
+ bcd |= (i << 8);
+ val /= 10;
+ i = val % 10;
+ bcd |= (i << 12);
+
+ return bcd;
+}
diff --git a/src/cups/backend_common.h b/src/cups/backend_common.h
index 1a5c9f1..9b32071 100644
--- a/src/cups/backend_common.h
+++ b/src/cups/backend_common.h
@@ -91,7 +91,6 @@ enum {
P_ES1,
P_ES2_20,
P_ES3_30,
- P_ES40_CP790,
P_ES40,
P_CP790,
P_CP_XXX,
@@ -102,12 +101,17 @@ enum {
P_KODAK_605,
P_SHINKO_S2145,
P_SHINKO_S1245,
+ P_SHINKO_S6245,
+ P_SHINKO_S6145,
P_SONY_UPDR150,
P_SONY_UPCR10,
P_MITSU_D70X,
+ P_MITSU_K60,
P_MITSU_9550,
+ P_MITSU_9550S,
P_DNP_DS40,
P_DNP_DS80,
+ P_DNP_DS80D,
P_CITIZEN_CW01,
P_DNP_DSRX1,
P_DNP_DS620,
@@ -132,7 +136,6 @@ struct dyesub_backend {
uint8_t endp_up, uint8_t endp_down, uint8_t jobid);
void (*teardown)(void *ctx);
int (*cmdline_arg)(void *ctx, int argc, char **argv);
- int (*early_parse)(void *ctx, int data_fd);
int (*read_parse)(void *ctx, int data_fd);
int (*main_loop)(void *ctx, int copies);
int (*query_serno)(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len);
@@ -144,22 +147,27 @@ int send_data(struct libusb_device_handle *dev, uint8_t endp,
uint8_t *buf, int len);
int read_data(struct libusb_device_handle *dev, uint8_t endp,
uint8_t *buf, int buflen, int *readlen);
+int lookup_printer_type(struct dyesub_backend *backend, uint16_t idVendor, uint16_t idProduct);
-/* Exported data */
+void print_license_blurb(void);
+void print_help(char *argv0, struct dyesub_backend *backend);
+
+uint16_t uint16_to_packed_bcd(uint16_t val);
+
+/* Global data */
extern int terminate;
extern int dyesub_debug;
-
-/* External data */
-extern struct dyesub_backend updr150_backend;
-extern struct dyesub_backend kodak6800_backend;
-extern struct dyesub_backend kodak605_backend;
-extern struct dyesub_backend kodak1400_backend;
-extern struct dyesub_backend shinkos2145_backend;
-extern struct dyesub_backend canonselphy_backend;
-extern struct dyesub_backend mitsu70x_backend;
-extern struct dyesub_backend mitsu9550_backend;
-extern struct dyesub_backend dnpds40_backend;
-extern struct dyesub_backend cw01_backend;
+extern int fast_return;
+extern int extra_vid;
+extern int extra_pid;
+extern int extra_type;
+extern int copies;
+extern char *use_serno;
+extern int current_page;
+
+#if defined(BACKEND)
+extern struct dyesub_backend BACKEND;
+#endif
/* CUPS compatibility */
#define CUPS_BACKEND_OK 0 /* Sucess */
@@ -171,4 +179,35 @@ extern struct dyesub_backend cw01_backend;
#define CUPS_BACKEND_RETRY 6 /* Retry later */
#define CUPS_BACKEND_RETRY_CURRENT 7 /* Retry immediately */
+/* Argument processing */
+#define GETOPT_LIST_GLOBAL "d:DfGhP:S:T:V:"
+#define GETOPT_PROCESS_GLOBAL \
+ case 'd': \
+ copies = atoi(optarg); \
+ break; \
+ case 'D': \
+ dyesub_debug++; \
+ break; \
+ case 'f': \
+ fast_return++; \
+ break; \
+ case 'G': \
+ print_license_blurb(); \
+ exit(0); \
+ case 'h': \
+ print_help(argv[0], &BACKEND); \
+ exit(0); \
+ case 'P': \
+ extra_pid = strtol(optarg, NULL, 16); \
+ break; \
+ case 'S': \
+ use_serno = optarg; \
+ break; \
+ case 'T': \
+ extra_type = atoi(optarg); \
+ break; \
+ case 'V': \
+ extra_pid = strtol(optarg, NULL, 16); \
+ break;
+
#endif /* __BACKEND_COMMON_H */
diff --git a/src/cups/blacklist b/src/cups/blacklist
index 420c485..b137624 100644
--- a/src/cups/blacklist
+++ b/src/cups/blacklist
@@ -132,6 +132,9 @@
# Sony UP-DR200
0x054c 0x035f blacklist
+# Sony UP-CR10L
+0x054c 0x0226 blacklist
+
# Mitsubishi CP-D70/CP-D707
0x06d3 0x3b30 blacklist
diff --git a/src/cups/citizencw01_print.c b/src/cups/citizencw01_print.c
index b99822c..37313b5 100644
--- a/src/cups/citizencw01_print.c
+++ b/src/cups/citizencw01_print.c
@@ -35,6 +35,8 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND cw01_backend
+
#include "backend_common.h"
#define USB_VID_CITIZEN 0x1343
@@ -68,6 +70,7 @@ struct cw01_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
uint8_t *databuf;
struct cw01_spool_hdr hdr;
@@ -296,12 +299,20 @@ static void cw01_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct cw01_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
UNUSED(jobid);
ctx->dev = dev;
ctx->endp_up = endp_up;
ctx->endp_down = endp_down;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+ ctx->type = lookup_printer_type(&cw01_backend,
+ desc.idVendor, desc.idProduct);
}
static void cw01_teardown(void *vctx) {
@@ -434,7 +445,8 @@ top:
free(resp);
resp = NULL;
- /* Set print quantity */
+ /* Set print quantity */ // XXX check against remaining print count
+
cw01_build_cmd(&cmd, "CNTRL", "QTY", 8);
snprintf(buf, sizeof(buf), "%07d\r", copies);
ret = cw01_do_cmd(ctx, &cmd, (uint8_t*) buf, 8);
@@ -498,7 +510,7 @@ top:
ptr + SPOOL_PLANE_HDR_LEN, ctx->hdr.plane_len - SPOOL_PLANE_HDR_LEN)))
return CUPS_BACKEND_FAILED;
- ptr += ctx->hdr.plane_len;
+ /* ptr += ctx->hdr.plane_len; */
/* Start print */
cw01_build_cmd(&cmd, "CNTRL", "START", 0);
@@ -506,18 +518,7 @@ top:
if (ret)
return CUPS_BACKEND_FAILED;
- /* This printer handles copies internally */
- copies = 1;
-
- /* Clean up */
- if (terminate)
- copies = 1;
-
- INFO("Print complete (%d copies remaining)\n", copies - 1);
-
- if (copies && --copies) {
- goto top;
- }
+ INFO("Print complete\n");
if (resp) free(resp);
@@ -822,38 +823,30 @@ static int cw01_cmdline_arg(void *vctx, int argc, char **argv)
struct cw01_ctx *ctx = vctx;
int i, j = 0;
+ if (!ctx)
+ return -1;
+
/* Reset arg parsing */
optind = 1;
opterr = 0;
- while ((i = getopt(argc, argv, "inN:s")) >= 0) {
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "inN:s")) >= 0) {
switch(i) {
+ GETOPT_PROCESS_GLOBAL
case 'i':
- if (ctx) {
- j = cw01_get_info(ctx);
- break;
- }
- return 1;
+ j = cw01_get_info(ctx);
+ break;
case 'n':
- if (ctx) {
- j = cw01_get_counters(ctx);
- break;
- }
- return 1;
+ j = cw01_get_counters(ctx);
+ break;
case 'N':
if (optarg[0] != 'A' &&
optarg[0] != 'B')
return CUPS_BACKEND_FAILED;
- if (ctx) {
- j = cw01_clear_counter(ctx, optarg[0]);
- break;
- }
- return 1;
+ j = cw01_clear_counter(ctx, optarg[0]);
+ break;
case 's':
- if (ctx) {
- j = cw01_get_status(ctx);
- break;
- }
- return 1;
+ j = cw01_get_status(ctx);
+ break;
default:
break; /* Ignore completely */
}
@@ -867,7 +860,7 @@ static int cw01_cmdline_arg(void *vctx, int argc, char **argv)
/* Exported */
struct dyesub_backend cw01_backend = {
.name = "Citizen CW-01",
- .version = "0.10",
+ .version = "0.12",
.uri_prefix = "citizencw01",
.cmdline_usage = cw01_cmdline,
.cmdline_arg = cw01_cmdline_arg,
diff --git a/src/cups/dnpds40_print.c b/src/cups/dnpds40_print.c
index 16e8ab1..47ff498 100644
--- a/src/cups/dnpds40_print.c
+++ b/src/cups/dnpds40_print.c
@@ -44,6 +44,8 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND dnpds40_backend
+
#include "backend_common.h"
#define USB_VID_CITIZEN 0x1343
@@ -82,6 +84,7 @@ struct dnpds40_ctx {
int cutter;
int can_rewind;
+ int manual_copies;
int supports_6x9;
int supports_2x6;
int supports_3x5x2;
@@ -90,6 +93,8 @@ struct dnpds40_ctx {
int supports_rewind;
int supports_standby;
int supports_6x4_5;
+ int supports_mqty_default;
+ int supports_iserial;
uint8_t *qty_offset;
uint8_t *buffctrl_offset;
@@ -328,6 +333,9 @@ static void dnpds40_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
+ ctx->type = lookup_printer_type(&dnpds40_backend,
+ desc.idVendor, desc.idProduct);
+
{
/* Get Firmware Version */
struct dnpds40_cmd cmd;
@@ -343,7 +351,7 @@ static void dnpds40_attach(void *vctx, struct libusb_device_handle *dev,
ctx->version = strdup((char*) resp);
/* Parse version */
- ptr = strtok((char*)resp, " .");
+ /* ptr = */ strtok((char*)resp, " .");
ptr = strtok(NULL, ".");
ctx->ver_major = atoi(ptr);
ptr = strtok(NULL, ".");
@@ -397,9 +405,8 @@ static void dnpds40_attach(void *vctx, struct libusb_device_handle *dev,
#endif
/* Per-printer options */
- switch (desc.idProduct) {
- case USB_PID_DNP_DS40:
- ctx->type = P_DNP_DS40;
+ switch (ctx->type) {
+ case P_DNP_DS40:
ctx->supports_6x9 = 1;
if (FW_VER_CHECK(1,30))
ctx->supports_matte = 1;
@@ -410,31 +417,31 @@ static void dnpds40_attach(void *vctx, struct libusb_device_handle *dev,
if (FW_VER_CHECK(1,51))
ctx->supports_fullcut = 1;
break;
- case USB_PID_DNP_DS80:
- ctx->type = P_DNP_DS80;
+ case P_DNP_DS80:
if (FW_VER_CHECK(1,30))
ctx->supports_matte = 1;
break;
- case USB_PID_DNP_DSRX1:
- ctx->type = P_DNP_DSRX1;
+ case P_DNP_DSRX1:
ctx->supports_matte = 1;
+ ctx->supports_mqty_default = 1; // 1.10 does. Maybe older too?
if (FW_VER_CHECK(1,10))
ctx->supports_2x6 = 1;
break;
- case USB_PID_DNP_DS620:
- ctx->type = P_DNP_DS620;
+ case P_DNP_DS620:
ctx->supports_matte = 1;
ctx->supports_2x6 = 1;
ctx->supports_fullcut = 1;
- ctx->supports_rewind = 1; // XXX DS620 only, 620A does not.
+ ctx->supports_mqty_default = 1;
+ ctx->supports_rewind = 1;
ctx->supports_standby = 1;
+ ctx->supports_iserial = 1;
if (FW_VER_CHECK(0,30))
ctx->supports_3x5x2 = 1;
if (FW_VER_CHECK(1,10))
ctx->supports_6x9 = ctx->supports_6x4_5 = 1;
break;
default:
- ERROR("Unknown USB PID...\n");
+ ERROR("Unknown vid/pid %04x/%04x (%d)\n", desc.idVendor, desc.idProduct, ctx->type);
return;
}
}
@@ -491,6 +498,7 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
matte = 0;
dpi = 0;
cutter = 0;
+ ctx->manual_copies = 0;
ctx->multicut = 0;
ctx->buffctrl_offset = ctx->qty_offset = ctx->multicut_offset = 0;
@@ -603,7 +611,7 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
if (y_ppm != 1920) {
ERROR("Incorrect horizontal resolution (%d), aborting!\n", y_ppm);
return CUPS_BACKEND_CANCEL;
- }
+ }
}
}
@@ -616,8 +624,8 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
}
if (!ctx->datalen)
- return CUPS_BACKEND_CANCEL;
-
+ return CUPS_BACKEND_CANCEL;
+
/* Figure out the number of buffers we need. Most only need one. */
if (ctx->multicut) {
ctx->buf_needed = 1;
@@ -668,12 +676,14 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
}
break;
case 210: //"5x7 (2L)"
- ctx->can_rewind = 1;
if (ctx->multicut != 1 && ctx->multicut != 3 &&
ctx->multicut != 22 && ctx->multicut != 29) {
ERROR("Incorrect media for job loaded (%d vs %d)\n", ctx->media, ctx->multicut);
return CUPS_BACKEND_CANCEL;
}
+ /* Only 3.5x5 on 7x5 media can be rewound */
+ if (ctx->multicut == 1)
+ ctx->can_rewind = 1;
break;
case 300: //"6x4 (PC)"
if (ctx->multicut != 2) {
@@ -682,21 +692,27 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
}
break;
case 310: //"6x8 (A5)"
- ctx->can_rewind = 1;
if (ctx->multicut != 2 && ctx->multicut != 4 &&
- ctx->multicut != 27) {
+ ctx->multicut != 12 &&
+ ctx->multicut != 27 && ctx->multicut != 30) {
ERROR("Incorrect media for job loaded (%d vs %d)\n", ctx->media, ctx->multicut);
return CUPS_BACKEND_CANCEL;
}
+ /* Only 6x4 on 6x8 media can be rewound */
+ if (ctx->multicut == 2)
+ ctx->can_rewind = 1;
break;
case 400: //"6x9 (A5W)"
- ctx->can_rewind = 1;
if (ctx->multicut != 2 && ctx->multicut != 4 &&
- ctx->multicut != 5 && ctx->multicut != 27 &&
+ ctx->multicut != 5 && ctx->multicut != 12 &&
+ ctx->multicut != 27 &&
ctx->multicut != 30 && ctx->multicut != 31) {
ERROR("Incorrect media for job loaded (%d vs %d)\n", ctx->media, ctx->multicut);
return CUPS_BACKEND_CANCEL;
}
+ /* Only 6x4 or 6x4.5 on 6x9 media can be rewound */
+ if (ctx->multicut == 2 || ctx->multicut == 30)
+ ctx->can_rewind = 1;
break;
case 500: //"8x10"
if (ctx->multicut < 6 || ctx->multicut == 7 ||
@@ -749,6 +765,11 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
ERROR("Printer only supports 2-inch cuts on 4x6 or 8x6 jobs!");
return CUPS_BACKEND_CANCEL;
}
+
+ /* Work around firmware bug on DS40 where if we run out
+ of media, we can't resume the job without losing the
+ cutter setting. XXX add version test? */
+ ctx->manual_copies = 1;
}
if (ctx->matte && !ctx->supports_matte) {
@@ -768,65 +789,15 @@ static int dnpds40_main_loop(void *vctx, int copies) {
uint8_t *ptr;
char buf[9];
int status;
+ int buf_needed;
if (!ctx)
return CUPS_BACKEND_FAILED;
- /* Verify we have sufficient media for prints */
- {
- int i = 0;
-
- /* See if we can rewind to save media */
- if (ctx->can_rewind && ctx->supports_rewind &&
- (ctx->multicut == 1 || ctx->multicut == 2)) {
-
- /* Get Media remaining */
- dnpds40_build_cmd(&cmd, "INFO", "RQTY", 0);
-
- if (resp) free(resp);
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
-
- dnpds40_cleanup_string((char*)resp, len);
- i = atoi((char*)resp);
-
- /* If the count is odd, we can rewind. */
- if (i & 1) {
- snprintf(buf, sizeof(buf), "%08d", ctx->multicut + 400);
- memcpy(ctx->multicut_offset, buf, 8);
- }
- }
-
- /* If we didn't succeed with RQTY, try MQTY */
- if (i == 0) {
- dnpds40_build_cmd(&cmd, "INFO", "MQTY", 0);
-
- if (resp) free(resp);
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
-
- dnpds40_cleanup_string((char*)resp, len);
-
- i = atoi((char*)resp+4);
-
- /* For some reason all but the DS620 report 50 too high */
- if (ctx->type != P_DNP_DS620 && i > 0)
- i -= 50;
- }
-
- if (i < 1) {
- ERROR("Printer out of media, please correct!\n");
- return CUPS_BACKEND_STOP;
- }
- if (i < copies) {
- WARNING("Printer does not have sufficient remaining media to complete job..\n");
- }
- }
-
/* Update quantity offset with count */
- if (copies > 1) {
+ // XXX this breaks if ctx->manual_copies is set, but the job
+ // has a CNTRL QTY != 1
+ if (!ctx->manual_copies && copies > 1) {
snprintf(buf, sizeof(buf), "%07d\r", copies);
if (ctx->qty_offset) {
memcpy(ctx->qty_offset, buf, 8);
@@ -843,7 +814,7 @@ static int dnpds40_main_loop(void *vctx, int copies) {
if (ctx->supports_matte) {
snprintf(buf, sizeof(buf), "%08d", 1);
if (ctx->buffctrl_offset) {
- memcpy(ctx->qty_offset, buf, 8);
+ memcpy(ctx->buffctrl_offset, buf, 8);
} else {
dnpds40_build_cmd(&cmd, "CNTRL", "BUFFCNTRL", 8);
if ((ret = dnpds40_do_cmd(ctx, &cmd, (uint8_t*)buf, 8)))
@@ -866,9 +837,11 @@ static int dnpds40_main_loop(void *vctx, int copies) {
}
#endif
+ buf_needed = ctx->buf_needed;
+
#ifdef MATTE_GLOSSY_2BUF
if (ctx->matte != ctx->last_matte)
- ctx->buf_needed = 2; /* Switching needs both buffers */
+ buf_needed = 2; /* Switching needs both buffers */
#endif
ctx->last_matte = ctx->matte;
@@ -888,25 +861,23 @@ static int dnpds40_main_loop(void *vctx, int copies) {
top:
- if (resp) free(resp);
-
/* Query status */
dnpds40_build_cmd(&cmd, "STATUS", "", 0);
+ if (resp) free(resp);
resp = dnpds40_resp_cmd(ctx, &cmd, &len);
if (!resp)
return CUPS_BACKEND_FAILED;
dnpds40_cleanup_string((char*)resp, len);
status = atoi((char*)resp);
- free(resp);
/* Figure out what's going on */
switch(status) {
case 0: /* Idle; we can continue! */
- break;
case 1: /* Printing */
{
int bufs;
+ if (resp) free(resp);
/* Query buffer state */
dnpds40_build_cmd(&cmd, "INFO", "FREE_PBUFFER", 0);
resp = dnpds40_resp_cmd(ctx, &cmd, &len);
@@ -917,8 +888,8 @@ top:
dnpds40_cleanup_string((char*)resp, len);
/* Check to see if we have sufficient buffers */
bufs = atoi(((char*)resp)+3);
- if (bufs < ctx->buf_needed) {
- INFO("Insufficient printer buffers (%d vs %d), retrying...\n", bufs, ctx->buf_needed);
+ if (bufs < buf_needed) {
+ INFO("Insufficient printer buffers (%d vs %d), retrying...\n", bufs, buf_needed);
sleep(1);
goto top;
}
@@ -952,7 +923,56 @@ top:
ERROR("Fatal Printer Error: %d => %s, halting queue!\n", status, dnpds40_statuses(status));
return CUPS_BACKEND_HOLD;
}
-
+
+ /* Verify we have sufficient media for prints */
+ {
+ int i = 0;
+
+ /* See if we can rewind to save media */
+ if (ctx->can_rewind && ctx->supports_rewind) {
+ /* Tell the printer we want to rewind, if possible. */
+ snprintf(buf, sizeof(buf), "%08d", ctx->multicut + 400);
+ memcpy(ctx->multicut_offset, buf, 8);
+
+ /* Get Media remaining */
+ dnpds40_build_cmd(&cmd, "INFO", "RQTY", 0);
+
+ if (resp) free(resp);
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return CUPS_BACKEND_FAILED;
+
+ dnpds40_cleanup_string((char*)resp, len);
+ i = atoi((char*)resp+4);
+ }
+
+ /* If we didn't succeed with RQTY, try MQTY */
+ if (i == 0) {
+ dnpds40_build_cmd(&cmd, "INFO", "MQTY", 0);
+
+ if (resp) free(resp);
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return CUPS_BACKEND_FAILED;
+
+ dnpds40_cleanup_string((char*)resp, len);
+
+ i = atoi((char*)resp+4);
+
+ /* For some reason all but the DS620 report 50 too high */
+ if (ctx->type != P_DNP_DS620 && i > 0)
+ i -= 50;
+ }
+
+ if (i < 1) {
+ ERROR("Printer out of media, please correct!\n");
+ return CUPS_BACKEND_STOP;
+ }
+ if (i < copies) {
+ WARNING("Printer does not have sufficient remaining media to complete job..\n");
+ }
+ }
+
/* Send the stream over as individual data chunks */
ptr = ctx->databuf;
@@ -962,7 +982,6 @@ top:
memcpy(buf, ptr + 24, 8);
i = atoi(buf) + 32;
-
if ((ret = send_data(ctx->dev, ctx->endp_down,
ptr, i)))
return CUPS_BACKEND_FAILED;
@@ -973,27 +992,26 @@ top:
/* Clean up */
if (terminate)
copies = 1;
-
+
INFO("Print complete (%d copies remaining)\n", copies - 1);
if (copies && --copies) {
+#ifdef MATTE_GLOSSY_2BUF
+ /* No need to wait on buffers due to matte switching */
+ buf_needed = ctx->buf_needed;
+#endif
goto top;
}
return CUPS_BACKEND_OK;
}
-static int dnpds40_get_info(struct dnpds40_ctx *ctx)
+static int dnpds40_get_sensors(struct dnpds40_ctx *ctx)
{
struct dnpds40_cmd cmd;
uint8_t *resp;
int len = 0;
-
- /* Serial number already queried */
- INFO("Serial Number: '%s'\n", ctx->serno);
-
- /* Firmware version already queried */
- INFO("Firmware Version: '%s'\n", ctx->version);
+ char *tok;
/* Get Sensor Info */
dnpds40_build_cmd(&cmd, "INFO", "SENSOR", 0);
@@ -1003,33 +1021,72 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
return CUPS_BACKEND_FAILED;
dnpds40_cleanup_string((char*)resp, len);
- INFO("Sensor Info:\n");
- {
- char *tmp;
- tmp = strtok((char*)resp, "; ");
- do {
- // XXX parse the components?
- INFO(" %s\n", tmp);
- } while ((tmp = strtok(NULL, "; ")) != NULL);
- }
- free(resp);
+ tok = strtok((char*)resp, "; -");
+ do {
+ char *val = strtok(NULL, "; -");
+
+ if (!strcmp("HDT", tok)) {
+ INFO("Head Temperature : %s\n", val);
+ } else if (!strcmp("MDT", tok)) {
+ INFO("Media Temperature : %s\n", val);
+ } else if (!strcmp("PMK", tok)) {
+ INFO("Paper Mark : %s\n", val);
+ } else if (!strcmp("RML", tok)) {
+ INFO("Ribbon Mark Left : %s\n", val);
+ } else if (!strcmp("RMC", tok)) {
+ INFO("Ribbon Mark Right : %s\n", val);
+ } else if (!strcmp("RMR", tok)) {
+ INFO("Ribbon Mark Center : %s\n", val);
+ } else if (!strcmp("PSZ", tok)) {
+ INFO("Paper Size : %s\n", val);
+ } else if (!strcmp("PNT", tok)) {
+ INFO("Paper Notch : %s\n", val);
+ } else if (!strcmp("PJM", tok)) {
+ INFO("Paper Jam : %s\n", val);
+ } else if (!strcmp("PED", tok)) {
+ INFO("Paper End : %s\n", val);
+ } else if (!strcmp("PET", tok)) {
+ INFO("Paper Empty : %s\n", val);
+ } else if (!strcmp("HDV", tok)) {
+ INFO("Head Voltage : %s\n", val);
+ } else if (!strcmp("HMD", tok)) {
+ INFO("Humidity : %s\n", val);
+ } else if (!strcmp("RP1", tok)) {
+ INFO("Roll Paper End 1 : %s\n", val);
+ } else if (!strcmp("RP2", tok)) {
+ INFO("Roll Paper End 2 : %s\n", val);
+ } else if (!strcmp("GSR", tok)) {
+ INFO("Color Sensor Red : %s\n", val);
+ } else if (!strcmp("GSG", tok)) {
+ INFO("Color Sensor Green : %s\n", val);
+ } else if (!strcmp("GSB", tok)) {
+ INFO("Color Sensor Blue : %s\n", val);
+ } else {
+ INFO("Unknown Sensor: '%s' '%s'\n",
+ tok, val);
+ }
+ } while ((tok = strtok(NULL, "; -")) != NULL);
- /* Get Horizonal resolution */
- dnpds40_build_cmd(&cmd, "INFO", "RESOLUTION_H", 0);
+ free(resp);
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
+ return CUPS_BACKEND_OK;
+}
- dnpds40_cleanup_string((char*)resp, len);
+static int dnpds40_get_info(struct dnpds40_ctx *ctx)
+{
+ struct dnpds40_cmd cmd;
+ uint8_t *resp;
+ int len = 0;
- INFO("Horizontal Resolution: '%s' dpi\n", (char*)resp + 3);
+ /* Serial number already queried */
+ INFO("Serial Number: '%s'\n", ctx->serno);
- free(resp);
+ /* Firmware version already queried */
+ INFO("Firmware Version: '%s'\n", ctx->version);
- /* Get Vertical resolution */
- dnpds40_build_cmd(&cmd, "INFO", "RESOLUTION_V", 0);
+ /* Get Media Color offset */
+ dnpds40_build_cmd(&cmd, "INFO", "MCOLOR", 0);
resp = dnpds40_resp_cmd(ctx, &cmd, &len);
if (!resp)
@@ -1037,12 +1094,13 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
dnpds40_cleanup_string((char*)resp, len);
- INFO("Vertical Resolution: '%s' dpi\n", (char*)resp + 3);
+ INFO("Media Color Offset: '%02x%02x%02x%02x'\n", *(resp+2), *(resp+3),
+ *(resp+4), *(resp+5));
free(resp);
- /* Get Media Color offset */
- dnpds40_build_cmd(&cmd, "INFO", "MCOLOR", 0);
+ /* Get Media Class */
+ dnpds40_build_cmd(&cmd, "INFO", "MEDIA_CLASS", 0);
resp = dnpds40_resp_cmd(ctx, &cmd, &len);
if (!resp)
@@ -1050,8 +1108,7 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
dnpds40_cleanup_string((char*)resp, len);
- INFO("Media Color Offset: '%02x%02x%02x%02x'\n", *(resp+2), *(resp+3),
- *(resp+4), *(resp+5));
+ INFO("Media Class: '%s'\n", (char*)resp);
free(resp);
@@ -1085,87 +1142,74 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
free(resp);
- if (ctx->type == P_DNP_DS620) {
- /* Loop through control data versions and checksums */
-
- /* 300 DPI */
- dnpds40_build_cmd(&cmd, "TBL_RD", "CWD300_Version", 0);
-
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
-
- dnpds40_cleanup_string((char*)resp, len);
-
- INFO("300 DPI Color Data Version: '%s' ", (char*)resp);
-
- free(resp);
+ /* Get Ribbon ID code (?) */
+ dnpds40_build_cmd(&cmd, "MNT_RD", "RIBBON_ID_CODE", 0);
- dnpds40_build_cmd(&cmd, "TBL_RD", "CWD300_Checksum", 0);
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return CUPS_BACKEND_FAILED;
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
+ dnpds40_cleanup_string((char*)resp, len);
- dnpds40_cleanup_string((char*)resp, len);
+ INFO("Ribbon ID(?): '%s'\n", (char*)resp+4);
- INFO("Checksum: '%s'\n", (char*)resp);
+ free(resp);
- free(resp);
+ /* Figure out control data and checksums */
- /* 600 DPI */
- dnpds40_build_cmd(&cmd, "TBL_RD", "CWD600_Version", 0);
+ /* 300 DPI */
+ dnpds40_build_cmd(&cmd, "TBL_RD", "CWD300_Version", 0);
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return CUPS_BACKEND_FAILED;
- dnpds40_cleanup_string((char*)resp, len);
+ dnpds40_cleanup_string((char*)resp, len);
- INFO("600 DPI Color Data Version: '%s' ", (char*)resp);
+ INFO("300 DPI Color Data Version: '%s' ", (char*)resp);
- free(resp);
+ free(resp);
- dnpds40_build_cmd(&cmd, "TBL_RD", "CWD600_Checksum", 0);
+ dnpds40_build_cmd(&cmd, "TBL_RD", "CWD300_Checksum", 0);
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return CUPS_BACKEND_FAILED;
- dnpds40_cleanup_string((char*)resp, len);
+ dnpds40_cleanup_string((char*)resp, len);
- INFO("Checksum: '%s'\n", (char*)resp);
+ DEBUG2("Checksum: '%s'\n", (char*)resp);
- free(resp);
+ free(resp);
- /* "Low Speed" */
- dnpds40_build_cmd(&cmd, "TBL_RD", "CWD610_Version", 0);
+ /* 600 DPI */
+ dnpds40_build_cmd(&cmd, "TBL_RD", "CWD600_Version", 0);
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return CUPS_BACKEND_FAILED;
- dnpds40_cleanup_string((char*)resp, len);
+ dnpds40_cleanup_string((char*)resp, len);
- INFO("Low Speed Color Data Version: '%s' ", (char*)resp);
+ INFO("600 DPI Color Data Version: '%s' ", (char*)resp);
- free(resp);
+ free(resp);
- dnpds40_build_cmd(&cmd, "TBL_RD", "CWD610_Checksum", 0);
+ dnpds40_build_cmd(&cmd, "TBL_RD", "CWD600_Checksum", 0);
- resp = dnpds40_resp_cmd(ctx, &cmd, &len);
- if (!resp)
- return CUPS_BACKEND_FAILED;
+ resp = dnpds40_resp_cmd(ctx, &cmd, &len);
+ if (!resp)
+ return CUPS_BACKEND_FAILED;
- dnpds40_cleanup_string((char*)resp, len);
+ dnpds40_cleanup_string((char*)resp, len);
- INFO("Checksum: '%s'\n", (char*)resp);
+ DEBUG2("Checksum: '%s'\n", (char*)resp);
- free(resp);
+ free(resp);
- } else {
- /* Get Color Control Data Version */
- dnpds40_build_cmd(&cmd, "TBL_RD", "Version", 0);
+ if (ctx->type == P_DNP_DS620) {
+ /* "Low Speed" */
+ dnpds40_build_cmd(&cmd, "TBL_RD", "CWD610_Version", 0);
resp = dnpds40_resp_cmd(ctx, &cmd, &len);
if (!resp)
@@ -1173,12 +1217,11 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
dnpds40_cleanup_string((char*)resp, len);
- INFO("Color Data Version: '%s'\n", (char*)resp);
+ INFO("Low Speed Color Data Version: '%s' ", (char*)resp);
free(resp);
- /* Get Color Control Data Checksum */
- dnpds40_build_cmd(&cmd, "MNT_RD", "CTRLD_CHKSUM", 0);
+ dnpds40_build_cmd(&cmd, "TBL_RD", "CWD610_Checksum", 0);
resp = dnpds40_resp_cmd(ctx, &cmd, &len);
if (!resp)
@@ -1186,7 +1229,7 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
dnpds40_cleanup_string((char*)resp, len);
- INFO("Color Data Checksum: '%s'\n", (char*)resp);
+ DEBUG2("Checksum: '%s'\n", (char*)resp);
free(resp);
}
@@ -1217,7 +1260,9 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
INFO("Media End kept across power cycles: '%s'\n", (char*)resp);
free(resp);
+ }
+ if (ctx->supports_iserial) {
/* Get USB serial descriptor status */
dnpds40_build_cmd(&cmd, "MNT_RD", "USB_ISERI_SET", 0);
@@ -1284,7 +1329,7 @@ static int dnpds40_get_status(struct dnpds40_ctx *ctx)
/* Report media */
INFO("Media Type: '%s'\n", dnpds40_media_types(ctx->media));
- if (ctx->supports_rewind) {
+ if (ctx->supports_mqty_default) {
/* Get Media remaining */
dnpds40_build_cmd(&cmd, "INFO", "MQTY_DEFAULT", 0);
@@ -1460,6 +1505,38 @@ static int dnpds620_standby_mode(struct dnpds40_ctx *ctx, int delay)
return 0;
}
+static int dnpds620_media_keep_mode(struct dnpds40_ctx *ctx, int delay)
+{
+ struct dnpds40_cmd cmd;
+ char msg[9];
+ int ret;
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_WT", "END_KEEP_MODE", 4);
+ snprintf(msg, sizeof(msg), "%02d\r", delay);
+
+ if ((ret = dnpds40_do_cmd(ctx, &cmd, (uint8_t*)msg, 4)))
+ return ret;
+
+ return 0;
+}
+
+static int dnpds620_iserial_mode(struct dnpds40_ctx *ctx, int enable)
+{
+ struct dnpds40_cmd cmd;
+ char msg[9];
+ int ret;
+
+ /* Generate command */
+ dnpds40_build_cmd(&cmd, "MNT_WT", "USB_ISERI_SET", 4);
+ snprintf(msg, sizeof(msg), "%02d\r", enable);
+
+ if ((ret = dnpds40_do_cmd(ctx, &cmd, (uint8_t*)msg, 8)))
+ return ret;
+
+ return 0;
+}
+
static int dnpds40_set_counter_p(struct dnpds40_ctx *ctx, char *arg)
{
struct dnpds40_cmd cmd;
@@ -1480,12 +1557,14 @@ static int dnpds40_set_counter_p(struct dnpds40_ctx *ctx, char *arg)
static void dnpds40_cmdline(void)
{
DEBUG("\t\t[ -i ] # Query printer info\n");
+ DEBUG("\t\t[ -I ] # Query sensor info\n");
DEBUG("\t\t[ -s ] # Query status\n");
DEBUG("\t\t[ -n ] # Query counters\n");
DEBUG("\t\t[ -N A|B|M ] # Clear counter A/B/M\n");
DEBUG("\t\t[ -p num ] # Set counter P\n");
- DEBUG("\t\t[ -S num ] # Set standby time (1-99 minutes, 0 disables)\n");
-
+ DEBUG("\t\t[ -k num ] # Set standby time (1-99 minutes, 0 disables)\n");
+ DEBUG("\t\t[ -K num ] # Keep Media Status Across Power Cycles (1 on, 0 off)\n");
+ DEBUG("\t\t[ -x num ] # Set USB iSerialNumber Reporting (1 on, 0 off)\n");
}
static int dnpds40_cmdline_arg(void *vctx, int argc, char **argv)
@@ -1493,64 +1572,86 @@ static int dnpds40_cmdline_arg(void *vctx, int argc, char **argv)
struct dnpds40_ctx *ctx = vctx;
int i, j = 0;
+ if (!ctx)
+ return -1;
+
/* Reset arg parsing */
optind = 1;
opterr = 0;
- while ((i = getopt(argc, argv, "inN:p:sS:")) >= 0) {
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "iInN:p:sK:k:")) >= 0) {
switch(i) {
+ GETOPT_PROCESS_GLOBAL
case 'i':
- if (ctx) {
- j = dnpds40_get_info(ctx);
- break;
- }
- return 1;
+ j = dnpds40_get_info(ctx);
+ break;
+ case 'I':
+ j = dnpds40_get_sensors(ctx);
+ break;
case 'n':
- if (ctx) {
- j = dnpds40_get_counters(ctx);
- break;
- }
- return 1;
+ j = dnpds40_get_counters(ctx);
+ break;
case 'N':
if (optarg[0] != 'A' &&
optarg[0] != 'B' &&
optarg[0] != 'M')
return CUPS_BACKEND_FAILED;
- if (ctx) {
- if (!ctx->supports_matte) {
- ERROR("Printer FW does not support matte functions, please update!\n");
- return CUPS_BACKEND_FAILED;
- }
- j = dnpds40_clear_counter(ctx, optarg[0]);
- break;
+ if (!ctx->supports_matte) {
+ ERROR("Printer FW does not support matte functions, please update!\n");
+ return CUPS_BACKEND_FAILED;
}
- return 1;
+ j = dnpds40_clear_counter(ctx, optarg[0]);
+ break;
case 'p':
- if (ctx) {
- j = dnpds40_set_counter_p(ctx, optarg);
+ j = dnpds40_set_counter_p(ctx, optarg);
+ break;
+ case 's':
+ j = dnpds40_get_status(ctx);
+ break;
+ case 'k': {
+ int time = atoi(optarg);
+ if (!ctx->supports_standby) {
+ ERROR("Printer does not support standby\n");
+ j = -1;
break;
}
- return 1;
- case 's':
- if (ctx) {
- j = dnpds40_get_status(ctx);
+ if (time < 0 || time > 99) {
+ ERROR("Value out of range (0-99)");
+ j = -1;
break;
}
- return 1;
- case 'S':
- if (ctx) {
- int time = atoi(optarg);
- if (!ctx->supports_standby) {
- ERROR("Printer does not support standby\n");
- j = -1;
- break;
- }
- if (time < 0 || time > 99) {
- ERROR("Value out of range (0-99)");
- j = -1;
- break;
- }
- j = dnpds620_standby_mode(ctx, time);
+ j = dnpds620_standby_mode(ctx, time);
+ break;
+ }
+ case 'K': {
+ int keep = atoi(optarg);
+ if (!ctx->supports_standby) {
+ ERROR("Printer does not support media keep mode\n");
+ j = -1;
+ break;
+ }
+ if (keep < 0 || keep > 1) {
+ ERROR("Value out of range (0-1)");
+ j = -1;
+ break;
}
+ j = dnpds620_media_keep_mode(ctx, keep);
+ break;
+ }
+ case 'x': {
+ int enable = atoi(optarg);
+ if (!ctx->supports_iserial) {
+ ERROR("Printer does not support USB iSerialNumber reporting\n");
+ j = -1;
+ break;
+ }
+ if (enable < 0 || enable > 1) {
+ ERROR("Value out of range (0-1)");
+ j = -1;
+ break;
+ }
+ j = dnpds620_iserial_mode(ctx, enable);
+ break;
+ }
default:
break; /* Ignore completely */
}
@@ -1564,7 +1665,7 @@ static int dnpds40_cmdline_arg(void *vctx, int argc, char **argv)
/* Exported */
struct dyesub_backend dnpds40_backend = {
.name = "DNP DS40/DS80/DSRX1/DS620",
- .version = "0.51",
+ .version = "0.61",
.uri_prefix = "dnpds40",
.cmdline_usage = dnpds40_cmdline,
.cmdline_arg = dnpds40_cmdline_arg,
diff --git a/src/cups/genppd.c b/src/cups/genppd.c
index e868444..8633611 100644
--- a/src/cups/genppd.c
+++ b/src/cups/genppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: genppd.c,v 1.197 2015/06/25 01:48:02 speachy Exp $"
+ * "$Id: genppd.c,v 1.204 2015/09/13 14:37:16 speachy Exp $"
*
* PPD file generation program for the CUPS drivers.
*
@@ -579,8 +579,6 @@ main(int argc, /* I - Number of command-line arguments */
models[n] = argv[optind+n];
}
models[numargs] = (char*)NULL;
-
- n=0;
}
/*
@@ -1144,12 +1142,13 @@ print_ppd_header(gpFile fp, ppd_type_t ppd_type, int model, const char *driver,
}
static void
-print_ppd_header_3(gpFile fp, ppd_type_t ppd_type, int model, const char *driver,
- const char *family, const char *long_name,
- const char *manufacturer, const char *device_id,
- const char *ppd_location,
- const char *language, const stp_string_list_t *po,
- char **all_langs)
+print_ppd_header_3(gpFile fp, ppd_type_t ppd_type, int model,
+ const char *driver,
+ const char *family, const char *long_name,
+ const char *manufacturer, const char *device_id,
+ const char *ppd_location,
+ const char *language, const stp_string_list_t *po,
+ char **all_langs)
{
int i;
gpputs(fp, "*FileSystem: False\n");
@@ -1157,7 +1156,7 @@ print_ppd_header_3(gpFile fp, ppd_type_t ppd_type, int model, const char *driver
gpputs(fp, "*TTRasterizer: Type42\n");
gpputs(fp, "*cupsVersion: 1.2\n");
- gpputs(fp, "*cupsManualCopies: True\n");
+
gpprintf(fp, "*cupsFilter: \"application/vnd.cups-raster 100 rastertogutenprint.%s\"\n", GUTENPRINT_RELEASE_VERSION);
if (strcasecmp(manufacturer, "EPSON") == 0)
gpputs(fp, "*cupsFilter: \"application/vnd.cups-command 33 commandtoepson\"\n");
@@ -1946,6 +1945,7 @@ write_ppd(
const char *manufacturer; /* Manufacturer of printer */
const char *device_id; /* IEEE1284 device ID */
const stp_vars_t *printvars; /* Printer option names */
+ int nativecopies = 0; /* Printer natively generates copies */
stp_parameter_t desc;
stp_parameter_list_t param_list;
const stp_param_string_t *opt;
@@ -2004,9 +2004,21 @@ write_ppd(
}
stp_parameter_description_destroy(&desc);
- print_ppd_header_3(fp, ppd_type, model, driver, family, long_name,
- manufacturer, device_id, ppd_location, language, po,
- all_langs);
+ stp_describe_parameter(v, "NativeCopies", &desc);
+ if (desc.p_type == STP_PARAMETER_TYPE_BOOLEAN)
+ nativecopies = stp_get_boolean_parameter(v, "NativeCopies");
+
+ stp_parameter_description_destroy(&desc);
+
+ if (nativecopies)
+ gpputs(fp, "*cupsManualCopies: False\n");
+ else
+ gpputs(fp, "*cupsManualCopies: True\n");
+
+ print_ppd_header_3(fp, ppd_type, model,
+ driver, family, long_name,
+ manufacturer, device_id, ppd_location, language, po,
+ all_langs);
/* Macintosh color management */
@@ -2426,6 +2438,33 @@ write_ppd(
}
stp_parameter_description_destroy(&desc);
+ /* Constraints */
+ stp_describe_parameter(v, "PPDUIConstraints", &desc);
+ if (desc.is_active && desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
+ {
+ num_opts = stp_string_list_count(desc.bounds.str);
+ if (num_opts > 0)
+ {
+ gpputs(fp, "*% ===== Constraints ===== \n");
+ for (i = 0; i < num_opts; i++)
+ {
+ char *opt1, *opt2;
+ opt = stp_string_list_param(desc.bounds.str, i);
+ opt1 = stp_strdup(opt->text);
+ opt2 = strrchr(opt1, '*');
+ if (opt2)
+ {
+ opt2[-1] = 0;
+ gpprintf(fp, "*%s: %s %s\n", opt->name, opt1, opt2);
+ gpprintf(fp, "*%s: %s %s\n", opt->name, opt2, opt1);
+ }
+ stp_free(opt1);
+ }
+ gpputs(fp, "\n");
+ }
+ }
+ stp_parameter_description_destroy(&desc);
+
if (!language)
{
/*
@@ -2554,7 +2593,7 @@ write_ppd(
}
}
stp_parameter_description_destroy(&desc);
-
+
/*
* Quality settings
*/
@@ -2708,5 +2747,5 @@ write_ppd(
/*
- * End of "$Id: genppd.c,v 1.197 2015/06/25 01:48:02 speachy Exp $".
+ * End of "$Id: genppd.c,v 1.204 2015/09/13 14:37:16 speachy Exp $".
*/
diff --git a/src/cups/kodak1400_print.c b/src/cups/kodak1400_print.c
index 1921bb4..c8e257c 100644
--- a/src/cups/kodak1400_print.c
+++ b/src/cups/kodak1400_print.c
@@ -35,6 +35,8 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND kodak1400_backend
+
#include "backend_common.h"
/* Program states */
@@ -77,6 +79,7 @@ struct kodak1400_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
struct kodak1400_hdr hdr;
uint8_t *plane_r;
@@ -258,17 +261,18 @@ int kodak1400_cmdline_arg(void *vctx, int argc, char **argv)
struct kodak1400_ctx *ctx = vctx;
int i, j = 0;
+ if (!ctx)
+ return -1;
+
/* Reset arg parsing */
optind = 1;
opterr = 0;
- while ((i = getopt(argc, argv, "C:")) >= 0) {
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "C:")) >= 0) {
switch(i) {
+ GETOPT_PROCESS_GLOBAL
case 'C':
- if (ctx) {
- j = kodak1400_set_tonecurve(ctx, optarg);
- break;
- }
- return 1;
+ j = kodak1400_set_tonecurve(ctx, optarg);
+ break;
default:
break; /* Ignore completely */
}
@@ -295,14 +299,21 @@ static void kodak1400_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct kodak1400_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
UNUSED(jobid);
ctx->dev = dev;
ctx->endp_up = endp_up;
ctx->endp_down = endp_down;
-}
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+ ctx->type = lookup_printer_type(&kodak1400_backend,
+ desc.idVendor, desc.idProduct);
+}
static void kodak1400_teardown(void *vctx) {
struct kodak1400_ctx *ctx = vctx;
@@ -603,7 +614,7 @@ top:
struct dyesub_backend kodak1400_backend = {
.name = "Kodak 1400/805",
- .version = "0.33",
+ .version = "0.34",
.uri_prefix = "kodak1400",
.cmdline_usage = kodak1400_cmdline,
.cmdline_arg = kodak1400_cmdline_arg,
@@ -739,7 +750,8 @@ struct dyesub_backend kodak1400_backend = {
Other readback codes seen:
- e4 72 00 00 10 00 50 59 -- ???
+ e4 72 00 00 40 00 50 59 -- ?? paper jam?
+ e4 72 00 00 10 00 50 59 -- media red blink, error red blink, [media mismatch]]
e4 72 00 00 10 01 50 59 -- ???
e4 72 00 00 00 04 50 59 -- media red blink, error red [media too small for image ?]
e4 72 00 00 02 00 50 59 -- media off, error red. [out of paper]
diff --git a/src/cups/kodak605_print.c b/src/cups/kodak605_print.c
index 544eb72..ad2e6bf 100644
--- a/src/cups/kodak605_print.c
+++ b/src/cups/kodak605_print.c
@@ -35,38 +35,116 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND kodak605_backend
+
#include "backend_common.h"
#define USB_VID_KODAK 0x040A
#define USB_PID_KODAK_605 0x402E
+/* Command Header */
+struct kodak605_cmd {
+ uint16_t cmd; /* LE */
+ uint16_t len; /* LE, not counting this header */
+} __attribute__((packed));
+
+struct kodak605_sts_hdr {
+ uint8_t result; /* RESULT_* */
+ uint8_t unk_1[5]; /* 00 00 00 00 00 */
+ uint8_t sts_1; /* 01/02 */
+ uint8_t sts_2; /* 00/61->6b ?? temperature? */
+ uint16_t length; /* LE, not counting this header */
+} __attribute__((packed));
+
+#define RESULT_SUCCESS 0x01
+#define RESULT_FAIL 0x02
+
/* Media structure */
struct kodak605_medium {
uint8_t index;
uint16_t cols; /* LE */
uint16_t rows; /* LE */
- uint8_t unk[5]; /* 01 00 00 00 00 */
+ uint8_t type; /* MEDIA_TYPE_* */
+ uint8_t unk[4]; /* 00 00 00 00 */
} __attribute__((packed));
+#define MEDIA_TYPE_UNKNOWN 0x00
+#define MEDIA_TYPE_PAPER 0x01
+
struct kodak605_media_list {
- uint8_t unk[12]; /* 01 00 00 00 00 00 02 00 67 00 02 0b */
+ struct kodak605_sts_hdr hdr;
+ uint8_t unk; /* always seen 02 */
+ uint8_t type; /* KODAK_MEDIA_* */
uint8_t count;
struct kodak605_medium entries[];
} __attribute__((packed));
+#define KODAK_MEDIA_6R 0x0b
+#define KODAK_MEDIA_NONE 0x00
+
+#define MAX_MEDIA_LEN 128
+
+/* Status response */
+struct kodak605_status {
+ struct kodak605_sts_hdr hdr;
+/*@10*/ uint32_t ctr_life; /* Lifetime Prints */
+ uint32_t ctr_maint; /* Prints since last maintainence */
+ uint32_t ctr_media; /* Prints on current media */
+ uint32_t ctr_cut; /* Cutter Actuations */
+ uint32_t ctr_head; /* Prints on current head */
+/*@30*/ uint8_t donor; /* Donor Percentage remaining */
+/*@31*/ uint8_t null_1[7]; /* 00 00 00 00 00 00 00 */
+/*@38*/ uint8_t b1_id; /* 00/01/02 */
+ uint16_t b1_remain;
+ uint16_t b1_complete;
+ uint16_t b1_total;
+/*@45*/ uint8_t b1_sts; /* See BANK_STATUS_* */
+ uint8_t b2_id; /* 00/01/02 */
+ uint16_t b2_remain;
+ uint16_t b2_complete;
+ uint16_t b2_total;
+/*@53*/ uint8_t b2_sts; /* see BANK_STATUS_* */
+/*@54*/ uint8_t id; /* current job id ( 00/01/02 seen ) */
+/*@55*/ uint16_t remain; /* in current job */
+/*@57*/ uint16_t complete; /* in current job */
+/*@59*/ uint16_t total; /* in current job */
+/*@61*/ uint8_t null_2[9]; /* 00 00 00 00 00 00 00 00 00 */
+/*@70*/ uint8_t unk_12[6]; /* 01 00 00 00 00 00 */
+} __attribute__((packed));
+
/* File header */
struct kodak605_hdr {
uint8_t hdr[4]; /* 01 40 0a 00 */
- uint8_t unk1; /* 01 or 02 */
- uint8_t copies; /* 01 or more */
- uint8_t unk2; /* always 00 */
- uint16_t columns; /* BE always 0x0734 */
- uint16_t rows; /* BE */
+ uint8_t jobid;
+ uint16_t copies; /* LE, 0x0001 or more */
+ uint16_t columns; /* LE, always 0x0734 */
+ uint16_t rows; /* LE */
uint8_t media; /* 0x03 for 6x8, 0x01 for 6x4 */
uint8_t laminate; /* 0x02 to laminate, 0x01 for not */
- uint8_t unk3; /* 0x00, 0x01 [may be print mode] */
+ uint8_t mode; /* Print mode -- 0x00, 0x01 seen */
} __attribute__((packed));
+#define BANK_STATUS_FREE 0x00
+#define BANK_STATUS_XFER 0x01
+#define BANK_STATUS_FULL 0x02
+#define BANK_STATUS_PRINTING 0x12
+
+static char *bank_statuses(uint8_t v)
+{
+ switch (v) {
+ case BANK_STATUS_FREE:
+ return "Free";
+ case BANK_STATUS_XFER:
+ return "Xfer";
+ case BANK_STATUS_FULL:
+ return "Full";
+ case BANK_STATUS_PRINTING:
+ return "Printing";
+ default:
+ return "Unknown";
+ }
+}
+
#define CMDBUF_LEN 4
/* Private data stucture */
@@ -74,23 +152,50 @@ struct kodak605_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
+ uint8_t jobid;
struct kodak605_hdr hdr;
+
+ struct kodak605_media_list *media;
+
uint8_t *databuf;
int datalen;
};
-/* Program states */
-enum {
- S_IDLE = 0,
- S_READY,
- S_STARTED,
- S_SENT_HDR,
- S_SENT_DATA,
- S_FINISHED,
-};
+static int kodak605_get_media(struct kodak605_ctx *ctx, struct kodak605_media_list *media)
+{
+ uint8_t cmdbuf[4];
+
+ int ret, num = 0;
+
+ /* Send Media Query */
+ cmdbuf[0] = 0x02;
+ cmdbuf[1] = 0x00;
+ cmdbuf[2] = 0x00;
+ cmdbuf[3] = 0x00;
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmdbuf, sizeof(cmdbuf))))
+ return ret;
-#define READBACK_LEN 120
+ /* Read in the printer status */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ (uint8_t*) media, MAX_MEDIA_LEN, &num);
+ if (ret < 0)
+ return ret;
+
+ if (num < (int)sizeof(*media)) {
+ ERROR("Short Read! (%d/%d)\n", num, (int)sizeof(*media));
+ return CUPS_BACKEND_FAILED;
+ }
+
+ if (media->hdr.result != RESULT_SUCCESS) {
+ ERROR("Unexpected response from media query (%x)!\n", media->hdr.result);
+ return CUPS_BACKEND_FAILED;
+ }
+
+ return 0;
+}
static void *kodak605_init(void)
{
@@ -101,6 +206,10 @@ static void *kodak605_init(void)
}
memset(ctx, 0, sizeof(struct kodak605_ctx));
+ ctx->media = malloc(MAX_MEDIA_LEN);
+
+ ctx->type = P_ANY;
+
return ctx;
}
@@ -111,15 +220,23 @@ static void kodak605_attach(void *vctx, struct libusb_device_handle *dev,
struct libusb_device *device;
struct libusb_device_descriptor desc;
- UNUSED(jobid);
-
- ctx->dev = dev;
+ ctx->dev = dev;
ctx->endp_up = endp_up;
ctx->endp_down = endp_down;
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
+ ctx->type = lookup_printer_type(&kodak605_backend,
+ desc.idVendor, desc.idProduct);
+
+ /* Make sure jobid is sane */
+ ctx->jobid = (jobid & 0x7f) + 1;
+
+ /* Query media info */
+ if (kodak605_get_media(ctx, ctx->media)) {
+ ERROR("Can't query media\n");
+ }
}
static void kodak605_teardown(void *vctx) {
@@ -190,236 +307,176 @@ static int kodak605_read_parse(void *vctx, int data_fd) {
return CUPS_BACKEND_OK;
}
-static int kodak605_main_loop(void *vctx, int copies) {
- struct kodak605_ctx *ctx = vctx;
-
- uint8_t rdbuf[READBACK_LEN];
- uint8_t rdbuf2[READBACK_LEN];
- uint8_t cmdbuf[CMDBUF_LEN];
-
- int last_state = -1, state = S_IDLE;
- int num, ret;
- int pending = 0;
-
- if (!ctx)
- return CUPS_BACKEND_FAILED;
-
- /* Printer handles generating copies.. */
- if (ctx->hdr.copies < copies)
- ctx->hdr.copies = copies;
- copies = 1;
-
-top:
- if (state != last_state) {
- if (dyesub_debug)
- DEBUG("last_state %d new %d\n", last_state, state);
- }
+static int kodak605_get_status(struct kodak605_ctx *ctx, struct kodak605_status *sts)
+{
+ uint8_t cmdbuf[4];
- if (pending)
- goto skip_query;
+ int ret, num = 0;
/* Send Status Query */
cmdbuf[0] = 0x01;
cmdbuf[1] = 0x00;
cmdbuf[2] = 0x00;
cmdbuf[3] = 0x00;
-
if ((ret = send_data(ctx->dev, ctx->endp_down,
- cmdbuf, CMDBUF_LEN)))
- return CUPS_BACKEND_FAILED;
+ cmdbuf, sizeof(cmdbuf))))
+ return ret;
-skip_query:
/* Read in the printer status */
ret = read_data(ctx->dev, ctx->endp_up,
- rdbuf, READBACK_LEN, &num);
+ (uint8_t*) sts, sizeof(*sts), &num);
if (ret < 0)
return ret;
- if (num < 10) {
- ERROR("Short read! (%d/%d)\n", num, 10);
+ if (num < (int)sizeof(*sts)) {
+ ERROR("Short Read! (%d/%d)\n", num, (int)sizeof(*sts));
return CUPS_BACKEND_FAILED;
}
- if (num != 10 && num != 76 && num != 113) {
- ERROR("Unexpected readback from printer (%d/%d from 0x%02x))\n",
- num, READBACK_LEN, ctx->endp_up);
+ if (sts->hdr.result != RESULT_SUCCESS) {
+ ERROR("Unexpected response from status query (%x)!\n", sts->hdr.result);
return CUPS_BACKEND_FAILED;
}
- if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
- memcpy(rdbuf2, rdbuf, READBACK_LEN);
- } else if (state == last_state) {
- sleep(1);
- }
- last_state = state;
+ return 0;
+}
+
+static int kodak605_main_loop(void *vctx, int copies) {
+ struct kodak605_ctx *ctx = vctx;
- fflush(stderr);
+ struct kodak605_status sts;
- pending = 0;
+ int num, ret;
- switch (state) {
- case S_IDLE:
- INFO("Waiting for printer idle\n");
-#if 0
- if (rdbuf[0] != 0x01 ||
- rdbuf[1] != 0x02 ||
- rdbuf[2] != 0x01) {
- break;
- }
-#endif
- // XXX detect media type based on readback!
+ if (!ctx)
+ return CUPS_BACKEND_FAILED;
- INFO("Printing started; Sending init sequence\n");
- state = S_STARTED;
+ /* Printer handles generating copies.. */
+ if (le16_to_cpu(ctx->hdr.copies) < copies)
+ ctx->hdr.copies = cpu_to_le16(copies);
- break;
- case S_STARTED:
-#if 0
- if (rdbuf[0] != 0x01 ||
- rdbuf[2] != 0x00)
+ /* Validate against supported media list */
+ for (num = 0 ; num < ctx->media->count; num++) {
+ if (ctx->media->entries[num].rows == ctx->hdr.rows &&
+ ctx->media->entries[num].cols == ctx->hdr.columns)
break;
+ }
+ if (num == ctx->media->count) {
+ ERROR("Print size unsupported by media!\n");
+ return CUPS_BACKEND_HOLD;
+ }
- /* Aappears to depend on media */
- if (rdbuf[1] != 0x0b &&
- rdbuf[1] != 0x03)
- break;
-#endif
+ /* Use specified jobid */
+ ctx->hdr.jobid = ctx->jobid;
- INFO("Sending image header\n");
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- (uint8_t*)&ctx->hdr, sizeof(ctx->hdr))))
- return CUPS_BACKEND_FAILED;
- pending = 1;
- state = S_SENT_HDR;
- break;
- case S_SENT_HDR:
- INFO("Waiting for printer to accept data\n");
- if (rdbuf[0] != 0x01 ||
- rdbuf[6] == 0x00 ||
- num != 10) {
- break;
- }
- INFO("Sending image data\n");
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- ctx->databuf, ctx->datalen)))
+ INFO("Waiting for printer idle\n");
+
+ while(1) {
+ if ((ret = kodak605_get_status(ctx, &sts)))
return CUPS_BACKEND_FAILED;
- INFO("Image data sent\n");
- sleep(1); /* An experiment */
- state = S_SENT_DATA;
- break;
- case S_SENT_DATA:
- INFO("Waiting for printer to acknowledge completion\n");
-#if 0
- if (rdbuf[0] != 0x01 ||
- rdbuf[1] != 0x02 ||
- rdbuf[2] != 0x01) {
+ // XXX check for errors
+
+ /* Wait for a free buffer */
+ if (sts.b1_sts == BANK_STATUS_FREE ||
+ sts.b2_sts == BANK_STATUS_FREE) {
break;
}
-#endif
- state = S_FINISHED;
- break;
- default:
- break;
- };
- if (state != S_FINISHED)
- goto top;
+ sleep(1);
+ }
- /* Clean up */
- if (terminate)
- copies = 1;
+ {
+ INFO("Sending image header\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ (uint8_t*)&ctx->hdr, sizeof(ctx->hdr))))
+ return CUPS_BACKEND_FAILED;
- INFO("Print complete (%d copies remaining)\n", copies - 1);
+ struct kodak605_sts_hdr resp;
+ if ((ret = read_data(ctx->dev, ctx->endp_up,
+ (uint8_t*) &resp, sizeof(resp), &num)))
+ return CUPS_BACKEND_FAILED;
- if (copies && --copies) {
- state = S_IDLE;
- goto top;
+ if (resp.result != RESULT_SUCCESS) {
+ ERROR("Unexpected response from print command (%x)!\n", resp.result);
+ return CUPS_BACKEND_FAILED;
+ }
+ // XXX what about resp.sts1 or resp.sts2?
}
+ sleep(1);
- return CUPS_BACKEND_OK;
-}
+ INFO("Sending image data\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf, ctx->datalen)))
+ return CUPS_BACKEND_FAILED;
-static int kodak605_get_status(struct kodak605_ctx *ctx)
-{
- uint8_t cmdbuf[4];
- uint8_t rdbuf[76];
+ INFO("Image data sent\n");
- int ret, i, num = 0;
+ INFO("Waiting for printer to acknowledge completion\n");
+ do {
+ sleep(1);
+ if ((ret = kodak605_get_status(ctx, &sts)))
+ return CUPS_BACKEND_FAILED;
- /* Send Status Query */
- cmdbuf[0] = 0x01;
- cmdbuf[1] = 0x00;
- cmdbuf[2] = 0x00;
- cmdbuf[3] = 0x00;
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- cmdbuf, sizeof(cmdbuf))))
- return ret;
+ // XXX check for errors ?
- /* Read in the printer status */
- ret = read_data(ctx->dev, ctx->endp_up,
- rdbuf, READBACK_LEN, &num);
- if (ret < 0)
- return ret;
+ /* Wait for completion */
+ if (sts.b1_id == ctx->jobid && sts.b1_complete == sts.b1_total)
+ break;
+ if (sts.b2_id == ctx->jobid && sts.b2_complete == sts.b2_total)
+ break;
- if (num < (int)sizeof(rdbuf)) {
- ERROR("Short Read! (%d/%d)\n", num, (int)sizeof(rdbuf));
- return 4;
- }
+ if (fast_return) {
+ INFO("Fast return mode enabled.\n");
+ break;
+ }
+ } while(1);
- DEBUG("status: ");
- for (i = 0 ; i < num ; i++) {
- DEBUG2("%02x ", rdbuf[i]);
- }
+ INFO("Print complete\n");
- return 0;
+ return CUPS_BACKEND_OK;
+}
+
+static void kodak605_dump_status(struct kodak605_status *sts)
+{
+ INFO("Bank 1: %s Job %03u @ %03u/%03u\n",
+ bank_statuses(sts->b1_sts), sts->b1_id,
+ le16_to_cpu(sts->b1_complete), le16_to_cpu(sts->b1_complete));
+ INFO("Bank 2: %s Job %03u @ %03u/%03u\n",
+ bank_statuses(sts->b2_sts), sts->b2_id,
+ le16_to_cpu(sts->b2_complete), le16_to_cpu(sts->b2_complete));
+
+ INFO("Lifetime prints : %d\n", be32_to_cpu(sts->ctr_life));
+ INFO("Cutter actuations : %d\n", be32_to_cpu(sts->ctr_cut));
+ INFO("Head prints : %d\n", be32_to_cpu(sts->ctr_head));
+ INFO("Media prints : %d\n", be32_to_cpu(sts->ctr_media));
+ INFO("Donor : %d%%\n", sts->donor);
}
static void kodak605_dump_mediainfo(struct kodak605_media_list *media)
{
int i;
+ if (media->type == KODAK_MEDIA_NONE) {
+ DEBUG("No Media Loaded\n");
+ return;
+ }
+
+ if (media->type == KODAK_MEDIA_6R) {
+ DEBUG("Media type: 6R (Kodak 197-4096 or equivalent)\n");
+ } else {
+ DEBUG("Media type %02x (unknown, please report!)\n", media->type);
+ }
+
DEBUG("Legal print sizes:\n");
for (i = 0 ; i < media->count ; i++) {
- DEBUG("\t%d: %dx%d\n", i,
+ DEBUG("\t%d: %dx%d\n", i,
le16_to_cpu(media->entries[i].cols),
le16_to_cpu(media->entries[i].rows));
}
DEBUG("\n");
}
-static int kodak605_get_media(struct kodak605_ctx *ctx)
-{
- uint8_t cmdbuf[4];
- uint8_t rdbuf[113];
-
- int ret, num = 0;
-
- /* Send Media Query */
- cmdbuf[0] = 0x02;
- cmdbuf[1] = 0x00;
- cmdbuf[2] = 0x00;
- cmdbuf[3] = 0x00;
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- cmdbuf, sizeof(cmdbuf))))
- return ret;
-
- /* Read in the printer status */
- ret = read_data(ctx->dev, ctx->endp_up,
- rdbuf, READBACK_LEN, &num);
- if (ret < 0)
- return ret;
-
- if (num < (int)sizeof(rdbuf)) {
- ERROR("Short Read! (%d/%d)\n", num, (int)sizeof(rdbuf));
- return 4;
- }
-
- kodak605_dump_mediainfo((struct kodak605_media_list *)rdbuf);
-
- return 0;
-}
-
#define UPDATE_SIZE 1536
static int kodak605_set_tonecurve(struct kodak605_ctx *ctx, char *fname)
{
@@ -507,29 +564,29 @@ static int kodak605_cmdline_arg(void *vctx, int argc, char **argv)
struct kodak605_ctx *ctx = vctx;
int i, j = 0;
+ if (!ctx)
+ return -1;
+
/* Reset arg parsing */
optind = 1;
opterr = 0;
- while ((i = getopt(argc, argv, "C:ms")) >= 0) {
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "C:ms")) >= 0) {
switch(i) {
+ GETOPT_PROCESS_GLOBAL
case 'C':
- if (ctx) {
- j = kodak605_set_tonecurve(ctx, optarg);
- break;
- }
- return 1;
+ j = kodak605_set_tonecurve(ctx, optarg);
+ break;
case 'm':
- if (ctx) {
- j = kodak605_get_media(ctx);
- break;
- }
- return 1;
- case 's':
- if (ctx) {
- j = kodak605_get_status(ctx);
- break;
- }
- return 1;
+ kodak605_dump_mediainfo(ctx->media);
+ break;
+ case 's': {
+ struct kodak605_status sts;
+
+ j = kodak605_get_status(ctx, &sts);
+ if (!j)
+ kodak605_dump_status(&sts);
+ break;
+ }
default:
break; /* Ignore completely */
}
@@ -543,7 +600,7 @@ static int kodak605_cmdline_arg(void *vctx, int argc, char **argv)
/* Exported */
struct dyesub_backend kodak605_backend = {
.name = "Kodak 605",
- .version = "0.21",
+ .version = "0.24",
.uri_prefix = "kodak605",
.cmdline_usage = kodak605_cmdline,
.cmdline_arg = kodak605_cmdline_arg,
@@ -563,76 +620,23 @@ struct dyesub_backend kodak605_backend = {
Spool file consists of 14-byte header followed by plane-interleaved BGR data.
Native printer resolution is 1844 pixels per row, and 1240 or 2434 rows.
+ All fields are LITTLE ENDIAN unless otherwise specified
+
Header:
01 40 0a 00 Fixed header
- XX Unknown, always 01 in file, but 02 seen in sniffs sometimes
- CC Number of copies (1-255)
- 00 Always 0x00
- WW WW Number of columns, little endian. (Fixed at 1844)
- HH HH Number of rows, little endian. (1240 or 2434)
+ XX Job ID
+ CC CC Number of copies (1-???)
+ WW WW Number of columns (Fixed at 1844)
+ HH HH Number of rows (1240 or 2434)
DD 0x01 (4x6) 0x03 (8x6)
LL Laminate, 0x01 (off) or 0x02 (on)
- 00
+ 00 Print Mode (???)
************************************************************************
- Kodak 605 Printer Comms:
-
- [[file header]] 01 40 0a 00 01 CC 00 WW WW HH HH MT LL 00
-
--> 01 00 00 00
-<- [76 bytes -- status ]
-
- 01 00 00 00 00 00 02 00 42 00 30 00 00 00 30 00
- 00 00 13 00 00 00 75 00 00 00 30 00 00 00 5d 00
- 00 00 00 00 00 00 01 01 00 00 00 01 00 20 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 01 00 00 00 00 00
-
--> 01 00 00 00
-<- [76 bytes -- status ]
+ Note: Kodak 605 is actually a Shinko CHC-S1545-5A
- 01 00 00 00 00 00 02 00 42 00 30 00 00 00 30 00
- 00 00 13 00 00 00 75 00 00 00 30 00 00 00 5d 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 01 00 00 00 00 00
-
-
--> 02 00 00 00
-<- [113 bytes -- supported media/sizes? Always seems to be identical ]
-
- [ 13-byte header, plus 10 slots for 10-byte media definitions, see above ]
-
- 01 00 00 00 00 00 02 00 67 00 02 0b 04 01 34 07
- d8 04 01 00 00 00 00 02 dc 05 34 08 01 00 00 00
- 00 03 34 07 82 09 01 00 00 00 00 04 34 07 ba 09
- 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00
-
--> 01 40 0a 00 01 01 00 34 07 d8 04 01 02 00 [[ unmodified header ]]
-<- 01 00 00 00 00 00 XX 00 00 00 [[ Seen 0x01 and 0x02 ]
--> image data!
--> image data!
-
--> 01 00 00 00
-<- [76 bytes -- status ?? ]
-
- 01 00 00 00 00 00 01 00 42 00 31 00 00 00 31 00
- 00 00 14 00 00 00 77 00 00 00 31 00 00 00 5d 00
- 00 00 00 00 00 00 01 00 00 01 00 01 00 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 01 00 00 00 00 00
-
- Write tone curve data:
-
--> 04 c0 0a 00 03 01 00 00 00 00 LL LL 00 00 [[ LL LL == 0x0600 in LE ]]
-<- 01 00 00 00 00 00 XX 00 00 00 [[ Seen 0x01 and 0x02 ]
-
--> [[ 1536 bytes of LE tone curve data ]]
+ ************************************************************************
*/
diff --git a/src/cups/kodak6800_print.c b/src/cups/kodak6800_print.c
index 51093b8..1e77850 100644
--- a/src/cups/kodak6800_print.c
+++ b/src/cups/kodak6800_print.c
@@ -39,6 +39,8 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND kodak6800_backend
+
#include "backend_common.h"
#define USB_VID_KODAK 0x040A
@@ -47,50 +49,155 @@
/* File header */
struct kodak6800_hdr {
- uint8_t hdr[9]; /* Always 03 1b 43 48 43 0a 00 04 00 [6850]
- 03 1b 43 48 43 0a 00 01 00 [6800] */
- uint8_t copies;
+ uint8_t hdr[7]; /* Always 03 1b 43 48 43 0a 00 */
+ uint8_t jobid; /* Non-zero */
+ uint16_t copies; /* BE, in BCD format (1-9999) */
uint16_t columns; /* BE */
uint16_t rows; /* BE */
- uint8_t size; /* 0x06 for 6x8, 0x00 for 6x4, 0x07 for 5x7 */
+ uint8_t size; /* 0x06 for 6x8, 0x00 for 6x4, 0x07 for 5x7 */
uint8_t laminate; /* 0x01 to laminate, 0x00 for not */
- uint8_t unk1; /* 0x00 or 0x01 (for 4x6 on 6x8 media) */
+ uint8_t mode; /* 0x00 or 0x01 (for 4x6 on 6x8 media) */
} __attribute__((packed));
struct kodak68x0_status_readback {
uint8_t hdr; /* Always 01 */
- uint8_t sts1; /* Always 0x02 (idle) or 0x01 (busy) */
- uint8_t sts2; /* 0x01 == ready, 0x02 == no media, 0x03 == not ready */
- uint8_t errtype; /* 0x00 none, 0x80 "control" */
- uint8_t null0[2];
- uint8_t unkA; /* 0x00 or 0x01 or 0x10 */
+ uint8_t status; /* STATUS_* */
+ uint8_t status1; /* STATUS1_* */
+ uint32_t status2; /* STATUS2_* */
uint8_t errcode; /* Error ## */
- uint32_t ctr0; /* Total Prints (BE) */
- uint32_t ctr1; /* Total Prints (BE) */
- uint32_t ctr2; /* Increments by 1 for each print (6850), unk (6800). BE */
- uint32_t ctr3; /* Increments by 2 for each print. BE */
+ uint32_t lifetime; /* Lifetime Prints (BE) */
+ uint32_t maint; /* Maint Prints (BE) */
+ uint32_t media; /* Media Prints (6850), Unknown (6800) (BE) */
+ uint32_t cutter; /* Cutter Actuations (BE) */
uint8_t nullB[2];
- uint8_t errtype2; /* 0x00 none, 0xd0 "control" */
- uint8_t donor; /* Percentage, 0-100 */
- uint8_t unkC[2]; /* Always 00 03 */
- uint16_t main_fw; /* seen 652, 656, 670 (6850) and 232 (6800) */
- uint8_t unkD[2]; /* Always 00 01 */
- uint16_t dsp_fw; /* Seen 540, 541, 560 (6850) and 131 (6800) */
- uint8_t unk1; /* Seen 0x00, 0x01, 0x03, 0x04 */
- uint8_t null1[2];
- uint8_t unk2; /* Seen 0x01, 0x00 */
- uint8_t null2;
- uint8_t unk3; /* Seen 0x01, 0x00 */
- uint8_t null4;
- uint8_t unk4; /* Seen 0x01, 0x00 */
- uint8_t null5[7];
+ uint8_t errtype; /* seen 0x00 or 0xd0 */
+ uint8_t donor; /* Percentage, 0-100 */
+ uint16_t main_boot; /* Always 003 */
+ uint16_t main_fw; /* seen 652, 656, 670, 671 (6850) and 232 (6800) */
+ uint16_t dsp_boot; /* Always 001 */
+ uint16_t dsp_fw; /* Seen 540, 541, 560 (6850) and 131 (6800) */
+ uint8_t b1_jobid;
+ uint8_t b2_jobid;
+ uint16_t b1_remain; /* Remaining prints in job */
+ uint16_t b1_complete; /* Completed prints in job */
+ uint16_t b1_total; /* Total prints in job */
+ uint16_t b2_remain; /* Remaining prints in job */
+ uint16_t b2_complete; /* Completed prints in job */
+ uint16_t b2_total; /* Total prints in job */
+ uint8_t curve_status; /* Always seems to be 0x00 */
} __attribute__((packed));
+enum {
+ CMD_CODE_OK = 1,
+ CMD_CODE_BAD = 2,
+};
+
+enum {
+ STATUS_PRINTING = 1,
+ STATUS_IDLE = 2,
+};
+
+enum {
+ STATE_STATUS1_STANDBY = 1,
+ STATE_STATUS1_ERROR = 2,
+ STATE_STATUS1_WAIT = 3,
+};
+
+#define STATE_STANDBY_STATUS2 0x0
+
+enum {
+ WAIT_STATUS2_INIT = 0,
+ WAIT_STATUS2_RIBBON = 1,
+ WAIT_STATUS2_THERMAL = 2,
+ WAIT_STATUS2_OPERATING = 3,
+ WAIT_STATUS2_BUSY = 4,
+};
+
+#define ERROR_STATUS2_CTRL_CIRCUIT (1<<31)
+#define ERROR_STATUS2_MECHANISM_CTRL (1<<30)
+#define ERROR_STATUS2_SENSOR (1<<13)
+#define ERROR_STATUS2_COVER_OPEN (1<<12)
+#define ERROR_STATUS2_TEMP_SENSOR (1<<9)
+#define ERROR_STATUS2_PAPER_JAM (1<<8)
+#define ERROR_STATUS2_PAPER_EMPTY (1<<6)
+#define ERROR_STATUS2_RIBBON_ERR (1<<4)
+
+enum {
+ CTRL_CIR_ERROR_EEPROM1 = 0x01,
+ CTRL_CIR_ERROR_EEPROM2 = 0x02,
+ CTRL_CIR_ERROR_DSP = 0x04,
+ CTRL_CIR_ERROR_CRC_MAIN = 0x06,
+ CTRL_CIR_ERROR_DL_MAIN = 0x07,
+ CTRL_CIR_ERROR_CRC_DSP = 0x08,
+ CTRL_CIR_ERROR_DL_DSP = 0x09,
+ CTRL_CIR_ERROR_ASIC = 0x0a,
+ CTRL_CIR_ERROR_DRAM = 0x0b,
+ CTRL_CIR_ERROR_DSPCOMM = 0x29,
+};
+
+enum {
+ MECH_ERROR_HEAD_UP = 0x01,
+ MECH_ERROR_HEAD_DOWN = 0x02,
+ MECH_ERROR_MAIN_PINCH_UP = 0x03,
+ MECH_ERROR_MAIN_PINCH_DOWN = 0x04,
+ MECH_ERROR_SUB_PINCH_UP = 0x05,
+ MECH_ERROR_SUB_PINCH_DOWN = 0x06,
+ MECH_ERROR_FEEDIN_PINCH_UP = 0x07,
+ MECH_ERROR_FEEDIN_PINCH_DOWN = 0x08,
+ MECH_ERROR_FEEDOUT_PINCH_UP = 0x09,
+ MECH_ERROR_FEEDOUT_PINCH_DOWN = 0x0a,
+ MECH_ERROR_CUTTER_LR = 0x0b,
+ MECH_ERROR_CUTTER_RL = 0x0c,
+};
+
+enum {
+ SENSOR_ERROR_CUTTER = 0x05,
+ SENSOR_ERROR_HEAD_DOWN = 0x09,
+ SENSOR_ERROR_HEAD_UP = 0x0a,
+ SENSOR_ERROR_MAIN_PINCH_DOWN = 0x0b,
+ SENSOR_ERROR_MAIN_PINCH_UP = 0x0c,
+ SENSOR_ERROR_FEED_PINCH_DOWN = 0x0d,
+ SENSOR_ERROR_FEED_PINCH_UP = 0x0e,
+ SENSOR_ERROR_EXIT_PINCH_DOWN = 0x0f,
+ SENSOR_ERROR_EXIT_PINCH_UP = 0x10,
+ SENSOR_ERROR_LEFT_CUTTER = 0x11,
+ SENSOR_ERROR_RIGHT_CUTTER = 0x12,
+ SENSOR_ERROR_CENTER_CUTTER = 0x13,
+ SENSOR_ERROR_UPPER_CUTTER = 0x14,
+ SENSOR_ERROR_PAPER_FEED_COVER = 0x15,
+};
+
+enum {
+ TEMP_SENSOR_ERROR_HEAD_HIGH = 0x01,
+ TEMP_SENSOR_ERROR_HEAD_LOW = 0x02,
+ TEMP_SENSOR_ERROR_ENV_HIGH = 0x03,
+ TEMP_SENSOR_ERROR_ENV_LOW = 0x04,
+};
+
+enum {
+ COVER_OPEN_ERROR_UPPER = 0x01,
+ COVER_OPEN_ERROR_LOWER = 0x02,
+};
+
+enum {
+ PAPER_EMPTY_ERROR = 0x00,
+};
+
+enum {
+ RIBBON_ERROR = 0x00,
+};
+
+enum {
+ CURVE_TABLE_STATUS_INITIAL = 0x00,
+ CURVE_TABLE_STATUS_USERSET = 0x01,
+ CURVE_TABLE_STATUS_CURRENT = 0x02,
+};
+
struct kodak6800_printsize {
uint8_t hdr; /* Always 0x06 */
uint16_t width; /* BE */
uint16_t height; /* BE */
- uint8_t hdr2; /* Always 0x01 */
+ uint8_t type; /* MEDIA_TYPE_* [ ie paper ] */
uint8_t code; /* 00, 01, 02, 03, 04, 05 seen. An index? */
uint8_t code2; /* 00, 01 seen. Seems to be 1 only after a 4x6 printed. */
uint8_t null[2];
@@ -106,7 +213,9 @@ struct kodak68x0_media_readback {
struct kodak6800_printsize sizes[];
} __attribute__((packed));
-#define KODAK68x0_MEDIA_6R 0x0b
+#define KODAK68x0_MEDIA_6R 0x0b
+#define KODAK68x0_MEDIA_UNK 0x03
+#define KODAK68x0_MEDIA_NONE 0x00
#define CMDBUF_LEN 17
@@ -117,39 +226,60 @@ struct kodak6800_ctx {
uint8_t endp_down;
int type;
- int media;
+
+ uint8_t jobid;
+
+ struct kodak68x0_media_readback *media;
struct kodak6800_hdr hdr;
uint8_t *databuf;
int datalen;
};
-#define READBACK_LEN 68
-char *kodak68x0_error_codes(uint8_t code1, uint8_t code2)
+/* Baseline commands */
+static int kodak6800_do_cmd(struct kodak6800_ctx *ctx,
+ void *cmd, int cmd_len,
+ void *resp, int resp_len,
+ int *actual_len)
{
- if (code1 == 0x80 && code2 == 0xd0)
- return "Control Error";
+ int ret;
+
+ /* Write command */
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmd, cmd_len)))
+ return (ret < 0) ? ret : -99;
+
+ /* Read response */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ resp, resp_len, actual_len);
+ if (ret < 0)
+ return ret;
- return "Unknown Type (please report!)";
+ return 0;
}
static void kodak68x0_dump_mediainfo(struct kodak68x0_media_readback *media)
{
int i;
+ if (media->media == KODAK68x0_MEDIA_NONE) {
+ INFO("No Media Loaded\n");
+ return;
+ }
+
if (media->media == KODAK68x0_MEDIA_6R) {
- DEBUG("Media type: 6R (Kodak 197-4096 or equivalent)\n");
+ INFO("Media type: 6R (Kodak 197-4096 or equivalent)\n");
} else {
- DEBUG("Media type %02x (unknown, please report!)\n", media->media);
+ INFO("Media type %02x (unknown, please report!)\n", media->media);
}
- DEBUG("Legal print sizes:\n");
+ INFO("Legal print sizes:\n");
for (i = 0 ; i < media->count ; i++) {
- DEBUG("\t%d: %dx%d (%02x) %s\n", i,
+ INFO("\t%d: %dx%d (%02x) %s\n", i,
be16_to_cpu(media->sizes[i].width),
be16_to_cpu(media->sizes[i].height),
media->sizes[i].code,
media->sizes[i].code2? "Disallowed" : "");
}
- DEBUG("\n");
+ INFO("\n");
}
static int kodak6800_get_mediainfo(struct kodak6800_ctx *ctx, struct kodak68x0_media_readback *media)
@@ -167,62 +297,270 @@ static int kodak6800_get_mediainfo(struct kodak6800_ctx *ctx, struct kodak68x0_m
req[4] = 0x43;
req[5] = 0x1a;
- /* Send request */
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- req, sizeof(req))))
- return ret;
-
- /* Get response */
- ret = read_data(ctx->dev, ctx->endp_up,
- (uint8_t*)media, MAX_MEDIA_LEN, &num);
-
- if (ret < 0)
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, req, sizeof(req),
+ media, MAX_MEDIA_LEN,
+ &num)))
return ret;
- if (num < (int)sizeof(*media)) {
- ERROR("Short read! (%d/%d)\n", num, (int) sizeof(*media));
- return 4;
- }
-
/* Validate proper response */
- if (media->hdr != 0x01 ||
+ if (media->hdr != CMD_CODE_OK ||
media->null[0] != 0x00) {
ERROR("Unexpected response from media query!\n");
return CUPS_BACKEND_STOP;
}
- ctx->media = media->media;
+ return 0;
+}
+
+static int kodak68x0_canceljob(struct kodak6800_ctx *ctx,
+ int id)
+{
+ uint8_t req[16];
+ int ret, num;
+ struct kodak68x0_status_readback sts;
+
+ memset(req, 0, sizeof(req));
+
+ req[0] = 0x03;
+ req[1] = 0x1b;
+ req[2] = 0x43;
+ req[3] = 0x48;
+ req[4] = 0x43;
+ req[5] = 0x13;
+ req[6] = id;
+
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, req, sizeof(req),
+ &sts, sizeof(sts),
+ &num)))
+ return ret;
+
+ /* Validate proper response */
+ if (sts.hdr != CMD_CODE_OK) {
+ ERROR("Unexpected response from job cancel!\n");
+ return -99;
+ }
return 0;
}
+/* Structure dumps */
+static char *kodak68x0_status_str(struct kodak68x0_status_readback *resp)
+{
+ switch(resp->status1) {
+ case STATE_STATUS1_STANDBY:
+ return "Standby (Ready)";
+ case STATE_STATUS1_WAIT:
+ switch (be32_to_cpu(resp->status2)) {
+ case WAIT_STATUS2_INIT:
+ return "Wait (Initializing)";
+ case WAIT_STATUS2_RIBBON:
+ return "Wait (Ribbon Winding)";
+ case WAIT_STATUS2_THERMAL:
+ return "Wait (Thermal Protection)";
+ case WAIT_STATUS2_OPERATING:
+ return "Wait (Operating)";
+ case WAIT_STATUS2_BUSY:
+ return "Wait (Busy)";
+ default:
+ return "Wait (Unknown)";
+ }
+ case STATE_STATUS1_ERROR:
+ switch (be32_to_cpu(resp->status2)) {
+ case ERROR_STATUS2_CTRL_CIRCUIT:
+ switch (resp->errcode) {
+ case CTRL_CIR_ERROR_EEPROM1:
+ return "Error (EEPROM1)";
+ case CTRL_CIR_ERROR_EEPROM2:
+ return "Error (EEPROM2)";
+ case CTRL_CIR_ERROR_DSP:
+ return "Error (DSP)";
+ case CTRL_CIR_ERROR_CRC_MAIN:
+ return "Error (Main CRC)";
+ case CTRL_CIR_ERROR_DL_MAIN:
+ return "Error (Main Download)";
+ case CTRL_CIR_ERROR_CRC_DSP:
+ return "Error (DSP CRC)";
+ case CTRL_CIR_ERROR_DL_DSP:
+ return "Error (DSP Download)";
+ case CTRL_CIR_ERROR_ASIC:
+ return "Error (ASIC)";
+ case CTRL_CIR_ERROR_DRAM:
+ return "Error (DRAM)";
+ case CTRL_CIR_ERROR_DSPCOMM:
+ return "Error (DSP Communincation)";
+ default:
+ return "Error (Unknown Circuit)";
+ }
+ case ERROR_STATUS2_MECHANISM_CTRL:
+ switch (resp->errcode) {
+ case MECH_ERROR_HEAD_UP:
+ return "Error (Head Up Mechanism)";
+ case MECH_ERROR_HEAD_DOWN:
+ return "Error (Head Down Mechanism)";
+ case MECH_ERROR_MAIN_PINCH_UP:
+ return "Error (Main Pinch Up Mechanism)";
+ case MECH_ERROR_MAIN_PINCH_DOWN:
+ return "Error (Main Pinch Down Mechanism)";
+ case MECH_ERROR_SUB_PINCH_UP:
+ return "Error (Sub Pinch Up Mechanism)";
+ case MECH_ERROR_SUB_PINCH_DOWN:
+ return "Error (Sub Pinch Down Mechanism)";
+ case MECH_ERROR_FEEDIN_PINCH_UP:
+ return "Error (Feed-in Pinch Up Mechanism)";
+ case MECH_ERROR_FEEDIN_PINCH_DOWN:
+ return "Error (Feed-in Pinch Down Mechanism)";
+ case MECH_ERROR_FEEDOUT_PINCH_UP:
+ return "Error (Feed-out Pinch Up Mechanism)";
+ case MECH_ERROR_FEEDOUT_PINCH_DOWN:
+ return "Error (Feed-out Pinch Down Mechanism)";
+ case MECH_ERROR_CUTTER_LR:
+ return "Error (Left->Right Cutter)";
+ case MECH_ERROR_CUTTER_RL:
+ return "Error (Right->Left Cutter)";
+ default:
+ return "Error (Unknown Mechanism)";
+ }
+ case ERROR_STATUS2_SENSOR:
+ switch (resp->errcode) {
+ case SENSOR_ERROR_CUTTER:
+ return "Error (Cutter Sensor)";
+ case SENSOR_ERROR_HEAD_DOWN:
+ return "Error (Head Down Sensor)";
+ case SENSOR_ERROR_HEAD_UP:
+ return "Error (Head Up Sensor)";
+ case SENSOR_ERROR_MAIN_PINCH_DOWN:
+ return "Error (Main Pinch Down Sensor)";
+ case SENSOR_ERROR_MAIN_PINCH_UP:
+ return "Error (Main Pinch Up Sensor)";
+ case SENSOR_ERROR_FEED_PINCH_DOWN:
+ return "Error (Feed Pinch Down Sensor)";
+ case SENSOR_ERROR_FEED_PINCH_UP:
+ return "Error (Feed Pinch Up Sensor)";
+ case SENSOR_ERROR_EXIT_PINCH_DOWN:
+ return "Error (Exit Pinch Up Sensor)";
+ case SENSOR_ERROR_EXIT_PINCH_UP:
+ return "Error (Exit Pinch Up Sensor)";
+ case SENSOR_ERROR_LEFT_CUTTER:
+ return "Error (Left Cutter Sensor)";
+ case SENSOR_ERROR_RIGHT_CUTTER:
+ return "Error (Right Cutter Sensor)";
+ case SENSOR_ERROR_CENTER_CUTTER:
+ return "Error (Center Cutter Sensor)";
+ case SENSOR_ERROR_UPPER_CUTTER:
+ return "Error (Upper Cutter Sensor)";
+ case SENSOR_ERROR_PAPER_FEED_COVER:
+ return "Error (Paper Feed Cover)";
+ default:
+ return "Error (Unknown Sensor)";
+ }
+ case ERROR_STATUS2_COVER_OPEN:
+ switch (resp->errcode) {
+ case COVER_OPEN_ERROR_UPPER:
+ return "Error (Upper Cover Open)";
+ case COVER_OPEN_ERROR_LOWER:
+ return "Error (Lower Cover Open)";
+ default:
+ return "Error (Unknown Cover Open)";
+ }
+ case ERROR_STATUS2_TEMP_SENSOR:
+ switch (resp->errcode) {
+ case TEMP_SENSOR_ERROR_HEAD_HIGH:
+ return "Error (Head Temperature High)";
+ case TEMP_SENSOR_ERROR_HEAD_LOW:
+ return "Error (Head Temperature Low)";
+ case TEMP_SENSOR_ERROR_ENV_HIGH:
+ return "Error (Environmental Temperature High)";
+ case TEMP_SENSOR_ERROR_ENV_LOW:
+ return "Error (Environmental Temperature Low)";
+ default:
+ return "Error (Unknown Temperature)";
+ }
+ case ERROR_STATUS2_PAPER_JAM:
+ return "Error (Paper Jam)";
+ case ERROR_STATUS2_PAPER_EMPTY:
+ return "Error (Paper Empty)";
+ case ERROR_STATUS2_RIBBON_ERR:
+ return "Error (Ribbon)";
+ default:
+ return "Error (Unknown)";
+ }
+ default:
+ return "Unknown!";
+ }
+}
+
static void kodak68x0_dump_status(struct kodak6800_ctx *ctx, struct kodak68x0_status_readback *status)
{
- if (status->errtype || status->errtype2 || status->errcode) {
- DEBUG("Error code : %s (%d/%d) # %d\n",
- kodak68x0_error_codes(status->errtype, status->errtype2),
- status->errtype, status->errtype2, status->errcode);
+ char *detail;
+
+ switch (status->status) {
+ case STATUS_PRINTING:
+ detail = "Printing";
+ break;
+ case STATUS_IDLE:
+ detail = "Idle";
+ break;
+ default:
+ detail = "Unknown";
+ break;
+ }
+ INFO("Printer Status : %s\n", detail);
+
+ INFO("Printer State : %s # %02x %08x %02x\n",
+ kodak68x0_status_str(status),
+ status->status1, be32_to_cpu(status->status2), status->errcode);
+
+ INFO("Bank 1 ID: %d\n", status->b1_jobid);
+ INFO("\tPrints: %d/%d complete\n",
+ be16_to_cpu(status->b1_complete), be16_to_cpu(status->b1_total));
+ INFO("Bank 2 ID: %d\n", status->b2_jobid);
+ INFO("\tPrints: %d/%d complete\n",
+ be16_to_cpu(status->b2_complete), be16_to_cpu(status->b2_total));
+
+ switch (status->curve_status) {
+ case CURVE_TABLE_STATUS_INITIAL:
+ detail = "Initial/Default";
+ break;
+ case CURVE_TABLE_STATUS_USERSET:
+ detail = "User Stored";
+ break;
+ case CURVE_TABLE_STATUS_CURRENT:
+ detail = "Current";
+ break;
+ default:
+ detail = "Unknown";
+ break;
}
- DEBUG("Total prints : %d\n", be32_to_cpu(status->ctr0));
- DEBUG("Media prints : %d\n", be32_to_cpu(status->ctr2));
+ INFO("Tone Curve Status: %s\n", detail);
+
+ INFO("Counters:\n");
+ INFO("\tLifetime : %d\n", be32_to_cpu(status->lifetime));
+ INFO("\tThermal Head : %d\n", be32_to_cpu(status->maint));
+ INFO("\tCutter : %d\n", be32_to_cpu(status->cutter));
+
if (ctx->type == P_KODAK_6850) {
int max;
- if (ctx->media == KODAK68x0_MEDIA_6R) {
+
+ INFO("\tMedia : %d\n", be32_to_cpu(status->media));
+
+ if (ctx->media->media == KODAK68x0_MEDIA_6R) {
max = 375;
} else {
max = 0;
}
if (max) {
- DEBUG("Remaining prints : %d\n", max - be32_to_cpu(status->ctr2));
+ INFO("\t Remaining : %d\n", max - be32_to_cpu(status->media));
} else {
- DEBUG("Remaining prints : Unknown media type\n");
+ INFO("\t Remaining : Unknown\n");
}
}
- DEBUG("Main FW version : %d\n", be16_to_cpu(status->main_fw));
- DEBUG("DSP FW version : %d\n", be16_to_cpu(status->dsp_fw));
- DEBUG("Donor : %d%%\n", status->donor);
- DEBUG("\n");
+ INFO("Main FW version: %d\n", be16_to_cpu(status->main_fw));
+ INFO("DSP FW version : %d\n", be16_to_cpu(status->dsp_fw));
+ INFO("Donor : %d%%\n", status->donor);
+ INFO("\n");
}
static int kodak6800_get_status(struct kodak6800_ctx *ctx,
@@ -241,25 +579,16 @@ static int kodak6800_get_status(struct kodak6800_ctx *ctx,
req[4] = 0x43;
req[5] = 0x03;
- /* Send request */
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- req, sizeof(req))))
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, req, sizeof(req),
+ status, sizeof(*status),
+ &num)))
return ret;
- /* Get response */
- ret = read_data(ctx->dev, ctx->endp_up,
- (uint8_t*)status, sizeof(*status), &num);
-
- if (ret < 0)
- return ret;
- if (num < (int)sizeof(*status)) {
- ERROR("Short read! (%d/%d)\n", num, (int) sizeof(*status));
- return CUPS_BACKEND_FAILED;
- }
-
- if (status->hdr != 0x01) {
+ /* Validate proper response */
+ if (status->hdr != CMD_CODE_OK) {
ERROR("Unexpected response from status query!\n");
- return CUPS_BACKEND_FAILED;
+ return -99;
}
return 0;
@@ -269,10 +598,6 @@ static int kodak6800_get_status(struct kodak6800_ctx *ctx,
#define UPDATE_SIZE 1536
static int kodak6800_get_tonecurve(struct kodak6800_ctx *ctx, char *fname)
{
- libusb_device_handle *dev = ctx->dev;
- uint8_t endp_down = ctx->endp_down;
- uint8_t endp_up = ctx->endp_up;
-
uint8_t cmdbuf[16];
uint8_t respbuf[64];
int ret, num = 0;
@@ -304,18 +629,15 @@ static int kodak6800_get_tonecurve(struct kodak6800_ctx *ctx, char *fname)
cmdbuf[14] = 0x00;
cmdbuf[15] = 0x00;
- if ((ret = send_data(dev, endp_down,
- cmdbuf, 16)))
- goto done;
-
- ret = read_data(dev, endp_up,
- respbuf, sizeof(respbuf), &num);
- if (ret < 0)
- goto done;
-
- if (num != 51) {
- ERROR("Short read! (%d/%d)\n", num, 51);
- ret = 4;
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, cmdbuf, sizeof(cmdbuf),
+ respbuf, sizeof(respbuf),
+ &num)))
+
+ /* Validate proper response */
+ if (respbuf[0] != CMD_CODE_OK) {
+ ERROR("Unexpected response from tonecurve query!\n");
+ ret = -99;
goto done;
}
@@ -332,13 +654,10 @@ static int kodak6800_get_tonecurve(struct kodak6800_ctx *ctx, char *fname)
cmdbuf[9] = 0x45;
cmdbuf[10] = 0x20;
for (i = 0 ; i < 24 ; i++) {
- if ((ret = send_data(dev, endp_down,
- cmdbuf, 11)))
- goto done;
-
- ret = read_data(dev, endp_up,
- respbuf, sizeof(respbuf), &num);
- if (ret < 0)
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, cmdbuf, sizeof(cmdbuf),
+ respbuf, sizeof(respbuf),
+ &num)))
goto done;
if (num != 64) {
@@ -371,15 +690,11 @@ static int kodak6800_get_tonecurve(struct kodak6800_ctx *ctx, char *fname)
/* We're done */
free(data);
- return 0;
+ return ret;
}
static int kodak6800_set_tonecurve(struct kodak6800_ctx *ctx, char *fname)
{
- libusb_device_handle *dev = ctx->dev;
- uint8_t endp_down = ctx->endp_down;
- uint8_t endp_up = ctx->endp_up;
-
uint8_t cmdbuf[64];
uint8_t respbuf[64];
int ret, num = 0;
@@ -392,7 +707,7 @@ static int kodak6800_set_tonecurve(struct kodak6800_ctx *ctx, char *fname)
ERROR("Memory Allocation Failure\n");
return -1;
}
-
+
INFO("Set Tone Curve from '%s'\n", fname);
/* Read in file */
@@ -430,21 +745,24 @@ static int kodak6800_set_tonecurve(struct kodak6800_ctx *ctx, char *fname)
cmdbuf[14] = 0x00;
cmdbuf[15] = 0x00;
- if ((ret = send_data(dev, endp_down,
- cmdbuf, 16)))
- goto done;
-
- ret = read_data(dev, endp_up,
- respbuf, sizeof(respbuf), &num);
- if (ret < 0)
- goto done;
-
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, cmdbuf, sizeof(cmdbuf),
+ respbuf, sizeof(respbuf),
+ &num)))
+
+ /* Validate proper response */
if (num != 51) {
ERROR("Short read! (%d/%d)\n", num, 51);
ret = 4;
goto done;
}
+ if (respbuf[0] != CMD_CODE_OK) {
+ ERROR("Unexpected response from tonecurve set!\n");
+ ret = -99;
+ goto done;
+ }
+
ptr = (uint8_t*) data;
remain = UPDATE_SIZE;
while (remain > 0) {
@@ -456,24 +774,23 @@ static int kodak6800_set_tonecurve(struct kodak6800_ctx *ctx, char *fname)
remain -= count;
ptr += count;
- /* Send next block over */
- if ((ret = send_data(dev, endp_down,
- cmdbuf, count+1)))
- goto done;
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, cmdbuf, count + 1,
+ respbuf, sizeof(respbuf),
+ &num)))
-
- ret = read_data(dev, endp_up,
- respbuf, sizeof(respbuf), &num);
- if (ret < 0)
- goto done;
-
if (num != 51) {
ERROR("Short read! (%d/%d)\n", num, 51);
ret = 4;
goto done;
}
+ if (respbuf[0] != CMD_CODE_OK) {
+ ERROR("Unexpected response from tonecurve set!\n");
+ ret = -99;
+ goto done;
+ }
};
-
+
done:
/* We're done */
free(data);
@@ -482,6 +799,12 @@ done:
static int kodak6800_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len)
{
+ struct kodak6800_ctx ctx = {
+ .dev = dev,
+ .endp_up = endp_up,
+ .endp_down = endp_down,
+ };
+
int ret;
int num;
@@ -496,23 +819,19 @@ static int kodak6800_query_serno(struct libusb_device_handle *dev, uint8_t endp_
req[2] = 0x43;
req[3] = 0x48;
req[4] = 0x43;
- req[5] = 0x03;
+ req[5] = 0x12;
- /* Send request */
- if ((ret = send_data(dev, endp_down,
- req, sizeof(req))))
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(&ctx, req, sizeof(req),
+ resp, sizeof(resp),
+ &num)))
return ret;
- /* Get response */
- ret = read_data(dev, endp_up,
- resp, sizeof(resp) - 1, &num);
-
- if (ret < 0)
- return ret;
if (num != 32) {
ERROR("Short read! (%d/%d)\n", num, 32);
- return 4;
+ return -2;
}
+
strncpy(buf, (char*)resp+24, buf_len);
buf[buf_len-1] = 0;
@@ -521,45 +840,35 @@ static int kodak6800_query_serno(struct libusb_device_handle *dev, uint8_t endp_
static int kodak6850_send_init(struct kodak6800_ctx *ctx)
{
- uint8_t cmdbuf[64];
+ uint8_t cmdbuf[16];
uint8_t rdbuf[64];
int ret = 0, num = 0;
- memset(cmdbuf, 0, CMDBUF_LEN);
+ memset(cmdbuf, 0, sizeof(cmdbuf));
cmdbuf[0] = 0x03;
cmdbuf[1] = 0x1b;
cmdbuf[2] = 0x43;
cmdbuf[3] = 0x48;
cmdbuf[4] = 0x43;
cmdbuf[5] = 0x4c;
-
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- cmdbuf, CMDBUF_LEN -1)))
- return CUPS_BACKEND_FAILED;
-
- /* Read response */
- ret = read_data(ctx->dev, ctx->endp_up,
- rdbuf, READBACK_LEN, &num);
- if (ret < 0)
- return CUPS_BACKEND_FAILED;
-
- if (num < 51) {
- ERROR("Short read! (%d/%d)\n", num, 51);
- return CUPS_BACKEND_FAILED;
- }
-
+
+ /* Issue command and get response */
+ if ((ret = kodak6800_do_cmd(ctx, cmdbuf, sizeof(cmdbuf),
+ rdbuf, sizeof(rdbuf),
+ &num)))
+ return -1;
+
if (num != 51) {
- ERROR("Unexpected readback from printer (%d/%d from 0x%02x))\n",
- num, READBACK_LEN, ctx->endp_up);
+ ERROR("Short read! (%d/%d)\n", num, 51);
return CUPS_BACKEND_FAILED;
}
-
- if (rdbuf[0] != 0x01 ||
+
+ if (rdbuf[0] != CMD_CODE_OK ||
rdbuf[2] != 0x43) {
ERROR("Unexpected response from printer init!\n");
return CUPS_BACKEND_FAILED;
}
-
+
// XXX I believe this the media position
// saying when we have a 4x6 left on an 8x6 blank
if (rdbuf[1] != 0x01 && rdbuf[1] != 0x00) {
@@ -575,6 +884,7 @@ static void kodak6800_cmdline(void)
DEBUG("\t\t[ -C filename ] # Set tone curve\n");
DEBUG("\t\t[ -m ] # Query media\n");
DEBUG("\t\t[ -s ] # Query status\n");
+ DEBUG("\t\t[ -X jobid ] # Cancel Job\n");
}
static int kodak6800_cmdline_arg(void *vctx, int argc, char **argv)
@@ -582,49 +892,31 @@ static int kodak6800_cmdline_arg(void *vctx, int argc, char **argv)
struct kodak6800_ctx *ctx = vctx;
int i, j = 0;
- /* Reset arg parsing */
- optind = 1;
- opterr = 0;
- while ((i = getopt(argc, argv, "C:c:ms")) >= 0) {
+ if (!ctx)
+ return -1;
+
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "C:c:msX:")) >= 0) {
switch(i) {
+ GETOPT_PROCESS_GLOBAL
case 'c':
- if (ctx) {
- j = kodak6800_get_tonecurve(ctx, optarg);
- break;
- }
- return 1;
+ j = kodak6800_get_tonecurve(ctx, optarg);
+ break;
case 'C':
- if (ctx) {
- j = kodak6800_set_tonecurve(ctx, optarg);
- break;
- }
- return 1;
+ j = kodak6800_set_tonecurve(ctx, optarg);
+ break;
case 'm':
- if (ctx) {
- uint8_t mediabuf[MAX_MEDIA_LEN];
- struct kodak68x0_media_readback *media = (struct kodak68x0_media_readback*)mediabuf;
- j = kodak6800_get_mediainfo(ctx, media);
- if (!j)
- kodak68x0_dump_mediainfo(media);
- break;
- }
- return 1;
- case 's':
- if (ctx) {
- uint8_t mediabuf[MAX_MEDIA_LEN];
- struct kodak68x0_media_readback *media = (struct kodak68x0_media_readback*)mediabuf;
- struct kodak68x0_status_readback status;
- j = kodak6800_get_mediainfo(ctx, media);
- if (!j)
- j = kodak6800_get_status(ctx, &status);
- if (!j)
- kodak68x0_dump_status(ctx, &status);
-
- break;
- }
-
- return 1;
-
+ kodak68x0_dump_mediainfo(ctx->media);
+ break;
+ case 's': {
+ struct kodak68x0_status_readback status;
+ j = kodak6800_get_status(ctx, &status);
+ if (!j)
+ kodak68x0_dump_status(ctx, &status);
+ break;
+ }
+ case 'X':
+ j = kodak68x0_canceljob(ctx, atoi(optarg));
+ break;
default:
break; /* Ignore completely */
}
@@ -635,7 +927,6 @@ static int kodak6800_cmdline_arg(void *vctx, int argc, char **argv)
return 0;
}
-
static void *kodak6800_init(void)
{
struct kodak6800_ctx *ctx = malloc(sizeof(struct kodak6800_ctx));
@@ -645,8 +936,9 @@ static void *kodak6800_init(void)
}
memset(ctx, 0, sizeof(struct kodak6800_ctx));
+ ctx->media = malloc(MAX_MEDIA_LEN);
+
ctx->type = P_ANY;
- ctx->media = -1;
return ctx;
}
@@ -658,20 +950,23 @@ static void kodak6800_attach(void *vctx, struct libusb_device_handle *dev,
struct libusb_device *device;
struct libusb_device_descriptor desc;
- UNUSED(jobid);
-
- ctx->dev = dev;
+ ctx->dev = dev;
ctx->endp_up = endp_up;
ctx->endp_down = endp_down;
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
- /* Map out device type */
- if (desc.idProduct == USB_PID_KODAK_6850)
- ctx->type = P_KODAK_6850;
- else
- ctx->type = P_KODAK_6800;
+ ctx->type = lookup_printer_type(&kodak6800_backend,
+ desc.idVendor, desc.idProduct);
+
+ /* Ensure jobid is sane */
+ ctx->jobid = (jobid & 0x7f) + 1;
+
+ /* Query media info */
+ if (kodak6800_get_mediainfo(ctx, ctx->media)) {
+ ERROR("Can't query media\n");
+ }
}
static void kodak6800_teardown(void *vctx) {
@@ -746,144 +1041,123 @@ static int kodak6800_main_loop(void *vctx, int copies) {
struct kodak6800_ctx *ctx = vctx;
struct kodak68x0_status_readback status;
- uint8_t cmdbuf[CMDBUF_LEN];
-
- uint8_t mediabuf[MAX_MEDIA_LEN];
- struct kodak68x0_media_readback *media = (struct kodak68x0_media_readback*)mediabuf;
-
int num, ret;
if (!ctx)
return CUPS_BACKEND_FAILED;
+ /* Fix max print count. */
+ if (copies > 9999) // XXX test against remaining media
+ copies = 9999;
+
/* Printer handles generating copies.. */
- if (ctx->hdr.copies < copies)
- ctx->hdr.copies = copies;
- copies = 1;
-
- /* Query loaded media */
- INFO("Querying loaded media\n");
- ret = kodak6800_get_mediainfo(ctx, media);
- if (ret < 0)
- return CUPS_BACKEND_FAILED;
-
- /* Appears to depend on media */
- if (media->media != KODAK68x0_MEDIA_6R &&
- media->media != 0x03) {
- ERROR("Unrecognized media type %02x\n", media->media);
+ ctx->hdr.copies = cpu_to_be16(uint16_to_packed_bcd(copies));
+
+ /* Validate media */
+ if (ctx->media->media != KODAK68x0_MEDIA_6R &&
+ ctx->media->media != KODAK68x0_MEDIA_UNK) {
+ ERROR("Unrecognized media type %02x\n", ctx->media->media);
return CUPS_BACKEND_STOP;
}
/* Validate against supported media list */
- for (num = 0 ; num < media->count; num++) {
- if (media->sizes[num].height == ctx->hdr.rows &&
- media->sizes[num].width == ctx->hdr.columns)
+ for (num = 0 ; num < ctx->media->count; num++) {
+ if (ctx->media->sizes[num].height == ctx->hdr.rows &&
+ ctx->media->sizes[num].width == ctx->hdr.columns &&
+ ctx->media->sizes[num].code2 == 0x00)
break;
}
- if (num == media->count) {
+ if (num == ctx->media->count) {
ERROR("Print size unsupported by media!\n");
return CUPS_BACKEND_HOLD;
}
-top:
INFO("Waiting for printer idle\n");
while(1) {
if (kodak6800_get_status(ctx, &status))
return CUPS_BACKEND_FAILED;
- if (status.errtype || status.errtype2 || status.errcode) {
- ERROR("Printer error reported: %s (%d/%d) # %d\n",
- kodak68x0_error_codes(status.errtype, status.errtype2),
- status.errtype, status.errtype2, status.errcode);
+ if (status.status1 == STATE_STATUS1_ERROR) {
+ INFO("Printer State: %s # %02x %08x %02x\n",
+ kodak68x0_status_str(&status),
+ status.status1, be32_to_cpu(status.status2), status.errcode);
return CUPS_BACKEND_FAILED;
}
- if (status.sts1 == 0x01) {
- // do nothing, this is expected.
- sleep(1);
- continue;
- } else if (status.sts1 != 0x02) {
- ERROR("Unknown status1 0x%02x\n", status.sts1);
- return CUPS_BACKEND_FAILED;
- }
-
- if (status.sts2 == 0x02) {
- ERROR("Printer is out of media!\n");
- return CUPS_BACKEND_STOP;
- } else if (status.sts2 == 0x03) {
- ERROR("Printer is offline!\n");
- return CUPS_BACKEND_STOP;
- } else if (status.sts2 != 0x01) {
- ERROR("Unknown status 0x%02x\n", status.sts2);
- return CUPS_BACKEND_FAILED;
- } else {
+ if (status.status == STATUS_IDLE)
break;
- }
+
+ /* See if we have an open bank */
+ if (!status.b1_remain ||
+ !status.b2_remain)
+ break;
+
+ sleep(1);
}
if (ctx->type == P_KODAK_6850) {
- INFO("Sending 6850 init sequence\n");
+// INFO("Sending 6850 init sequence\n");
ret = kodak6850_send_init(ctx);
if (ret)
return ret;
- sleep(1);
}
-
- /* Set up print job header */
- memcpy(cmdbuf, &ctx->hdr, CMDBUF_LEN);
-
- /* 6850 uses same spool format but different header gets sent */
- if (ctx->type == P_KODAK_6850) {
- if (ctx->hdr.size == 0x00)
- cmdbuf[7] = 0x04;
- else if (ctx->hdr.size == 0x06)
- cmdbuf[7] = 0x05; /* XXX audit this! */
- }
-
- /* If we're printing a 4x6 on 8x6 media... */
+
+ ctx->hdr.jobid = ctx->jobid;
+
+#if 0
+ /* If we want to disable 4x6 rewind on 8x6 media.. */
if (ctx->hdr.size == 0x00 &&
- be16_to_cpu(media->sizes[0].width) == 0x0982) {
- cmdbuf[14] = 0x06;
- cmdbuf[16] = 0x01;
+ be16_to_cpu(ctx->media->sizes[0].width) == 0x0982) {
+ ctx->hdr.size = 0x06;
+ ctx->hdr.mode = 0x01;
}
-
- INFO("Sending image header\n");
- if ((ret = send_data(ctx->dev, ctx->endp_down,
- cmdbuf, CMDBUF_LEN)))
+#endif
+
+ INFO("Initiating Print Job\n");
+ if ((ret = kodak6800_do_cmd(ctx, (uint8_t*) &ctx->hdr, sizeof(ctx->hdr),
+ &status, sizeof(status),
+ &num)))
return ret;
- sleep(1);
+
+ if (status.hdr != CMD_CODE_OK) {
+ ERROR("Unexpected response from print command!\n");
+ return CUPS_BACKEND_FAILED;
+ }
+
+// sleep(1); // Appears to be necessary for reliability
INFO("Sending image data\n");
- if ((ret = send_data(ctx->dev, ctx->endp_down,
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
ctx->databuf, ctx->datalen)))
return CUPS_BACKEND_FAILED;
INFO("Waiting for printer to acknowledge completion\n");
- sleep(1);
- while(1) {
+ do {
+ sleep(1);
if (kodak6800_get_status(ctx, &status))
return CUPS_BACKEND_FAILED;
- if (status.sts1 == 0x01) {
- // do nothing, this is expected.
- } else if (status.sts1 != 0x02) {
- ERROR("Unknown status1 0x%02x\n", status.sts1);
+ if (status.status1 == STATE_STATUS1_ERROR) {
+ INFO("Printer State: %s # %02x %08x %02x\n",
+ kodak68x0_status_str(&status),
+ status.status1, be32_to_cpu(status.status2), status.errcode);
return CUPS_BACKEND_FAILED;
- } else {
+ }
+
+ /* If all prints are complete, we're done! */
+ if (status.b1_jobid == ctx->hdr.jobid && status.b1_complete == status.b1_total)
+ break;
+ if (status.b2_jobid == ctx->hdr.jobid && status.b2_complete == status.b2_total)
+ break;
+
+ if (fast_return) {
+ INFO("Fast return mode enabled.\n");
break;
}
- sleep(1);
- }
-
- /* Clean up */
- if (terminate)
- copies = 1;
- INFO("Print complete (%d copies remaining)\n", copies - 1);
+ } while (1);
- if (copies && --copies) {
- goto top;
- }
+ INFO("Print complete\n");
return CUPS_BACKEND_OK;
}
@@ -891,7 +1165,7 @@ top:
/* Exported */
struct dyesub_backend kodak6800_backend = {
.name = "Kodak 6800/6850",
- .version = "0.43",
+ .version = "0.51",
.uri_prefix = "kodak6800",
.cmdline_usage = kodak6800_cmdline,
.cmdline_arg = kodak6800_cmdline_arg,
@@ -901,7 +1175,7 @@ struct dyesub_backend kodak6800_backend = {
.read_parse = kodak6800_read_parse,
.main_loop = kodak6800_main_loop,
.query_serno = kodak6800_query_serno,
- .devices = {
+ .devices = {
{ USB_VID_KODAK, USB_PID_KODAK_6800, P_KODAK_6800, "Kodak"},
{ USB_VID_KODAK, USB_PID_KODAK_6850, P_KODAK_6850, "Kodak"},
{ 0, 0, 0, ""}
@@ -915,148 +1189,25 @@ struct dyesub_backend kodak6800_backend = {
6850 Adds support for 5x7, with 1548 pixels per row and 2140 columns.
- Header:
+ All fields are BIG ENDIAN unless otherwise specified.
- 03 1b 43 48 43 0a 00 01 00 Fixed header
- NN Number of copies (01-255)
- WW WW Number of columns, big endian. (Fixed at 1844 on 6800)
- HH HH Number of rows, big endian.
- SS 0x00 (4x6) 0x06 (8x6) 0x07 (5x7 on 6850)
- LL Laminate, 0x00 (off) or 0x01 (on)
- UU 0x01 for multi-cut, 0x00 otherwise.
+ Header:
- Note: For 4x6 prints on 6x8 media, print size (SS) is set to 0x06 and the
- final octet is set to 0x01.
+ 03 1b 43 48 43 0a 00 01 Fixed header
+ NN NN Number of copies in BCD form (0001->9999)
+ WW WW Number of columns (Fixed at 1844 on 6800)
+ HH HH Number of rows.
+ SS Print size -- 0x00 (4x6) 0x06 (8x6) 0x07 (5x7 on 6850)
+ LL Laminate mode -- 0x00 (off) or 0x01 (on)
+ UU Print mode -- 0x00 (normal) or (0x01) 4x6 on 8x6
************************************************************************
- Kodak 6800 Printer Comms:
-
- [[file header]] 03 1b 43 48 43 0a 00 01 00 NN WW WW HH HH SS LL UU
-
- (see above for details on fields)
-
--> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
-<- [51 octets]
-
- 01 02 01 00 00 00 00 00 00 00 a2 7b 00 00 a2 7b
- 00 00 02 f4 00 00 e6 b1 00 00 00 1a 00 03 00 e8
- 00 01 00 83 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00
-
--> 03 1b 43 48 43 1a 00 00 00 00 00 00 00 00 00 00 [media query]
-<- [58 octets]
-
- 01 XX 00 00 00 00 00 04 06 WW WW MM MM 01 00 00 [MM MM == max printable size of media, 09 82 == 2434 for 6x8!]
- 00 00 06 WW WW 09 ba 01 02 00 00 00 06 WW WW HH [09 ba == 2940 == cut area?]
- HH 01 01 00 00 00 06 WW WW MM MM 01 03 00 00 00 [XX == 0b or 03 == media type?]
- 00 00 00 00 00 00 00 00 00 00
-
-
--> 03 1b 43 48 43 0a 00 01 00 01 WW WW HH HH 06 01 [ image header, modified, see above ]
- 01
-
-<- [51 octets]
-
- 01 02 01 00 00 00 00 00 00 00 a2 7b 00 00 a2 7b
- 00 00 02 f4 00 00 e6 b1 00 00 00 1a 00 03 00 e8
- 00 01 00 83 01 00 00 01 00 00 00 01 00 00 00 00 [ note the "01" after "83", and the extra two "01"s ]
- 00 00 00
-
--> [4K of plane data]
--> ...
--> [4K of plane data]
--> [remainder of plane data + 17 bytes of 0xff]
-
--> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
-<- [51 octets]
-
- 01 02 01 00 00 00 00 00 00 00 a2 7c 00 00 a2 7c [ note a2 7c vs a2 7b ]
- 00 00 01 7a 00 00 e6 b3 00 00 00 1a 00 03 00 e8 [ note 01 7a vs 02 f4, e6 b3 vs e6 b1 ]
- 00 01 00 83 01 00 00 00 00 01 00 01 00 00 00 00 [ note the moved '01' in the middle ]
- 00 00 00
-
--> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [ status query ]
-<- [51 octets, repeats]
-
- Possible Serial number query:
-
--> 03 1b 43 48 43 12 00 00 00 00 00 00 00 00 00 00
-<- [32 octets]
-
- 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 [[ Pascal string? ]]
- 20 20 20 20 20 20 20 20 36 30 34 33 4d 32 38 31 [[ ..." 6043M281" ]]
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 65 00 00 00 00 00
-<- [51 octets]
-
- [[ typical status response ]]
- [[ Followed by reset. ]]
-
- Read tone curve data:
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 72 01 00 00 00 00
-<- [51 octets]
-
- [[ typical status response ]]
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 20
-<- [64 octets]
-
- 81 01 07 07 27 07 72 07 c8 07 f8 07 22 07 48 08
- 68 08 88 08 b3 08 db 08 f7 08 09 09 2e 09 49 09
- 65 09 80 09 aa 09 ca 09 e2 09 fa 09 12 0a 32 0a
- 42 0a 66 0a 81 0a 9a 0a c3 0a d9 0a ee 0a 04 0b
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 20
-<- [64 octets]
-
- [[ repeats for total of 24 packets. total of 1.5KiB. ]]
-
- Write tone curve data:
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 77 01 00 00 00 00
-<- [51 octets]
-
- [[ typical status response ]]
-
--> 03 00 00 46 06 53 06 c0 06 07 07 37 07 5d 07 87
- 07 a1 07 c8 07 08 08 08 08 08 08 48 08 68 08 88
- 08 a9 08 b9 08 d9 08 f9 08 12 09 2e 09 49 09 70
- 09 89 08 99 09 ba 09 ca 08 da 09 0a 0a 24 0a 38
-<- [51 octets]
-
- [[ typical status response ]]
-
--> 03 0a 53 0a 66 0a 81 0a ...
- ....
--> 03 cf 38 0a 39 3d 39 79 39 96 39 b6 39 fb 39 01
- 34 0a 34 08 3a 0c 1a 10 3a
-<- [51 octets]
-
- [[ typical status response ]]
-
- [[ total of 24 packets * 64, and then one final packet of 25: 1562 total. ]]
- [[ It apepars the extra 25 bytes are to compensate for the leading '03' on
- each of the 25 URBs. ]]
-
- ***********************************************************************
+ Note: 6800 is Shinko CHC-S1145-5A, 6850 is Shinko CHC-S1145-5B
- Kodak 6850 Printer Comms:
+ Both are very similar to Shinko S1245!
- [[file header]] 03 1b 43 48 43 0a 00 XX 00 CC WW WW HH HH SS LL UU
-
- Note: 'XX' paper code is 0x04 for 4x6, 0x06 for 6x8 on the 6850!
-
- (See above for details on all other fields)
-
--> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
-<- [51 octets]
-
- 01 02 01 00 00 00 00 00 00 00 21 75 00 00 08 52
- 00 00 01 29 00 00 3b 0a 00 00 00 0e 00 03 02 90
- 00 01 02 1d 03 00 00 00 00 01 00 01 00 00 00 00
- 00 00 00
+ ************************************************************************
-> 03 1b 43 48 43 4c 00 00 00 00 00 00 00 00 00 00 [???]
<- [51 octets]
@@ -1071,149 +1222,4 @@ struct dyesub_backend kodak6800_backend = {
00 01 02 1c 00 00 00 00 00 01 00 01 00 00 00 00
00 00 00
--> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
-<- [51 octets -- same as status query before ]
-
--> 03 1b 43 48 43 1a 00 00 00 00 00 00 00 00 00 00 [media query]
-<- [68 octets]
-
- 01 XX 00 00 00 00 00 06 06 WW WW MM MM 01 00 00 [MM MM == max printable size of media, 09 82 == 2434 for 6x8!]
- 00 00 06 WW WW 09 ba 01 02 01 00 00 06 WW WW HH [09 ba == 2940 == cut area?]
- HH 01 01 00 00 00 06 WW WW MM MM 01 03 00 00 00 [XX == 0b or 03 == media type?]
- 06 WW WW 09 ba 01 05 01 00 00 06 WW WW HH HH 01
- 04 00 00 00
-
--> 03 1b 43 48 43 0a 00 04 00 01 07 34 04 d8 06 01 [ image header, modified, see above ]
- 01
-
-<- [51 octets]
-
- 01 02 01 00 00 00 00 00 00 00 21 75 00 00 08 52
- 00 00 01 29 00 00 3b 0a 00 00 00 0e 00 03 02 90
- 00 01 02 1d 04 00 00 01 00 00 00 01 00 00 00 00 [ note the "04" after "1d", and the moved '01' ]
- 00 00 00
-
--> [4K of plane data]
--> ...
--> [4K of plane data]
--> [remainder of plane data]
-
--> 03 1b 43 48 43 03 00 00 00 00 00 00 00 00 00 00 [status query]
-<- [51 octets]
-
- 01 02 01 00 00 00 00 00 00 00 21 76 00 00 08 53 [ note 21 76, 08 53, 01 2a incremented by 1 ]
- 00 00 01 2a 00 00 3b 0c 00 00 00 0e 00 03 02 90 [ note 3b 0c incremeted by 2 ]
- 00 01 02 1d 04 00 00 01 00 00 00 01 00 00 00 00
- 00 00 00
-
- Possible Serial number query:
-
--> 03 1b 43 48 43 12 00 00 00 00 00 00 00 00 00 00
- 00
-<- [32 octets]
-
- 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 [[ Pascal string? ]]
- 20 20 20 20 20 20 20 20 36 30 39 37 4b 53 34 39 [[ ..." 6097KS49" ]]
-
- Read tone curve data:
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 72 01 00 00 00 00
-<- [51 octets]
-
- [[ typical status response ]]
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 20
-<- [64 octets]
-
- 81 01 07 07 27 07 72 07 c8 07 f8 07 22 07 48 08
- 68 08 88 08 b3 08 db 08 f7 08 09 09 2e 09 49 09
- 65 09 80 09 aa 09 ca 09 e2 09 fa 09 12 0a 32 0a
- 42 0a 66 0a 81 0a 9a 0a c3 0a d9 0a ee 0a 04 0b
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 20
-<- [64 octets]
-
- [[ repeats for total of 24 packets. total of 1.5KiB. ]]
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 65 00 00 00 00 00
-<- [51 octets]
-
- [[ typical status response ]]
-
- Maybe this resets the calibration table:
-
--> 03 1b 43 48 43 05 00 00 00 00 00 00 00 00 00 00 [???]
-<- [34 octets]
-
- 01 00 04 00 00 00 01 00 01 00 02 00 00 00 01 00
- 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00
-
- Write tone curve data:
-
--> 03 1b 43 48 43 0c 54 4f 4e 45 77 01 00 00 00 00
-<- [51 octets]
-
- [[ typical status response ]]
-
--> 03 00 00 46 06 53 06 c0 06 07 07 37 07 5d 07 87
- 07 a1 07 c8 07 08 08 08 08 08 08 48 08 68 08 88
- 08 a9 08 b9 08 d9 08 f9 08 12 09 2e 09 49 09 70
- 09 89 08 99 09 ba 09 ca 08 da 09 0a 0a 24 0a 38
-<- [51 octets]
-
- [[ typical status response ]]
-
--> 03 0a 53 0a 66 0a 81 0a ...
- ....
--> 03 cf 38 0a 39 3d 39 79 39 96 39 b6 39 fb 39 01
- 34 0a 34 08 3a 0c 1a 10 3a
-<- [51 octets]
-
- [[ typical status response ]]
-
- [[ total of 24 packets * 64, and then one final packet of 25: 1562 total. ]]
- [[ It apepars the extra 25 bytes are to compensate for the leading '03' on
- each of the 25 URBs. ]]
-
- Also seen on the 6850:
-
-DEBUG: readback:
-
-01 02 03 00 00 00 01 00 00 01 5f 6f 00 01 5f 6f
-00 00 00 09 00 02 90 44 00 00 00 55 00 03 02 90
-00 01 02 1d 00 00 00 00 00 00 00 00 00 00 00 00
-00 00 00
-
-INIT/???
-DEBUG: readback:
-
-01 02 03 00 00 00 00 00 00 01 5f 6f 00 01 5f 6f
-00 00 00 09 00 02 90 44 00 00 00 55 00 03 02 90
-00 01 02 1d 00 00 00 00 00 00 00 00 00 00 00 00
-00 00 00
-
-??? 6x8c
-
-DEBUG: readback:
-
-01 02 01 00 00 00 00 00 00 01 5f 6f 00 01 5f 6f
-00 00 00 09 00 02 90 44 00 00 00 55 00 03 02 90
-00 01 02 1d 00 00 00 00 00 00 00 00 00 00 00 00
-00 00 00
-
-Seen on the 6850 with no media loaded:
-
-01 02 02 00 00 00 10 00 00 00 5d 1d 00 00 5d 1d
-00 00 00 00 00 00 b7 cc 00 00 00 00 00 03 02 8c
-00 01 02 1c 00 00 00 00 00 00 00 00 00 00 00 00
-00 00 00
-
-Seen on 6850 with 6R media (6x8) while offline:
-
-01 02 03 00 00 00 03 00 00 00 5d 1f 00 00 5d 1f
-00 00 00 01 00 00 b7 d3 00 00 00 5c 00 03 02 8c
-00 01 02 1c 00 00 00 00 00 01 00 01 00 00 00 00
-00 00 00
-
*/
diff --git a/src/cups/mitsu70x_print.c b/src/cups/mitsu70x_print.c
index 2b9e56d..dcff841 100644
--- a/src/cups/mitsu70x_print.c
+++ b/src/cups/mitsu70x_print.c
@@ -35,6 +35,8 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND mitsu70x_backend
+
#include "backend_common.h"
#define USB_VID_MITSU 0x06D3
@@ -49,14 +51,13 @@ struct mitsu70x_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
uint8_t *databuf;
int datalen;
uint16_t rows;
uint16_t cols;
-
- int k60;
};
/* Program states */
@@ -155,12 +156,8 @@ static void mitsu70x_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
- if (desc.idProduct == USB_PID_MITSU_K60)
- ctx->k60 = 1;
-
- if (desc.idProduct == USB_PID_KODAK305)
- ctx->k60 = 1;
-
+ ctx->type = lookup_printer_type(&mitsu70x_backend,
+ desc.idVendor, desc.idProduct);
}
@@ -357,7 +354,7 @@ static int mitsu70x_get_status(struct mitsu70x_ctx *ctx, struct mitsu70x_status_
static int mitsu70x_main_loop(void *vctx, int copies) {
struct mitsu70x_ctx *ctx = vctx;
- struct mitsu70x_state rdbuf, rdbuf2;
+ struct mitsu70x_state rdbuf = { .hdr = 0 }, rdbuf2 = { .hdr = 0 };
int last_state = -1, state = S_IDLE;
int ret;
@@ -424,7 +421,7 @@ top:
INFO("Sending header sequence\n");
/* K60 may require fixups */
- if (ctx->k60) {
+ if (ctx->type == P_MITSU_K60) {
struct mitsu70x_hdr *hdr = (struct mitsu70x_hdr*) (ctx->databuf + sizeof(struct mitsu70x_hdr));
/* K60 only has a lower deck */
hdr->deck = 1;
@@ -539,7 +536,7 @@ static int mitsu70x_query_status(struct mitsu70x_ctx *ctx)
static int mitsu70x_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len)
{
int ret, i;
- struct mitsu70x_status_resp resp;
+ struct mitsu70x_status_resp resp = { .hdr = { 0 } };
struct mitsu70x_ctx ctx = {
.dev = dev,
@@ -571,17 +568,18 @@ static int mitsu70x_cmdline_arg(void *vctx, int argc, char **argv)
struct mitsu70x_ctx *ctx = vctx;
int i, j = 0;
+ if (!ctx)
+ return -1;
+
/* Reset arg parsing */
optind = 1;
opterr = 0;
- while ((i = getopt(argc, argv, "s")) >= 0) {
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "s")) >= 0) {
switch(i) {
+ GETOPT_PROCESS_GLOBAL
case 's':
- if (ctx) {
- j = mitsu70x_query_status(ctx);
- break;
- }
- return 1;
+ j = mitsu70x_query_status(ctx);
+ break;
default:
break; /* Ignore completely */
}
@@ -596,7 +594,7 @@ static int mitsu70x_cmdline_arg(void *vctx, int argc, char **argv)
/* Exported */
struct dyesub_backend mitsu70x_backend = {
.name = "Mitsubishi CP-D70/D707/K60",
- .version = "0.31",
+ .version = "0.32",
.uri_prefix = "mitsu70x",
.cmdline_usage = mitsu70x_cmdline,
.cmdline_arg = mitsu70x_cmdline_arg,
@@ -608,9 +606,9 @@ struct dyesub_backend mitsu70x_backend = {
.query_serno = mitsu70x_query_serno,
.devices = {
{ USB_VID_MITSU, USB_PID_MITSU_D70X, P_MITSU_D70X, ""},
- { USB_VID_MITSU, USB_PID_MITSU_K60, P_MITSU_D70X, ""},
+ { USB_VID_MITSU, USB_PID_MITSU_K60, P_MITSU_K60, ""},
// { USB_VID_MITSU, USB_PID_MITSU_D80, P_MITSU_D70X, ""},
- { USB_VID_KODAK, USB_PID_KODAK305, P_MITSU_D70X, ""},
+ { USB_VID_KODAK, USB_PID_KODAK305, P_MITSU_K60, ""},
{ 0, 0, 0, ""}
}
};
diff --git a/src/cups/mitsu9550_print.c b/src/cups/mitsu9550_print.c
index 7b83e6c..952baa3 100644
--- a/src/cups/mitsu9550_print.c
+++ b/src/cups/mitsu9550_print.c
@@ -35,6 +35,8 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND mitsu9550_backend
+
#include "backend_common.h"
#define USB_VID_MITSU 0x06D3
@@ -46,14 +48,13 @@ struct mitsu9550_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
uint8_t *databuf;
int datalen;
int is_s_variant;
- int fast_return;
-
uint16_t rows;
uint16_t cols;
};
@@ -149,10 +150,6 @@ static void *mitsu9550_init(void)
}
memset(ctx, 0, sizeof(struct mitsu9550_ctx));
- /* Use Fast return by default in CUPS mode */
- if (getenv("DEVICE_URI") || getenv("FAST_RETURN"))
- ctx->fast_return = 1;
-
return ctx;
}
@@ -172,8 +169,8 @@ static void mitsu9550_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
- if (desc.idProduct == USB_PID_MITSU_9550DS)
- ctx->is_s_variant = 1;
+ ctx->type = lookup_printer_type(&mitsu9550_backend,
+ desc.idVendor, desc.idProduct);
}
@@ -288,28 +285,28 @@ static int mitsu9550_get_status(struct mitsu9550_ctx *ctx, uint8_t *resp, int st
static int validate_media(int type, int cols, int rows) {
switch(type) {
case 0x01: /* 3.5x5 */
- if (cols != 1812 || rows != 1240)
+ if (cols != 1812 && rows != 1240)
return 1;
break;
case 0x02: /* 4x6 */
case 0x03: /* PC ??? */
if (cols != 2152)
return 1;
- if (rows != 1416 || rows != 1184 ||
+ if (rows != 1416 && rows != 1184 &&
rows != 1240)
return 1;
break;
case 0x04: /* 5x7 */
if (cols != 1812)
return 1;
- if (rows != 1240 || rows != 2452)
+ if (rows != 1240 && rows != 2452)
return 1;
break;
case 0x05: /* 6x9 */
if (cols != 2152)
return 1;
- if (rows != 1416 || rows != 2972 ||
- rows != 2956 || rows != 3146)
+ if (rows != 1416 && rows != 2972 &&
+ rows != 2956 && rows != 3146)
return 1;
break;
case 0x06: /* V */
@@ -332,15 +329,15 @@ static int mitsu9550_main_loop(void *vctx, int copies) {
if (!ctx)
return CUPS_BACKEND_FAILED;
-
- /* This printer handles copies internally */
+
+ /* Update printjob header to reflect number of requested copies */
hdr2 = (struct mitsu9550_hdr2 *) (ctx->databuf + sizeof(struct mitsu9550_hdr1));
hdr2->copies = cpu_to_be16(copies);
ptr = ctx->databuf;
top:
- if (ctx->is_s_variant) {
+ if (ctx->type == P_MITSU_9550S) {
int num;
/* Send "unknown 1" command */
@@ -405,7 +402,7 @@ top:
/* Now it's time for the actual print job! */
- if (ctx->is_s_variant) {
+ if (ctx->type == P_MITSU_9550S) {
cmd.cmd[0] = 0x1b;
cmd.cmd[1] = 0x44;
cmd.cmd[2] = 0;
@@ -463,7 +460,7 @@ top:
(uint8_t*) ptr, sizeof(struct mitsu9550_hdr3))))
return CUPS_BACKEND_FAILED;
ptr += sizeof(struct mitsu9550_hdr3);
- if (!ctx->is_s_variant) {
+ if (ctx->type != P_MITSU_9550S) {
// XXX need to investigate what hdr4 is about
if ((ret = send_data(ctx->dev, ctx->endp_down,
(uint8_t*) ptr, sizeof(struct mitsu9550_hdr4))))
@@ -471,7 +468,7 @@ top:
}
ptr += sizeof(struct mitsu9550_hdr4);
- if (ctx->is_s_variant) {
+ if (ctx->type == P_MITSU_9550S) {
/* Send "start data" command */
cmd.cmd[0] = 0x1b;
cmd.cmd[1] = 0x5a;
@@ -546,7 +543,7 @@ top:
}
}
- if (ctx->is_s_variant) {
+ if (ctx->type == P_MITSU_9550S) {
/* Send "end data" command */
cmd.cmd[0] = 0x1b;
cmd.cmd[1] = 0x50;
@@ -592,12 +589,12 @@ top:
if (!sts->sts1) /* If printer transitions to idle */
break;
- if (ctx->fast_return && !be16_to_cpu(sts->copies)) { /* No remaining prints */
+ if (fast_return && !be16_to_cpu(sts->copies)) { /* No remaining prints */
INFO("Fast return mode enabled.\n");
break;
}
- if (ctx->fast_return && !sts->sts5) { /* Ready for another job */
+ if (fast_return && !sts->sts5) { /* Ready for another job */
INFO("Fast return mode enabled.\n");
break;
}
@@ -605,18 +602,7 @@ top:
sleep(1);
}
- /* This printer handles copies internally */
- copies = 1;
-
- /* Clean up */
- if (terminate)
- copies = 1;
-
- INFO("Print complete (%d copies remaining)\n", copies - 1);
-
- if (copies && --copies) {
- goto top;
- }
+ INFO("Print complete\n");
return CUPS_BACKEND_OK;
}
@@ -744,7 +730,6 @@ static void mitsu9550_cmdline(void)
{
DEBUG("\t\t[ -m ] # Query media\n");
DEBUG("\t\t[ -s ] # Query status\n");
- DEBUG("\t\t[ -f ] # Enable fast return mode\n");
}
static int mitsu9550_cmdline_arg(void *vctx, int argc, char **argv)
@@ -752,30 +737,21 @@ static int mitsu9550_cmdline_arg(void *vctx, int argc, char **argv)
struct mitsu9550_ctx *ctx = vctx;
int i, j = 0;
+ if (!ctx)
+ return -1;
+
/* Reset arg parsing */
optind = 1;
opterr = 0;
- while ((i = getopt(argc, argv, "mfs")) >= 0) {
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "ms")) >= 0) {
switch(i) {
- case 'm':
- if (ctx) {
- j = mitsu9550_query_media(ctx);
- break;
- }
- return 1;
+ GETOPT_PROCESS_GLOBAL
+ case 'm':
+ j = mitsu9550_query_media(ctx);
+ break;
case 's':
- if (ctx) {
- j = mitsu9550_query_status(ctx);
- break;
- }
- return 1;
-
- case 'f':
- if (ctx) {
- ctx->fast_return = 1;
- break;
- }
- return 1;
+ j = mitsu9550_query_status(ctx);
+ break;
default:
break; /* Ignore completely */
}
@@ -789,7 +765,7 @@ static int mitsu9550_cmdline_arg(void *vctx, int argc, char **argv)
/* Exported */
struct dyesub_backend mitsu9550_backend = {
.name = "Mitsubishi CP-9550DW-S",
- .version = "0.12",
+ .version = "0.15",
.uri_prefix = "mitsu9550",
.cmdline_usage = mitsu9550_cmdline,
.cmdline_arg = mitsu9550_cmdline_arg,
@@ -801,7 +777,7 @@ struct dyesub_backend mitsu9550_backend = {
.query_serno = mitsu9550_query_serno,
.devices = {
{ USB_VID_MITSU, USB_PID_MITSU_9550D, P_MITSU_9550, ""},
- { USB_VID_MITSU, USB_PID_MITSU_9550DS, P_MITSU_9550, ""},
+ { USB_VID_MITSU, USB_PID_MITSU_9550DS, P_MITSU_9550S, ""},
{ 0, 0, 0, ""}
}
};
diff --git a/src/cups/selphy_print.c b/src/cups/selphy_print.c
index 2c9bab0..8da09e0 100644
--- a/src/cups/selphy_print.c
+++ b/src/cups/selphy_print.c
@@ -35,8 +35,12 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND canonselphy_backend
+
#include "backend_common.h"
+#define P_ES40_CP790 (P_END + 1) // used for detection only
+
/* Exported */
#define USB_VID_CANON 0x04a9
#define USB_PID_CANON_CP10 0x304A
@@ -291,13 +295,6 @@ static struct printer_data selphy_printers[] = {
.paper_code_offset = -1,
.error_detect = es3_error_detect,
},
- /* PLACEHOLDER FOR DETECTION PURPOSES ONLY */
- { .type = P_ES40_CP790,
- .model = "SELPHY ES40/CP790",
- .init_length = 16,
- .foot_length = 12,
- .pgcode_offset = 2,
- },
{ .type = P_ES40,
.model = "SELPHY ES40",
.init_length = 16,
@@ -504,6 +501,7 @@ struct canonselphy_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
struct printer_data *printer;
@@ -546,6 +544,8 @@ static void *canonselphy_init(void)
return ctx;
}
+extern struct dyesub_backend canonselphy_backend;
+
static void canonselphy_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
@@ -562,26 +562,11 @@ static void canonselphy_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
- /* Special cases for some models */
- if (ctx->printer->type == P_ES40_CP790) {
- int i;
- int printer_type;
-
-
- if (desc.idProduct == USB_PID_CANON_CP790)
- printer_type = P_CP790;
- else if (desc.idProduct == USB_PID_CANON_ES40)
- printer_type = P_ES40;
+ ctx->type = lookup_printer_type(&canonselphy_backend,
+ desc.idVendor, desc.idProduct);
- for (i = 0; selphy_printers[i].type != -1; i++) {
- if (selphy_printers[i].type == printer_type) {
- ctx->printer = &selphy_printers[i];
- break;
- }
- }
- } else if (desc.idProduct == USB_PID_CANON_CP900) {
+ if (desc.idProduct == USB_PID_CANON_CP900)
ctx->cp900 = 1;
- }
}
static void canonselphy_teardown(void *vctx) {
@@ -627,6 +612,15 @@ static int canonselphy_early_parse(void *vctx, int data_fd)
}
printer_type = parse_printjob(ctx->buffer, &ctx->bw_mode, &ctx->plane_len);
+ /* Special cases for some models */
+ if (printer_type == P_ES40_CP790) {
+ if (ctx->type == P_CP790)
+ printer_type = P_CP790;
+ else
+ printer_type = P_ES40;
+ }
+
+ /* Look up the printer entry */
for (i = 0; selphy_printers[i].type != -1; i++) {
if (selphy_printers[i].type == printer_type) {
ctx->printer = &selphy_printers[i];
@@ -638,14 +632,19 @@ static int canonselphy_early_parse(void *vctx, int data_fd)
return -1;
}
+ INFO("%sFile intended for a '%s' printer\n", ctx->bw_mode? "B/W " : "", ctx->printer->model);
+
+ if (ctx->printer->type != ctx->type) {
+ ERROR("Printer/Job mismatch (%d/%d)\n", ctx->type, ctx->printer->type);
+ return -1;
+ }
+
ctx->plane_len += 12; /* Add in plane header length! */
if (ctx->printer->pgcode_offset != -1)
ctx->paper_code = ctx->printer->paper_codes[ctx->buffer[ctx->printer->pgcode_offset]];
else
ctx->paper_code = -1;
- INFO("%sFile intended for a '%s' printer\n", ctx->bw_mode? "B/W " : "", ctx->printer->model);
-
return printer_type;
}
@@ -657,6 +656,11 @@ static int canonselphy_read_parse(void *vctx, int data_fd)
if (!ctx)
return CUPS_BACKEND_FAILED;
+ /* Perform early parsing */
+ i = canonselphy_early_parse(ctx, data_fd);
+ if (i < 0)
+ return CUPS_BACKEND_FAILED;
+
if (ctx->header) {
free(ctx->header);
ctx->header = NULL;
@@ -794,7 +798,7 @@ top:
/* Make sure paper/ribbon is correct */
if (ctx->paper_code != -1) {
- if (ctx->printer->type == P_CP_XXX) {
+ if (ctx->type == P_CP_XXX) {
uint8_t pc = rdbuf[ctx->printer->paper_code_offset];
if (((pc >> 4) & 0xf) != (ctx->paper_code & 0x0f)) {
@@ -825,7 +829,7 @@ top:
return CUPS_BACKEND_HOLD; /* Hold this job, don't stop queue */
}
}
- } else if (ctx->printer->type == P_CP790) {
+ } else if (ctx->type == P_CP790) {
uint8_t ribbon = rdbuf[4] >> 4;
uint8_t paper = rdbuf[5];
@@ -949,14 +953,36 @@ top:
return CUPS_BACKEND_OK;
}
+static int canonselphy_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct canonselphy_ctx *ctx = vctx;
+ int i, j = 0;
+
+ if (!ctx)
+ return -1;
+
+ /* Reset arg parsing */
+ optind = 1;
+ opterr = 0;
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL)) >= 0) {
+ switch(i) {
+ GETOPT_PROCESS_GLOBAL
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
struct dyesub_backend canonselphy_backend = {
.name = "Canon SELPHY CP/ES",
- .version = "0.87",
+ .version = "0.89",
.uri_prefix = "canonselphy",
+ .cmdline_arg = canonselphy_cmdline_arg,
.init = canonselphy_init,
.attach = canonselphy_attach,
.teardown = canonselphy_teardown,
- .early_parse = canonselphy_early_parse,
.read_parse = canonselphy_read_parse,
.main_loop = canonselphy_main_loop,
.devices = {
@@ -980,7 +1006,7 @@ struct dyesub_backend canonselphy_backend = {
{ USB_VID_CANON, USB_PID_CANON_CP760, P_CP_XXX, ""},
{ USB_VID_CANON, USB_PID_CANON_CP770, P_CP_XXX, ""},
{ USB_VID_CANON, USB_PID_CANON_CP780, P_CP_XXX, ""},
- { USB_VID_CANON, USB_PID_CANON_CP790, P_ES40_CP790, ""},
+ { USB_VID_CANON, USB_PID_CANON_CP790, P_CP790, ""},
{ USB_VID_CANON, USB_PID_CANON_CP800, P_CP_XXX, ""},
{ USB_VID_CANON, USB_PID_CANON_CP810, P_CP_XXX, ""},
{ USB_VID_CANON, USB_PID_CANON_CP900, P_CP_XXX, ""},
@@ -989,7 +1015,7 @@ struct dyesub_backend canonselphy_backend = {
{ USB_VID_CANON, USB_PID_CANON_ES20, P_ES2_20, ""},
{ USB_VID_CANON, USB_PID_CANON_ES3, P_ES3_30, ""},
{ USB_VID_CANON, USB_PID_CANON_ES30, P_ES3_30, ""},
- { USB_VID_CANON, USB_PID_CANON_ES40, P_ES40_CP790, ""},
+ { USB_VID_CANON, USB_PID_CANON_ES40, P_ES40, ""},
{ 0, 0, 0, ""}
}
};
diff --git a/src/cups/shinko_s1245_print.c b/src/cups/shinko_s1245_print.c
new file mode 100644
index 0000000..72b5ec9
--- /dev/null
+++ b/src/cups/shinko_s1245_print.c
@@ -0,0 +1,1621 @@
+/*
+ * Shinko/Sinfonia CHC-S1245 CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2015 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * Low-level documentation was provided by Sinfonia, Inc. Thank you!
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+
+#define BACKEND shinkos1245_backend
+
+#include "backend_common.h"
+
+/* Structure of printjob header. All fields are LITTLE ENDIAN */
+struct s1245_printjob_hdr {
+ uint32_t len1; /* Fixed at 0x10 */
+ uint32_t model; /* Equal to the printer model (eg '1245' or '2145' decimal) */
+ uint32_t unk2; /* Null */
+ uint32_t unk3; /* Fixed at 0x01 */
+
+ uint32_t len2; /* Fixed at 0x64 */
+ uint32_t unk5; /* Null */
+ uint32_t media; /* Fixed at 0x10 */
+ uint32_t unk6; /* Null */
+
+ uint32_t method; /* Print Method */
+ uint32_t mode; /* Print Mode */
+ uint32_t unk7; /* Null */
+ int32_t mattedepth; /* 0x7fffffff for glossy, 0x00 +- 25 for matte */
+
+ uint32_t dust; /* Dust control */
+ uint32_t columns;
+ uint32_t rows;
+ uint32_t copies;
+
+ uint32_t unk10; /* Null */
+ uint32_t unk11; /* Null */
+ uint32_t unk12; /* Null */
+ uint32_t unk13; /* 0xceffffff */
+
+ uint32_t unk14; /* Null */
+ uint32_t unk15; /* 0xceffffff */
+ uint32_t dpi; /* Fixed at '300' (decimal) */
+ uint32_t unk16; /* 0xceffffff */
+
+ uint32_t unk17; /* Null */
+ uint32_t unk18; /* 0xceffffff */
+ uint32_t unk19; /* Null */
+ uint32_t unk20; /* Null */
+
+ uint32_t unk21; /* Null */
+} __attribute__((packed));
+
+/* Printer data structures */
+struct shinkos1245_cmd_hdr {
+ uint8_t prefix; /* 0x03 */
+ uint8_t hdr[4]; /* 0x1b 0x43 0x48 0x43 */
+} __attribute__((packed));
+
+/* Get Printer ID */
+struct shinkos1245_cmd_getid {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0x12 */
+ uint8_t pad[11];
+} __attribute__((packed));
+
+struct shinkos1245_resp_getid {
+ uint8_t id; /* 0x00 */
+ uint8_t data[23]; /* padded with 0x20 (space) */
+ uint8_t reserved[8]; // XXX actual serial number?
+} __attribute__((packed));
+
+/* Set Printer ID -- Returns Status */
+struct shinkos1245_cmd_setid {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[2]; /* 0x0a 0x22 */
+ uint8_t id; /* 0x00 */
+ uint8_t data[23]; /* pad with 0x20 (space) */
+} __attribute__((packed));
+
+/* Print -- Returns Status */
+struct shinkos1245_cmd_print {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[2]; /* 0x0a 0x00 */
+ uint8_t id; /* 1-255 */
+ uint16_t count; /* # Copies in BCD, 1-9999 */
+ uint16_t columns; /* Fixed at 2446 */
+ uint16_t rows;
+ uint8_t media; /* Fixed at 0x10 */
+ uint8_t mode; /* dust removal and lamination mode */
+ uint8_t combo; /* aka "print method" in the spool file */
+} __attribute__((packed));
+
+/* Get Status */
+struct shinkos1245_cmd_getstatus {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0x03 */
+ uint8_t pad[10];
+} __attribute__((packed));
+
+struct shinkos1245_resp_status {
+ uint8_t code;
+ uint8_t print_status;
+ struct {
+ uint8_t status1;
+ uint32_t status2; /* BE */
+ uint8_t error;
+ } state;
+ struct {
+ uint32_t lifetime; /* BE */
+ uint32_t maint; /* BE */
+ uint32_t media; /* BE */
+ uint32_t cutter; /* BE */
+ uint8_t reserved;
+ uint8_t ver_boot;
+ uint8_t ver_ctrl;
+ uint8_t control_flag; // 0x00 == epson, 0x01 == cypress
+ } counters;
+ struct {
+ uint16_t main_boot;
+ uint16_t main_control;
+ uint16_t dsp_boot;
+ uint16_t dsp_control;
+ } versions;
+ struct {
+ uint8_t bank1_id;
+ uint8_t bank2_id;
+ uint16_t bank1_remain; /* BE */
+ uint16_t bank1_complete; /* BE */
+ uint16_t bank1_spec; /* BE */
+ uint16_t bank2_remain; /* BE */
+ uint16_t bank2_complete; /* BE */
+ uint16_t bank2_spec; /* BE */
+ } counters2;
+ uint8_t curve_status;
+} __attribute__((packed));
+
+enum {
+ CMD_CODE_OK = 1,
+ CMD_CODE_BAD = 2,
+};
+
+enum {
+ STATUS_PRINTING = 1,
+ STATUS_IDLE = 2,
+};
+
+enum {
+ STATE_STATUS1_STANDBY = 1,
+ STATE_STATUS1_ERROR = 2,
+ STATE_STATUS1_WAIT = 3,
+};
+
+#define STATE_STANDBY_STATUS2 0x0
+
+enum {
+ WAIT_STATUS2_INIT = 0,
+ WAIT_STATUS2_RIBBON = 1,
+ WAIT_STATUS2_THERMAL = 2,
+ WAIT_STATUS2_OPERATING = 3,
+ WAIT_STATUS2_BUSY = 4,
+};
+
+#define ERROR_STATUS2_CTRL_CIRCUIT (1<<31)
+#define ERROR_STATUS2_MECHANISM_CTRL (1<<30)
+#define ERROR_STATUS2_SENSOR (1<<13)
+#define ERROR_STATUS2_COVER_OPEN (1<<12)
+#define ERROR_STATUS2_TEMP_SENSOR (1<<9)
+#define ERROR_STATUS2_PAPER_JAM (1<<8)
+#define ERROR_STATUS2_PAPER_EMPTY (1<<6)
+#define ERROR_STATUS2_RIBBON_ERR (1<<4)
+
+enum {
+ CTRL_CIR_ERROR_EEPROM1 = 0x01,
+ CTRL_CIR_ERROR_EEPROM2 = 0x02,
+ CTRL_CIR_ERROR_DSP = 0x04,
+ CTRL_CIR_ERROR_CRC_MAIN = 0x06,
+ CTRL_CIR_ERROR_DL_MAIN = 0x07,
+ CTRL_CIR_ERROR_CRC_DSP = 0x08,
+ CTRL_CIR_ERROR_DL_DSP = 0x09,
+ CTRL_CIR_ERROR_ASIC = 0x0a,
+ CTRL_CIR_ERROR_DRAM = 0x0b,
+ CTRL_CIR_ERROR_DSPCOMM = 0x29,
+};
+
+enum {
+ MECH_ERROR_HEAD_UP = 0x01,
+ MECH_ERROR_HEAD_DOWN = 0x02,
+ MECH_ERROR_MAIN_PINCH_UP = 0x03,
+ MECH_ERROR_MAIN_PINCH_DOWN = 0x04,
+ MECH_ERROR_SUB_PINCH_UP = 0x05,
+ MECH_ERROR_SUB_PINCH_DOWN = 0x06,
+ MECH_ERROR_FEEDIN_PINCH_UP = 0x07,
+ MECH_ERROR_FEEDIN_PINCH_DOWN = 0x08,
+ MECH_ERROR_FEEDOUT_PINCH_UP = 0x09,
+ MECH_ERROR_FEEDOUT_PINCH_DOWN = 0x0a,
+ MECH_ERROR_CUTTER_LR = 0x0b,
+ MECH_ERROR_CUTTER_RL = 0x0c,
+};
+
+enum {
+ SENSOR_ERROR_CUTTER = 0x05,
+ SENSOR_ERROR_HEAD_DOWN = 0x09,
+ SENSOR_ERROR_HEAD_UP = 0x0a,
+ SENSOR_ERROR_MAIN_PINCH_DOWN = 0x0b,
+ SENSOR_ERROR_MAIN_PINCH_UP = 0x0c,
+ SENSOR_ERROR_FEED_PINCH_DOWN = 0x0d,
+ SENSOR_ERROR_FEED_PINCH_UP = 0x0e,
+ SENSOR_ERROR_EXIT_PINCH_DOWN = 0x0f,
+ SENSOR_ERROR_EXIT_PINCH_UP = 0x10,
+ SENSOR_ERROR_LEFT_CUTTER = 0x11,
+ SENSOR_ERROR_RIGHT_CUTTER = 0x12,
+ SENSOR_ERROR_CENTER_CUTTER = 0x13,
+ SENSOR_ERROR_UPPER_CUTTER = 0x14,
+ SENSOR_ERROR_PAPER_FEED_COVER = 0x15,
+};
+
+enum {
+ TEMP_SENSOR_ERROR_HEAD_HIGH = 0x01,
+ TEMP_SENSOR_ERROR_HEAD_LOW = 0x02,
+ TEMP_SENSOR_ERROR_ENV_HIGH = 0x03,
+ TEMP_SENSOR_ERROR_ENV_LOW = 0x04,
+};
+
+enum {
+ COVER_OPEN_ERROR_UPPER = 0x01,
+ COVER_OPEN_ERROR_LOWER = 0x02,
+};
+
+enum {
+ PAPER_EMPTY_ERROR = 0x00,
+};
+
+enum {
+ RIBBON_ERROR = 0x00,
+};
+
+enum {
+ CURVE_TABLE_STATUS_INITIAL = 0x00,
+ CURVE_TABLE_STATUS_USERSET = 0x01,
+ CURVE_TABLE_STATUS_CURRENT = 0x02,
+};
+
+// XXX Paper jam has 0x01 -> 0xff as error codes
+
+/* Query media info */
+struct shinkos1245_cmd_getmedia {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0x1a/0x2a/0x3a for A/B/C */
+ uint8_t pad[10];
+} __attribute__((packed));
+
+struct shinkos1245_mediadesc {
+ uint8_t code; /* Fixed at 0x10 */
+ uint16_t columns; /* BE */
+ uint16_t rows; /* BE */
+ uint8_t type; /* MEDIA_TYPE_* */
+ uint8_t print_type; /* aka "print method" in the spool file */
+ uint8_t reserved[3];
+} __attribute__((packed));
+
+#define NUM_MEDIAS 5 /* Maximum per message */
+
+struct shinkos1245_resp_media {
+ uint8_t code;
+ uint8_t reserved[5];
+ uint8_t count; /* 1-5? */
+ struct shinkos1245_mediadesc data[NUM_MEDIAS];
+} __attribute__((packed));
+
+enum {
+ MEDIA_TYPE_UNKNOWN = 0x00,
+ MEDIA_TYPE_PAPER = 0x01,
+};
+
+enum {
+ PRINT_TYPE_STANDARD = 0x00,
+ PRINT_TYPE_8x5_2up = 0x01,
+ PRINT_TYPE_8x4_2up = 0x02,
+ PRINT_TYPE_8x6_8x4 = 0x03,
+ PRINT_TYPE_8x5 = 0x04,
+ PRINT_TYPE_8x4 = 0x05,
+ PRINT_TYPE_8x6 = 0x06,
+ PRINT_TYPE_8x6_2up = 0x07,
+ PRINT_TYPE_8x4_3up = 0x08,
+ PRINT_TYPE_8x8 = 0x09,
+};
+
+/* Cancel Job -- returns Status */
+struct shinkos1245_cmd_canceljob {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0x13 */
+ uint8_t id; /* 1-255 */
+ uint8_t pad[9];
+} __attribute__((packed));
+
+/* Reset printer -- returns Status */
+struct shinkos1245_cmd_reset {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0xc0 */
+ uint8_t pad[10];
+} __attribute__((packed));
+
+/* Tone curve manipulation -- returns Status */
+struct shinkos1245_cmd_tone {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0xc0 */
+ uint8_t tone[4]; /* 0x54 0x4f 0x4e 0x45 */
+ uint8_t cmd2[1]; /* 0x72/0x77/0x65/0x20 for read/write/end/data */
+ union {
+ struct {
+ uint8_t tone_table;
+ uint8_t param_table;
+ uint8_t pad[3];
+ } read_write;
+ struct {
+ uint8_t pad[5];
+ } end_data;
+ };
+} __attribute__((packed));
+
+enum {
+ TONE_TABLE_STANDARD = 0,
+ TONE_TABLE_USER = 1,
+ TONE_TABLE_CURRENT = 2,
+};
+enum {
+ PARAM_TABLE_STANDARD = 1,
+ PARAM_TABLE_FINE = 2,
+};
+
+#define TONE_CURVE_SIZE 1536
+#define TONE_CURVE_DATA_BLOCK_SIZE 64
+
+/* Query Model information */
+struct shinkos1245_cmd_getmodel {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0x02 */
+ uint8_t pad[10];
+} __attribute__((packed));
+
+struct shinkos1245_resp_getmodel {
+ uint8_t vendor_id[4];
+ uint8_t product_id[4];
+ uint8_t strings[40];
+} __attribute__((packed));
+
+
+/* Query and Set Matte info, returns a Matte response */
+struct shinkos1245_cmd_getmatte {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0x20 */
+ uint8_t mode; /* Fixed at 0x00 */
+ uint8_t pad[9];
+} __attribute__((packed));
+
+struct shinkos1245_cmd_setmatte {
+ struct shinkos1245_cmd_hdr hdr;
+ uint8_t cmd[1]; /* 0x21 */
+ uint8_t mode; /* Fixed at 0x00 */
+ int8_t level; /* -25->+25 */
+ uint8_t pad[8];
+} __attribute__((packed));
+
+struct shinkos1245_resp_matte {
+ uint8_t code;
+ uint8_t mode;
+ int8_t level;
+ uint8_t reserved[3];
+} __attribute__((packed));
+
+#define MATTE_MODE_MATTE 0x00
+
+/* Private data stucture */
+struct shinkos1245_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+ int type;
+
+ uint8_t jobid;
+
+ struct s1245_printjob_hdr hdr;
+
+ struct shinkos1245_mediadesc medias[15];
+ int num_medias;
+
+ uint8_t *databuf;
+ int datalen;
+ int tonecurve;
+};
+
+enum {
+ S_IDLE = 0,
+ S_PRINTER_READY_CMD,
+ S_PRINTER_SENT_DATA,
+ S_FINISHED,
+};
+
+
+/* Basic printer I/O stuffs */
+static void shinkos1245_fill_hdr(struct shinkos1245_cmd_hdr *hdr)
+{
+ hdr->prefix = 0x03;
+ hdr->hdr[0] = 0x1b;
+ hdr->hdr[1] = 0x43;
+ hdr->hdr[2] = 0x48;
+ hdr->hdr[3] = 0x43;
+}
+
+static int shinkos1245_do_cmd(struct shinkos1245_ctx *ctx,
+ void *cmd, int cmd_len,
+ void *resp, int resp_len,
+ int *actual_len)
+{
+ int ret;
+
+ /* Write command */
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ cmd, cmd_len)))
+ return (ret < 0) ? ret : -99;
+
+ /* Read response */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ resp, resp_len, actual_len);
+ if (ret < 0)
+ return ret;
+ if (*actual_len < resp_len) {
+ ERROR("Short read! (%d/%d))\n", *actual_len, resp_len);
+ return -99;
+ }
+
+ return ret;
+}
+
+static int shinkos1245_get_status(struct shinkos1245_ctx *ctx,
+ struct shinkos1245_resp_status *resp)
+{
+ struct shinkos1245_cmd_getstatus cmd;
+ int ret, num;
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x03;
+ memset(cmd.pad, 0, sizeof(cmd.pad));
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ resp, sizeof(*resp), &num);
+ if (ret < 0) {
+ ERROR("Failed to execute GET_STATUS command\n");
+ return ret;
+ }
+ if (resp->code != CMD_CODE_OK) {
+ ERROR("Bad return code on GET_STATUS (%02x)\n",
+ resp->code);
+ return -99;
+ }
+
+ return 0;
+}
+
+static int shinkos1245_get_media(struct shinkos1245_ctx *ctx)
+{
+ struct shinkos1245_cmd_getmedia cmd;
+ struct shinkos1245_resp_media resp;
+ int i, j;
+ int ret = 0, num;
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ memset(cmd.pad, 0, sizeof(cmd.pad));
+ for (i = 1 ; i <= 3 ; i++) {
+ cmd.cmd[0] = 0x0a || (i << 4);
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &resp, sizeof(resp), &num);
+ if (ret < 0) {
+ ERROR("Failed to execute GET_MEDIA command\n");
+ return ret;
+ }
+ if (resp.code != CMD_CODE_OK) {
+ ERROR("Bad return code on GET_MEDIA (%02x)\n",
+ resp.code);
+ return -99;
+ }
+
+ if (resp.count > NUM_MEDIAS)
+ resp.count = NUM_MEDIAS;
+
+ /* Store media info */
+ for (j = 0; j < resp.count ; j++) {
+ ctx->medias[ctx->num_medias].code = resp.data[j].code;
+ ctx->medias[ctx->num_medias].columns = be16_to_cpu(resp.data[j].columns);
+ ctx->medias[ctx->num_medias].rows = be16_to_cpu(resp.data[j].rows);
+ ctx->medias[ctx->num_medias].type = resp.data[j].type;
+ ctx->medias[ctx->num_medias].print_type = resp.data[j].print_type;
+ ctx->num_medias++;
+ }
+
+ if (resp.count < 5)
+ break;
+ }
+ return ret;
+}
+
+static int shinkos1245_get_printerid(struct shinkos1245_ctx *ctx,
+ struct shinkos1245_resp_getid *resp)
+{
+ struct shinkos1245_cmd_getid cmd;
+ int ret, num;
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x12;
+ memset(cmd.pad, 0, sizeof(cmd.pad));
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ resp, sizeof(*resp), &num);
+ if (ret < 0) {
+ ERROR("Failed to execute GET_PRINTERID command\n");
+ return ret;
+ }
+
+ return 0;
+}
+
+static int shinkos1245_set_printerid(struct shinkos1245_ctx *ctx,
+ char *id)
+{
+ struct shinkos1245_cmd_setid cmd;
+ struct shinkos1245_resp_status sts;
+
+ int ret, num;
+ int i;
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x0a;
+ cmd.cmd[1] = 0x22;
+
+ for (i = 0 ; i < (int)sizeof(cmd.data) ; i++) {
+ if (*id)
+ cmd.data[i] = (uint8_t) *id;
+ else
+ cmd.data[i] = ' ';
+ }
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &sts, sizeof(sts), &num);
+ if (ret < 0) {
+ ERROR("Failed to execute SET_PRINTERID command\n");
+ return ret;
+ }
+ if (sts.code != CMD_CODE_OK) {
+ ERROR("Bad return code on SET_PRINTERID command\n");
+ return -99;
+ }
+ return 0;
+}
+
+static int shinkos1245_canceljob(struct shinkos1245_ctx *ctx,
+ int id)
+{
+ struct shinkos1245_cmd_canceljob cmd;
+ struct shinkos1245_resp_status sts;
+
+ int ret, num;
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x13;
+ cmd.id = id;
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &sts, sizeof(sts), &num);
+ if (ret < 0) {
+ ERROR("Failed to execute CANCELJOB command\n");
+ return ret;
+ }
+ if (sts.code != CMD_CODE_OK) {
+ ERROR("Bad return code on CANCELJOB command\n");
+ return -99;
+ }
+ return 0;
+}
+
+static int shinkos1245_set_matte(struct shinkos1245_ctx *ctx,
+ int intensity)
+{
+ struct shinkos1245_cmd_setmatte cmd;
+ struct shinkos1245_resp_matte sts;
+
+ int ret, num;
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x21;
+ cmd.mode = MATTE_MODE_MATTE;
+ cmd.level = intensity;
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &sts, sizeof(sts), &num);
+ if (ret < 0) {
+ ERROR("Failed to execute SET_MATTE command\n");
+ return ret;
+ }
+ if (sts.code == CMD_CODE_OK)
+ return 0;
+ if (sts.code == CMD_CODE_BAD)
+ return 1;
+
+ ERROR("Bad return code (%02x) on SET_MATTE command\n", sts.code);
+ return -99;
+}
+
+static int shinkos1245_get_matte(struct shinkos1245_ctx *ctx,
+ int *intensity)
+{
+ struct shinkos1245_cmd_getmatte cmd;
+ struct shinkos1245_resp_matte sts;
+
+ int ret, num;
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x20;
+ cmd.mode = MATTE_MODE_MATTE;
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &sts, sizeof(sts), &num);
+ if (ret < 0) {
+ ERROR("Failed to execute GET_MATTE command\n");
+ return ret;
+ }
+ if (sts.code != CMD_CODE_OK) {
+ ERROR("Bad return code (%02x) on GET_MATTE command\n", sts.code);
+ return -99;
+ }
+ *intensity = sts.level;
+
+ return 0;
+}
+
+
+/* Structure dumps */
+static char *shinkos1245_status_str(struct shinkos1245_resp_status *resp)
+{
+ switch(resp->state.status1) {
+ case STATE_STATUS1_STANDBY:
+ return "Standby (Ready)";
+ case STATE_STATUS1_WAIT:
+ switch (resp->state.status2) {
+ case WAIT_STATUS2_INIT:
+ return "Wait (Initializing)";
+ case WAIT_STATUS2_RIBBON:
+ return "Wait (Ribbon Winding)";
+ case WAIT_STATUS2_THERMAL:
+ return "Wait (Thermal Protection)";
+ case WAIT_STATUS2_OPERATING:
+ return "Wait (Operating)";
+ case WAIT_STATUS2_BUSY:
+ return "Wait (Busy)";
+ default:
+ return "Wait (Unknown)";
+ }
+ case STATE_STATUS1_ERROR:
+ switch (resp->state.status2) {
+ case ERROR_STATUS2_CTRL_CIRCUIT:
+ switch (resp->state.error) {
+ case CTRL_CIR_ERROR_EEPROM1:
+ return "Error (EEPROM1)";
+ case CTRL_CIR_ERROR_EEPROM2:
+ return "Error (EEPROM2)";
+ case CTRL_CIR_ERROR_DSP:
+ return "Error (DSP)";
+ case CTRL_CIR_ERROR_CRC_MAIN:
+ return "Error (Main CRC)";
+ case CTRL_CIR_ERROR_DL_MAIN:
+ return "Error (Main Download)";
+ case CTRL_CIR_ERROR_CRC_DSP:
+ return "Error (DSP CRC)";
+ case CTRL_CIR_ERROR_DL_DSP:
+ return "Error (DSP Download)";
+ case CTRL_CIR_ERROR_ASIC:
+ return "Error (ASIC)";
+ case CTRL_CIR_ERROR_DRAM:
+ return "Error (DRAM)";
+ case CTRL_CIR_ERROR_DSPCOMM:
+ return "Error (DSP Communincation)";
+ default:
+ return "Error (Unknown Circuit)";
+ }
+ case ERROR_STATUS2_MECHANISM_CTRL:
+ switch (resp->state.error) {
+ case MECH_ERROR_HEAD_UP:
+ return "Error (Head Up Mechanism)";
+ case MECH_ERROR_HEAD_DOWN:
+ return "Error (Head Down Mechanism)";
+ case MECH_ERROR_MAIN_PINCH_UP:
+ return "Error (Main Pinch Up Mechanism)";
+ case MECH_ERROR_MAIN_PINCH_DOWN:
+ return "Error (Main Pinch Down Mechanism)";
+ case MECH_ERROR_SUB_PINCH_UP:
+ return "Error (Sub Pinch Up Mechanism)";
+ case MECH_ERROR_SUB_PINCH_DOWN:
+ return "Error (Sub Pinch Down Mechanism)";
+ case MECH_ERROR_FEEDIN_PINCH_UP:
+ return "Error (Feed-in Pinch Up Mechanism)";
+ case MECH_ERROR_FEEDIN_PINCH_DOWN:
+ return "Error (Feed-in Pinch Down Mechanism)";
+ case MECH_ERROR_FEEDOUT_PINCH_UP:
+ return "Error (Feed-out Pinch Up Mechanism)";
+ case MECH_ERROR_FEEDOUT_PINCH_DOWN:
+ return "Error (Feed-out Pinch Down Mechanism)";
+ case MECH_ERROR_CUTTER_LR:
+ return "Error (Left->Right Cutter)";
+ case MECH_ERROR_CUTTER_RL:
+ return "Error (Right->Left Cutter)";
+ default:
+ return "Error (Unknown Mechanism)";
+ }
+ case ERROR_STATUS2_SENSOR:
+ switch (resp->state.error) {
+ case SENSOR_ERROR_CUTTER:
+ return "Error (Cutter Sensor)";
+ case SENSOR_ERROR_HEAD_DOWN:
+ return "Error (Head Down Sensor)";
+ case SENSOR_ERROR_HEAD_UP:
+ return "Error (Head Up Sensor)";
+ case SENSOR_ERROR_MAIN_PINCH_DOWN:
+ return "Error (Main Pinch Down Sensor)";
+ case SENSOR_ERROR_MAIN_PINCH_UP:
+ return "Error (Main Pinch Up Sensor)";
+ case SENSOR_ERROR_FEED_PINCH_DOWN:
+ return "Error (Feed Pinch Down Sensor)";
+ case SENSOR_ERROR_FEED_PINCH_UP:
+ return "Error (Feed Pinch Up Sensor)";
+ case SENSOR_ERROR_EXIT_PINCH_DOWN:
+ return "Error (Exit Pinch Up Sensor)";
+ case SENSOR_ERROR_EXIT_PINCH_UP:
+ return "Error (Exit Pinch Up Sensor)";
+ case SENSOR_ERROR_LEFT_CUTTER:
+ return "Error (Left Cutter Sensor)";
+ case SENSOR_ERROR_RIGHT_CUTTER:
+ return "Error (Right Cutter Sensor)";
+ case SENSOR_ERROR_CENTER_CUTTER:
+ return "Error (Center Cutter Sensor)";
+ case SENSOR_ERROR_UPPER_CUTTER:
+ return "Error (Upper Cutter Sensor)";
+ case SENSOR_ERROR_PAPER_FEED_COVER:
+ return "Error (Paper Feed Cover)";
+ default:
+ return "Error (Unknown Sensor)";
+ }
+ case ERROR_STATUS2_COVER_OPEN:
+ switch (resp->state.error) {
+ case COVER_OPEN_ERROR_UPPER:
+ return "Error (Upper Cover Open)";
+ case COVER_OPEN_ERROR_LOWER:
+ return "Error (Lower Cover Open)";
+ default:
+ return "Error (Unknown Cover Open)";
+ }
+ case ERROR_STATUS2_TEMP_SENSOR:
+ switch (resp->state.error) {
+ case TEMP_SENSOR_ERROR_HEAD_HIGH:
+ return "Error (Head Temperature High)";
+ case TEMP_SENSOR_ERROR_HEAD_LOW:
+ return "Error (Head Temperature Low)";
+ case TEMP_SENSOR_ERROR_ENV_HIGH:
+ return "Error (Environmental Temperature High)";
+ case TEMP_SENSOR_ERROR_ENV_LOW:
+ return "Error (Environmental Temperature Low)";
+ default:
+ return "Error (Unknown Temperature)";
+ }
+ case ERROR_STATUS2_PAPER_JAM:
+ return "Error (Paper Jam)";
+ case ERROR_STATUS2_PAPER_EMPTY:
+ return "Error (Paper Empty)";
+ case ERROR_STATUS2_RIBBON_ERR:
+ return "Error (Ribbon)";
+ default:
+ return "Error (Unknown)";
+ }
+ default:
+ return "Unknown!";
+ }
+}
+
+static char* shinkos1245_tonecurves(int type, int table)
+{
+ switch (type) {
+ case TONE_TABLE_STANDARD:
+ switch (table) {
+ case PARAM_TABLE_STANDARD:
+ return "Standard/Standard";
+ case PARAM_TABLE_FINE:
+ return "Standard/Fine";
+ default:
+ return "Standard/Unknown";
+ }
+ case TONE_TABLE_USER:
+ switch (table) {
+ case PARAM_TABLE_STANDARD:
+ return "User/Standard";
+ case PARAM_TABLE_FINE:
+ return "User/Fine";
+ default:
+ return "User/Unknown";
+ }
+ case TONE_TABLE_CURRENT:
+ switch (table) {
+ case PARAM_TABLE_STANDARD:
+ return "Current/Standard";
+ case PARAM_TABLE_FINE:
+ return "Current/Fine";
+ default:
+ return "Current/Unknown";
+ }
+ default:
+ return "Unknown";
+ }
+}
+
+static void shinkos1245_dump_status(struct shinkos1245_resp_status *sts)
+{
+ char *detail;
+ switch (sts->print_status) {
+ case STATUS_PRINTING:
+ detail = "Printing";
+ break;
+ case STATUS_IDLE:
+ detail = "Idle";
+ break;
+ default:
+ detail = "Unknown";
+ break;
+ }
+ INFO("Printer Status: %s\n", detail);
+
+ /* Byteswap */
+ sts->state.status2 = be32_to_cpu(sts->state.status2);
+
+ INFO("Printer State: %s # %02x %08x %02x\n",
+ shinkos1245_status_str(sts),
+ sts->state.status1, sts->state.status2, sts->state.error);
+ INFO("Counters:\n");
+ INFO("\tLifetime : %d\n", be32_to_cpu(sts->counters.lifetime));
+ INFO("\tThermal Head : %d\n", be32_to_cpu(sts->counters.maint));
+ INFO("\tMedia : %d\n", be32_to_cpu(sts->counters.media));
+ INFO("\tCutter : %d\n", be32_to_cpu(sts->counters.cutter));
+
+ INFO("Versions:\n");
+ INFO("\tUSB Boot : %d\n", sts->counters.ver_boot);
+ INFO("\tUSB Control : %d\n", sts->counters.ver_ctrl);
+ INFO("\tMain Boot : %d\n", be16_to_cpu(sts->versions.main_boot));
+ INFO("\tMain Control: %d\n", be16_to_cpu(sts->versions.main_control));
+ INFO("\tDSP Boot : %d\n", be16_to_cpu(sts->versions.dsp_boot));
+ INFO("\tDSP Control : %d\n", be16_to_cpu(sts->versions.dsp_control));
+
+// INFO("USB TypeFlag: %02x\n", sts->counters.control_flag);
+
+ INFO("Bank 1 ID: %d\n", sts->counters2.bank1_id);
+ INFO("\tPrints: %d/%d complete\n",
+ be16_to_cpu(sts->counters2.bank1_complete),
+ be16_to_cpu(sts->counters2.bank1_spec));
+ INFO("Bank 2 ID: %d\n", sts->counters2.bank2_id);
+ INFO("\tPrints: %d/%d complete\n",
+ be16_to_cpu(sts->counters2.bank2_complete),
+ be16_to_cpu(sts->counters2.bank2_spec));
+
+ switch (sts->curve_status) {
+ case CURVE_TABLE_STATUS_INITIAL:
+ detail = "Initial/Default";
+ break;
+ case CURVE_TABLE_STATUS_USERSET:
+ detail = "User Stored";
+ break;
+ case CURVE_TABLE_STATUS_CURRENT:
+ detail = "Current";
+ break;
+ default:
+ detail = "Unknown";
+ break;
+ }
+ INFO("Tone Curve Status: %s\n", detail);
+}
+
+static void shinkos1245_dump_media(struct shinkos1245_mediadesc *medias,
+ int count)
+{
+ int i;
+
+ INFO("Supported print sizes: %d\n", count);
+
+ for (i = 0 ; i < count ; i++) {
+ INFO("\t %02x: %04d*%04d (%02x/%02d)\n",
+ medias[i].print_type,
+ medias[i].columns,
+ medias[i].rows,
+ medias[i].code, medias[i].type);
+ }
+}
+
+static int get_tonecurve(struct shinkos1245_ctx *ctx, int type, int table, char *fname)
+{
+ int ret = 0, num, remaining;
+ uint8_t *data, *ptr;
+
+ struct shinkos1245_cmd_tone cmd;
+ struct shinkos1245_resp_status resp;
+
+ INFO("Dump %s Tone Curve to '%s'\n", shinkos1245_tonecurves(type, table), fname);
+
+ /* Issue a tone_read_start */
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x0c;
+ cmd.tone[0] = 0x54;
+ cmd.tone[1] = 0x4f;
+ cmd.tone[2] = 0x4e;
+ cmd.tone[3] = 0x45;
+ cmd.cmd2[0] = 0x72;
+ cmd.read_write.tone_table = type;
+ cmd.read_write.param_table = table;
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &resp, sizeof(resp), &num);
+
+ if (ret < 0) {
+ ERROR("Failed to execute TONE_READ command\n");
+ return ret;
+ }
+ if (resp.code != CMD_CODE_OK) {
+ ERROR("Bad return code on TONE_READ (%02x)\n",
+ resp.code);
+ return -99;
+ }
+
+ /* Get the data out */
+ remaining = TONE_CURVE_SIZE;
+ data = malloc(remaining);
+ if (!data) {
+ ERROR("Memory Allocation Failure!\n");
+ return -11;
+ }
+ ptr = data;
+
+ while(remaining) {
+ /* Issue a tone_data message */
+ cmd.cmd2[0] = 0x20;
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &resp, sizeof(resp), &num);
+
+ if (ret < 0) {
+ ERROR("Failed to execute TONE_DATA command\n");
+ goto done;
+ }
+ if (resp.code != CMD_CODE_OK) {
+ ERROR("Bad return code on TONE_DATA (%02x)\n",
+ resp.code);
+ ret = -99;
+ goto done;
+ }
+
+ /* And read back 64-bytes of data */
+ ret = read_data(ctx->dev, ctx->endp_up,
+ ptr, TONE_CURVE_DATA_BLOCK_SIZE, &num);
+ if (num != TONE_CURVE_DATA_BLOCK_SIZE) {
+ ret = -99;
+ goto done;
+ }
+ if (ret < 0)
+ goto done;
+ ptr += num;
+ }
+
+ /* Issue a tone_end */
+ cmd.cmd2[0] = 0x65;
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &resp, sizeof(resp), &num);
+
+ if (ret < 0) {
+ ERROR("Failed to execute TONE_END command\n");
+ goto done;
+ }
+ if (resp.code != CMD_CODE_OK) {
+ ERROR("Bad return code on TONE_END (%02x)\n",
+ resp.code);
+ ret = -99;
+ goto done;
+ }
+
+ /* Open file and write it out */
+ {
+ int tc_fd = open(fname, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);
+ if (tc_fd < 0) {
+ ret = tc_fd;
+ goto done;
+ }
+
+ ret = write(tc_fd, data, TONE_CURVE_SIZE);
+ if (ret < 0)
+ goto done;
+ close(tc_fd);
+ }
+
+done:
+ free(data);
+
+ return ret;
+}
+
+static int set_tonecurve(struct shinkos1245_ctx *ctx, int type, int table, char *fname)
+{
+ int ret = 0, num, remaining;
+ uint8_t *data, *ptr;
+
+ struct shinkos1245_cmd_tone cmd;
+ struct shinkos1245_resp_status resp;
+
+ INFO("Read %d/%d Tone Curve from '%s'\n", type, table, fname); // XXX
+
+ /* Allocate space */
+ remaining = TONE_CURVE_SIZE;
+ data = malloc(remaining);
+ if (!data) {
+ ERROR("Memory Allocation Failure!\n");
+ return -11;
+ }
+ ptr = data;
+
+ /* Open file and read it in */
+ {
+ int tc_fd = open(fname, O_RDONLY);
+ if (tc_fd < 0) {
+ ret = tc_fd;
+ goto done;
+ }
+
+ ret = read(tc_fd, data, TONE_CURVE_SIZE);
+ if (ret < 0) {
+ close(tc_fd);
+ goto done;
+ }
+
+ close(tc_fd);
+ }
+
+ /* Issue a tone_write_start */
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x0c;
+ cmd.tone[0] = 0x54;
+ cmd.tone[1] = 0x4f;
+ cmd.tone[2] = 0x4e;
+ cmd.tone[3] = 0x45;
+ cmd.cmd2[0] = 0x77;
+ cmd.read_write.tone_table = type;
+ cmd.read_write.param_table = table;
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &resp, sizeof(resp), &num);
+
+ if (ret < 0) {
+ ERROR("Failed to execute TONE_WRITE command\n");
+ goto done;
+ }
+ if (resp.code != CMD_CODE_OK) {
+ ERROR("Bad return code on TONE_WRITE (%02x)\n",
+ resp.code);
+ ret = -99;
+ goto done;
+ }
+
+ while(remaining) {
+ /* Issue a tone_data message */
+ cmd.cmd2[0] = 0x20;
+
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &resp, sizeof(resp), &num);
+
+ if (ret < 0) {
+ ERROR("Failed to execute TONE_DATA command\n");
+ goto done;
+ }
+ if (resp.code != CMD_CODE_OK) {
+ ERROR("Bad return code on TONE_DATA (%02x)\n",
+ resp.code);
+ ret = -99;
+ goto done;
+ }
+
+ /* Write 64-bytes of data */
+ ret = send_data(ctx->dev, ctx->endp_up,
+ ptr, TONE_CURVE_DATA_BLOCK_SIZE);
+ if (ret < 0)
+ goto done;
+ ptr += num;
+ }
+
+ /* Issue a tone_end */
+ cmd.cmd2[0] = 0x65;
+ ret = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &resp, sizeof(resp), &num);
+
+ if (ret < 0) {
+ ERROR("Failed to execute TONE_END command\n");
+ goto done;
+ }
+ if (resp.code != CMD_CODE_OK) {
+ ERROR("Bad return code on TONE_END (%02x)\n",
+ resp.code);
+ ret = -99;
+ goto done;
+ }
+
+done:
+ free(data);
+
+ return ret;
+}
+
+
+/* Driver API */
+
+static void shinkos1245_cmdline(void)
+{
+ DEBUG("\t\t[ -m ] # Query media\n");
+ DEBUG("\t\t[ -s ] # Query status\n");
+ DEBUG("\t\t[ -u ] # Query user string\n");
+ DEBUG("\t\t[ -U sometext ] # Set user string\n");
+ DEBUG("\t\t[ -X jobid ] # Abort a printjob\n");
+ DEBUG("\t\t[ -F ] # Tone curve refers to FINE mode\n");
+ DEBUG("\t\t[ -c filename ] # Get user/NV tone curve\n");
+ DEBUG("\t\t[ -C filename ] # Set user/NV tone curve\n");
+ DEBUG("\t\t[ -l filename ] # Get current tone curve\n");
+ DEBUG("\t\t[ -L filename ] # Set current tone curve\n");
+}
+
+int shinkos1245_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct shinkos1245_ctx *ctx = vctx;
+ int i, j = 0;
+
+ if (!ctx)
+ return -1;
+
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "c:C:l:L:FmsuU:X:")) >= 0) {
+ switch(i) {
+ GETOPT_PROCESS_GLOBAL
+ case 'F':
+ ctx->tonecurve = PARAM_TABLE_FINE;
+ break;
+ case 'c':
+ j = get_tonecurve(ctx, TONE_TABLE_USER, ctx->tonecurve, optarg);
+ break;
+ case 'C':
+ j = set_tonecurve(ctx, TONE_TABLE_USER, ctx->tonecurve, optarg);
+ break;
+ case 'l':
+ j = get_tonecurve(ctx, TONE_TABLE_CURRENT, ctx->tonecurve, optarg);
+ break;
+ case 'L':
+ j = set_tonecurve(ctx, TONE_TABLE_CURRENT, ctx->tonecurve, optarg);
+ break;
+ case 'm':
+ j = shinkos1245_get_media(ctx);
+ if (!j)
+ shinkos1245_dump_media(ctx->medias, ctx->num_medias);
+ break;
+ case 's': {
+ struct shinkos1245_resp_status sts;
+ j = shinkos1245_get_status(ctx, &sts);
+ if (!j)
+ shinkos1245_dump_status(&sts);
+ break;
+ }
+ case 'u': {
+ struct shinkos1245_resp_getid resp;
+ j = shinkos1245_get_printerid(ctx, &resp);
+ if (!j) {
+ char buffer[sizeof(resp.data)+1];
+ memcpy(buffer, resp.data, sizeof(resp.data));
+ buffer[sizeof(resp.data)] = 0;
+ INFO("Printer ID: %02x '%s'\n", resp.id, buffer);
+ }
+ break;
+ }
+ case 'U':
+ j = shinkos1245_set_printerid(ctx, optarg);
+ break;
+ case 'X':
+ j = shinkos1245_canceljob(ctx, atoi(optarg));
+ break;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+static void *shinkos1245_init(void)
+{
+ struct shinkos1245_ctx *ctx = malloc(sizeof(struct shinkos1245_ctx));
+ if (!ctx) {
+ ERROR("Memory Allocation Failure!\n");
+ return NULL;
+ }
+ memset(ctx, 0, sizeof(struct shinkos1245_ctx));
+
+ ctx->tonecurve = PARAM_TABLE_STANDARD;
+
+ return ctx;
+}
+
+static void shinkos1245_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct shinkos1245_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+ ctx->type = lookup_printer_type(&shinkos1245_backend,
+ desc.idVendor, desc.idProduct);
+
+ /* Ensure jobid is sane */
+ ctx->jobid = (jobid & 0x7f) + 1;
+}
+
+
+static void shinkos1245_teardown(void *vctx) {
+ struct shinkos1245_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+
+ free(ctx);
+}
+
+static int shinkos1245_read_parse(void *vctx, int data_fd) {
+ struct shinkos1245_ctx *ctx = vctx;
+ int ret;
+ uint8_t tmpbuf[4];
+
+ if (!ctx)
+ return CUPS_BACKEND_FAILED;
+
+ /* Read in then validate header */
+ ret = read(data_fd, &ctx->hdr, sizeof(ctx->hdr));
+ if (ret < 0)
+ return ret;
+ if (ret < 0 || ret != sizeof(ctx->hdr))
+ return CUPS_BACKEND_CANCEL;
+
+ if (le32_to_cpu(ctx->hdr.len1) != 0x10 ||
+ le32_to_cpu(ctx->hdr.len2) != 0x64 ||
+ le32_to_cpu(ctx->hdr.dpi) != 300) {
+ ERROR("Unrecognized header data format!\n");
+ return CUPS_BACKEND_CANCEL;
+ }
+
+ ctx->hdr.model = le32_to_cpu(ctx->hdr.model);
+
+ if(ctx->hdr.model != 1245) {
+ ERROR("Unrecognized printer (%d)!\n", ctx->hdr.model);
+ return CUPS_BACKEND_CANCEL;
+ }
+
+ /* Finish byteswapping */
+ ctx->hdr.media = le32_to_cpu(ctx->hdr.media);
+ ctx->hdr.method = le32_to_cpu(ctx->hdr.method);
+ ctx->hdr.mode = le32_to_cpu(ctx->hdr.mode);
+ ctx->hdr.mattedepth = le32_to_cpu(ctx->hdr.mattedepth);
+ ctx->hdr.dust = le32_to_cpu(ctx->hdr.dust);
+ ctx->hdr.columns = le32_to_cpu(ctx->hdr.columns);
+ ctx->hdr.rows = le32_to_cpu(ctx->hdr.rows);
+ ctx->hdr.copies = le32_to_cpu(ctx->hdr.copies);
+
+ /* Allocate space */
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ ctx->datalen = ctx->hdr.rows * ctx->hdr.columns * 3;
+ ctx->databuf = malloc(ctx->datalen);
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return CUPS_BACKEND_FAILED;
+ }
+
+ {
+ int remain = ctx->datalen;
+ uint8_t *ptr = ctx->databuf;
+ do {
+ ret = read(data_fd, ptr, remain);
+ if (ret < 0) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, remain, ctx->datalen);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ ptr += ret;
+ remain -= ret;
+ } while (remain);
+ }
+
+ /* Make sure footer is sane too */
+ ret = read(data_fd, tmpbuf, 4);
+ if (ret != 4) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 4, 4);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ if (tmpbuf[0] != 0x04 ||
+ tmpbuf[1] != 0x03 ||
+ tmpbuf[2] != 0x02 ||
+ tmpbuf[3] != 0x01) {
+ ERROR("Unrecognized footer data format!\n");
+ return CUPS_BACKEND_FAILED;
+ }
+
+ return CUPS_BACKEND_OK;
+}
+
+static int shinkos1245_main_loop(void *vctx, int copies) {
+ struct shinkos1245_ctx *ctx = vctx;
+ int i, num, last_state = -1, state = S_IDLE;
+ struct shinkos1245_resp_status status1, status2;
+
+ // XXX query printer info
+
+ /* Query Media information if necessary */
+ if (!ctx->num_medias)
+ shinkos1245_get_media(ctx);
+ if (!ctx->num_medias) {
+ ERROR("Media Query Error\n");
+ return CUPS_BACKEND_FAILED;
+ }
+ /* Make sure print size is supported */
+ for (i = 0 ; i < ctx->num_medias ; i++) {
+ if (ctx->hdr.media == ctx->medias[i].code &&
+ ctx->hdr.method == ctx->medias[i].print_type &&
+ ctx->hdr.rows == ctx->medias[i].rows &&
+ ctx->hdr.columns == ctx->medias[i].columns)
+ break;
+ }
+ if (i == ctx->num_medias) {
+ ERROR("Unsupported print type\n");
+ return CUPS_BACKEND_HOLD;
+ }
+
+ /* Fix max print count. */
+ if (copies > 9999) // XXX test against remaining media
+ copies = 9999;
+
+top:
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ /* Send status query */
+ i = shinkos1245_get_status(ctx, &status1);
+ if (i < 0)
+ return CUPS_BACKEND_FAILED;
+
+ if (memcmp(&status1, &status2, sizeof(status1))) {
+ memcpy(&status2, &status1, sizeof(status1));
+ // status changed, check for errors and whatnot
+ } else if (state == last_state) {
+ sleep(1);
+ goto top;
+ }
+
+ /* Make sure we're not in an error state */
+ if (status1.state.status1 == STATE_STATUS1_ERROR)
+ goto printer_error;
+
+ last_state = state;
+
+ fflush(stderr);
+
+ switch (state) {
+ case S_IDLE:
+ INFO("Waiting for printer idle\n");
+
+ if (status1.state.status1 == STATE_STATUS1_STANDBY) {
+ state = S_PRINTER_READY_CMD;
+ break;
+ }
+
+ if (status1.print_status == STATUS_IDLE) {
+ state = S_PRINTER_READY_CMD;
+ break;
+ }
+
+ // XXX what about STATUS_WAIT ?
+ // XXX see if printer has an empty bank?
+
+ /* If the printer is "busy" check to see if there's any
+ open memory banks so we can queue the next print */
+ if (!status1.counters2.bank1_remain ||
+ !status1.counters2.bank2_remain) {
+ state = S_PRINTER_READY_CMD;
+ break;
+ }
+ break;
+ case S_PRINTER_READY_CMD: {
+ struct shinkos1245_cmd_print cmd;
+
+ /* Set matte intensity */
+ if (ctx->hdr.mattedepth != 0x7fffffff) {
+ int current = -1;
+ i = shinkos1245_get_matte(ctx, &current);
+ if (i < 0)
+ goto printer_error;
+ if (current != ctx->hdr.mattedepth) {
+ i = shinkos1245_set_matte(ctx, ctx->hdr.mattedepth);
+ if (i < 0)
+ goto printer_error;
+ if (i > 0) {
+ INFO("Can't set matte intensity when printing in progres...\n");
+ state = S_IDLE;
+ sleep(1);
+ break;
+ }
+ }
+ }
+
+ INFO("Initiating print job (internal id %d)\n", ctx->jobid);
+
+ shinkos1245_fill_hdr(&cmd.hdr);
+ cmd.cmd[0] = 0x0a;
+ cmd.cmd[1] = 0x00;
+
+ cmd.id = ctx->jobid;
+ cmd.count = cpu_to_be16(uint16_to_packed_bcd(copies));
+ cmd.columns = cpu_to_be16(ctx->hdr.columns);
+ cmd.rows = cpu_to_be16(ctx->hdr.rows);
+ cmd.media = ctx->hdr.media;
+ cmd.mode = (ctx->hdr.mode & 0x3f) || ((ctx->hdr.dust & 0x3) << 6);
+ cmd.combo = ctx->hdr.method;
+
+ /* Issue print commmand */
+ i = shinkos1245_do_cmd(ctx, &cmd, sizeof(cmd),
+ &status1, sizeof(status1),
+ &num);
+ if (i < 0)
+ goto printer_error;
+
+ /* Check for buffer full state, and wait if we're full */
+ if (status1.code != CMD_CODE_OK) {
+ if (status1.print_status == STATUS_PRINTING) {
+ sleep(1);
+ break;
+ } else {
+ goto printer_error;
+ }
+ }
+
+ /* Check for error states */
+ if (status1.state.status1 == STATE_STATUS1_ERROR)
+ goto printer_error;
+
+ /* Send over data */
+ INFO("Sending image data to printer\n");
+ if ((i = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf, ctx->datalen)))
+ return CUPS_BACKEND_FAILED;
+
+ INFO("Waiting for printer to acknowledge completion\n");
+ sleep(1);
+ state = S_PRINTER_SENT_DATA;
+ break;
+ }
+ case S_PRINTER_SENT_DATA:
+ if (fast_return) {
+ INFO("Fast return mode enabled.\n");
+ state = S_FINISHED;
+ }
+ /* Check for completion */
+ if (status1.print_status == STATUS_IDLE)
+ state = S_FINISHED;
+
+ break;
+ default:
+ break;
+ }
+
+ if (state != S_FINISHED)
+ goto top;
+
+ INFO("Print complete\n");
+
+ if (copies && --copies) {
+ state = S_IDLE;
+ goto top;
+ }
+
+ return CUPS_BACKEND_OK;
+
+printer_error:
+ /* Byteswap */
+ status1.state.status2 = be32_to_cpu(status1.state.status2);
+
+ ERROR("Printer Error: %s # %02x %08x %02x\n",
+ shinkos1245_status_str(&status1),
+ status1.state.status1, status1.state.status2, status1.state.error);
+
+ return CUPS_BACKEND_FAILED;
+}
+
+static int shinkos1245_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len)
+{
+ struct shinkos1245_resp_getid resp;
+ int i;
+
+ struct shinkos1245_ctx ctx = {
+ .dev = dev,
+ .endp_up = endp_up,
+ .endp_down = endp_down,
+ };
+
+ i = shinkos1245_get_printerid(&ctx, &resp);
+ if (i < 0)
+ return CUPS_BACKEND_FAILED;
+
+ for (i = 0 ; i < (int) sizeof(resp.data) && i < buf_len; i++) {
+ buf[i] = resp.data[i];
+ }
+
+ /* Ensure null-termination */
+ if (i < buf_len)
+ buf[i] = 0;
+ else
+ buf[buf_len-1] = 0;
+
+ return CUPS_BACKEND_OK;
+}
+
+/* Exported */
+#define USB_VID_SHINKO 0x10CE
+#define USB_PID_SHINKO_S1245 0x0007
+
+struct dyesub_backend shinkos1245_backend = {
+ .name = "Shinko/Sinfonia CHC-S1245",
+ .version = "0.07WIP",
+ .uri_prefix = "shinkos1245",
+ .cmdline_usage = shinkos1245_cmdline,
+ .cmdline_arg = shinkos1245_cmdline_arg,
+ .init = shinkos1245_init,
+ .attach = shinkos1245_attach,
+ .teardown = shinkos1245_teardown,
+ .read_parse = shinkos1245_read_parse,
+ .main_loop = shinkos1245_main_loop,
+ .query_serno = shinkos1245_query_serno,
+ .devices = {
+ { USB_VID_SHINKO, USB_PID_SHINKO_S1245, P_SHINKO_S1245, ""},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* CHC-S1245 data format
+
+ Spool file consists of an 116-byte header, followed by RGB-packed data,
+ followed by a 4-byte footer. Header appears to consist of a series of
+ 4-byte Little Endian words.
+
+ 10 00 00 00 MM MM 00 00 00 00 00 00 01 00 00 00 MM == Model (ie 1245d)
+ 64 00 00 00 00 00 00 00 TT 00 00 00 00 00 00 00 TT == Media Size (0x10 fixed)
+ MM 00 00 00 PP 00 00 00 00 00 00 00 ZZ ZZ ZZ ZZ MM = Print Method (aka cut control), PP = Default/Glossy/Matte (0x01/0x03/0x05), ZZ == matte intensity (0x7fffffff for glossy, else 0x00000000 +- 25 for matte)
+ VV 00 00 00 WW WW 00 00 HH HH 00 00 XX 00 00 00 VV == dust; 0x00 default, 0x01 off, 0x02 on, XX == Copies
+ 00 00 00 00 00 00 00 00 00 00 00 00 ce ff ff ff
+ 00 00 00 00 ce ff ff ff QQ QQ 00 00 ce ff ff ff QQ == DPI, ie 300.
+ 00 00 00 00 ce ff ff ff 00 00 00 00 00 00 00 00
+ 00 00 00 00
+
+ [[Packed RGB payload of WW*HH*3 bytes]]
+
+ 04 03 02 01 [[ footer ]]
+
+
+*/
diff --git a/src/cups/shinko_s2145_print.c b/src/cups/shinko_s2145_print.c
index 5196528..c6fd88f 100644
--- a/src/cups/shinko_s2145_print.c
+++ b/src/cups/shinko_s2145_print.c
@@ -39,8 +39,9 @@
#include <fcntl.h>
#include <signal.h>
-#include "backend_common.h"
+#define BACKEND shinkos2145_backend
+#include "backend_common.h"
enum {
S_IDLE = 0,
@@ -53,7 +54,7 @@ enum {
struct s2145_printjob_hdr {
uint32_t len1; /* Fixed at 0x10 */
uint32_t model; /* Equal to the printer model (eg '2145' or '1245' decimal) */
- uint32_t med_type; /* 6145 only, media type */
+ uint32_t unk2;
uint32_t unk3; /* Fixed at 0x01 */
uint32_t len2; /* Fixed at 0x64 */
@@ -61,9 +62,9 @@ struct s2145_printjob_hdr {
uint32_t media;
uint32_t unk6;
- uint32_t method; /* Method for 2145, 0x00 for 6245, multicut for 6145 */
- uint32_t mode; /* Mode for 2145, 0x00 for 6245, quality for 6145 */
- uint32_t oc_mode; /* 6145/6245 only, Matte/Glossy/None */
+ uint32_t method;
+ uint32_t mode;
+ uint32_t unk7;
uint32_t unk8;
uint32_t unk9;
@@ -94,13 +95,12 @@ struct shinkos2145_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
+
uint8_t jobid;
- uint8_t fast_return;
struct s2145_printjob_hdr hdr;
- uint32_t model;
-
uint8_t *databuf;
int datalen;
};
@@ -684,11 +684,11 @@ struct s2145_status_resp {
static char *bank_statuses(uint8_t v)
{
switch (v) {
- case 0:
+ case BANK_STATUS_FREE:
return "Free";
- case 1:
+ case BANK_STATUS_XFER:
return "Xfer";
- case 2:
+ case BANK_STATUS_FULL:
return "Full";
default:
return "Unknown";
@@ -723,7 +723,7 @@ struct s2145_mediainfo_item {
uint16_t columns;
uint16_t rows;
uint8_t media_type;
- uint8_t print_type;
+ uint8_t print_type; /* The same as the "print method" */
uint8_t reserved[3];
} __attribute__((packed));
@@ -900,7 +900,7 @@ static int get_fwinfo(struct shinkos2145_ctx *ctx)
(uint8_t*)&cmd, sizeof(cmd),
sizeof(*resp),
&num)) < 0) {
- ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ ERROR("Failed to execute %s command (%d)\n", cmd_names(cmd.hdr.cmd), ret);
continue;
}
@@ -1136,7 +1136,7 @@ static int get_tonecurve(struct shinkos2145_ctx *ctx, int type, char *fname)
int ret, num = 0;
uint8_t *data;
- uint16_t curves[768];
+ uint16_t curves[UPDATE_SIZE] = { 0 } ;
int i,j;
@@ -1161,6 +1161,7 @@ static int get_tonecurve(struct shinkos2145_ctx *ctx, int type, char *fname)
if (!data) {
ERROR("Memory allocation failure! (%d bytes)\n",
resp->total_size * 2);
+ return -1;
}
i = 0;
@@ -1189,11 +1190,11 @@ static int get_tonecurve(struct shinkos2145_ctx *ctx, int type, char *fname)
goto done;
}
- for (i = 0 ; i < 768; i++) {
+ for (i = 0 ; i < UPDATE_SIZE; i++) {
/* Byteswap appropriately */
curves[i] = cpu_to_be16(le16_to_cpu(curves[i]));
- write(tc_fd, &curves[i], sizeof(uint16_t));
}
+ write(tc_fd, curves, UPDATE_SIZE * sizeof(uint16_t));
close(tc_fd);
}
@@ -1210,11 +1211,12 @@ static int set_tonecurve(struct shinkos2145_ctx *ctx, int target, char *fname)
INFO("Set %s Tone Curve from '%s'\n", update_targets(target), fname);
- uint16_t *data = malloc(UPDATE_SIZE);
+ uint16_t *data = malloc(UPDATE_SIZE * sizeof(uint16_t));
if (!data) {
ERROR("Memory allocation failure! (%d bytes)\n",
UPDATE_SIZE);
+ return -1;
}
/* Read in file */
@@ -1223,26 +1225,26 @@ static int set_tonecurve(struct shinkos2145_ctx *ctx, int target, char *fname)
ret = -1;
goto done;
}
- if (read(tc_fd, data, UPDATE_SIZE) != UPDATE_SIZE) {
+ if (read(tc_fd, data, UPDATE_SIZE * sizeof(uint16_t)) != (UPDATE_SIZE * sizeof(uint16_t))) {
ret = -2;
goto done;
}
close(tc_fd);
/* Byteswap data to local CPU.. */
- for (ret = 0; ret < UPDATE_SIZE ; ret+=2) {
+ for (ret = 0; ret < UPDATE_SIZE ; ret++) {
data[ret] = be16_to_cpu(data[ret]);
}
/* Set up command */
cmd.target = target;
cmd.reserved = 0;
- cmd.size = cpu_to_le32(UPDATE_SIZE);
+ cmd.size = cpu_to_le32(UPDATE_SIZE * sizeof(uint16_t));
cmd.hdr.cmd = cpu_to_le16(S2145_CMD_UPDATE);
cmd.hdr.len = cpu_to_le16(sizeof(struct s2145_update_cmd)-sizeof(cmd.hdr));
/* Byteswap data to format printer is expecting.. */
- for (ret = 0; ret < UPDATE_SIZE ; ret+=2) {
+ for (ret = 0; ret < UPDATE_SIZE ; ret++) {
data[ret] = cpu_to_le16(data[ret]);
}
@@ -1256,7 +1258,7 @@ static int set_tonecurve(struct shinkos2145_ctx *ctx, int target, char *fname)
/* Sent transfer */
if ((ret = send_data(ctx->dev, ctx->endp_down,
- (uint8_t *) data, UPDATE_SIZE))) {
+ (uint8_t *) data, UPDATE_SIZE * sizeof(uint16_t)))) {
goto done;
}
@@ -1274,10 +1276,10 @@ static void shinkos2145_cmdline(void)
DEBUG("\t\t[ -e ] # Query error log\n");
DEBUG("\t\t[ -f ] # Use fast return mode\n");
DEBUG("\t\t[ -F ] # Flash Printer LED\n");
+ DEBUG("\t\t[ -i ] # Query printer info\n");
DEBUG("\t\t[ -l filename ] # Get current tone curve\n");
DEBUG("\t\t[ -L filename ] # Set current tone curve\n");
DEBUG("\t\t[ -m ] # Query media\n");
- DEBUG("\t\t[ -i ] # Query printer info\n");
DEBUG("\t\t[ -r ] # Reset user/NV tone curve\n");
DEBUG("\t\t[ -R ] # Reset printer to factory defaults\n");
DEBUG("\t\t[ -s ] # Query status\n");
@@ -1291,112 +1293,65 @@ int shinkos2145_cmdline_arg(void *vctx, int argc, char **argv)
struct shinkos2145_ctx *ctx = vctx;
int i, j = 0;
+ if (!ctx)
+ return -1;
+
/* Reset arg parsing */
optind = 1;
opterr = 0;
- while ((i = getopt(argc, argv, "b:c:C:efFil:L:mr:R:suU:X:")) >= 0) {
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "b:c:C:eFil:L:mr:R:suU:X:")) >= 0) {
switch(i) {
+ GETOPT_PROCESS_GLOBAL
case 'b':
- if (ctx) {
- if (optarg[0] == '1')
- j = button_set(ctx, BUTTON_ENABLED);
- else if (optarg[0] == '0')
- j = button_set(ctx, BUTTON_DISABLED);
- else
- return -1;
- break;
- }
- return 1;
+ if (optarg[0] == '1')
+ j = button_set(ctx, BUTTON_ENABLED);
+ else if (optarg[0] == '0')
+ j = button_set(ctx, BUTTON_DISABLED);
+ else
+ return -1;
+ break;
case 'c':
- if (ctx) {
- j = get_tonecurve(ctx, TONECURVE_USER, optarg);
- break;
- }
- return 1;
+ j = get_tonecurve(ctx, TONECURVE_USER, optarg);
+ break;
case 'C':
- if (ctx) {
- j = set_tonecurve(ctx, TONECURVE_USER, optarg);
- break;
- }
- return 1;
+ j = set_tonecurve(ctx, TONECURVE_USER, optarg);
+ break;
case 'e':
- if (ctx) {
- j = get_errorlog(ctx);
- break;
- }
- return 1;
- case 'f':
- if (ctx) {
- ctx->fast_return = 1;
- break;
- }
- return 1;
+ j = get_errorlog(ctx);
+ break;
case 'F':
- if (ctx) {
- j = flash_led(ctx);
- break;
- }
- return 1;
+ j = flash_led(ctx);
+ break;
case 'i':
- if (ctx) {
- j = get_fwinfo(ctx);
- break;
- }
- return 1;
+ j = get_fwinfo(ctx);
+ break;
case 'l':
- if (ctx) {
- j = get_tonecurve(ctx, TONECURVE_CURRENT, optarg);
- break;
- }
- return 1;
+ j = get_tonecurve(ctx, TONECURVE_CURRENT, optarg);
+ break;
case 'L':
- if (ctx) {
- j = set_tonecurve(ctx, TONECURVE_CURRENT, optarg);
- break;
- }
- return 1;
+ j = set_tonecurve(ctx, TONECURVE_CURRENT, optarg);
+ break;
case 'm':
- if (ctx) {
- j = get_mediainfo(ctx);
- break;
- }
- return 1;
+ j = get_mediainfo(ctx);
+ break;
case 'r':
- if (ctx) {
- j = reset_curve(ctx, RESET_USER_CURVE);
- break;
- }
- return 1;
+ j = reset_curve(ctx, RESET_USER_CURVE);
+ break;
case 'R':
- if (ctx) {
- j = reset_curve(ctx, RESET_PRINTER);
- break;
- }
- return 1;
+ j = reset_curve(ctx, RESET_PRINTER);
+ break;
case 's':
- if (ctx) {
- j = get_status(ctx);
- break;
- }
- return 1;
+ j = get_status(ctx);
+ break;
case 'u':
- if (ctx) {
- j = get_user_string(ctx);
- break;
- }
- return 1;
+ j = get_user_string(ctx);
+ break;
case 'U':
- if (ctx) {
- j = set_user_string(ctx, optarg);
- break;
- }
- return 1;
+ j = set_user_string(ctx, optarg);
+ break;
case 'X':
- if (ctx) {
- j = cancel_job(ctx, optarg);
- break;
- }
- return 1;
+ j = cancel_job(ctx, optarg);
+ break;
default:
break; /* Ignore completely */
}
@@ -1418,10 +1373,6 @@ static void *shinkos2145_init(void)
}
memset(ctx, 0, sizeof(struct shinkos2145_ctx));
- /* Use Fast return by default in CUPS mode */
- if (getenv("DEVICE_URI") || getenv("FAST_RETURN"))
- ctx->fast_return = 1;
-
return ctx;
}
@@ -1429,16 +1380,23 @@ static void shinkos2145_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct shinkos2145_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
ctx->dev = dev;
ctx->endp_up = endp_up;
ctx->endp_down = endp_down;
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+ ctx->type = lookup_printer_type(&shinkos2145_backend,
+ desc.idVendor, desc.idProduct);
+
/* Ensure jobid is sane */
ctx->jobid = (jobid & 0x7f) + 1;
}
-
static void shinkos2145_teardown(void *vctx) {
struct shinkos2145_ctx *ctx = vctx;
@@ -1451,18 +1409,19 @@ static void shinkos2145_teardown(void *vctx) {
free(ctx);
}
-static int shinkos2145_early_parse(void *vctx, int data_fd) {
+static int shinkos2145_read_parse(void *vctx, int data_fd) {
struct shinkos2145_ctx *ctx = vctx;
- int printer_type, ret;
+ int ret;
+ uint8_t tmpbuf[4];
if (!ctx)
- return -1;
+ return CUPS_BACKEND_FAILED;
/* Read in then validate header */
ret = read(data_fd, &ctx->hdr, sizeof(ctx->hdr));
if (ret < 0 || ret != sizeof(ctx->hdr)) {
if (ret == 0)
- return -1; /* deliberate */
+ return CUPS_BACKEND_CANCEL;
ERROR("Read failed (%d/%d/%d)\n",
ret, 0, (int)sizeof(ctx->hdr));
perror("ERROR: Read failed");
@@ -1473,42 +1432,20 @@ static int shinkos2145_early_parse(void *vctx, int data_fd) {
le32_to_cpu(ctx->hdr.len2) != 0x64 ||
le32_to_cpu(ctx->hdr.dpi) != 300) {
ERROR("Unrecognized header data format!\n");
- return -1;
+ return CUPS_BACKEND_CANCEL;
}
- ctx->model = le32_to_cpu(ctx->hdr.model);
-
- switch(ctx->model) {
- case 2145:
- printer_type = P_SHINKO_S2145;
- break;
- case 6145:
- case 6245:
- default:
+ if (le32_to_cpu(ctx->hdr.model) != 2145) {
ERROR("Unrecognized printer (%d)!\n", le32_to_cpu(ctx->hdr.model));
- return -1;
+ return CUPS_BACKEND_CANCEL;
}
- INFO("File intended for an S%d printer\n", ctx->model);
-
- return printer_type;
-}
-
-static int shinkos2145_read_parse(void *vctx, int data_fd) {
- struct shinkos2145_ctx *ctx = vctx;
- int ret;
- uint8_t tmpbuf[4];
-
- if (!ctx)
- return CUPS_BACKEND_FAILED;
-
if (ctx->databuf) {
free(ctx->databuf);
ctx->databuf = NULL;
}
-
ctx->datalen = le32_to_cpu(ctx->hdr.rows) * le32_to_cpu(ctx->hdr.columns) * 3;
ctx->databuf = malloc(ctx->datalen);
if (!ctx->databuf) {
@@ -1585,7 +1522,8 @@ static int shinkos2145_main_loop(void *vctx, int copies) {
for (i = 0; i < media->count ; i++) {
/* Look for matching media */
if (le16_to_cpu(media->items[i].columns) == cpu_to_le16(le32_to_cpu(ctx->hdr.columns)) &&
- le16_to_cpu(media->items[i].rows) == cpu_to_le16(le32_to_cpu(ctx->hdr.rows)))
+ le16_to_cpu(media->items[i].rows) == cpu_to_le16(le32_to_cpu(ctx->hdr.rows)) &&
+ media->items[i].print_type == le32_to_cpu(ctx->hdr.method))
break;
}
if (i == media->count) {
@@ -1593,7 +1531,9 @@ static int shinkos2145_main_loop(void *vctx, int copies) {
return CUPS_BACKEND_HOLD;
}
- top:
+ // XXX check copies against remaining media!
+
+top:
if (state != last_state) {
if (dyesub_debug)
DEBUG("last_state %d new %d\n", last_state, state);
@@ -1645,19 +1585,13 @@ static int shinkos2145_main_loop(void *vctx, int copies) {
print->hdr.cmd = cpu_to_le16(S2145_CMD_PRINTJOB);
print->hdr.len = cpu_to_le16(sizeof (*print) - sizeof(*cmd));
- if (ctx->model == 2145) {
- print->id = ctx->jobid;
- print->count = cpu_to_le16(copies);
- print->columns = cpu_to_le16(le32_to_cpu(ctx->hdr.columns));
- print->rows = cpu_to_le16(le32_to_cpu(ctx->hdr.rows));
- print->media = le32_to_cpu(ctx->hdr.media);
- print->mode = le32_to_cpu(ctx->hdr.mode);
- print->method = le32_to_cpu(ctx->hdr.method);
- } else {
- // s6145, s6245 use different fields
- ERROR("Don't know how to initiate print on non-2145 models!\n");
- return CUPS_BACKEND_FAILED;
- }
+ print->id = ctx->jobid;
+ print->count = cpu_to_le16(copies);
+ print->columns = cpu_to_le16(le32_to_cpu(ctx->hdr.columns));
+ print->rows = cpu_to_le16(le32_to_cpu(ctx->hdr.rows));
+ print->media = le32_to_cpu(ctx->hdr.media);
+ print->mode = le32_to_cpu(ctx->hdr.mode);
+ print->method = le32_to_cpu(ctx->hdr.method);
if ((ret = s2145_do_cmd(ctx,
cmdbuf, sizeof(*print),
@@ -1671,6 +1605,9 @@ static int shinkos2145_main_loop(void *vctx, int copies) {
if (sts->hdr.error == ERROR_BUFFER_FULL) {
INFO("Printer Buffers full, retrying\n");
break;
+ } else if ((sts->hdr.status & 0xf0) == 0x30 || sts->hdr.status == 0x21) {
+ INFO("Printer busy (%s), retrying\n", status_str(sts->hdr.status));
+ break;
} else if (sts->hdr.status != ERROR_NONE)
goto printer_error;
}
@@ -1685,7 +1622,7 @@ static int shinkos2145_main_loop(void *vctx, int copies) {
state = S_PRINTER_SENT_DATA;
break;
case S_PRINTER_SENT_DATA:
- if (ctx->fast_return) {
+ if (fast_return) {
INFO("Fast return mode enabled.\n");
state = S_FINISHED;
} else if (sts->hdr.status == STATUS_READY ||
@@ -1700,19 +1637,7 @@ static int shinkos2145_main_loop(void *vctx, int copies) {
if (state != S_FINISHED)
goto top;
- /* This printer handles copies internally */
- copies = 1;
-
- /* Clean up */
- if (terminate)
- copies = 1;
-
- INFO("Print complete (%d copies remaining)\n", copies - 1);
-
- if (copies && --copies) {
- state = S_IDLE;
- goto top;
- }
+ INFO("Print complete\n");
return CUPS_BACKEND_OK;
@@ -1764,29 +1689,21 @@ static int shinkos2145_query_serno(struct libusb_device_handle *dev, uint8_t end
/* Exported */
#define USB_VID_SHINKO 0x10CE
#define USB_PID_SHINKO_S2145 0x000E
-#define USB_PID_SHINKO_S6145 0x0019
-#define USB_PID_SHINKO_S6245 0x001D
-//#define USB_VID_CIAAT xxxxxx
-//#define USB_PID_CIAAT_BRAVA21 xxxxx
struct dyesub_backend shinkos2145_backend = {
.name = "Shinko/Sinfonia CHC-S2145",
- .version = "0.40",
+ .version = "0.46",
.uri_prefix = "shinkos2145",
.cmdline_usage = shinkos2145_cmdline,
.cmdline_arg = shinkos2145_cmdline_arg,
.init = shinkos2145_init,
.attach = shinkos2145_attach,
.teardown = shinkos2145_teardown,
- .early_parse = shinkos2145_early_parse,
.read_parse = shinkos2145_read_parse,
.main_loop = shinkos2145_main_loop,
.query_serno = shinkos2145_query_serno,
.devices = {
{ USB_VID_SHINKO, USB_PID_SHINKO_S2145, P_SHINKO_S2145, ""},
-// { USB_VID_SHINKO, USB_PID_SHINKO_S6145, P_SHINKO_S2145, ""},
-// { USB_VID_SHINKO, USB_PID_SHINKO_S6245, P_SHINKO_S2145, ""},
-// { USB_VID_CIAAT, USB_PID_CIAAT_BRAVA21, P_SHINKO_S2145, ""},
{ 0, 0, 0, ""}
}
};
@@ -1810,67 +1727,4 @@ struct dyesub_backend shinkos2145_backend = {
04 03 02 01 [[ footer ]]
- * CHC-S6245 data format
-
- Spool file consists of an 116-byte header, followed by RGB-packed data,
- followed by a 4-byte footer. Header appears to consist of a series of
- 4-byte Little Endian words.
-
- 10 00 00 00 MM MM 00 00 01 00 00 00 01 00 00 00 MM == Model (ie 6245d)
- 64 00 00 00 00 00 00 00 TT 00 00 00 00 00 00 00 TT == 0x20 8x4, 0x21 8x5, 0x22 8x6, 0x23 8x8, 0x10 8x10, 0x11 8x12
- 00 00 00 00 00 00 00 00 XX 00 00 00 00 00 00 00 XX == 0x03 matte, 0x02 glossy, 0x01 no coat
- 00 00 00 00 WW WW 00 00 HH HH 00 00 NN 00 00 00 WW/HH Width, Height (LE), NN == Copies
- 00 00 00 00 00 00 00 00 00 00 00 00 ce ff ff ff
- 00 00 00 00 ce ff ff ff QQ QQ 00 00 ce ff ff ff QQ == DPI (300)
- 00 00 00 00 ce ff ff ff 00 00 00 00 00 00 00 00
- 00 00 00 00
-
- [[Packed RGB payload of WW*HH*3 bytes]]
-
- 04 03 02 01 [[ footer ]]
-
- * CHC-S6145 data format
-
- Spool file consists of an 116-byte header, followed by RGB-packed data,
- followed by a 4-byte footer. Header appears to consist of a series of
- 4-byte Little Endian words.
-
- 10 00 00 00 MM MM 00 00 HH 00 00 00 01 00 00 00 MM == Model (ie 6145d), HH == 0x02 (5" media), 0x03 (6" media)
- 64 00 00 00 00 00 00 00 TT 00 00 00 00 00 00 00 TT == 0x08 5x5, 0x03 5x7, 0x07 2x6, 0x00 4x6, 0x06 6x6/6x6+6x2/6x8
- UU 00 00 00 ZZ 00 00 00 XX 00 00 00 00 00 00 00 XX == 0x00 default, 0x02 glossy, 0x03 matte, ZZ == 0x00 default, 0x01 == std qual; UU == 0x00 normal, 0x04 2x6*2, 0x05 6x6+2x6
- 00 00 00 00 WW WW 00 00 HH HH 00 00 NN 00 00 00 WW/HH Width, Height (LE), NN == Copies
- 00 00 00 00 00 00 00 00 00 00 00 00 ce ff ff ff
- 00 00 00 00 ce ff ff ff QQ QQ 00 00 ce ff ff ff QQ == DPI (300)
- 00 00 00 00 ce ff ff ff 00 00 00 00 00 00 00 00
- 00 00 00 00
-
- [[Packed RGB payload of WW*HH*3 bytes]]
-
- 04 03 02 01 [[ footer ]]
-
- * CIAAT Brava 21 data format
-
- This printer is supposed to be a variant of the S6145, but uses a
- different spool format -- but seems to use the same command language.
-
- 01 40 12 00 01 NN 00 YY YY XX XX TT 00 00 00 00 00 00 01 MM QQ 00
-
- NN == copies
- YY YY == Columns (LE)
- XX XX == Rows (LE)
- MM == Overcoat (02 = glossy, 03 = matte, 01 = none)
- QQ == Multicut (00 = normal, 01 = none, 02 = 2*4x6,
- 04 = 2*2x6, 80 = 4x6-notrim)
- TT == Type (00 = 4x6, 03 = 5x7, 06 = 8x6, 07 = 2x6)
-
- 1844*2434 8x6
- 1844*2492 4x6*2
- 1548*2140 5x7
- 1844*1240 4x6 (and 2x6*2)
- 1844*1210 4x6-notrim (WTF?)
- 1844*634 2x6
-
-
- [[ Followed by XX*YY*3 bytes of image data, RGB ]]
-
*/
diff --git a/src/cups/shinko_s6245_print.c b/src/cups/shinko_s6245_print.c
new file mode 100644
index 0000000..e4b57e9
--- /dev/null
+++ b/src/cups/shinko_s6245_print.c
@@ -0,0 +1,1863 @@
+/*
+ * Shinko/Sinfonia CHC-S6245 CUPS backend -- libusb-1.0 version
+ *
+ * (c) 2013-2015 Solomon Peachy <pizza@shaftnet.org>
+ *
+ * Low-level documentation was provided by Sinfonia, Inc. Thank you!
+ *
+ * The latest version of this program can be found at:
+ *
+ * http://git.shaftnet.org/cgit/selphy_print.git
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * [http://www.gnu.org/licenses/gpl-2.0.html]
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <time.h>
+
+#define BACKEND shinkos6245_backend
+
+#include "backend_common.h"
+
+
+enum {
+ S_IDLE = 0,
+ S_PRINTER_READY_CMD,
+ S_PRINTER_SENT_DATA,
+ S_FINISHED,
+};
+
+/* Structure of printjob header. All fields are LITTLE ENDIAN */
+struct s6245_printjob_hdr {
+ uint32_t len1; /* Fixed at 0x10 */
+ uint32_t model; /* Equal to the printer model (eg '6245' or '1245' decimal) */
+ uint32_t unk2;
+ uint32_t unk3; /* Fixed at 0x01 */
+
+ uint32_t len2; /* Fixed at 0x64 */
+ uint32_t unk5;
+ uint32_t media; // 8x4->8x12
+ uint32_t unk6;
+
+ uint32_t unk7;
+ uint32_t unk7a;
+ uint32_t oc_mode; /* 6145/6245 only, Matte/Glossy/None */
+ uint32_t unk8;
+
+ uint32_t unk9;
+ uint32_t columns;
+ uint32_t rows;
+ uint32_t copies;
+
+ uint32_t unk10;
+ uint32_t unk11;
+ uint32_t unk12;
+ uint32_t unk13;
+
+ uint32_t unk14;
+ uint32_t unk15;
+ uint32_t dpi; /* Fixed at '300' (decimal) */
+ uint32_t unk16;
+
+ uint32_t unk17;
+ uint32_t unk18;
+ uint32_t unk19;
+ uint32_t unk20;
+
+ uint32_t unk21;
+} __attribute__((packed));
+
+/* Private data stucture */
+struct shinkos6245_ctx {
+ struct libusb_device_handle *dev;
+ uint8_t endp_up;
+ uint8_t endp_down;
+ int type;
+
+ uint8_t jobid;
+
+ struct s6245_printjob_hdr hdr;
+
+ uint8_t *databuf;
+ int datalen;
+};
+
+/* Structs for printer */
+struct s6245_cmd_hdr {
+ uint16_t cmd;
+ uint16_t len; /* Not including this header */
+} __attribute__((packed));
+
+#define S6245_CMD_GETSTATUS 0x0001
+#define S6245_CMD_MEDIAINFO 0x0002
+#define S6245_CMD_ERRORLOG 0x0004
+#define S6245_CMD_GETPARAM 0x0005
+#define S6245_CMD_GETSERIAL 0x0006
+#define S6245_CMD_PRINTSTAT 0x0007
+#define S6245_CMD_EXTCOUNTER 0x0008
+
+#define S6245_CMD_PRINTJOB 0x4001
+#define S6245_CMD_CANCELJOB 0x4002
+#define S6245_CMD_FLASHLED 0x4003
+#define S6245_CMD_RESET 0x4004
+#define S6245_CMD_READTONE 0x4005
+#define S6245_CMD_SETPARAM 0x4007
+
+#define S6245_CMD_GETEEPROM 0x400E
+#define S6245_CMD_SETEEPROM 0x400F
+#define S6245_CMD_SETTIME 0x4011
+
+#define S6245_CMD_FWINFO 0xC003
+#define S6245_CMD_UPDATE 0xC004
+
+static char *cmd_names(uint16_t v) {
+ switch (le16_to_cpu(v)) {
+ case S6245_CMD_GETSTATUS:
+ return "Get Status";
+ case S6245_CMD_MEDIAINFO:
+ return "Get Media Info";
+ case S6245_CMD_ERRORLOG:
+ return "Get Error Log";
+ case S6245_CMD_GETPARAM:
+ return "Get Parameter";
+ case S6245_CMD_GETSERIAL:
+ return "Get Serial Number";
+ case S6245_CMD_PRINTSTAT:
+ return "Get Print ID Status";
+ case S6245_CMD_EXTCOUNTER:
+ return "Get Extended Counters";
+ case S6245_CMD_PRINTJOB:
+ return "Print";
+ case S6245_CMD_CANCELJOB:
+ return "Cancel Print";
+ case S6245_CMD_FLASHLED:
+ return "Flash LEDs";
+ case S6245_CMD_RESET:
+ return "Reset";
+ case S6245_CMD_READTONE:
+ return "Read Tone Curve";
+ case S6245_CMD_SETPARAM:
+ return "Set Parameter";
+ case S6245_CMD_GETEEPROM:
+ return "Get EEPROM Backup Parameter";
+ case S6245_CMD_SETEEPROM:
+ return "Set EEPROM Backup Parameter";
+ case S6245_CMD_SETTIME:
+ return "Time Setting";
+ case S6245_CMD_FWINFO:
+ return "Get Firmware Info";
+ case S6245_CMD_UPDATE:
+ return "Update";
+ default:
+ return "Unknown Command";
+ }
+};
+
+struct s6245_print_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t id;
+ uint16_t count;
+ uint16_t columns;
+ uint16_t rows;
+ uint8_t reserved[8]; // columns and rows repeated, then nulls
+ uint8_t mode;
+ uint8_t method;
+ uint8_t reserved2;
+} __attribute__((packed));
+
+#define PRINT_MODE_NO_OC 0x01
+#define PRINT_MODE_GLOSSY 0x02
+#define PRINT_MODE_MATTE 0x03
+
+#if 0
+static char *print_modes(uint8_t v) {
+ switch (v) {
+ case PRINT_MODE_NO_OC:
+ return "No Overcoat";
+ case PRINT_MODE_GLOSSY:
+ return "Glossy";
+ case PRINT_MODE_MATTE:
+ return "Matte";
+ default:
+ return "Unknown";
+ }
+}
+#endif
+
+#define PRINT_METHOD_STD 0x00
+#define PRINT_METHOD_COMBO_2 0x02
+#define PRINT_METHOD_COMBO_3 0x03
+
+#define PRINT_METHOD_DISABLE_ERR 0x10
+
+static char *print_methods (uint8_t v) {
+ switch (v & 0xf) {
+ case PRINT_METHOD_STD:
+ return "Standard";
+ case PRINT_METHOD_COMBO_2:
+ return "2up";
+ case PRINT_METHOD_COMBO_3:
+ return "3up";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s6245_cancel_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t id;
+} __attribute__((packed));
+
+struct s6245_reset_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t target;
+ uint8_t curveid;
+} __attribute__((packed));
+
+#define RESET_PRINTER 0x03
+#define RESET_TONE_CURVE 0x04
+
+#define TONE_CURVE_ID 0x01
+
+struct s6245_readtone_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t target;
+ uint8_t curveid;
+} __attribute__((packed));
+
+#define READ_TONE_CURVE_USER 0x01
+#define READ_TONE_CURVE_CURR 0x02
+
+struct s6245_setparam_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t target;
+ uint32_t param;
+} __attribute__((packed));
+
+#define PARAM_DRIVER_MODE 0x3e
+#define PARAM_PAPER_MODE 0x3f
+#define PARAM_SLEEP_TIME 0x54
+
+#define PARAM_DRIVER_WIZOFF 0x00000000
+#define PARAM_DRIVER_WIZON 0x00000001
+
+#define PARAM_PAPER_NOCUT 0x00000000
+#define PARAM_PAPER_CUTLOAD 0x00000001
+
+#define PARAM_SLEEP_5MIN 0x00000000
+#define PARAM_SLEEP_15MIN 0x00000001
+#define PARAM_SLEEP_30MIN 0x00000002
+#define PARAM_SLEEP_60MIN 0x00000003
+#define PARAM_SLEEP_120MIN 0x00000004
+#define PARAM_SLEEP_240MIN 0x00000005
+
+struct s6245_seteeprom_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t data[256]; /* Maxlen */
+} __attribute__((packed));
+
+struct s6245_settime_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t enable; /* 0 or 1 */
+ uint8_t second;
+ uint8_t minute;
+ uint8_t hour;
+ uint8_t day;
+ uint8_t month;
+ uint8_t year;
+} __attribute__((packed));
+
+struct s6245_errorlog_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint16_t index; /* 0 is latest */
+} __attribute__((packed));
+
+struct s6245_getparam_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t target;
+} __attribute__((packed));
+
+struct s6245_getprintidstatus_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t id;
+} __attribute__((packed));
+
+struct s6245_fwinfo_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t target;
+} __attribute__((packed));
+
+#define FWINFO_TARGET_MAIN_BOOT 0x01
+#define FWINFO_TARGET_MAIN_APP 0x02
+#define FWINFO_TARGET_PRINT_TABLES 0x03
+#define FWINFO_TARGET_DSP 0x04
+
+static char *fwinfo_targets (uint8_t v) {
+ switch (v) {
+ case FWINFO_TARGET_MAIN_BOOT:
+ return "Main Boot ";
+ case FWINFO_TARGET_MAIN_APP:
+ return "Main App ";
+ case FWINFO_TARGET_DSP:
+ return "DSP ";
+ case FWINFO_TARGET_PRINT_TABLES:
+ return "Print Tables";
+ default:
+ return "Unknown ";
+ }
+}
+
+struct s6245_update_cmd {
+ struct s6245_cmd_hdr hdr;
+ uint8_t target;
+ uint8_t curve_id;
+ uint8_t reset; // ??
+ uint8_t reserved[3];
+ uint32_t size;
+} __attribute__((packed));
+
+#define UPDATE_TARGET_USER 0x03
+#define UPDATE_TARGET_CURRENT 0x04
+
+static char *update_targets (uint8_t v) {
+ switch (v) {
+ case UPDATE_TARGET_USER:
+ return "User";
+ case UPDATE_TARGET_CURRENT:
+ return "Current";
+ default:
+ return "Unknown";
+ }
+}
+
+#define UPDATE_SIZE 0x600
+/* Update is three channels, Y, M, C;
+ each is 256 entries of 11-bit data padded to 16-bits.
+ Printer expects LE data. We use BE data on disk.
+*/
+
+struct s6245_status_hdr {
+ uint8_t result;
+ uint8_t error;
+ uint8_t printer_major;
+ uint8_t printer_minor;
+ uint8_t reserved[2];
+ uint8_t mode;
+ uint8_t status;
+ uint16_t payload_len;
+} __attribute__((packed));
+
+#define RESULT_SUCCESS 0x01
+#define RESULT_FAIL 0x02
+
+#define ERROR_NONE 0x00
+#define ERROR_INVALID_PARAM 0x01
+#define ERROR_MAIN_APP_INACTIVE 0x02
+#define ERROR_COMMS_TIMEOUT 0x03
+#define ERROR_MAINT_NEEDED 0x04
+#define ERROR_BAD_COMMAND 0x05
+#define ERROR_PRINTER 0x11
+#define ERROR_BUFFER_FULL 0x21
+
+static char *error_codes(uint8_t major, uint8_t minor)
+{
+ switch(major) {
+ case 0x01: /* "Controller Error" */
+ switch(minor) {
+ case 0x01:
+ return "Controller: EEPROM Write Timeout";
+ case 0x09:
+ return "Controller: DSP FW Boot";
+ case 0x0A:
+ return "Controller: Invalid Print Parameter Table";
+ case 0x0B:
+ return "Controller: DSP FW Mismatch";
+ case 0x0C:
+ return "Controller: Print Parameter Table Mismatch";
+ case 0x0D:
+ return "Controller: FPGA Configuration Failed";
+ case 0x0F:
+ return "Controller: Main FW Checksum";
+ case 0x10:
+ return "Controller: Flash Write Failed";
+ case 0x11:
+ return "Controller: DSP Checksum";
+ case 0x12:
+ return "Controller: DSP FW Write Failed";
+ case 0x13:
+ return "Controller: Print Parameter Table Checksum";
+ case 0x14:
+ return "Controller: Print Parameter Table Write Failed";
+ case 0x15:
+ return "Controller: User Tone Curve Write Failed";
+ case 0x16:
+ return "Controller: MSP Communication";
+ case 0x17:
+ return "Controller: THV Autotuning";
+ case 0x18:
+ return "Controller: THV Value Out of Range";
+ case 0x19:
+ return "Controller: Thermal Head";
+ case 0x1B:
+ return "Controller: DSP Communication";
+ case 0x1C:
+ return "Controller: DSP DMA Failed";
+ default:
+ return "Controller: Unknown";
+ }
+ case 0x02: /* "Mechanical Error" */
+ switch (minor) {
+ case 0x01:
+ return "Mechanical: Pinch Head Home";
+ case 0x02:
+ return "Mechanical: Pinch Head (position 1)";
+ case 0x03:
+ return "Mechanical: Pinch Head (position 2)";
+ case 0x04:
+ return "Mechanical: Pinch Head (position 3)";
+ case 0x0B:
+ return "Mechanical: Cutter (Right)";
+ case 0x0C:
+ return "Mechanical: Cutter (Left)";
+ default:
+ return "Mechanical: Unknown";
+ }
+ case 0x03: /* "Sensor Error" */
+ switch (minor) {
+ case 0x01:
+ return "Sensor: Head Up";
+ case 0x02:
+ return "Sensor: Head Down";
+ case 0x0B:
+ return "Sensor: Cutter Left";
+ case 0x0C:
+ return "Sensor: Cutter Right";
+ case 0x0D:
+ return "Sensor: Cutter Left+Right";
+ case 0x15:
+ return "Sensor: Head Up Unstable";
+ case 0x16:
+ return "Sensor: Head Down Unstable";
+ case 0x17:
+ return "Sensor: Cutter Left Unstable";
+ case 0x18:
+ return "Sensor: Cutter Right Unstable";
+ case 0x19:
+ return "Sensor: Cover Open Unstable";
+ case 0x1E:
+ return "Sensor: Ribbon Mark (Cyan)";
+ case 0x1F:
+ return "Sensor: Ribbon Mark (OC)";
+ default:
+ return "Sensor: Unknown";
+ }
+ case 0x04: /* "Temperature Sensor Error" */
+ switch (minor) {
+ case 0x01:
+ return "Temp Sensor: Thermal Head Low";
+ case 0x02:
+ return "Temp Sensor: Thermal Head High";
+ case 0x05:
+ return "Temp Sensor: Environment Low";
+ case 0x06:
+ return "Temp Sensor: Environment High";
+ case 0x07:
+ return "Temp Sensor: Preheat";
+ case 0x08:
+ return "Temp Sensor: Thermal Protect";
+ default:
+ return "Temp Sensor: Unknown";
+ }
+ case 0x5: /* "Paper Jam" */
+ switch (minor) {
+ case 0x01:
+ return "Paper Jam: Loading Paper Top On";
+ case 0x02:
+ return "Paper Jam: Loading Print Position On";
+ case 0x03:
+ return "Paper Jam: Loading Print Position Off";
+ case 0x04:
+ return "Paper Jam: Loading Paper Top Off";
+ case 0x05:
+ return "Paper Jam: Loading Cut Print Position Off";
+ case 0x0C:
+ return "Paper Jam: Initializing Print Position Off";
+ case 0x0D:
+ return "Paper Jam: Initializing Print Position On";
+ case 0x15:
+ return "Paper Jam: Printing Print Position Off";
+ case 0x16:
+ return "Paper Jam: Printing Paper Top On";
+ case 0x17:
+ return "Paper Jam: Printing Paper Top Off";
+ case 0x1F:
+ return "Paper Jam: Precut Print Position Off";
+ case 0x20:
+ return "Paper Jam: Precut Print Position On";
+
+ case 0x29:
+ return "Paper Jam: Printing Paper Top On";
+ case 0x2A:
+ return "Paper Jam: Printing Pre-Yellow Print Position Off";
+ case 0x2B:
+ return "Paper Jam: Printing Yellow Print Position Off";
+ case 0x2C:
+ return "Paper Jam: Printing Yellow Print Position On";
+ case 0x2D:
+ return "Paper Jam: Printing Pre-Magenta Print Position Off";
+ case 0x2E:
+ return "Paper Jam: Printing Magenta Print Position On";
+ case 0x2F:
+ return "Paper Jam: Printing Magenta Print Position Off";
+ case 0x30:
+ return "Paper Jam: Printing Pre-Cyan Print Position Off";
+ case 0x31:
+ return "Paper Jam: Printing Cyan Print Position On";
+ case 0x32:
+ return "Paper Jam: Printing Cyan Print Position Off";
+ case 0x33:
+ return "Paper Jam: Printing Pre-OC Print Position Off";
+ case 0x34:
+ return "Paper Jam: Printing OC Print Position On";
+ case 0x35:
+ return "Paper Jam: Printing OC Print Position Off";
+ case 0x36:
+ return "Paper Jam: Cut Print Position Off";
+ case 0x37:
+ return "Paper Jam: Home Position Off";
+ case 0x38:
+ return "Paper Jam: Paper Top Off";
+ case 0x39:
+ return "Paper Jam: Print Position On";
+
+ case 0x51:
+ return "Paper Jam: Paper Empty On, Top On, Position On";
+ case 0x52:
+ return "Paper Jam: Paper Empty On, Top On, Position Off";
+ case 0x53:
+ return "Paper Jam: Paper Empty On, Top Off, Print Position On";
+ case 0x54:
+ return "Paper Jam: Paper Empty On, Top Of, Position Off";
+ case 0x55:
+ return "Paper Jam: Paper Empty Off, Top On, Position On";
+ case 0x56:
+ return "Paper Jam: Paper Empty Off, Top On, Position Off";
+ case 0x57:
+ return "Paper Jam: Paper Empty Off, Top Off, Position On";
+ case 0x60:
+ return "Paper Jam: Cutter Right";
+ case 0x61:
+ return "Paper Jam: Cutter Left";
+
+ default:
+ return "Paper Jam: Unknown";
+ }
+ case 0x06: /* User Error */
+ switch (minor) {
+ case 0x01:
+ return "Drawer Unit Open";
+ case 0x02:
+ return "Incorrect Ribbon";
+ case 0x03:
+ return "No/Empty Ribbon";
+ case 0x04:
+ return "Mismatched Ribbon";
+ case 0x08:
+ return "No Paper";
+ case 0x0C:
+ return "Paper End";
+ default:
+ return "Unknown";
+ }
+ default:
+ return "Unknown";
+ }
+}
+
+static char *error_str(uint8_t v) {
+ switch (v) {
+ case ERROR_NONE:
+ return "None";
+ case ERROR_INVALID_PARAM:
+ return "Invalid Command Parameter";
+ case ERROR_MAIN_APP_INACTIVE:
+ return "Main App Inactive";
+ case ERROR_COMMS_TIMEOUT:
+ return "Main Communication Timeout";
+ case ERROR_MAINT_NEEDED:
+ return "Maintainence Needed";
+ case ERROR_BAD_COMMAND:
+ return "Inappropriate Command";
+ case ERROR_PRINTER:
+ return "Printer Error";
+ case ERROR_BUFFER_FULL:
+ return "Buffer Full";
+ default:
+ return "Unknown";
+ }
+}
+
+#define STATUS_READY 0x00
+#define STATUS_INIT_CPU 0x31
+#define STATUS_INIT_RIBBON 0x32
+#define STATUS_INIT_PAPER 0x33
+#define STATUS_THERMAL_PROTECT 0x34
+#define STATUS_USING_PANEL 0x35
+#define STATUS_SELF_DIAG 0x36
+#define STATUS_DOWNLOADING 0x37
+
+#define STATUS_FEEDING_PAPER 0x61
+#define STATUS_PRE_HEAT 0x62
+#define STATUS_PRINT_Y 0x63
+#define STATUS_BACK_FEED_Y 0x64
+#define STATUS_PRINT_M 0x65
+#define STATUS_BACK_FEED_M 0x66
+#define STATUS_PRINT_C 0x67
+#define STATUS_BACK_FEED_C 0x68
+#define STATUS_PRINT_OP 0x69
+#define STATUS_PAPER_CUT 0x6A
+#define STATUS_PAPER_EJECT 0x6B
+#define STATUS_BACK_FEED_E 0x6C
+
+static char *status_str(uint8_t v) {
+ switch (v) {
+ case STATUS_READY:
+ return "Ready";
+ case STATUS_INIT_CPU:
+ return "Initializing CPU";
+ case STATUS_INIT_RIBBON:
+ return "Initializing Ribbon";
+ case STATUS_INIT_PAPER:
+ return "Loading Paper";
+ case STATUS_THERMAL_PROTECT:
+ return "Thermal Protection";
+ case STATUS_USING_PANEL:
+ return "Using Operation Panel";
+ case STATUS_SELF_DIAG:
+ return "Processing Self Diagnosis";
+ case STATUS_DOWNLOADING:
+ return "Processing Download";
+ case STATUS_FEEDING_PAPER:
+ return "Feeding Paper";
+ case STATUS_PRE_HEAT:
+ return "Pre-Heating";
+ case STATUS_PRINT_Y:
+ return "Printing Yellow";
+ case STATUS_BACK_FEED_Y:
+ return "Back-Feeding - Yellow Complete";
+ case STATUS_PRINT_M:
+ return "Printing Magenta";
+ case STATUS_BACK_FEED_M:
+ return "Back-Feeding - Magenta Complete";
+ case STATUS_PRINT_C:
+ return "Printing Cyan";
+ case STATUS_BACK_FEED_C:
+ return "Back-Feeding - Cyan Complete";
+ case STATUS_PRINT_OP:
+ return "Laminating";
+ case STATUS_PAPER_CUT:
+ return "Cutting Paper";
+ case STATUS_PAPER_EJECT:
+ return "Ejecting Paper";
+ case STATUS_BACK_FEED_E:
+ return "Back-Feeding - Ejected";
+ case ERROR_PRINTER:
+ return "Printer Error";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s6245_status_resp {
+ struct s6245_status_hdr hdr;
+ uint32_t count_lifetime;
+ uint32_t count_maint;
+ uint32_t count_paper;
+ uint32_t count_cutter;
+ uint32_t count_head;
+ uint32_t count_ribbon_left;
+ uint32_t reserved;
+
+ uint8_t bank1_printid;
+ uint16_t bank1_remaining;
+ uint16_t bank1_finished;
+ uint16_t bank1_specified;
+ uint8_t bank1_status;
+
+ uint8_t bank2_printid;
+ uint16_t bank2_remaining;
+ uint16_t bank2_finished;
+ uint16_t bank2_specified;
+ uint8_t bank2_status;
+
+ uint8_t reserved2[16];
+ uint8_t tonecurve_status;
+ uint8_t reserved3[6];
+} __attribute__((packed));
+
+#define BANK_STATUS_FREE 0x00
+#define BANK_STATUS_XFER 0x01
+#define BANK_STATUS_FULL 0x02
+#define BANK_STATUS_PRINTING 0x12
+
+static char *bank_statuses(uint8_t v)
+{
+ switch (v) {
+ case BANK_STATUS_FREE:
+ return "Free";
+ case BANK_STATUS_XFER:
+ return "Xfer";
+ case BANK_STATUS_FULL:
+ return "Full";
+ case BANK_STATUS_PRINTING:
+ return "Printing";
+ default:
+ return "Unknown";
+ }
+}
+
+#define TONECURVE_INIT 0x00
+#define TONECURVE_USER 0x01
+#define TONECURVE_CURRENT 0x02
+
+static char *tonecurve_statuses (uint8_t v)
+{
+ switch(v) {
+ case 0:
+ return "Initial";
+ case 1:
+ return "UserSet";
+ case 2:
+ return "Current";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s6245_geteeprom_resp {
+ struct s6245_status_hdr hdr;
+ uint8_t data[256];
+} __attribute__((packed));
+
+struct s6245_readtone_resp {
+ struct s6245_status_hdr hdr;
+ uint16_t total_size;
+} __attribute__((packed));
+
+struct s6245_mediainfo_item {
+ uint8_t media_code;
+ uint16_t columns;
+ uint16_t rows;
+ uint8_t reserved;
+ uint8_t print_method; /* PRINT_METHOD_* */
+ uint8_t reserved2[3];
+} __attribute__((packed));
+
+#define MEDIA_8x10 0x10
+#define MEDIA_8x12 0x11
+#define MEDIA_8x4 0x20
+#define MEDIA_8x5 0x21
+#define MEDIA_8x6 0x22
+#define MEDIA_8x8 0x23
+#define MEDIA_8x4_2 0x30
+#define MEDIA_8x5_2 0x31
+#define MEDIA_8x6_2 0x32
+#define MEDIA_8x4_3 0x40
+
+static char *print_medias (uint8_t v) {
+ switch (v) {
+ case MEDIA_8x10:
+ return "8x10";
+ case MEDIA_8x12:
+ return "8x12";
+ case MEDIA_8x4:
+ return "8x4";
+ case MEDIA_8x5:
+ return "8x5";
+ case MEDIA_8x6:
+ return "8x6";
+ case MEDIA_8x8:
+ return "8x8";
+ case MEDIA_8x4_2:
+ return "8x4*2";
+ case MEDIA_8x5_2:
+ return "8x5*2";
+ case MEDIA_8x6_2:
+ return "8x6*2";
+ case MEDIA_8x4_3:
+ return "8x4*3";
+ default:
+ return "Unknown";
+ }
+}
+
+struct s6245_mediainfo_resp {
+ struct s6245_status_hdr hdr;
+ uint8_t count;
+ struct s6245_mediainfo_item items[10]; /* Not all necessarily used */
+} __attribute__((packed));
+
+struct s6245_errorlog_resp {
+ struct s6245_status_hdr hdr;
+ uint16_t error_count;
+ uint8_t error_major;
+ uint8_t error_minor;
+ uint16_t reserved;
+ uint32_t print_counter;
+ uint16_t ribbon_remain;
+ uint8_t ribbon_takeup_diameter;
+ uint8_t ribbon_supply_diameter;
+ uint16_t main_fw_ver;
+ uint16_t dsp_fw_ver;
+ uint16_t print_param_ver;
+ uint16_t boot_fw_ver;
+ uint8_t time_sec;
+ uint8_t time_min;
+ uint8_t time_hour;
+ uint8_t time_day;
+ uint8_t time_month;
+ uint8_t time_year;
+ uint16_t reserved2;
+ uint8_t printer_thermistor;
+ uint8_t head_thermistor;
+ uint8_t printer_humidity;
+ uint8_t reserved3[13];
+ uint8_t status;
+ uint8_t reserved4[3];
+ uint16_t image_cols;
+ uint16_t image_rows;
+ uint8_t reserved5[8];
+} __attribute__((packed));
+
+struct s6245_getparam_resp {
+ struct s6245_status_hdr hdr;
+ uint32_t param;
+} __attribute__((packed));
+
+struct s6245_getserial_resp {
+ struct s6245_status_hdr hdr;
+ uint8_t data[8];
+} __attribute__((packed));
+
+struct s6245_getprintidstatus_resp {
+ struct s6245_status_hdr hdr;
+ uint8_t id;
+ uint16_t remaining;
+ uint16_t finished;
+ uint16_t specified;
+ uint16_t status;
+} __attribute__((packed));
+
+#define STATUS_WAITING 0x0000
+#define STATUS_PRINTING 0x0100
+#define STATUS_COMPLETED 0x0200
+#define STATUS_ERROR 0xFFFF
+
+struct s6245_getextcounter_resp {
+ struct s6245_status_hdr hdr;
+ uint32_t lifetime_distance; /* Inches */
+ uint32_t maint_distance;
+ uint32_t head_distance;
+ uint8_t reserved[32];
+} __attribute__((packed));
+
+struct s6245_fwinfo_resp {
+ struct s6245_status_hdr hdr;
+ uint8_t name[8];
+ uint8_t type[16];
+ uint8_t date[10];
+ uint8_t major;
+ uint8_t minor;
+ uint16_t checksum;
+} __attribute__((packed));
+
+
+
+#define READBACK_LEN 512 /* Needs to be larger than largest response hdr */
+#define CMDBUF_LEN sizeof(struct s6245_print_cmd)
+
+uint8_t rdbuf[READBACK_LEN];
+
+static int s6245_do_cmd(struct shinkos6245_ctx *ctx,
+ uint8_t *cmd, int cmdlen,
+ int minlen, int *num)
+{
+ int ret;
+ struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
+
+ libusb_device_handle *dev = ctx->dev;
+ uint8_t endp_up = ctx->endp_up;
+ uint8_t endp_down = ctx->endp_down;
+
+ if ((ret = send_data(dev, endp_down,
+ cmd, cmdlen)))
+ return (ret < 0) ? ret : -99;
+
+ ret = read_data(dev, endp_up,
+ rdbuf, READBACK_LEN, num);
+
+ if (ret < 0)
+ return ret;
+ if (*num < minlen) {
+ ERROR("Short read! (%d/%d))\n", *num, minlen);
+ return -99;
+ }
+
+ if (resp->result != RESULT_SUCCESS) {
+ INFO("Printer Status: %02x (%s)\n", resp->status,
+ status_str(resp->status));
+ INFO(" Result: 0x%02x Error: 0x%02x (0x%02x/0x%02x = %s)\n",
+ resp->result, resp->error, resp->printer_major,
+ resp->printer_minor, error_codes(resp->printer_major, resp->printer_minor));
+ return -99;
+ }
+
+ return ret;
+}
+
+static int get_status(struct shinkos6245_ctx *ctx)
+{
+ struct s6245_cmd_hdr cmd;
+ struct s6245_status_resp *resp = (struct s6245_status_resp *) rdbuf;
+ struct s6245_getextcounter_resp *resp2 = (struct s6245_getextcounter_resp *) rdbuf;
+ int ret, num = 0;
+
+ cmd.cmd = cpu_to_le16(S6245_CMD_GETSTATUS);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ INFO("Printer Status: 0x%02x (%s)\n", resp->hdr.status,
+ status_str(resp->hdr.status));
+ if (resp->hdr.status == ERROR_PRINTER) {
+ if(resp->hdr.error == ERROR_NONE)
+ resp->hdr.error = resp->hdr.status;
+ INFO(" Error 0x%02x (%s) 0x%02x/0x%02x (%s)\n",
+ resp->hdr.error,
+ error_str(resp->hdr.error),
+ resp->hdr.printer_major,
+ resp->hdr.printer_minor, error_codes(resp->hdr.printer_major, resp->hdr.printer_minor));
+ }
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s6245_status_resp) - sizeof(struct s6245_status_hdr)))
+ return 0;
+
+ INFO(" Print Counts:\n");
+ INFO("\tSince Paper Changed:\t%08u\n", le32_to_cpu(resp->count_paper));
+ INFO("\tLifetime:\t\t%08u\n", le32_to_cpu(resp->count_lifetime));
+ INFO("\tMaintainence:\t\t%08u\n", le32_to_cpu(resp->count_maint));
+ INFO("\tPrint Head:\t\t%08u\n", le32_to_cpu(resp->count_head));
+ INFO(" Cutter Actuations:\t%08u\n", le32_to_cpu(resp->count_cutter));
+ INFO(" Ribbon Remaining:\t%08u\n", le32_to_cpu(resp->count_ribbon_left));
+ INFO("Bank 1: 0x%02x (%s) Job %03u @ %03u/%03u (%03u remaining)\n",
+ resp->bank1_status, bank_statuses(resp->bank1_status),
+ resp->bank1_printid,
+ le16_to_cpu(resp->bank1_finished),
+ le16_to_cpu(resp->bank1_specified),
+ le16_to_cpu(resp->bank1_remaining));
+
+ INFO("Bank 2: 0x%02x (%s) Job %03d @ %03d/%03d (%03d remaining)\n",
+ resp->bank2_status, bank_statuses(resp->bank1_status),
+ resp->bank2_printid,
+ le16_to_cpu(resp->bank2_finished),
+ le16_to_cpu(resp->bank2_specified),
+ le16_to_cpu(resp->bank2_remaining));
+
+ INFO("Tonecurve Status: 0x%02x (%s)\n", resp->tonecurve_status, tonecurve_statuses(resp->tonecurve_status));
+
+ /* Query Extended counters */
+ cmd.cmd = cpu_to_le16(S6245_CMD_EXTCOUNTER);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp2),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+ if (le16_to_cpu(resp2->hdr.payload_len) != (sizeof(struct s6245_getextcounter_resp) - sizeof(struct s6245_status_hdr)))
+ return 0;
+
+ INFO("Lifetime Distance: %08d inches\n", le32_to_cpu(resp2->lifetime_distance));
+ INFO("Maintainence Distance: %08d inches\n", le32_to_cpu(resp2->maint_distance));
+ INFO("Head Distance: %08d inches\n", le32_to_cpu(resp2->head_distance));
+
+ return 0;
+}
+
+static int get_fwinfo(struct shinkos6245_ctx *ctx)
+{
+ struct s6245_fwinfo_cmd cmd;
+ struct s6245_fwinfo_resp *resp = (struct s6245_fwinfo_resp *)rdbuf;
+ int num = 0;
+ int i;
+
+ cmd.hdr.cmd = cpu_to_le16(S6245_CMD_FWINFO);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ INFO("FW Information:\n");
+
+ for (i = FWINFO_TARGET_MAIN_BOOT ; i <= FWINFO_TARGET_PRINT_TABLES ; i++) {
+ int ret;
+ cmd.target = i;
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command (%d)\n", cmd_names(cmd.hdr.cmd), ret);
+ continue;
+ }
+
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s6245_fwinfo_resp) - sizeof(struct s6245_status_hdr)))
+ continue;
+
+ INFO(" %s\t ver %02x.%02x\n", fwinfo_targets(i),
+ resp->major, resp->minor);
+#if 0
+ INFO(" name: '%s'\n", resp->name);
+ INFO(" type: '%s'\n", resp->type);
+ INFO(" date: '%s'\n", resp->date);
+ INFO(" version: %02x.%02x (CRC %04x)\n", resp->major, resp->minor,
+ le16_to_cpu(resp->checksum));
+#endif
+ }
+ return 0;
+}
+
+static int get_errorlog(struct shinkos6245_ctx *ctx)
+{
+ struct s6245_errorlog_cmd cmd;
+ struct s6245_errorlog_resp *resp = (struct s6245_errorlog_resp *) rdbuf;
+ int num = 0;
+ int i = 0;
+
+ cmd.hdr.cmd = cpu_to_le16(S6245_CMD_ERRORLOG);
+ cmd.hdr.len = cpu_to_le16(2);
+
+ do {
+ int ret;
+ cmd.index = i;
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command (%d)\n", cmd_names(cmd.hdr.cmd), ret);
+ return ret;
+ }
+
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s6245_errorlog_resp) - sizeof(struct s6245_status_hdr)))
+ return -2;
+
+ INFO("Stored Error ID %d:\n", i);
+ INFO(" %04d-%02d-%02d %02d:%02d:%02d @ %08u prints : 0x%02x/0x%02x (%s)\n",
+ resp->time_year + 2000, resp->time_month, resp->time_day,
+ resp->time_hour, resp->time_min, resp->time_sec,
+ le32_to_cpu(resp->print_counter),
+ resp->error_major, resp->error_minor,
+ error_codes(resp->error_major, resp->error_minor));
+ INFO(" Temp: %02d/%02d Hum: %02d\n",
+ resp->printer_thermistor, resp->head_thermistor, resp->printer_humidity);
+ } while (++i < le16_to_cpu(resp->error_count));
+
+ return 0;
+}
+
+static int get_mediainfo(struct shinkos6245_ctx *ctx)
+{
+ struct s6245_cmd_hdr cmd;
+ struct s6245_mediainfo_resp *resp = (struct s6245_mediainfo_resp *) rdbuf;
+ int ret, num = 0;
+ int i;
+
+ cmd.cmd = cpu_to_le16(S6245_CMD_MEDIAINFO);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s6245_mediainfo_resp) - sizeof(struct s6245_status_hdr)))
+ return -2;
+
+ INFO("Supported Media Information: %d entries:\n", resp->count);
+ for (i = 0 ; i < resp->count ; i++) {
+ INFO(" %02d: C 0x%02x (%s), %04dx%04d, P 0x%02x (%s)\n", i,
+ resp->items[i].media_code, print_medias(resp->items[i].media_code),
+ le16_to_cpu(resp->items[i].columns),
+ le16_to_cpu(resp->items[i].rows),
+ resp->items[i].print_method, print_methods(resp->items[i].print_method));
+ }
+ return 0;
+}
+
+static int cancel_job(struct shinkos6245_ctx *ctx, char *str)
+{
+ struct s6245_cancel_cmd cmd;
+ struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ if (!str)
+ return -1;
+
+ cmd.id = atoi(str);
+
+ cmd.hdr.cmd = cpu_to_le16(S6245_CMD_CANCELJOB);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+static int flash_led(struct shinkos6245_ctx *ctx)
+{
+ struct s6245_cmd_hdr cmd;
+ struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ cmd.cmd = cpu_to_le16(S6245_CMD_FLASHLED);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+
+static int set_param(struct shinkos6245_ctx *ctx, int target, uint32_t param)
+{
+ struct s6245_setparam_cmd cmd;
+ struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ /* Set up command */
+ cmd.target = target;
+ cmd.param = cpu_to_le32(param);
+
+ cmd.hdr.cmd = cpu_to_le16(S6245_CMD_SETPARAM);
+ cmd.hdr.len = cpu_to_le16(sizeof(struct s6245_setparam_cmd)-sizeof(cmd.hdr));
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command (%d)\n", cmd_names(cmd.hdr.cmd), ret);
+ }
+
+ return ret;
+}
+
+static int reset_curve(struct shinkos6245_ctx *ctx, int target)
+{
+ struct s6245_reset_cmd cmd;
+ struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ cmd.target = target;
+
+ cmd.hdr.cmd = cpu_to_le16(S6245_CMD_RESET);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ return 0;
+}
+
+static int get_tonecurve(struct shinkos6245_ctx *ctx, int type, char *fname)
+{
+ struct s6245_readtone_cmd cmd;
+ struct s6245_readtone_resp *resp = (struct s6245_readtone_resp *) rdbuf;
+ int ret, num = 0;
+
+ uint8_t *data;
+ uint16_t curves[UPDATE_SIZE] = { 0 };
+
+ int i,j;
+
+ cmd.target = type;
+ cmd.curveid = TONE_CURVE_ID;
+
+ cmd.hdr.cmd = cpu_to_le16(S6245_CMD_READTONE);
+ cmd.hdr.len = cpu_to_le16(1);
+
+ INFO("Dump %s Tone Curve to '%s'\n", tonecurve_statuses(type), fname);
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ return ret;
+ }
+
+ resp->total_size = le16_to_cpu(resp->total_size);
+
+ data = malloc(resp->total_size * 2);
+ if (!data) {
+ ERROR("Memory Allocation Failure!\n");
+ return -1;
+ }
+
+ i = 0;
+ while (i < resp->total_size) {
+ ret = read_data(ctx->dev, ctx->endp_up,
+ data + i,
+ resp->total_size * 2 - i,
+ &num);
+ if (ret < 0)
+ goto done;
+ i += num;
+ }
+
+ i = j = 0;
+ while (i < resp->total_size) {
+ memcpy(curves + j, data + i+2, data[i+1]);
+ j += data[i+1] / 2;
+ i += data[i+1] + 2;
+ }
+
+ /* Open file and write it out */
+ {
+ int tc_fd = open(fname, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);
+ if (tc_fd < 0) {
+ ret = -1;
+ goto done;
+ }
+
+ for (i = 0 ; i < UPDATE_SIZE; i++) {
+ /* Byteswap appropriately */
+ curves[i] = cpu_to_be16(le16_to_cpu(curves[i]));
+ }
+ write(tc_fd, curves, UPDATE_SIZE * sizeof(uint16_t));
+ close(tc_fd);
+ }
+
+done:
+ free(data);
+ return ret;
+}
+
+static int set_tonecurve(struct shinkos6245_ctx *ctx, int target, char *fname)
+{
+ struct s6245_update_cmd cmd;
+ struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
+ int ret, num = 0;
+
+ INFO("Set %s Tone Curve from '%s'\n", update_targets(target), fname);
+
+ uint16_t *data = malloc(UPDATE_SIZE * sizeof(uint16_t));
+ if (!data) {
+ ERROR("Memory Allocation Failure!\n");
+ return -1;
+ }
+
+ /* Read in file */
+ int tc_fd = open(fname, O_RDONLY);
+ if (tc_fd < 0) {
+ ret = -1;
+ goto done;
+ }
+ if (read(tc_fd, data, UPDATE_SIZE * sizeof(uint16_t)) != (UPDATE_SIZE * sizeof(uint16_t))) {
+ ret = -2;
+ goto done;
+ }
+ close(tc_fd);
+ /* Byteswap data to local CPU.. */
+ for (ret = 0; ret < UPDATE_SIZE ; ret++) {
+ data[ret] = be16_to_cpu(data[ret]);
+ }
+
+ /* Set up command */
+ cmd.target = target;
+ cmd.reserved[0] = cmd.reserved[1] = cmd.reserved[2] = 0;
+ cmd.reset = 0;
+ cmd.size = cpu_to_le32(UPDATE_SIZE * sizeof(uint16_t));
+
+ cmd.hdr.cmd = cpu_to_le16(S6245_CMD_UPDATE);
+ cmd.hdr.len = cpu_to_le16(sizeof(struct s6245_update_cmd)-sizeof(cmd.hdr));
+
+ /* Byteswap data to format printer is expecting.. */
+ for (ret = 0; ret < UPDATE_SIZE ; ret++) {
+ data[ret] = cpu_to_le16(data[ret]);
+ }
+
+ if ((ret = s6245_do_cmd(ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.hdr.cmd));
+ goto done;
+ }
+
+ /* Sent transfer */
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ (uint8_t *) data, UPDATE_SIZE * sizeof(uint16_t)))) {
+ goto done;
+ }
+
+done:
+ free(data);
+
+ return ret;
+}
+
+static void shinkos6245_cmdline(void)
+{
+ DEBUG("\t\t[ -c filename ] # Get user/NV tone curve\n");
+ DEBUG("\t\t[ -C filename ] # Set user/NV tone curve\n");
+ DEBUG("\t\t[ -e ] # Query error log\n");
+ DEBUG("\t\t[ -F ] # Flash Printer LED\n");
+ DEBUG("\t\t[ -i ] # Query printer info\n");
+ DEBUG("\t\t[ -k num ] # Set sleep time (5-240 minutes)\n");
+ DEBUG("\t\t[ -l filename ] # Get current tone curve\n");
+ DEBUG("\t\t[ -L filename ] # Set current tone curve\n");
+ DEBUG("\t\t[ -m ] # Query media\n");
+ DEBUG("\t\t[ -r ] # Reset user/NV tone curve\n");
+ DEBUG("\t\t[ -R ] # Reset printer to factory defaults\n");
+ DEBUG("\t\t[ -s ] # Query status\n");
+ DEBUG("\t\t[ -X jobid ] # Abort a printjob\n");
+}
+
+int shinkos6245_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct shinkos6245_ctx *ctx = vctx;
+ int i, j = 0;
+
+ if (!ctx)
+ return -1;
+
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "c:C:eFik:l:L:mr:R:sX:")) >= 0) {
+ switch(i) {
+ GETOPT_PROCESS_GLOBAL
+ case 'c':
+ j = get_tonecurve(ctx, TONECURVE_USER, optarg);
+ break;
+ case 'C':
+ j = set_tonecurve(ctx, TONECURVE_USER, optarg);
+ break;
+ case 'e':
+ j = get_errorlog(ctx);
+ break;
+ case 'F':
+ j = flash_led(ctx);
+ break;
+ case 'i':
+ j = get_fwinfo(ctx);
+ break;
+ case 'k': {
+ uint32_t i = atoi(optarg);
+ if (i < 5)
+ i = 0;
+ else if (i < 15)
+ i = 1;
+ else if (i < 30)
+ i = 2;
+ else if (i < 60)
+ i = 3;
+ else if (i < 120)
+ i = 4;
+ else if (i < 240)
+ i = 5;
+ else
+ i = 5;
+
+ j = set_param(ctx, PARAM_SLEEP_TIME, i);
+ break;
+ }
+ case 'l':
+ j = get_tonecurve(ctx, TONECURVE_CURRENT, optarg);
+ break;
+ case 'L':
+ j = set_tonecurve(ctx, TONECURVE_CURRENT, optarg);
+ break;
+ case 'm':
+ j = get_mediainfo(ctx);
+ break;
+ case 'r':
+ j = reset_curve(ctx, RESET_TONE_CURVE);
+ break;
+ case 'R':
+ j = reset_curve(ctx, RESET_PRINTER);
+ break;
+ case 's':
+ j = get_status(ctx);
+ break;
+ case 'X':
+ j = cancel_job(ctx, optarg);
+ break;
+ default:
+ break; /* Ignore completely */
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
+static void *shinkos6245_init(void)
+{
+ struct shinkos6245_ctx *ctx = malloc(sizeof(struct shinkos6245_ctx));
+ if (!ctx) {
+ ERROR("Memory Allocation Failure!\n");
+ return NULL;
+ }
+ memset(ctx, 0, sizeof(struct shinkos6245_ctx));
+
+ return ctx;
+}
+
+static void shinkos6245_attach(void *vctx, struct libusb_device_handle *dev,
+ uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
+{
+ struct shinkos6245_ctx *ctx = vctx;
+ struct libusb_device *device;
+ struct libusb_device_descriptor desc;
+
+ ctx->dev = dev;
+ ctx->endp_up = endp_up;
+ ctx->endp_down = endp_down;
+
+ device = libusb_get_device(dev);
+ libusb_get_device_descriptor(device, &desc);
+
+ ctx->type = lookup_printer_type(&shinkos6245_backend,
+ desc.idVendor, desc.idProduct);
+
+ /* Ensure jobid is sane */
+ ctx->jobid = (jobid & 0x7f) + 1;
+}
+
+static void shinkos6245_teardown(void *vctx) {
+ struct shinkos6245_ctx *ctx = vctx;
+
+ if (!ctx)
+ return;
+
+ if (ctx->databuf)
+ free(ctx->databuf);
+
+ free(ctx);
+}
+
+static int shinkos6245_read_parse(void *vctx, int data_fd) {
+ struct shinkos6245_ctx *ctx = vctx;
+ int ret;
+ uint8_t tmpbuf[4];
+
+ if (!ctx)
+ return CUPS_BACKEND_FAILED;
+
+ /* Read in then validate header */
+ ret = read(data_fd, &ctx->hdr, sizeof(ctx->hdr));
+ if (ret < 0 || ret != sizeof(ctx->hdr)) {
+ if (ret == 0)
+ return CUPS_BACKEND_CANCEL;
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 0, (int)sizeof(ctx->hdr));
+ perror("ERROR: Read failed");
+ return ret;
+ }
+
+ if (le32_to_cpu(ctx->hdr.len1) != 0x10 ||
+ le32_to_cpu(ctx->hdr.len2) != 0x64 ||
+ le32_to_cpu(ctx->hdr.dpi) != 300) {
+ ERROR("Unrecognized header data format!\n");
+ return CUPS_BACKEND_CANCEL;
+ }
+
+ if (le32_to_cpu(ctx->hdr.model) != 6245) {
+ ERROR("Unrecognized printer (%d)!\n", le32_to_cpu(ctx->hdr.model));
+
+ return CUPS_BACKEND_CANCEL;
+ }
+
+ if (ctx->databuf) {
+ free(ctx->databuf);
+ ctx->databuf = NULL;
+ }
+
+ ctx->datalen = le32_to_cpu(ctx->hdr.rows) * le32_to_cpu(ctx->hdr.columns) * 3;
+ ctx->databuf = malloc(ctx->datalen);
+ if (!ctx->databuf) {
+ ERROR("Memory allocation failure!\n");
+ return CUPS_BACKEND_FAILED;
+ }
+
+ {
+ int remain = ctx->datalen;
+ uint8_t *ptr = ctx->databuf;
+ do {
+ ret = read(data_fd, ptr, remain);
+ if (ret < 0) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, remain, ctx->datalen);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ ptr += ret;
+ remain -= ret;
+ } while (remain);
+ }
+
+ /* Make sure footer is sane too */
+ ret = read(data_fd, tmpbuf, 4);
+ if (ret != 4) {
+ ERROR("Read failed (%d/%d/%d)\n",
+ ret, 4, 4);
+ perror("ERROR: Read failed");
+ return ret;
+ }
+ if (tmpbuf[0] != 0x04 ||
+ tmpbuf[1] != 0x03 ||
+ tmpbuf[2] != 0x02 ||
+ tmpbuf[3] != 0x01) {
+ ERROR("Unrecognized footer data format!\n");
+ return CUPS_BACKEND_FAILED;
+ }
+
+ return CUPS_BACKEND_OK;
+}
+
+static int shinkos6245_main_loop(void *vctx, int copies) {
+ struct shinkos6245_ctx *ctx = vctx;
+
+ int ret, num;
+ uint8_t cmdbuf[CMDBUF_LEN];
+ uint8_t rdbuf2[READBACK_LEN];
+
+ int i, last_state = -1, state = S_IDLE;
+ uint8_t mcut;
+
+ struct s6245_cmd_hdr *cmd = (struct s6245_cmd_hdr *) cmdbuf;;
+ struct s6245_print_cmd *print = (struct s6245_print_cmd *) cmdbuf;
+ struct s6245_status_resp *sts = (struct s6245_status_resp *) rdbuf;
+ struct s6245_mediainfo_resp *media = (struct s6245_mediainfo_resp *) rdbuf;
+
+ /* Cap copies */
+ // XXX 120 for 8x10 media, 100 for 8x12 media (S6245)
+ // 250 for 8x12, 300 for 8x10 (Kodak 8810)
+ if (copies > 120)
+ copies = 120;
+
+ /* Set up mcut */
+ switch (le32_to_cpu(ctx->hdr.media)) {
+ case MEDIA_8x4_2:
+ case MEDIA_8x5_2:
+ case MEDIA_8x6_2:
+ mcut = PRINT_METHOD_COMBO_2;
+ break;
+ case MEDIA_8x4_3:
+ mcut = PRINT_METHOD_COMBO_3;
+ break;
+ default:
+ mcut = PRINT_METHOD_STD;
+ }
+ // XXX what about mcut |= PRINT_METHOD_DISABLE_ERR;
+
+ /* Send Media Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmd->cmd = cpu_to_le16(S6245_CMD_MEDIAINFO);
+ cmd->len = cpu_to_le16(0);
+
+ if ((ret = s6245_do_cmd(ctx,
+ cmdbuf, sizeof(*cmd),
+ sizeof(*media),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd->cmd));
+ return CUPS_BACKEND_FAILED;
+ }
+
+ if (le16_to_cpu(media->hdr.payload_len) != (sizeof(struct s6245_mediainfo_resp) - sizeof(struct s6245_status_hdr)))
+ return CUPS_BACKEND_FAILED;
+
+ /* Validate print sizes */
+ for (i = 0; i < media->count ; i++) {
+ /* Look for matching media */
+ if (le16_to_cpu(media->items[i].columns) == cpu_to_le16(le32_to_cpu(ctx->hdr.columns)) &&
+ le16_to_cpu(media->items[i].rows) == cpu_to_le16(le32_to_cpu(ctx->hdr.rows)))
+ break;
+ }
+ if (i == media->count) {
+ ERROR("Incorrect media loaded for print!\n");
+ return CUPS_BACKEND_HOLD;
+ }
+
+ /* Send Set Time */
+ {
+ struct s6245_settime_cmd *stime = (struct s6245_settime_cmd *)cmdbuf;
+ time_t now = time(NULL);
+ struct tm *cur = localtime(&now);
+
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmd->cmd = cpu_to_le16(S6245_CMD_SETTIME);
+ cmd->len = cpu_to_le16(0);
+ stime->enable = 1;
+ stime->second = cur->tm_sec;
+ stime->minute = cur->tm_min;
+ stime->hour = cur->tm_hour;
+ stime->day = cur->tm_mday;
+ stime->month = cur->tm_mon;
+ stime->year = cur->tm_year + 1900 - 2000;
+
+ if ((ret = s6245_do_cmd(ctx,
+ cmdbuf, sizeof(*stime),
+ sizeof(struct s6245_status_hdr),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(stime->hdr.cmd));
+ return CUPS_BACKEND_FAILED;
+ }
+ if (sts->hdr.result != RESULT_SUCCESS)
+ goto printer_error;
+ }
+
+ // XXX check copies against remaining media!
+
+top:
+ if (state != last_state) {
+ if (dyesub_debug)
+ DEBUG("last_state %d new %d\n", last_state, state);
+ }
+
+ /* Send Status Query */
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ cmd->cmd = cpu_to_le16(S6245_CMD_GETSTATUS);
+ cmd->len = cpu_to_le16(0);
+
+ if ((ret = s6245_do_cmd(ctx,
+ cmdbuf, sizeof(*cmd),
+ sizeof(struct s6245_status_hdr),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd->cmd));
+ return CUPS_BACKEND_FAILED;
+ }
+
+ if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
+ memcpy(rdbuf2, rdbuf, READBACK_LEN);
+
+ INFO("Printer Status: 0x%02x (%s)\n",
+ sts->hdr.status, status_str(sts->hdr.status));
+ if (sts->hdr.result != RESULT_SUCCESS)
+ goto printer_error;
+ if (sts->hdr.error == ERROR_PRINTER)
+ goto printer_error;
+ } else if (state == last_state) {
+ sleep(1);
+ goto top;
+ }
+ last_state = state;
+
+ fflush(stderr);
+
+ switch (state) {
+ case S_IDLE:
+ INFO("Waiting for printer idle\n");
+ /* If either bank is free, continue */
+ if (sts->bank1_status == BANK_STATUS_FREE ||
+ sts->bank2_status == BANK_STATUS_FREE)
+ state = S_PRINTER_READY_CMD;
+
+ break;
+ case S_PRINTER_READY_CMD:
+ // XXX send "get eeprom backup command"
+
+ INFO("Initiating print job (internal id %d)\n", ctx->jobid);
+
+ memset(cmdbuf, 0, CMDBUF_LEN);
+ print->hdr.cmd = cpu_to_le16(S6245_CMD_PRINTJOB);
+ print->hdr.len = cpu_to_le16(sizeof (*print) - sizeof(*cmd));
+
+ print->id = ctx->jobid;
+ print->count = cpu_to_le16(copies);
+ print->columns = cpu_to_le16(le32_to_cpu(ctx->hdr.columns));
+ print->rows = cpu_to_le16(le32_to_cpu(ctx->hdr.rows));
+ print->mode = le32_to_cpu(ctx->hdr.oc_mode);
+ print->method = mcut;
+
+ if ((ret = s6245_do_cmd(ctx,
+ cmdbuf, sizeof(*print),
+ sizeof(struct s6245_status_hdr),
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(print->hdr.cmd));
+ return ret;
+ }
+
+ if (sts->hdr.result != RESULT_SUCCESS) {
+ if (sts->hdr.error == ERROR_BUFFER_FULL) {
+ INFO("Printer Buffers full, retrying\n");
+ break;
+ } else if ((sts->hdr.status & 0xf0) == 0x30 || sts->hdr.status == 0x21) {
+ INFO("Printer busy (%s), retrying\n", status_str(sts->hdr.status));
+ break;
+ } else if (sts->hdr.status != ERROR_NONE)
+ goto printer_error;
+ }
+
+ INFO("Sending image data to printer\n");
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
+ ctx->databuf, ctx->datalen)))
+ return CUPS_BACKEND_FAILED;
+
+ INFO("Waiting for printer to acknowledge completion\n");
+ sleep(1);
+ state = S_PRINTER_SENT_DATA;
+ break;
+ case S_PRINTER_SENT_DATA:
+ if (fast_return) {
+ INFO("Fast return mode enabled.\n");
+ state = S_FINISHED;
+ } else if (sts->hdr.status == STATUS_READY) {
+ state = S_FINISHED;
+ }
+ break;
+ default:
+ break;
+ };
+
+ if (state != S_FINISHED)
+ goto top;
+
+ INFO("Print complete\n");
+
+ return CUPS_BACKEND_OK;
+
+printer_error:
+ ERROR("Printer reported error: %#x (%s) status: %#x (%s) -> %#x.%#x (%s)\n",
+ sts->hdr.error,
+ error_str(sts->hdr.error),
+ sts->hdr.status,
+ status_str(sts->hdr.status),
+ sts->hdr.printer_major, sts->hdr.printer_minor,
+ error_codes(sts->hdr.printer_major, sts->hdr.printer_minor));
+ return CUPS_BACKEND_FAILED;
+}
+
+static int shinkos6245_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint8_t endp_down, char *buf, int buf_len)
+{
+ struct s6245_cmd_hdr cmd;
+ struct s6245_getserial_resp *resp = (struct s6245_getserial_resp*) rdbuf;
+ int ret, num = 0;
+
+ struct shinkos6245_ctx ctx = {
+ .dev = dev,
+ .endp_up = endp_up,
+ .endp_down = endp_down,
+ };
+
+ cmd.cmd = cpu_to_le16(S6245_CMD_GETSERIAL);
+ cmd.len = cpu_to_le16(0);
+
+ if ((ret = s6245_do_cmd(&ctx,
+ (uint8_t*)&cmd, sizeof(cmd),
+ sizeof(*resp) - 1,
+ &num)) < 0) {
+ ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
+ return ret;
+ }
+
+ /* Null-terminate */
+ resp->hdr.payload_len = le16_to_cpu(resp->hdr.payload_len);
+ if (resp->hdr.payload_len > 23)
+ resp->hdr.payload_len = 23;
+ resp->data[resp->hdr.payload_len] = 0;
+ strncpy(buf, (char*)resp->data, buf_len);
+ buf[buf_len-1] = 0; /* ensure it's null terminated */
+
+ return CUPS_BACKEND_OK;
+}
+
+/* Exported */
+#define USB_VID_SHINKO 0x10CE
+#define USB_PID_SHINKO_S6245 0x001D
+
+struct dyesub_backend shinkos6245_backend = {
+ .name = "Shinko/Sinfonia CHC-S6245",
+ .version = "0.04WIP",
+ .uri_prefix = "shinkos6245",
+ .cmdline_usage = shinkos6245_cmdline,
+ .cmdline_arg = shinkos6245_cmdline_arg,
+ .init = shinkos6245_init,
+ .attach = shinkos6245_attach,
+ .teardown = shinkos6245_teardown,
+ .read_parse = shinkos6245_read_parse,
+ .main_loop = shinkos6245_main_loop,
+ .query_serno = shinkos6245_query_serno,
+ .devices = {
+ { USB_VID_SHINKO, USB_PID_SHINKO_S6245, P_SHINKO_S6245, ""},
+ { 0, 0, 0, ""}
+ }
+};
+
+/* CHC-S6245 data format
+
+ Spool file consists of an 116-byte header, followed by RGB-packed data,
+ followed by a 4-byte footer. Header appears to consist of a series of
+ 4-byte Little Endian words.
+
+ 10 00 00 00 MM MM 00 00 01 00 00 00 01 00 00 00 MM == Model (ie 6245d)
+ 64 00 00 00 00 00 00 00 TT 00 00 00 00 00 00 00 TT == 0x20 8x4, 0x21 8x5, 0x22 8x6, 0x23 8x8, 0x10 8x10, 0x11 8x12
+ 00 00 00 00 00 00 00 00 XX 00 00 00 00 00 00 00 XX == 0x03 matte, 0x02 glossy, 0x01 no coat
+ 00 00 00 00 WW WW 00 00 HH HH 00 00 NN 00 00 00 WW/HH Width, Height (LE), NN == Copies
+ 00 00 00 00 00 00 00 00 00 00 00 00 ce ff ff ff
+ 00 00 00 00 ce ff ff ff QQ QQ 00 00 ce ff ff ff QQ == DPI (300)
+ 00 00 00 00 ce ff ff ff 00 00 00 00 00 00 00 00
+ 00 00 00 00
+
+ [[Packed RGB payload of WW*HH*3 bytes]]
+
+ 04 03 02 01 [[ footer ]]
+
+*/
diff --git a/src/cups/sony_updr150_print.c b/src/cups/sony_updr150_print.c
index 5df9742..0121443 100644
--- a/src/cups/sony_updr150_print.c
+++ b/src/cups/sony_updr150_print.c
@@ -35,25 +35,27 @@
#include <fcntl.h>
#include <signal.h>
+#define BACKEND updr150_backend
+
#include "backend_common.h"
/* Exported */
#define USB_VID_SONY 0x054C
#define USB_PID_SONY_UPDR150 0x01E8
#define USB_PID_SONY_UPDR200 0x035F
-#define USB_PID_SONY_UPCR10 1234
+#define USB_PID_SONY_UPCR10 0x0226
/* Private data stucture */
struct updr150_ctx {
struct libusb_device_handle *dev;
uint8_t endp_up;
uint8_t endp_down;
+ int type;
uint8_t *databuf;
int datalen;
uint32_t copies_offset;
- uint8_t type;
};
static void* updr150_init(void)
@@ -82,11 +84,9 @@ static void updr150_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
- if (desc.idProduct == USB_PID_SONY_UPDR150 ||
- desc.idProduct == USB_PID_SONY_UPDR200)
- ctx->type = P_SONY_UPDR150;
- else
- ctx->type = P_SONY_UPCR10; // XXX
+
+ ctx->type = lookup_printer_type(&updr150_backend,
+ desc.idVendor, desc.idProduct);
ctx->copies_offset = 0;
}
@@ -255,10 +255,30 @@ top:
return CUPS_BACKEND_OK;
}
+static int updr150_cmdline_arg(void *vctx, int argc, char **argv)
+{
+ struct updr150_ctx *ctx = vctx;
+ int i, j = 0;
+
+ if (!ctx)
+ return -1;
+
+ while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL)) >= 0) {
+ switch(i) {
+ GETOPT_PROCESS_GLOBAL
+ }
+
+ if (j) return j;
+ }
+
+ return 0;
+}
+
struct dyesub_backend updr150_backend = {
.name = "Sony UP-DR150/UP-DR200/UP-CR10",
- .version = "0.17",
+ .version = "0.18",
.uri_prefix = "sonyupdr150",
+ .cmdline_arg = updr150_cmdline_arg,
.init = updr150_init,
.attach = updr150_attach,
.teardown = updr150_teardown,
diff --git a/src/cups/test-ppds b/src/cups/test-ppds
index 7dd004b..542fd27 100644..100755
--- a/src/cups/test-ppds
+++ b/src/cups/test-ppds
@@ -10,7 +10,7 @@ make EXTRA_GENPPD_OPTS='-b -Z' ppd-clean ppd-global ppd-nls ppd-nonls
# Also, a number of our media sizes aren't named correctly, but we'll
# accept those issues rather than cluttering the namespace further and/or
# changing tag names.
-cupstestppdopts='-I profiles -W sizes'
+cupstestppdopts='-I profiles -W sizes -I filters'
ppd_count=`find ppd \( -name '*.ppd.gz' -o -name '*.ppd' \) -print | wc -l`
diff --git a/src/cups/test-rastertogutenprint.in b/src/cups/test-rastertogutenprint.in
index 373f127..0574704 100755
--- a/src/cups/test-rastertogutenprint.in
+++ b/src/cups/test-rastertogutenprint.in
@@ -23,12 +23,15 @@ fi
single=''
all_models=''
verbose=''
+valgrind=0
make_ppds=1
md5dir=''
outdir=''
cupsargs=''
postscript=''
npages=3
+enable_static='@ENABLE_STATIC@'
+enable_shared='@ENABLE_SHARED@'
usage() {
echo "Usage: test-rastertogutenprint [-s] [-v|--valgrind]"
@@ -40,7 +43,7 @@ set_args() {
case "$1" in
-s) single=1 ;;
-h*|--h*) usage ;;
- -v|--valgrind) valopts='--tool=memcheck' ; valgrind=`expr $valgrind + 1` ;;
+ -v|--valgrind) valopts='--tool=memcheck' ; valgrind=$((valgrind + 1)) ;;
-c|--cachegrind) valopts='--tool=cachegrind'; valgrind=4 ;;
-g|--gdb-attach) valopts='--gdb-attach=yes' ;;
-V|--verbose) verbose=1 ;;
@@ -59,6 +62,12 @@ set_args() {
set_args `getopt hvcgsVnO:m:o:p: "$@"`
+if [ "$valgrind" -gt 0 -a "$enable_shared" != "no" ] ; then
+ echo 'Valgrind is not compatible with --enable-shared in tree.' 1>&2
+ echo 'Please use autogen.sh --disable-shared.' 1>&2
+ exit 1
+fi
+
if [ -n "$outdir" -a ! -d "$outdir" ] ; then
mkdir -p "$outdir"
fi
@@ -136,10 +145,10 @@ is_duplicate() {
run_rastertogp() {
case "$valgrind" in
- 1) valgrind $valopts -q --num-callers=50 --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
- 2) valgrind $valopts --num-callers=50 --leak-resolution=high --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
- 3) valgrind $valopts --error-limit=no --num-callers=50 --show-reachable=yes --leak-resolution=high --leak-check=yes ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
- 4) valgrind $valopts ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 1) valgrind $valopts -q --log-fd=3 --num-callers=50 --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 2) valgrind $valopts --log-fd=3 --num-callers=50 --leak-resolution=high --leak-check=yes --error-limit=no ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 3) valgrind $valopts --log-fd=3 --error-limit=no --num-callers=50 --show-reachable=yes --leak-resolution=high --leak-check=yes ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
+ 4) valgrind $valopts --log-fd=3 ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
5) cat ;;
*) ./rastertogutenprint.$version 1 1 1 1 "$cupsargs" ;;
esac
@@ -241,17 +250,17 @@ if [ -d ppd/C ] ; then
PPD=$f
export PPD
if [ -x "$cupsdir/cgpdftoraster" ] ; then
- output="`($cupsdir/cgpdftoraster 1 1 1 1 $pages < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ output="`($cupsdir/cgpdftoraster 1 1 1 1 $pages < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | run_rastertogp | do_output) 2>&1 3>&2 `"
elif [ -f "$tfile" -a -x "$cupsdir/gstoraster" ] ; then
- output="`($cupsdir/gstoraster 1 1 1 1 \"$cupsargs\" < $tfile 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ output="`($cupsdir/gstoraster 1 1 1 1 \"$cupsargs\" < $tfile 2>/dev/null | run_rastertogp | do_output) 2>&1 3>&2 `"
elif [ -f "$tfile" ] ; then
- output="`($cupsdir/pstops 1 1 1 1 \"$cupsargs\" < $tfile 2>/dev/null | $cupsdir/pstoraster 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ output="`($cupsdir/pstops 1 1 1 1 \"$cupsargs\" < $tfile 2>/dev/null | $cupsdir/pstoraster 2>/dev/null | run_rastertogp | do_output) 2>&1 3>&2 `"
elif [ -x "$cupsdir/pstoraster" ] ; then
- output="`($cupsdir/pdftops 1 1 1 1 \"$pages$cupsargs\" < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | $cupsdir/pstops 1 1 1 1 \"$pages$cupsargs\" 2>/dev/null | $cupsdir/pstoraster 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ output="`($cupsdir/pdftops 1 1 1 1 \"$pages$cupsargs\" < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | $cupsdir/pstops 1 1 1 1 \"$pages$cupsargs\" 2>/dev/null | $cupsdir/pstoraster 2>/dev/null | run_rastertogp | do_output) 2>&1 3>&2 `"
elif [ -x "$cupsdir/gstoraster" ] ; then
- output="`($cupsdir/pdftops 1 1 1 1 \"$pages$cupsargs\" < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | $cupsdir/gstoraster 1 1 1 1 \"$pages$cupsargs\" 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ output="`($cupsdir/pdftops 1 1 1 1 \"$pages$cupsargs\" < $sdir/../../doc/gutenprint-users-manual.pdf 2>/dev/null | $cupsdir/gstoraster 1 1 1 1 \"$pages$cupsargs\" 2>/dev/null | run_rastertogp | do_output) 2>&1 3>&2 `"
else
- output="`($cupsdir/imagetoraster 1 1 1 1 \"$pages$cupsargs\" < calibrate.ppm 2>/dev/null | run_rastertogp | do_output) 2>&1`"
+ output="`($cupsdir/imagetoraster 1 1 1 1 \"$pages$cupsargs\" < calibrate.ppm 2>/dev/null | run_rastertogp | do_output) 2>&1 3>&2`"
fi
if [ $? -ne 0 ] ; then
retval=1
diff --git a/src/escputil/Makefile.in b/src/escputil/Makefile.in
index 1466da2..875fd84 100644
--- a/src/escputil/Makefile.in
+++ b/src/escputil/Makefile.in
@@ -214,6 +214,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/escputil/d4lib.c b/src/escputil/d4lib.c
index 54f2a18..5c99409 100644
--- a/src/escputil/d4lib.c
+++ b/src/escputil/d4lib.c
@@ -227,7 +227,7 @@ static void printHexValues(const char *dir, const unsigned char *buf, int len)
for (i = 0; i < len; i++)
{
printf("%s%c", (print_prefix ? "+++" : ""),
- isprint(buf[i])||isblank(buf[i])?buf[i]:'*');
+ isprint(buf[i])?buf[i]:'*');
print_prefix = 0;
if (buf[i] == ';' && i < len - 1)
{
diff --git a/src/foomatic/Makefile.in b/src/foomatic/Makefile.in
index 6f7b903..84b4e3b 100644
--- a/src/foomatic/Makefile.in
+++ b/src/foomatic/Makefile.in
@@ -233,6 +233,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/foomatic/foomatic-generator.in b/src/foomatic/foomatic-generator.in
index 50b40ed..c4e87f0 100644
--- a/src/foomatic/foomatic-generator.in
+++ b/src/foomatic/foomatic-generator.in
@@ -608,7 +608,7 @@ for $drivertype (@drivertypes) {
if ($tmpl eq 'gutenprint.xml');
open NEWF, "> $dbfilename" or die "Cannot create $dbfilename: $!";
- print STDERR "writing $dbfilename...";
+# print STDERR "writing $dbfilename...";
print NEWF $template;
print STDERR "done.\n";
close NEWF;
@@ -1334,6 +1334,7 @@ sub qualityorder {
"dpi_photomonodraft2",
"dpi_ohphigh",
"dpi_ohp",
+ "dpi_ohpdraft",
);
my ($a, $b) = @_;
# Bring the suffixes to lower case
diff --git a/src/foomatic/paper_sizes.c b/src/foomatic/paper_sizes.c
index 26f4f02..7e8cf2e 100644
--- a/src/foomatic/paper_sizes.c
+++ b/src/foomatic/paper_sizes.c
@@ -1,5 +1,5 @@
/*
- * "$Id: paper_sizes.c,v 1.9 2007/03/05 00:04:00 tillkamppeter Exp $"
+ * "$Id: paper_sizes.c,v 1.10 2015/09/07 21:57:37 speachy Exp $"
*
* Dump the per-printer options for the OpenPrinting database
*
@@ -35,7 +35,11 @@ main(int argc, char **argv)
for (i = 0; i < stp_known_papersizes(); i++)
{
const stp_papersize_t *p = stp_get_papersize_by_index(i);
- printf("%s %d %d\n", p->name, p->width, p->height);
+ if (p->paper_size_type == PAPERSIZE_TYPE_ENVELOPE ||
+ p->paper_size_type == PAPERSIZE_TYPE_STANDARD)
+ {
+ printf("%s %d %d\n", p->name, p->width, p->height);
+ }
}
return 0;
}
diff --git a/src/foomatic/printer_margins.c b/src/foomatic/printer_margins.c
index 66af0d8..69bf0dd 100644
--- a/src/foomatic/printer_margins.c
+++ b/src/foomatic/printer_margins.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printer_margins.c,v 1.21 2007/05/06 19:38:10 rlk Exp $"
+ * "$Id: printer_margins.c,v 1.22 2015/08/02 03:09:40 rlk Exp $"
*
* Dump the per-printer margins for the OpenPrinting database
*
@@ -111,12 +111,12 @@ main(int argc, char **argv) {
driver, opt->name, opt->text);
printf("$imageableareas{'%s'}{'%s'} = {",
driver, opt->name);
- printf(" 'left' => '%d',", left);
- printf(" 'right' => '%d',", right);
- printf(" 'top' => '%d',", top);
- printf(" 'bottom' => '%d',", bottom);
- printf(" 'width' => '%d',", width);
- printf(" 'height' => '%d'", height);
+ printf("'left'=>'%d',", left);
+ printf("'right'=>'%d',", right);
+ printf("'top'=>'%d',", top);
+ printf("'bottom'=>'%d',", bottom);
+ printf("'width'=>'%d',", width);
+ printf("'height'=>'%d'", height);
printf("};\n");
}
stp_parameter_description_destroy(&desc);
diff --git a/src/foomatic/printer_options.c b/src/foomatic/printer_options.c
index 331d32e..9bf8e64 100644
--- a/src/foomatic/printer_options.c
+++ b/src/foomatic/printer_options.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printer_options.c,v 1.53 2012/05/26 15:57:35 rlk Exp $"
+ * "$Id: printer_options.c,v 1.55 2015/09/08 03:59:55 speachy Exp $"
*
* Dump the per-printer options for the OpenPrinting database
*
@@ -47,12 +47,15 @@ main(int argc, char **argv)
const stp_printer_t *printer = stp_get_printer_by_index(i);
const char *driver = stp_printer_get_driver(printer);
const char *family = stp_printer_get_family(printer);
- stp_vars_t *pv = stp_vars_create_copy(stp_printer_get_defaults(printer));
+ stp_vars_t *pv;
int tcount = 0;
size_t count;
int printer_is_color = 0;
+
if (strcmp(family, "ps") == 0 || strcmp(family, "raw") == 0)
continue;
+
+ pv = stp_vars_create_copy(stp_printer_get_defaults(printer));
/* Set Job Mode to "Job" as this enables the Duplex option */
stp_set_string_parameter(pv, "JobMode", "Job");
@@ -108,22 +111,22 @@ main(int argc, char **argv)
* order listed. This ensures that the enable
* option is adjacent to the value it controls.
*/
- printf("$longnames{'STP_Enable%s'} = '%s Enable';",
+ printf("$longnames{'STP_Enable%s'}='%s Enable';",
desc.name, desc.text);
- printf("$param_classes{'STP_Enable%s'} = %d;",
+ printf("$param_classes{'STP_Enable%s'}=%d;",
desc.name, desc.p_class);
- printf("$param_levels{'STP_Enable%s'} = %d;",
+ printf("$param_levels{'STP_Enable%s'}=%d;",
desc.name, desc.p_level);
- printf("$longnames{'STP_%s'} = '%s Value';",
+ printf("$longnames{'STP_%s'}='%s Value';",
desc.name, desc.text);
}
}
else
- printf("$longnames{'STP_%s'} = '%s';",
+ printf("$longnames{'STP_%s'}='%s';",
desc.name, desc.text);
- printf("$param_classes{'STP_%s'} = %d;",
+ printf("$param_classes{'STP_%s'}=%d;",
desc.name, desc.p_class);
- printf("$param_levels{'STP_%s'} = %d;",
+ printf("$param_levels{'STP_%s'}=%d;",
desc.name, desc.p_level);
}
if ((desc.p_type == STP_PARAMETER_TYPE_DOUBLE ||
@@ -131,11 +134,11 @@ main(int argc, char **argv)
desc.p_type == STP_PARAMETER_TYPE_INT) &&
!desc.is_mandatory)
{
- printf("$defaults{'%s'}{'STP_Enable%s'} = 'Disabled';",
+ printf("$defaults{'%s'}{'STP_Enable%s'}='Disabled';",
driver, desc.name);
- printf("$stpdata{'%s'}{'STP_Enable%s'}{'Disabled'} = 'Disabled';",
+ printf("$stpdata{'%s'}{'STP_Enable%s'}{'Disabled'}='Disabled';",
driver, desc.name);
- printf("$stpdata{'%s'}{'STP_Enable%s'}{'Enabled'} = 'Enabled';",
+ printf("$stpdata{'%s'}{'STP_Enable%s'}{'Enabled'}='Enabled';",
driver, desc.name);
}
if (desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
@@ -143,37 +146,37 @@ main(int argc, char **argv)
count = stp_string_list_count(desc.bounds.str);
if (count > 0)
{
- printf("{ $stpdata{'%s'}{'STP_%s'} = {};",
+ printf("{ $stpdata{'%s'}{'STP_%s'}={};",
driver, desc.name);
- printf("my $tmp = $stpdata{'%s'}{'STP_%s'};",
+ printf("my $tmp=$stpdata{'%s'}{'STP_%s'};",
driver, desc.name);
if (strcmp(desc.name, "Resolution") == 0)
{
- printf("$stpdata{'%s'}{'x_resolution'} = {};",
+ printf("$stpdata{'%s'}{'x_resolution'}={};",
driver);
- printf("my $x_t = $stpdata{'%s'}{'x_resolution'};",
+ printf("my $x_t=$stpdata{'%s'}{'x_resolution'};",
driver);
- printf("$stpdata{'%s'}{'y_resolution'} = {};",
+ printf("$stpdata{'%s'}{'y_resolution'}={};",
driver);
- printf("my $y_t = $stpdata{'%s'}{'y_resolution'};",
+ printf("my $y_t=$stpdata{'%s'}{'y_resolution'};",
driver);
}
if (desc.is_mandatory)
{
- printf("$defaults{'%s'}{'STP_%s'} = '%s';",
+ printf("$defaults{'%s'}{'STP_%s'}='%s';",
driver, desc.name, desc.deflt.str);
}
else
{
- printf("$defaults{'%s'}{'STP_%s'} = '%s';",
+ printf("$defaults{'%s'}{'STP_%s'}='%s';",
driver, desc.name, "None");
- printf("$$tmp{'%s'} = '%s';", "None", "None");
+ printf("$$tmp{'%s'}='%s';", "None", "None");
}
for (j = 0; j < count; j++)
{
const stp_param_string_t *param =
stp_string_list_param(desc.bounds.str, j);
- printf("$$tmp{'%s'} = '%s';",
+ printf("$$tmp{'%s'}='%s';",
param->name, param->text);
if (strcmp(desc.name, "Resolution") == 0)
{
@@ -183,8 +186,8 @@ main(int argc, char **argv)
stp_describe_resolution(pv, &x, &y);
if (x > 0 && y > 0)
{
- printf("$$x_t{'%s'} = '%d';",param->name, x);
- printf("$$y_t{'%s'} = '%d';",param->name, y);
+ printf("$$x_t{'%s'}='%d';",param->name, x);
+ printf("$$y_t{'%s'}='%d';",param->name, y);
}
stp_clear_string_parameter(pv, "Resolution");
}
@@ -196,20 +199,20 @@ main(int argc, char **argv)
{
if (desc.is_mandatory)
{
- printf("$defaults{'%s'}{'STP_%s'} = '%d';",
+ printf("$defaults{'%s'}{'STP_%s'}='%d';",
driver, desc.name, desc.deflt.boolean);
}
else
{
- printf("$defaults{'%s'}{'STP_%s'} = '%s';",
+ printf("$defaults{'%s'}{'STP_%s'}='%s';",
driver, desc.name, "None");
- printf("$stpdata{'%s'}{'STP_%s'}{'%s'} = '%s';",
+ printf("$stpdata{'%s'}{'STP_%s'}{'%s'}='%s';",
driver, desc.name, "None", "None");
}
- printf("$stpdata{'%s'}{'STP_%s'}{'False'} = 'False';",
+ printf("$stpdata{'%s'}{'STP_%s'}{'False'}='False';",
driver, desc.name);
- printf("$stpdata{'%s'}{'STP_%s'}{'True'} = 'True';\n",
+ printf("$stpdata{'%s'}{'STP_%s'}{'True'}='True';\n",
driver, desc.name);
}
else if (desc.p_type == STP_PARAMETER_TYPE_DOUBLE)
@@ -217,23 +220,21 @@ main(int argc, char **argv)
if (desc.bounds.dbl.lower <= desc.deflt.dbl &&
desc.bounds.dbl.upper >= desc.deflt.dbl)
{
- printf("{ $stp_float_values{'%s'}{'STP_%s'} = {};",
+ printf("{ $stp_float_values{'%s'}{'STP_%s'}={};",
driver, desc.name);
- printf("my $tmp = $stp_float_values{'%s'}{'STP_%s'};",
+ printf("my $tmp=$stp_float_values{'%s'}{'STP_%s'};",
driver, desc.name);
- printf("$$tmp{'MINVAL'} = %.3f;",
+ printf("$$tmp{'MINVAL'}=%.3f;",
desc.bounds.dbl.lower);
- printf("$$tmp{'MAXVAL'} = %.3f;",
+ printf("$$tmp{'MAXVAL'}=%.3f;",
desc.bounds.dbl.upper);
- printf("$$tmp{'DEFVAL'} = %.3f;",
+ printf("$$tmp{'DEFVAL'}=%.3f;",
desc.deflt.dbl);
- /* printf("$$tmp{'LONG_NAME'} = '%s';",
+ /* printf("$$tmp{'LONG_NAME'}='%s';",
gettext(desc.text)); */
- printf("$$tmp{'CATEGORY'} = '%s';",
+ printf("$$tmp{'CATEGORY'}='%s';",
gettext(desc.category));
- printf("$$tmp{'HELP'} = q(%s);",
- (desc.help ? gettext(desc.help) : "''"));
- printf("$$tmp{'MANDATORY'} = q(%d);",
+ printf("$$tmp{'MANDATORY'}=q(%d);",
desc.is_mandatory);
printf("}\n");
}
@@ -243,23 +244,21 @@ main(int argc, char **argv)
if (desc.bounds.integer.lower <= desc.deflt.integer &&
desc.bounds.integer.upper >= desc.deflt.integer)
{
- printf("{ $stp_int_values{'%s'}{'STP_%s'} = {};",
+ printf("{ $stp_int_values{'%s'}{'STP_%s'}={};",
driver, desc.name);
- printf("my $tmp = $stp_int_values{'%s'}{'STP_%s'};",
+ printf("my $tmp=$stp_int_values{'%s'}{'STP_%s'};",
driver, desc.name);
- printf("$$tmp{'MINVAL'} = %d;",
+ printf("$$tmp{'MINVAL'}=%d;",
desc.bounds.integer.lower);
- printf("$$tmp{'MAXVAL'} = %d;",
+ printf("$$tmp{'MAXVAL'}=%d;",
desc.bounds.integer.upper);
- printf("$$tmp{'DEFVAL'} = %d;",
+ printf("$$tmp{'DEFVAL'}=%d;",
desc.deflt.integer);
- /* printf("$$tmp{'LONG_NAME'} = '%s';",
+ /* printf("$$tmp{'LONG_NAME'}='%s';",
gettext(desc.text)); */
- printf("$$tmp{'CATEGORY'} = '%s';",
+ printf("$$tmp{'CATEGORY'}='%s';",
gettext(desc.category));
- printf("$$tmp{'HELP'} = q(%s);",
- (desc.help ? gettext(desc.help) : "''"));
- printf("$$tmp{'MANDATORY'} = q(%d);",
+ printf("$$tmp{'MANDATORY'}=q(%d);",
desc.is_mandatory);
printf("}\n");
}
@@ -269,23 +268,21 @@ main(int argc, char **argv)
if (desc.bounds.dimension.lower <= desc.deflt.dimension &&
desc.bounds.dimension.upper >= desc.deflt.dimension)
{
- printf("{ $stp_dimension_values{'%s'}{'STP_%s'} = {};",
+ printf("{ $stp_dimension_values{'%s'}{'STP_%s'}={};",
driver, desc.name);
- printf("my $tmp = $stp_dimension_values{'%s'}{'STP_%s'};",
+ printf("my $tmp=$stp_dimension_values{'%s'}{'STP_%s'};",
driver, desc.name);
- printf("$$tmp{'MINVAL'} = %d;",
+ printf("$$tmp{'MINVAL'}=%d;",
desc.bounds.dimension.lower);
- printf("$$tmp{'MAXVAL'} = %d;",
+ printf("$$tmp{'MAXVAL'}=%d;",
desc.bounds.dimension.upper);
- printf("$$tmp{'DEFVAL'} = %d;",
+ printf("$$tmp{'DEFVAL'}=%d;",
desc.deflt.dimension);
- /* printf("$$tmp{'LONG_NAME'} = '%s';",
+ /* printf("$$tmp{'LONG_NAME'}='%s';",
gettext(desc.text)); */
- printf("$$tmp{'CATEGORY'} = '%s';",
+ printf("$$tmp{'CATEGORY'}='%s';",
gettext(desc.category));
- printf("$$tmp{'HELP'} = q(%s);",
- (desc.help ? gettext(desc.help) : "''"));
- printf("$$tmp{'MANDATORY'} = q(%d);",
+ printf("$$tmp{'MANDATORY'}=q(%d);",
desc.is_mandatory);
printf("}\n");
}
@@ -299,19 +296,19 @@ main(int argc, char **argv)
{
if (printer_is_color)
{
- printf("$defaults{'%s'}{'%s'} = '%s';",
+ printf("$defaults{'%s'}{'%s'}='%s';",
driver, "Color", "Color");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';",
+ printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';",
driver, "Color", "Color", "Color");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
+ printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';\n",
driver, "Color", "RawCMYK", "Raw CMYK");
}
else
- printf("$defaults{'%s'}{'%s'} = '%s';",
+ printf("$defaults{'%s'}{'%s'}='%s';",
driver, "Color", "Grayscale");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';",
+ printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';",
driver, "Color", "Grayscale", "Gray Scale");
- printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
+ printf("$stpdata{'%s'}{'%s'}{'%s'}='%s';\n",
driver, "Color", "BlackAndWhite", "Black and White");
}
stp_vars_destroy(pv);
diff --git a/src/ghost/Makefile.in b/src/ghost/Makefile.in
index 4d85f27..c72a029 100644
--- a/src/ghost/Makefile.in
+++ b/src/ghost/Makefile.in
@@ -206,6 +206,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/gimp2/Makefile.in b/src/gimp2/Makefile.in
index 4edb36f..96021ee 100644
--- a/src/gimp2/Makefile.in
+++ b/src/gimp2/Makefile.in
@@ -219,6 +219,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/gutenprintui2/Makefile.in b/src/gutenprintui2/Makefile.in
index ed1debc..8b43de1 100644
--- a/src/gutenprintui2/Makefile.in
+++ b/src/gutenprintui2/Makefile.in
@@ -274,6 +274,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/gutenprintui2/panel.c b/src/gutenprintui2/panel.c
index ddfc2c3..93812e2 100644
--- a/src/gutenprintui2/panel.c
+++ b/src/gutenprintui2/panel.c
@@ -1,5 +1,5 @@
/*
- * "$Id: panel.c,v 1.21 2014/01/12 02:06:13 rlk Exp $"
+ * "$Id: panel.c,v 1.23 2015/09/09 23:57:32 speachy Exp $"
*
* Main window code for Print plug-in for the GIMP.
*
@@ -4589,7 +4589,7 @@ compute_thumbnail(const stp_vars_t *v)
stp_set_page_height(nv, thumbnail_h);
stp_set_page_width(nv, thumbnail_w);
stp_set_driver(nv, "raw-data-8");
- stp_set_float_parameter(nv, "Density", 1.0);
+ stp_set_string_parameter(nv, "PageSize", "Custom");
stp_set_float_parameter(nv, "InkLimit", 0);
stp_set_string_parameter(nv, "InputImageType", "RGB");
stp_clear_file_parameter(nv, "LUTDumpFile");
diff --git a/src/main/Makefile.in b/src/main/Makefile.in
index 7006fc9..a91f253 100644
--- a/src/main/Makefile.in
+++ b/src/main/Makefile.in
@@ -359,6 +359,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/main/canon-inks.h b/src/main/canon-inks.h
index 741f80f..6d42d3e 100644
--- a/src/main/canon-inks.h
+++ b/src/main/canon-inks.h
@@ -100,6 +100,9 @@ static const stp_dotsize_t dotsizes_3l[] = {
DECLARE_INK(2,3);
+/*under development*/
+DECLARE_INK(4,3);
+
DECLARE_INK_EXTENDED(2,3,INK_FLAG_5pixel_in_1byte);
static const stp_dotsize_t dotsizes_4l[] = {
@@ -697,6 +700,18 @@ static const canon_inkset_t canon_9_C4M4Y4K4_inkset[] = {
{0,0.0,NULL}
};
+static const canon_inkset_t canon_9_C4M4Y4K2c4m4y4twobit_inkset[] = {
+ {'C',1.0,&canon_2b_4l_ink},
+ {'M',1.0,&canon_2b_4l_ink},
+ {'Y',1.0,&canon_2b_4l_ink},
+ {'K',1.0,&canon_1b_2l_ink},
+ {'c',1.0,&canon_2b_4l_ink},
+ {'m',1.0,&canon_2b_4l_ink},
+ {'y',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL}
+};
+
static const canon_inkset_t canon_9_C4M4Y4K4c4m4_inkset[] = {
{'C',1.0,&canon_4b_4l_ink},
{'M',1.0,&canon_4b_4l_ink},
@@ -1877,6 +1892,22 @@ static const canon_inkset_t canon_13_C6M6Y4K3k4_c_inkset[] = {
{0,0.0,NULL},
};
+static const canon_inkset_t canon_13_C6M6Y4K3k4on_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',1.0,&canon_2b_4l_ink},/* swapped y and k */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
static const canon_inkset_t canon_13_C8M8Y4k4_inkset[] = {
{'C',1.0,&canon_4b_8l_ink},
{'M',1.0,&canon_4b_8l_ink},
@@ -2908,7 +2939,7 @@ static const canon_inkset_t canon_22_C4M4Y4K2c4m4k4on_inkset[] = {
/* fast */
-/* MP990, MG6100, MG800 */
+/* MP990, MG6100, MG6200, MG6900, MG7700, MG8100, MG8200 */
/* 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_K2C2M2Y2_inkset[] = {
{'K',1.0,&canon_1b_2l_ink},
@@ -3051,6 +3082,41 @@ static const canon_inkset_t canon_30_K2C6M6Y4k4_inkset[] = {
};
/* standard */
+/* MG6900, MG7700 */
+static const canon_inkset_t canon_30_K3C3M3Y2k3off2bit_inkset[] = {
+ {'K',1.0,&canon_2b_3l_ink},
+ {'C',1.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_2b_2l_ink},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_2b_3l_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 */
/* MG6300, MG6500, MG7100, iP8700 */
static const canon_inkset_t canon_30_K3C3M3Y2k3off_c_inkset[] = {
{'K',1.0,&canon_2b_3l_c_ink},
@@ -3085,6 +3151,41 @@ static const canon_inkset_t canon_30_K3C3M3Y2k3off_c_inkset[] = {
{0,0.0,NULL},
};
+/* standard duplex */
+/* MG6900, MG7700 */
+static const canon_inkset_t canon_30_K3C3M3Y2k3on2bit_inkset[] = {
+ {'K',1.0,&canon_2b_3l_ink},
+ {'C',1.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_2b_3l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_2b_2l_ink},
+ {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},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
/* standard for Duplex */
/* MG6300, MG6500, MG7100, iP8700 */
static const canon_inkset_t canon_30_K3C3M3Y2k3_c_inkset[] = {
@@ -3156,6 +3257,76 @@ static const canon_inkset_t canon_30_K3C3M3Y2k3photo_c_inkset[] = {
};
/* high */
+/* MG6900, MG7700 */
+static const canon_inkset_t canon_30_K3C6M6Y4k4off4bit_inkset[] = {
+ {'K',1.0,&canon_4b_3l_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_4b_4l_ink},
+ {0,0.0,NULL},
+ {'k',0.0,&canon_4b_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},
+};
+
+/* high duplex */
+/* MG6900, MG7700 */
+static const canon_inkset_t canon_30_K3C6M6Y4k4on4bit_inkset[] = {
+ {'K',1.0,&canon_4b_3l_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_4b_4l_ink},
+ {0,0.0,NULL},
+ {'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},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
+/* high */
/* MG6300, MG6500, MG7100, iP8700 */
static const canon_inkset_t canon_30_K3C6M6Y4k4off_c_inkset[] = {
{'K',1.0,&canon_2b_3l_c_ink},
@@ -3226,6 +3397,41 @@ static const canon_inkset_t canon_30_C5M5Y4k4_inkset[] = {
{0,0.0,NULL},
};
+/* MG6900, MG7700 */
+/* CD, inkjet Hagaki */
+static const canon_inkset_t canon_30_C5M5Y5k4_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_4b_5l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_2b_4l_ink},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
static const canon_inkset_t canon_30_M6K6m4k4_inkset[] = {
{0,0.0,NULL},
{'C',1.0,&canon_4b_6l_ink},
@@ -3294,6 +3500,41 @@ static const canon_inkset_t canon_30_M6K6m4k4H6off_inkset[] = {
{0,0.0,NULL},
};
+/* photo standard */
+/* MG6900, MG7700 */
+static const canon_inkset_t canon_30_M6K6m4k4H6off4bit_inkset[] = {
+ {0,0.0,NULL},
+ {'C',1.0,&canon_4b_6l_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_4b_6l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_4b_4l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_4b_4l_ink},
+ {0,0.0,NULL},
+ {'H',0.0,&canon_4b_6l_ink},/* H is not supported, so only for modes where it is switched off */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
static const canon_inkset_t canon_30_M8K8m4k4_inkset[] = {
{0,0.0,NULL},
{'C',1.0,&canon_4b_8l_ink},
@@ -3362,5 +3603,40 @@ static const canon_inkset_t canon_30_M8K8m4k4H8off_inkset[] = {
{0,0.0,NULL},
};
+/* photo high */
+/* MG6900, MG7700 */
+static const canon_inkset_t canon_30_M8K8m4k4H8off4bit_inkset[] = {
+ {0,0.0,NULL},
+ {'C',1.0,&canon_4b_8l_ink},
+ {0,0.0,NULL},
+ {'M',1.0,&canon_4b_8l_ink},
+ {0,0.0,NULL},
+ {'Y',1.0,&canon_4b_4l_ink},
+ {0,0.0,NULL},
+ {'k',1.0,&canon_4b_4l_ink},
+ {0,0.0,NULL},
+ {'H',0.0,&canon_4b_8l_ink},/* H is not supported, so only for modes where it is switched off */
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+ {0,0.0,NULL},
+};
+
#endif
diff --git a/src/main/canon-media-mode.h b/src/main/canon-media-mode.h
index f569d66..da2f9e3 100644
--- a/src/main/canon-media-mode.h
+++ b/src/main/canon-media-mode.h
@@ -802,7 +802,9 @@ static const char* canon_BJC_S300_modeuses_plain[] = {
"600x600dpi_high",
"600x600dpi_std2",
"600x600dpi",/*untested*/
+ "600x00dpi_std4", /* legacy */
"300x300dpi",
+ "300x300dpi_std2", /* legacy */
NULL
};
@@ -829,6 +831,8 @@ static const char* canon_BJC_S300_modeuses_Envelope[] = {
"600x600dpi_high3",
"600x600dpi_std3",
"600x600dpi_draft3",
+ "600x600dpi_std4", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
@@ -1072,80 +1076,80 @@ DECLARE_MODEUSES(canon_BJC_S520);
/* ----------------------------------- Canon BJC S600 ----------------------------------- */
static const char* canon_BJC_S600_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_high",
"600x600dpi",
+ "600x600dpi_std2", /* legacy */
"600x600dpi_draft",/*untested*/
"300x300dpi",
"300x300dpi_draft",
+ "300x300dpi_std2", /* legacy */
NULL
};
static const char* canon_BJC_S600_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh2",
"600x600dpi_photo2",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
static const char* canon_BJC_S600_modeuses_coated[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh3",
"600x600dpi_photohigh",
"600x600dpi_photo",
"600x600dpi_photodraft",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std", /* legacy */
NULL
};
static const char* canon_BJC_S600_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh3",
"600x600dpi_photohigh",
"600x600dpi_photo",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
static const char* canon_BJC_S600_modeuses_inkjetHagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photo3",
"600x600dpi_photodraft3",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
static const char* canon_BJC_S600_modeuses_Envelope[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_high3",
"600x600dpi_std3",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
static const char* canon_BJC_S600_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_tshirt",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
static const char* canon_BJC_S600_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh5",
"600x600dpi_photohigh4",
"600x600dpi_photo4",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
@@ -1243,88 +1247,88 @@ DECLARE_MODEUSES(canon_BJC_S750);
/* ----------------------------------- Canon BJC S800 ----------------------------------- */
static const char* canon_BJC_S800_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_high2",
-/* "600x600dpi_high",*/
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_std3", /* legacy */
"600x600dpi_draft",
+ "300x300dpi", /* legacy */
/* Mono */
"600x600dpi_highmono2",
-/* "600x600dpi_highmono",*/
-/* "600x600dpi_mono",*/
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
"600x600dpi_draftmono",
NULL
};
static const char* canon_BJC_S800_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh4",
-/* "600x600dpi_photohigh",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_std3", /* legacy */
+ "300x300dpi", /* legacy */
NULL
};
static const char* canon_BJC_S800_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh2",
-/* "600x600dpi_photo",*/ /*untested*/
+ "600x600dpi_photo", /*untested*/
+ "600x600dpi_std3", /* legacy */
+ "300x300dpi", /* legacy */
NULL
};
static const char* canon_BJC_S800_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh3",*/
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo2",*/
+ "1200x1200dpi", /* legacy */
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_std3", /* legacy */
+ "300x300dpi", /* legacy */
NULL
};
static const char* canon_BJC_S800_modeuses_glossFilm[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh2",
-/* "600x600dpi_photo",*/ /*untested*/
+ "600x600dpi_photo", /*untested*/
+ "600x600dpi_std3", /* legacy */
+ "300x300dpi", /* legacy */
NULL
};
static const char* canon_BJC_S800_modeuses_PPother[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
+ "1200x1200dpi", /* legacy */
"600x600dpi_photohigh4",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
"600x600dpi_photodraft",
+ "600x600dpi_std3", /* legacy */
+ "300x300dpi", /* legacy */
/* Mono */
"600x600dpi_photomonohigh2",
-/* "600x600dpi_photomonohigh",*/
-/* "600x600dpi_photomono",*/
+ "600x600dpi_photomonohigh",
+ "600x600dpi_photomono",
"600x600dpi_photomonodraft",
NULL
};
static const char* canon_BJC_S800_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "1200x1200dpi", /* legacy */
+ "600x600dpi_tshirt",
+ "600x600dpi_std3", /* legacy */
+ "300x300dpi", /* legacy */
NULL
};
static const char* canon_BJC_S800_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_std2",*/
-/* "600x600dpi_draft2",*/
+ "1200x1200dpi", /* legacy */
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
+ "600x600dpi_std3", /* legacy */
+ "300x300dpi", /* legacy */
NULL
};
@@ -1350,72 +1354,51 @@ DECLARE_MODEUSES(canon_BJC_S800);
/* ----------------------------------- Canon BJC S820 ----------------------------------- */
static const char* canon_BJC_S820_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
"600x600dpi_high2",
-/* "600x600dpi_high",*/ /*untested*/
-/* "600x600dpi",*/
+ "600x600dpi_high", /*untested*/
+ "600x600dpi",
"600x600dpi_draft",
/* Mono */
"600x600dpi_highmono2",/*untested*/
-/* "600x600dpi_highmono",*/ /*untested*/
-/* "600x600dpi_mono",*/ /*untested*/
+ "600x600dpi_highmono", /*untested*/
+ "600x600dpi_mono", /*untested*/
"600x600dpi_draftmono",
NULL
};
static const char* canon_BJC_S820_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
"600x600dpi_photohigh4",
-/* "600x600dpi_photohigh",*/
+ "600x600dpi_photohigh",
NULL
};
static const char* canon_BJC_S820_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
"600x600dpi_photohigh2",
-/* "600x600dpi_photo",*/ /*untested*/
+ "600x600dpi_photo", /*untested*/
NULL
};
static const char* canon_BJC_S820_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh3",*/
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_S820_modeuses_glossFilm[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
"600x600dpi_photohigh2",
-/* "600x600dpi_photo",*/ /*untested*/
+ "600x600dpi_photo", /*untested*/
NULL
};
static const char* canon_BJC_S820_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "600x600dpi_tshirt",
NULL
};
static const char* canon_BJC_S820_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_std2",*/
-/* "600x600dpi_draft2",*/
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
NULL
};
@@ -1441,80 +1424,56 @@ DECLARE_MODEUSES(canon_BJC_S820);
/* ----------------------------------- Canon BJC S900 ----------------------------------- */
static const char* canon_BJC_S900_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high",*/
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi",
"600x600dpi_draft",
/* Mono */
"600x600dpi_highmono2",/*untested*/
-/* "600x600dpi_highmono",*/ /*untested*/
-/* "600x600dpi_mono",*/ /*untested*/
+ "600x600dpi_highmono", /*untested*/
+ "600x600dpi_mono", /*untested*/
"600x600dpi_draftmono",
NULL
};
static const char* canon_BJC_S900_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh5",*/
-/* "600x600dpi_photohigh",*/
+ "600x600dpi_photohigh5",
+ "600x600dpi_photohigh",
NULL
};
static const char* canon_BJC_S900_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh3",*/
-/* "600x600dpi_photo2",*/ /*untested*/
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo2", /*untested*/
NULL
};
static const char* canon_BJC_S900_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_S900_modeuses_coated[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh4",*/
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh4",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_S900_modeuses_glossFilm[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo",*/ /*untested*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo", /*untested*/
NULL
};
static const char* canon_BJC_S900_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "600x600dpi_tshirt",
NULL
};
static const char* canon_BJC_S900_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_std2",*/
-/* "600x600dpi_draft2",*/
+ "600x600dpi_std2",
+ "600x600dpi_draft2",
NULL
};
@@ -1619,8 +1578,10 @@ static const char* canon_BJC_i80_modeuses_plain[] = {
"600x600dpi_high",
"600x600dpi_high2",/*mono*/
"600x600dpi",
+ "600x600dpi_std2", /* legacy */
"300x300dpi",
"300x300dpi_draft",
+ "300x300dpi_std2", /* legacy */
NULL
};
@@ -1661,6 +1622,8 @@ static const char* canon_BJC_i80_modeuses_Hagaki[] = {
"600x600dpi_high4",/*mono*/
"600x600dpi_std3",
"600x600dpi_draft3",
+ "600x600dpi_std2", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
@@ -1963,9 +1926,11 @@ DECLARE_MODEUSES(canon_BJC_i550);
static const char* canon_BJC_i560_modeuses_plain[] = {
"600x600dpi_high",
"600x600dpi",
+ "600x600dpi_high3", /* legacy */
"300x300dpi_high",/*untested*/
"300x300dpi",
"300x300dpi_draft",
+ "300x300dpi_std2", /* legacy */
NULL
};
@@ -2006,6 +1971,8 @@ static const char* canon_BJC_i560_modeuses_inkjetHagaki[] = {
static const char* canon_BJC_i560_modeuses_Hagaki[] = {
"600x600dpi_high2",
"600x600dpi_std2",
+ "600x600dpi_high3", /* legacy */
+ "300x300dpi_std2", /* legacy */
NULL
};
@@ -2320,12 +2287,9 @@ DECLARE_MODEUSES(canon_BJC_i900);
/* ----------------------------------- Canon i950 ----------------------------------- */
static const char* canon_BJC_i950_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high2",*/
-/* "600x600dpi_high",*/ /*untested*/
-/* "600x600dpi",*/
+ "600x600dpi_high2",
+ "600x600dpi_high", /*untested*/
+ "600x600dpi",
"600x600dpi_draft",/*untested*/
"600x600dpi_draft2",
"600x600dpi_draftmono",/* mono --- untested*/
@@ -2334,84 +2298,57 @@ static const char* canon_BJC_i950_modeuses_plain[] = {
};
static const char* canon_BJC_i950_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo3",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo3",
NULL
};
static const char* canon_BJC_i950_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo2",*/ /*untested*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2", /*untested*/
NULL
};
static const char* canon_BJC_i950_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_i950_modeuses_PPmatte[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_i950_modeuses_coated[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo3",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo3",
+ "600x600dpi_photo",
NULL
};
static const char* canon_BJC_i950_modeuses_GlossyFilm[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
+ "600x600dpi_photohigh",
NULL
};
static const char* canon_BJC_i950_modeuses_inkjetHagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh4",*/
-/* "600x600dpi_photo4",*/
-/* "600x600dpi_photodraft4",*/
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
NULL
};
static const char* canon_BJC_i950_modeuses_disc[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo5",*/
-/* "600x600dpi_photodraft5",*/
+ "600x600dpi_photo5",
+ "600x600dpi_photodraft5",
NULL
};
static const char* canon_BJC_i950_modeuses_Hagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high4",*/
-/* "600x600dpi_high5",*/ /*untested*/
+ "600x600dpi_high4",
+ "600x600dpi_high5", /*untested*/
"600x600dpi_std4",/*untested*/
"600x600dpi_std5",
"600x600dpi_draftmono4",/* mono---untested*/
@@ -2420,28 +2357,19 @@ static const char* canon_BJC_i950_modeuses_Hagaki[] = {
};
static const char* canon_BJC_i950_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "600x600dpi_tshirt",
NULL
};
static const char* canon_BJC_i950_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_std3",*/
-/* "600x600dpi_draft3",*/
-/* "600x600dpi_draft4",*/
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ "600x600dpi_draft4",
NULL
};
static const char* canon_BJC_i950_modeuses_PPother[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo2",*/ /*untested*/
+ "600x600dpi_photo2", /*untested*/
NULL
};
@@ -2468,13 +2396,10 @@ DECLARE_MODEUSES(canon_BJC_i950);
/* ----------------------------------- Canon i960 ----------------------------------- */
static const char* canon_BJC_i960_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high2",*/
-/* "600x600dpi_high3",*/ /* duplex */
-/* "600x600dpi_high",*/
-/* "600x600dpi",*/ /*untested*/
+ "600x600dpi_high2",
+ "600x600dpi_high3", /* duplex */
+ "600x600dpi_high",
+ "600x600dpi", /*untested*/
"600x600dpi_draft",
"600x600dpi_draft2",
"600x600dpi_draftmono",/* mono */
@@ -2483,76 +2408,52 @@ static const char* canon_BJC_i960_modeuses_plain[] = {
};
static const char* canon_BJC_i960_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
NULL
};
static const char* canon_BJC_i960_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo5",*/ /*untested*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo5", /*untested*/
NULL
};
static const char* canon_BJC_i960_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_i960_modeuses_PPmatte[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_i960_modeuses_coated[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo",*/
-/* "600x600dpi_photo5",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ "600x600dpi_photo5",
NULL
};
static const char* canon_BJC_i960_modeuses_inkjetHagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh3",*/
-/* "600x600dpi_photo3",*/
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
NULL
};
static const char* canon_BJC_i960_modeuses_disc[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo4",*/
-/* "600x600dpi_photodraft4",*/
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
NULL
};
static const char* canon_BJC_i960_modeuses_Hagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high4",*/
-/* "600x600dpi_high5",*/
-/* "600x600dpi_std4",*/ /*untested*/
+ "600x600dpi_high4",
+ "600x600dpi_high5",
+ "600x600dpi_std4", /*untested*/
"600x600dpi_std5",
"600x600dpi_draft5",
"600x600dpi_draftmono4",
@@ -2561,28 +2462,19 @@ static const char* canon_BJC_i960_modeuses_Hagaki[] = {
};
static const char* canon_BJC_i960_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "600x600dpi_tshirt",
NULL
};
static const char* canon_BJC_i960_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_std3",*/
-/* "600x600dpi_draft3",*/
-/* "600x600dpi_draft4",*/ /*untested*/
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
+ "600x600dpi_draft4", /*untested*/
NULL
};
static const char* canon_BJC_i960_modeuses_PPother[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo2",*/ /*untested*/
+ "600x600dpi_photo2", /*untested*/
NULL
};
@@ -2608,12 +2500,9 @@ DECLARE_MODEUSES(canon_BJC_i960);
/* ----------------------------------- Canon i990 ----------------------------------- */
static const char* canon_BJC_i990_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high2",*/
-/* "600x600dpi_high3",*/ /*duplex*/
-/* "600x600dpi",*/
+ "600x600dpi_high2",
+ "600x600dpi_high3", /*duplex*/
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
"600x600dpi_draftmono",/*mono*/
@@ -2624,76 +2513,52 @@ static const char* canon_BJC_i990_modeuses_plain[] = {
/* most photo modes use R ink and therefore unsupported */
/* unsupported */
static const char* canon_BJC_i990_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
+ "600x600dpi_photohigh", /*stand-in*/
NULL
};
/* highest mode not yet supported */
static const char* canon_BJC_i990_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
-/* "600x600dpi_photodraft",*/
+ "600x600dpi_photohigh", /*stand-in*/
+ "600x600dpi_photodraft",
NULL
};
/* unsupported */
static const char* canon_BJC_i990_modeuses_PPmatte[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
+ "600x600dpi_photohigh", /*stand-in*/
NULL
};
/* highest mode not yet supported */
static const char* canon_BJC_i990_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
-/* "600x600dpi_photodraft2",*/
+ "600x600dpi_photohigh", /*stand-in*/
+ "600x600dpi_photodraft2",
NULL
};
static const char* canon_BJC_i990_modeuses_coated[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photomed",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photomed",
+ "600x600dpi_photo",
NULL
};
/* high mode not yet supported */
static const char* canon_BJC_i990_modeuses_inkjetHagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_i990_modeuses_disc[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo3",*/
-/* "600x600dpi_photodraft3",*/
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
NULL
};
static const char* canon_BJC_i990_modeuses_Hagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high4",*/
-/* "600x600dpi_std4",*/
+ "600x600dpi_high4",
+ "600x600dpi_std4",
"600x600dpi_draft5",
"600x600dpi_draft4",
"600x600dpi_draftmono4",/*mono*/
@@ -2702,28 +2567,19 @@ static const char* canon_BJC_i990_modeuses_Hagaki[] = {
};
static const char* canon_BJC_i990_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "600x600dpi_tshirt",
NULL
};
static const char* canon_BJC_i990_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_std3",*/
-/* "600x600dpi_draft3",*/
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
NULL
};
/* untested */
static const char* canon_BJC_i990_modeuses_PPother[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo",*/
+ "600x600dpi_photo",
NULL
};
@@ -2832,11 +2688,8 @@ DECLARE_MODEUSES(canon_BJC_i6100);
/* ----------------------------------- Canon i9100 ----------------------------------- */
static const char* canon_BJC_i9100_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high2",*/
-/* "600x600dpi_high",*/
+ "600x600dpi_high2",
+ "600x600dpi_high",
"600x600dpi",
"600x600dpi_draft",/*untested*/
"600x600dpi_mono",/*untested*/
@@ -2845,87 +2698,60 @@ static const char* canon_BJC_i9100_modeuses_plain[] = {
};
static const char* canon_BJC_i9100_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_i9100_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photo2",*/ /*untested*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2", /*untested*/
NULL
};
static const char* canon_BJC_i9100_modeuses_PPmatte[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
NULL
};
static const char* canon_BJC_i9100_modeuses_coated[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo2",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo2",
+ "600x600dpi_photo",
NULL
};
static const char* canon_BJC_i9100_modeuses_inkjetHagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh4",*/
-/* "600x600dpi_photo4",*/
-/* "600x600dpi_photodraft4",*/
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ "600x600dpi_photodraft4",
NULL
};
static const char* canon_BJC_i9100_modeuses_Hagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high3",*/
-/* "600x600dpi_std3",*/
+ "600x600dpi_high3",
+ "600x600dpi_std3",
"600x600dpi_draft3",
"600x600dpi_draftmono2",
NULL
};
static const char* canon_BJC_i9100_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "600x600dpi_tshirt",
NULL
};
static const char* canon_BJC_i9100_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh3",*/
-/* "600x600dpi_photo3",*/ /*untested*/
-/* "600x600dpi_photodraft3",*/
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3", /*untested*/
+ "600x600dpi_photodraft3",
NULL
};
static const char* canon_BJC_i9100_modeuses_PPother[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo2",*/ /*untested*/
-/* "600x600dpi_photo",*/ /*untested*/
+ "600x600dpi_photo2", /*untested*/
+ "600x600dpi_photo", /*untested*/
NULL
};
@@ -2949,11 +2775,8 @@ DECLARE_MODEUSES(canon_BJC_i9100);
/* ----------------------------------- Canon i9900 ----------------------------------- */
static const char* canon_BJC_i9900_modeuses_plain[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high2",*/
-/* "600x600dpi",*/
+ "600x600dpi_high2",
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
"600x600dpi_draftmono",/*mono*/
@@ -2964,76 +2787,52 @@ static const char* canon_BJC_i9900_modeuses_plain[] = {
/* most photo modes use R,G inks and therefore unsupported */
/* unsupported */
static const char* canon_BJC_i9900_modeuses_PPpro[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
+ "600x600dpi_photohigh", /*stand-in*/
NULL
};
/* highest mode not yet supported */
static const char* canon_BJC_i9900_modeuses_PPplus[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
-/* "600x600dpi_photodraft",*/
+ "600x600dpi_photohigh", /*stand-in*/
+ "600x600dpi_photodraft",
NULL
};
/* unsupported */
static const char* canon_BJC_i9900_modeuses_PPmatte[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
+ "600x600dpi_photohigh", /*stand-in*/
NULL
};
/* highest mode not yet supported */
static const char* canon_BJC_i9900_modeuses_PPgloss[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/ /*stand-in*/
-/* "600x600dpi_photodraft",*/
+ "600x600dpi_photohigh", /*stand-in*/
+ "600x600dpi_photodraft",
NULL
};
static const char* canon_BJC_i9900_modeuses_coated[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photomed",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photomed",
+ "600x600dpi_photo",
NULL
};
/* high mode not yet supported */
static const char* canon_BJC_i9900_modeuses_inkjetHagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo2",*/
+ "600x600dpi_photo2",
NULL
};
static const char* canon_BJC_i9900_modeuses_disc[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo3",*/
-/* "600x600dpi_photodraft3",*/
+ "600x600dpi_photo3",
+ "600x600dpi_photodraft3",
NULL
};
static const char* canon_BJC_i9900_modeuses_Hagaki[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_high4",*/
-/* "600x600dpi_std4",*/
+ "600x600dpi_high4",
+ "600x600dpi_std4",
"600x600dpi_draft5",
"600x600dpi_draft4",
"600x600dpi_draftmono4",/*mono*/
@@ -3042,27 +2841,18 @@ static const char* canon_BJC_i9900_modeuses_Hagaki[] = {
};
static const char* canon_BJC_i9900_modeuses_TShirt[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_tshirt",*/
+ "600x600dpi_tshirt",
NULL
};
static const char* canon_BJC_i9900_modeuses_Transparency[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_std3",*/
-/* "600x600dpi_draft3",*/
+ "600x600dpi_std3",
+ "600x600dpi_draft3",
NULL
};
static const char* canon_BJC_i9900_modeuses_PPother[] = {
- "1200x1200dpi_legacy",
- "600x600dpi_legacy",
- "300x300dpi_legacy",
-/* "600x600dpi_photo",*/
+ "600x600dpi_photo",
NULL
};
@@ -4971,9 +4761,9 @@ DECLARE_MODEUSES(canon_PIXMA_iP6700);
/* ----------------------------------- Canon iP7100 ----------------------------------- */
static const char* canon_PIXMA_iP7100_modeuses_plain[] = {
-/* "600x600dpi_high",*/
-/* "600x600dpi_high2",*/ /* duplex */
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi_high2", /* duplex */
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
/* Mono */
@@ -4982,86 +4772,86 @@ static const char* canon_PIXMA_iP7100_modeuses_plain[] = {
NULL
};
-/*static const char* canon_PIXMA_iP7100_modeuses_PPpro[] = {
+static const char* canon_PIXMA_iP7100_modeuses_PPpro[] = {
"600x600dpi_photohigh",
"600x600dpi_photo",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP7100_modeuses_PPplus[] = {
+static const char* canon_PIXMA_iP7100_modeuses_PPplus[] = {
"600x600dpi_photohigh",
"600x600dpi_photo",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP7100_modeuses_PPplusDS[] = {
+static const char* canon_PIXMA_iP7100_modeuses_PPplusDS[] = {
"600x600dpi_photohigh",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP7100_modeuses_PPmatte[] = {
+static const char* canon_PIXMA_iP7100_modeuses_PPmatte[] = {
"600x600dpi_photohigh2",
"600x600dpi_photo",
NULL
-};*/
+};
static const char* canon_PIXMA_iP7100_modeuses_Hagaki[] = {
-/* "600x600dpi_high3",*/
-/* "600x600dpi_std3",*/
+ "600x600dpi_high3",
+ "600x600dpi_std3",
"600x600dpi_draft3",
/* Mono */
"600x600dpi_mono",
NULL
};
-/*static const char* canon_PIXMA_iP7100_modeuses_FA[] = {
+static const char* canon_PIXMA_iP7100_modeuses_FA[] = {
"600x600dpi_photohigh3",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP7100_modeuses_disc[] = {
+static const char* canon_PIXMA_iP7100_modeuses_disc[] = {
"600x600dpi_photo",
"600x600dpi_photodraft",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP7100_modeuses_TShirt[] = {
+static const char* canon_PIXMA_iP7100_modeuses_TShirt[] = {
"600x600dpi",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP7100_modeuses_Transparency[] = {
+static const char* canon_PIXMA_iP7100_modeuses_Transparency[] = {
"600x600dpi_std4",
"600x600dpi_draft4",
NULL
-};*/
+};
/*untested*/
-/*static const char* canon_PIXMA_iP7100_modeuses_PPother[] = {
+static const char* canon_PIXMA_iP7100_modeuses_PPother[] = {
"600x600dpi_photo",
"600x600dpi_photodraft",
NULL
- };*/
+ };
static const canon_modeuse_t canon_PIXMA_iP7100_modeuses[] = {
{ "Plain", canon_PIXMA_iP7100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
-/* { "GlossyPro", canon_PIXMA_iP7100_modeuses_PPpro, 0 },*/
-/* { "PhotopaperPlus", canon_PIXMA_iP7100_modeuses_PPplus, 0 },*/
-/* { "PhotopaperPlusDouble", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },*/
-/* { "PhotopaperMatte", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },*/
-/* { "GlossyPaper", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },*/
-/* { "Coated", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },*/
-/* { "InkJetHagaki", canon_PIXMA_iP7100_modeuses_PPplus, 0 },*/
+ { "GlossyPro", canon_PIXMA_iP7100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP7100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP7100_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP7100_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP7100_modeuses_PPplus, 0 },
{ "Hagaki", canon_PIXMA_iP7100_modeuses_Hagaki, DUPLEX_SUPPORT },
-/* { "FineArtPhotoRag", canon_PIXMA_iP7100_modeuses_FA, 0 },*/
-/* { "FineArtOther", canon_PIXMA_iP7100_modeuses_FA, 0 },*/
-/* { "DiscCompat", canon_PIXMA_iP7100_modeuses_disc, 0 },*/
-/* { "DiscOthers", canon_PIXMA_iP7100_modeuses_disc, 0 },*/
-/* { "TShirt", canon_PIXMA_iP7100_modeuses_TShirt, 0 },*/
+ { "FineArtPhotoRag", canon_PIXMA_iP7100_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP7100_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP7100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP7100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP7100_modeuses_TShirt, 0 },
{ "Envelope", canon_PIXMA_iP7100_modeuses_Hagaki, 0 },
-/* { "Transparency", canon_PIXMA_iP7100_modeuses_Transparency, 0 },*/
-/* { "PhotopaperOther", canon_PIXMA_iP7100_modeuses_PPother, 0 },*/ /*untested*/
+ { "Transparency", canon_PIXMA_iP7100_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP7100_modeuses_PPother, 0 }, /*untested*/
};
DECLARE_MODEUSES(canon_PIXMA_iP7100);
@@ -5234,9 +5024,9 @@ DECLARE_MODEUSES(canon_PIXMA_iP7500);
/* ----------------------------------- Canon iP8100 ----------------------------------- */
static const char* canon_PIXMA_iP8100_modeuses_plain[] = {
-/* "600x600dpi_high",*/
-/* "600x600dpi_high2",*/ /* duplex */
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi_high2", /* duplex */
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
/* Mono */
@@ -5246,109 +5036,109 @@ static const char* canon_PIXMA_iP8100_modeuses_plain[] = {
};
/* no support for modes using R yet */
-/*static const char* canon_PIXMA_iP8100_modeuses_PPpro[] = {
- "600x600dpi_photohigh",*/ /*untested*/
-/* "600x600dpi_photo",
+static const char* canon_PIXMA_iP8100_modeuses_PPpro[] = {
+ "600x600dpi_photohigh", /*untested*/
+ "600x600dpi_photo",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_PPplus[] = {
+static const char* canon_PIXMA_iP8100_modeuses_PPplus[] = {
"600x600dpi_photohigh",
"600x600dpi_photo",
"600x600dpi_photodraft2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_PPplusDS[] = {
+static const char* canon_PIXMA_iP8100_modeuses_PPplusDS[] = {
"600x600dpi_photohigh",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_PPmatte[] = {
+static const char* canon_PIXMA_iP8100_modeuses_PPmatte[] = {
"600x600dpi_photohigh2",
"600x600dpi_photo",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_PPgloss[] = {
+static const char* canon_PIXMA_iP8100_modeuses_PPgloss[] = {
"600x600dpi_photohigh",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_inkjetHagaki[] = {
+static const char* canon_PIXMA_iP8100_modeuses_inkjetHagaki[] = {
"600x600dpi_photohigh",
"600x600dpi_photo",
NULL
-};*/
+};
static const char* canon_PIXMA_iP8100_modeuses_Hagaki[] = {
-/* "600x600dpi_high3",*/
-/* "600x600dpi_std3",*/
+ "600x600dpi_high3",
+ "600x600dpi_std3",
"600x600dpi_draft3",
/* Mono */
"600x600dpi_mono",
NULL
};
-/*static const char* canon_PIXMA_iP8100_modeuses_FA[] = {
+static const char* canon_PIXMA_iP8100_modeuses_FA[] = {
"600x600dpi_photohigh3",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_disc[] = {
+static const char* canon_PIXMA_iP8100_modeuses_disc[] = {
"600x600dpi_photo",
"600x600dpi_photodraft",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_TShirt[] = {
+static const char* canon_PIXMA_iP8100_modeuses_TShirt[] = {
"600x600dpi",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8100_modeuses_Transparency[] = {
+static const char* canon_PIXMA_iP8100_modeuses_Transparency[] = {
"600x600dpi_std4",
"600x600dpi_draft4",
NULL
-};*/
+};
/*untested*/
-/*static const char* canon_PIXMA_iP8100_modeuses_PPother[] = {
+static const char* canon_PIXMA_iP8100_modeuses_PPother[] = {
"600x600dpi_photo",
"600x600dpi_photodraft2",
NULL
- };*/
+ };
static const canon_modeuse_t canon_PIXMA_iP8100_modeuses[] = {
{ "Plain", canon_PIXMA_iP8100_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
-/* { "GlossyPro", canon_PIXMA_iP8100_modeuses_PPpro, 0 },*/
-/* { "PhotopaperPlus", canon_PIXMA_iP8100_modeuses_PPplus, 0 },*/
-/* { "PhotopaperPlusDouble", canon_PIXMA_iP8100_modeuses_PPplusDS, 0 },*/
-/* { "PhotopaperMatte", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },*/
-/* { "GlossyPaper", canon_PIXMA_iP8100_modeuses_PPgloss, 0 },*/
-/* { "Coated", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },*/
-/* { "InkJetHagaki", canon_PIXMA_iP8100_modeuses_inkjetHagaki, 0 },*/
+ { "GlossyPro", canon_PIXMA_iP8100_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP8100_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP8100_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP8100_modeuses_PPgloss, 0 },
+ { "Coated", canon_PIXMA_iP8100_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP8100_modeuses_inkjetHagaki, 0 },
{ "Hagaki", canon_PIXMA_iP8100_modeuses_Hagaki, DUPLEX_SUPPORT },
-/* { "FineArtPhotoRag", canon_PIXMA_iP8100_modeuses_FA, 0 },*/
-/* { "FineArtOther", canon_PIXMA_iP8100_modeuses_FA, 0 },*/
-/* { "DiscCompat", canon_PIXMA_iP8100_modeuses_disc, 0 },*/
-/* { "DiscOthers", canon_PIXMA_iP8100_modeuses_disc, 0 },*/
-/* { "TShirt", canon_PIXMA_iP8100_modeuses_TShirt, 0 },*/
+ { "FineArtPhotoRag", canon_PIXMA_iP8100_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP8100_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP8100_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP8100_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP8100_modeuses_TShirt, 0 },
{ "Envelope", canon_PIXMA_iP8100_modeuses_Hagaki, 0 },
-/* { "Transparency", canon_PIXMA_iP8100_modeuses_Transparency, 0 },*/
-/* { "PhotopaperOther", canon_PIXMA_iP8100_modeuses_PPother, 0 },*/ /*untested*/
+ { "Transparency", canon_PIXMA_iP8100_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP8100_modeuses_PPother, 0 }, /*untested*/
};
DECLARE_MODEUSES(canon_PIXMA_iP8100);
/* ----------------------------------- Canon iP8500 ----------------------------------- */
static const char* canon_PIXMA_iP8500_modeuses_plain[] = {
-/* "600x600dpi_high",*/
-/* "600x600dpi_high2",*/
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi_high2",
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
"600x600dpi_mono",
@@ -5357,93 +5147,93 @@ static const char* canon_PIXMA_iP8500_modeuses_plain[] = {
};
/* modes not yet supported */
-/*static const char* canon_PIXMA_iP8500_modeuses_PPpro[] = {
- "600x600dpi_photodraft", */ /*temporary stand-in: untested*/
-/* NULL
-};*/
+static const char* canon_PIXMA_iP8500_modeuses_PPpro[] = {
+ "600x600dpi_photodraft", /*temporary stand-in: untested*/
+ NULL
+};
/* most modes unsupported */
-/*static const char* canon_PIXMA_iP8500_modeuses_PPplus[] = {
+static const char* canon_PIXMA_iP8500_modeuses_PPplus[] = {
"600x600dpi_photodraft",
NULL
-};*/
+};
/* most modes unsupported */
-/*static const char* canon_PIXMA_iP8500_modeuses_PPplusDS[] = {
+static const char* canon_PIXMA_iP8500_modeuses_PPplusDS[] = {
"600x600dpi_photodraft2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8500_modeuses_PPhires[] = {
+static const char* canon_PIXMA_iP8500_modeuses_PPhires[] = {
"600x600dpi_photohigh",
"600x600dpi_photo",
NULL
-};*/
+};
/* US driver does not support this media: untested */
-/*static const char* canon_PIXMA_iP8500_modeuses_inkjetHagaki[] = {
+static const char* canon_PIXMA_iP8500_modeuses_inkjetHagaki[] = {
"600x600dpi_photohigh",
"600x600dpi_photo",
NULL
-};*/
+};
/* US driver does not support this media */
static const char* canon_PIXMA_iP8500_modeuses_Hagaki[] = {
-/* "600x600dpi_high3",*/
-/* "600x600dpi_std3",*/
+ "600x600dpi_high3",
+ "600x600dpi_std3",
"600x600dpi_draft3",
"600x600dpi_mono",
"600x600dpi_draftmono",
NULL
};
-/*static const char* canon_PIXMA_iP8500_modeuses_disc[] = {
+static const char* canon_PIXMA_iP8500_modeuses_disc[] = {
"600x600dpi_photo3",
"600x600dpi_photodraft3",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8500_modeuses_TShirt[] = {
+static const char* canon_PIXMA_iP8500_modeuses_TShirt[] = {
"600x600dpi_tshirt",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8500_modeuses_Transparency[] = {
+static const char* canon_PIXMA_iP8500_modeuses_Transparency[] = {
"600x600dpi_photo4",
"600x600dpi_photodraft4",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8500_modeuses_PPother[] = {
+static const char* canon_PIXMA_iP8500_modeuses_PPother[] = {
"600x600dpi_photo3",
NULL
-};*/
+};
static const canon_modeuse_t canon_PIXMA_iP8500_modeuses[] = {
{ "Plain", canon_PIXMA_iP8500_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
-/* { "GlossyPro", canon_PIXMA_iP8500_modeuses_PPpro, 0 },*/ /*unsupported*/
-/* { "PhotopaperPlus", canon_PIXMA_iP8500_modeuses_PPplus, 0 },*/
-/* { "PhotopaperPlusDouble", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },*/
-/* { "PhotopaperMatte", canon_PIXMA_iP8500_modeuses_PPpro, 0 },*/ /*unsupported*/
-/* { "GlossyPaper", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },*/
-/* { "Coated", canon_PIXMA_iP8500_modeuses_PPhires, 0 },*/
-/* { "InkJetHagaki", canon_PIXMA_iP8500_modeuses_inkjetHagaki, 0 },*/ /*untested*/
+ { "GlossyPro", canon_PIXMA_iP8500_modeuses_PPpro, 0 }, /*unsupported*/
+ { "PhotopaperPlus", canon_PIXMA_iP8500_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP8500_modeuses_PPpro, 0 }, /*unsupported*/
+ { "GlossyPaper", canon_PIXMA_iP8500_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP8500_modeuses_PPhires, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP8500_modeuses_inkjetHagaki, 0 }, /*untested*/
{ "Hagaki", canon_PIXMA_iP8500_modeuses_Hagaki, DUPLEX_SUPPORT },/*untested*/
-/* { "DiscCompat", canon_PIXMA_iP8500_modeuses_disc, 0 },*/
-/* { "DiscOthers", canon_PIXMA_iP8500_modeuses_disc, 0 },*/
-/* { "TShirt", canon_PIXMA_iP8500_modeuses_TShirt, 0 },*/
+ { "DiscCompat", canon_PIXMA_iP8500_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP8500_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP8500_modeuses_TShirt, 0 },
{ "Envelope", canon_PIXMA_iP8500_modeuses_Hagaki, 0 },
-/* { "Transparency", canon_PIXMA_iP8500_modeuses_Transparency, 0 },*/
-/* { "PhotopaperOther", canon_PIXMA_iP8500_modeuses_PPother, 0 },*/
+ { "Transparency", canon_PIXMA_iP8500_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP8500_modeuses_PPother, 0 },
};
DECLARE_MODEUSES(canon_PIXMA_iP8500);
/* ----------------------------------- Canon iP8600 ----------------------------------- */
static const char* canon_PIXMA_iP8600_modeuses_plain[] = {
-/* "600x600dpi_high",*/
-/* "600x600dpi_high2",*/ /* duplex */
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi_high2", /* duplex */
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
/* Mono */
@@ -5453,94 +5243,94 @@ static const char* canon_PIXMA_iP8600_modeuses_plain[] = {
};
/* modes using R not yet supported */
-/*static const char* canon_PIXMA_iP8600_modeuses_PPpro[] = {
- "600x600dpi_photohigh2",*/ /*untested*/
-/* "600x600dpi_photo",
+static const char* canon_PIXMA_iP8600_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2", /*untested*/
+ "600x600dpi_photo",
NULL
-};*/
+};
/* highest mode using R not supported yet */
-/*static const char* canon_PIXMA_iP8600_modeuses_PPplus[] = {
- "600x600dpi_photohigh2",*/ /*untested*/
-/* "600x600dpi_photo",
+static const char* canon_PIXMA_iP8600_modeuses_PPplus[] = {
+ "600x600dpi_photohigh2", /*untested*/
+ "600x600dpi_photo",
"600x600dpi_photodraft2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8600_modeuses_PPplusDS[] = {
+static const char* canon_PIXMA_iP8600_modeuses_PPplusDS[] = {
"600x600dpi_photohigh",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8600_modeuses_PPmatte[] = {
+static const char* canon_PIXMA_iP8600_modeuses_PPmatte[] = {
"600x600dpi_photohigh2",
"600x600dpi_photo",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8600_modeuses_inkjetHagaki[] = {
+static const char* canon_PIXMA_iP8600_modeuses_inkjetHagaki[] = {
"600x600dpi_photohigh3",
"600x600dpi_photo3",
NULL
-};*/
+};
static const char* canon_PIXMA_iP8600_modeuses_Hagaki[] = {
-/* "600x600dpi_high3",*/
-/* "600x600dpi_std3",*/
+ "600x600dpi_high3",
+ "600x600dpi_std3",
"600x600dpi_draft3",
/* Mono */
"600x600dpi_mono",
NULL
};
-/*static const char* canon_PIXMA_iP8600_modeuses_FA[] = {
+static const char* canon_PIXMA_iP8600_modeuses_FA[] = {
"600x600dpi_photohigh4",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8600_modeuses_disc[] = {
+static const char* canon_PIXMA_iP8600_modeuses_disc[] = {
"600x600dpi_photo",
"600x600dpi_photodraft",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8600_modeuses_TShirt[] = {
+static const char* canon_PIXMA_iP8600_modeuses_TShirt[] = {
"600x600dpi",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP8600_modeuses_Transparency[] = {
+static const char* canon_PIXMA_iP8600_modeuses_Transparency[] = {
"600x600dpi_std4",
"600x600dpi_draft4",
NULL
-};*/
+};
/*untested*/
-/*static const char* canon_PIXMA_iP8600_modeuses_PPother[] = {
+static const char* canon_PIXMA_iP8600_modeuses_PPother[] = {
"600x600dpi_photo",
"600x600dpi_photodraft",
NULL
-};*/
+};
static const canon_modeuse_t canon_PIXMA_iP8600_modeuses[] = {
{ "Plain", canon_PIXMA_iP8600_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
-/* { "GlossyPro", canon_PIXMA_iP8600_modeuses_PPpro, 0 },*/
-/* { "PhotopaperPlus", canon_PIXMA_iP8600_modeuses_PPplus, 0 },*/
-/* { "PhotopaperPlusDouble", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },*/
-/* { "PhotopaperMatte", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },*/
-/* { "GlossyPaper", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },*/
-/* { "Coated", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },*/
-/* { "InkJetHagaki", canon_PIXMA_iP8600_modeuses_inkjetHagaki, 0 },*/
+ { "GlossyPro", canon_PIXMA_iP8600_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP8600_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP8600_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP8600_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP8600_modeuses_inkjetHagaki, 0 },
{ "Hagaki", canon_PIXMA_iP8600_modeuses_Hagaki, DUPLEX_SUPPORT },
-/* { "FineArtPhotoRag", canon_PIXMA_iP8600_modeuses_FA, 0 },*/
-/* { "FineArtOther", canon_PIXMA_iP8600_modeuses_FA, 0 },*/
-/* { "DiscCompat", canon_PIXMA_iP8600_modeuses_disc, 0 },*/
-/* { "DiscOthers", canon_PIXMA_iP8600_modeuses_disc, 0 },*/
-/* { "TShirt", canon_PIXMA_iP8600_modeuses_TShirt, 0 },*/
+ { "FineArtPhotoRag", canon_PIXMA_iP8600_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP8600_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP8600_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP8600_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP8600_modeuses_TShirt, 0 },
{ "Envelope", canon_PIXMA_iP8600_modeuses_Hagaki, 0 },
-/* { "Transparency", canon_PIXMA_iP8600_modeuses_Transparency, 0 },*/
-/* { "PhotopaperOther", canon_PIXMA_iP8600_modeuses_PPother, 0 },*/ /*untested*/
+ { "Transparency", canon_PIXMA_iP8600_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP8600_modeuses_PPother, 0 }, /*untested*/
};
DECLARE_MODEUSES(canon_PIXMA_iP8600);
@@ -5640,9 +5430,9 @@ DECLARE_MODEUSES(canon_PIXMA_iP8700);
/* ----------------------------------- Canon iP9910 ----------------------------------- */
static const char* canon_PIXMA_iP9910_modeuses_plain[] = {
-/* "600x600dpi_high",*/
-/* "600x600dpi_high2",*/ /*duplex*/
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi_high2", /*duplex*/
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
/* Mono */
@@ -5652,92 +5442,92 @@ static const char* canon_PIXMA_iP9910_modeuses_plain[] = {
};
/* highest mode using R not yet supported */
-/*static const char* canon_PIXMA_iP9910_modeuses_PPpro[] = {
+static const char* canon_PIXMA_iP9910_modeuses_PPpro[] = {
"600x600dpi_photo",
"600x600dpi_photo2",
NULL
-};*/
+};
/* highest mode using R not supported yet */
-/*static const char* canon_PIXMA_iP9910_modeuses_PPplus[] = {
+static const char* canon_PIXMA_iP9910_modeuses_PPplus[] = {
"600x600dpi_photo2",
"600x600dpi_photodraft2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP9910_modeuses_PPplusDS[] = {
+static const char* canon_PIXMA_iP9910_modeuses_PPplusDS[] = {
"600x600dpi_photohigh",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP9910_modeuses_PPmatte[] = {
+static const char* canon_PIXMA_iP9910_modeuses_PPmatte[] = {
"600x600dpi_photohigh2",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP9910_modeuses_inkjetHagaki[] = {
+static const char* canon_PIXMA_iP9910_modeuses_inkjetHagaki[] = {
"600x600dpi_photohigh3",
"600x600dpi_photo3",
NULL
-};*/
+};
static const char* canon_PIXMA_iP9910_modeuses_Hagaki[] = {
-/* "600x600dpi_high3",*/
-/* "600x600dpi_std3",*/
+ "600x600dpi_high3",
+ "600x600dpi_std3",
"600x600dpi_draft3",
/* Mono */
"600x600dpi_mono",
NULL
};
-/*static const char* canon_PIXMA_iP9910_modeuses_FA[] = {
+static const char* canon_PIXMA_iP9910_modeuses_FA[] = {
"600x600dpi_photohigh4",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP9910_modeuses_disc[] = {
+static const char* canon_PIXMA_iP9910_modeuses_disc[] = {
"600x600dpi_photo2",
"600x600dpi_photodraft",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP9910_modeuses_TShirt[] = {
+static const char* canon_PIXMA_iP9910_modeuses_TShirt[] = {
"600x600dpi",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_iP9910_modeuses_Transparency[] = {
+static const char* canon_PIXMA_iP9910_modeuses_Transparency[] = {
"600x600dpi_std4",
"600x600dpi_draft4",
NULL
-};*/
+};
/*untested*/
-/*static const char* canon_PIXMA_iP9910_modeuses_PPother[] = {
+static const char* canon_PIXMA_iP9910_modeuses_PPother[] = {
"600x600dpi_photo2",
NULL
-};*/
+};
static const canon_modeuse_t canon_PIXMA_iP9910_modeuses[] = {
{ "Plain", canon_PIXMA_iP9910_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
-/* { "GlossyPro", canon_PIXMA_iP9910_modeuses_PPpro, 0 },*/
-/* { "PhotopaperPlus", canon_PIXMA_iP9910_modeuses_PPplus, 0 },*/
-/* { "PhotopaperPlusDouble", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },*/
-/* { "PhotopaperMatte", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },*/
-/* { "GlossyPaper", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },*/
-/* { "Coated", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },*/
-/* { "InkJetHagaki", canon_PIXMA_iP9910_modeuses_inkjetHagaki, 0 },*/
+ { "GlossyPro", canon_PIXMA_iP9910_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_iP9910_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_iP9910_modeuses_PPplusDS, 0 },
+ { "Coated", canon_PIXMA_iP9910_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_iP9910_modeuses_inkjetHagaki, 0 },
{ "Hagaki", canon_PIXMA_iP9910_modeuses_Hagaki, 0 },
-/* { "FineArtPhotoRag", canon_PIXMA_iP9910_modeuses_FA, 0 },*/
-/* { "FineArtOther", canon_PIXMA_iP9910_modeuses_FA, 0 },*/
-/* { "DiscCompat", canon_PIXMA_iP9910_modeuses_disc, 0 },*/
-/* { "DiscOthers", canon_PIXMA_iP9910_modeuses_disc, 0 },*/
-/* { "TShirt", canon_PIXMA_iP9910_modeuses_TShirt, 0 },*/
+ { "FineArtPhotoRag", canon_PIXMA_iP9910_modeuses_FA, 0 },
+ { "FineArtOther", canon_PIXMA_iP9910_modeuses_FA, 0 },
+ { "DiscCompat", canon_PIXMA_iP9910_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_iP9910_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_iP9910_modeuses_TShirt, 0 },
{ "Envelope", canon_PIXMA_iP9910_modeuses_Hagaki, 0 },
-/* { "Transparency", canon_PIXMA_iP9910_modeuses_Transparency, 0 },*/
-/* { "PhotopaperOther", canon_PIXMA_iP9910_modeuses_PPother, 0 },*/
+ { "Transparency", canon_PIXMA_iP9910_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_PIXMA_iP9910_modeuses_PPother, 0 },
};
DECLARE_MODEUSES(canon_PIXMA_iP9910);
@@ -6097,6 +5887,255 @@ static const canon_modeuse_t canon_PIXMA_iX7000_modeuses[] = {
DECLARE_MODEUSES(canon_PIXMA_iX7000);
+/* ----------------------------------- Canon MP5 ----------------------------------- */
+static const char* canon_PIXMA_MP5_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "300x300dpi",/*untested*/
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_MP5_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MP5_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MP5_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MP5_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_PIXMA_MP5_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MP5_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ "600x600dpi_stdmono2",
+ "600x600dpi_draft2",
+ NULL
+};
+
+static const char* canon_PIXMA_MP5_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MP5_modeuses_PPother[] = {
+ "600x600dpi_photohigh2",/*untested*/
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MP5_modeuses[] = {
+ { "Plain", canon_PIXMA_MP5_modeuses_plain, 0 },
+ { "GlossyPro", canon_PIXMA_MP5_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_MP5_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MP5_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MP5_modeuses_PPgloss, 0 },
+ { "Coated", canon_PIXMA_MP5_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_MP5_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_MP5_modeuses_Hagaki, 0 },
+ { "GlossyFilm", canon_PIXMA_MP5_modeuses_PPmatte, 0 },
+ { "TShirt", canon_PIXMA_MP5_modeuses_TShirt, 0 },
+ { "Transparency", canon_PIXMA_MP5_modeuses_Transparency, 0 },
+ { "Envelope", canon_PIXMA_MP5_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MP5_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MP5);
+
+/* ----------------------------------- Canon MP55 ----------------------------------- */
+static const char* canon_PIXMA_MP55_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_medium",
+ "600x600dpi",
+ "300x300dpi",/*untested*/
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_MP55_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_HiRes[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_Hagaki[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+static const char* canon_PIXMA_MP55_modeuses_PPother[] = {
+ "600x600dpi_photohigh",/*untested*/
+ "600x600dpi_photo",/*untested*/
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MP55_modeuses[] = {
+ { "Plain", canon_PIXMA_MP55_modeuses_plain, 0 },
+ { "GlossyPro", canon_PIXMA_MP55_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_PIXMA_MP55_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MP55_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MP55_modeuses_PPgloss, 0 },
+ { "Coated", canon_PIXMA_MP55_modeuses_HiRes, 0 },
+ { "InkJetHagaki", canon_PIXMA_MP55_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_MP55_modeuses_Hagaki, 0 },
+ { "GlossyFilm", canon_PIXMA_MP55_modeuses_PPpro, 0 },
+ { "TShirt", canon_PIXMA_MP55_modeuses_TShirt, 0 },
+ { "Transparency", canon_PIXMA_MP55_modeuses_Transparency, 0 },
+ { "Envelope", canon_PIXMA_MP55_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MP55_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MP55);
+
+/* ----------------------------------- Canon MPC400 ----------------------------------- */
+static const char* canon_PIXMA_MPC400_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi",
+ "600x600dpi_draft",
+ "300x300dpi",/*untested*/
+ "300x300dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_MPC400_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo2",
+ NULL
+};
+
+/* experimental */
+static const char* canon_PIXMA_MPC400_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+static const char* canon_PIXMA_MPC400_modeuses_PPgloss[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MPC400_modeuses_HiRes[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ "600x600dpi_photodraft",
+ NULL
+};
+
+/* experimental */
+static const char* canon_PIXMA_MPC400_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MPC400_modeuses_Transparency[] = {
+ "600x600dpi_ohphigh",
+ "600x600dpi_ohp",
+ NULL
+};
+
+static const char* canon_PIXMA_MPC400_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MPC400_modeuses_Env[] = {
+ "600x600dpi_high2",
+ "600x600dpi_std2",
+ NULL
+};
+
+/* experimental */
+static const char* canon_PIXMA_MPC400_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MPC400_modeuses[] = {
+ { "Plain", canon_PIXMA_MPC400_modeuses_plain, 0 },
+ { "GlossyPro", canon_PIXMA_MPC400_modeuses_PPpro, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MPC400_modeuses_PPmatte, 0 },
+ { "GlossyPaper", canon_PIXMA_MPC400_modeuses_PPgloss, 0 },
+ { "Coated", canon_PIXMA_MPC400_modeuses_HiRes, 0 },
+ { "InkJetHagaki", canon_PIXMA_MPC400_modeuses_inkjetHagaki, 0 },
+ { "Hagaki", canon_PIXMA_MPC400_modeuses_Env, 0 },
+ { "GlossyFilm", canon_PIXMA_MPC400_modeuses_PPpro, 0 },
+ { "GlossyCard", canon_PIXMA_MPC400_modeuses_PPgloss, 0 },
+ { "TShirt", canon_PIXMA_MPC400_modeuses_TShirt, 0 },
+ { "Transparency", canon_PIXMA_MPC400_modeuses_Transparency, 0 },
+ { "Envelope", canon_PIXMA_MPC400_modeuses_Env, 0 },
+ { "PhotopaperOther", canon_PIXMA_MPC400_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MPC400);
+
/* ----------------------------------- Canon MP150 ----------------------------------- */
static const char* canon_MULTIPASS_MP150_modeuses_plain[] = {
"600x600dpi_high",
@@ -8387,8 +8426,8 @@ DECLARE_MODEUSES(canon_MULTIPASS_MP830);
/* ----------------------------------- Canon MP900 ----------------------------------- */
static const char* canon_MULTIPASS_MP900_modeuses_plain[] = {
-/* "600x600dpi_high",*/
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
/* Mono */
@@ -8397,92 +8436,92 @@ static const char* canon_MULTIPASS_MP900_modeuses_plain[] = {
NULL
};
-/*static const char* canon_MULTIPASS_MP900_modeuses_PPpro[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_PPpro[] = {
"600x600dpi_photohigh",
"600x600dpi_photo",
- "600x600dpi_photo2",*/ /*untested*/
-/* NULL
-};*/
+ "600x600dpi_photo2", /*untested*/
+ NULL
+};
-/*static const char* canon_MULTIPASS_MP900_modeuses_PPplus[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_PPplus[] = {
"600x600dpi_photohigh",
- "600x600dpi_photo2",*/ /*untested*/
-/* NULL
-};*/
+ "600x600dpi_photo2", /*untested*/
+ NULL
+};
-/*static const char* canon_MULTIPASS_MP900_modeuses_PPplusDS[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_PPplusDS[] = {
"600x600dpi_photohigh",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_MULTIPASS_MP900_modeuses_PPmatte[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_PPmatte[] = {
"600x600dpi_photohigh2",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_MULTIPASS_MP900_modeuses_coated[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_coated[] = {
"600x600dpi_photohigh2",
"600x600dpi_photo",
"600x600dpi_photo2",
NULL
-};*/
+};
-/*static const char* canon_MULTIPASS_MP900_modeuses_inkjetHagaki[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_inkjetHagaki[] = {
"600x600dpi_photohigh3",
"600x600dpi_photo3",
NULL
-};*/
+};
static const char* canon_MULTIPASS_MP900_modeuses_Hagaki[] = {
-/* "600x600dpi_high4",*/
-/* "600x600dpi_std4",*/
+ "600x600dpi_high4",
+ "600x600dpi_std4",
"600x600dpi_draft4",
"600x600dpi_draftmono4",/* Mono */
NULL
};
-/*static const char* canon_MULTIPASS_MP900_modeuses_disc[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_disc[] = {
"600x600dpi_photo4",
"600x600dpi_photodraft4",
NULL
-};*/
+};
-/*static const char* canon_MULTIPASS_MP900_modeuses_TShirt[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_TShirt[] = {
"600x600dpi_tshirt",
NULL
-};*/
+};
-/*static const char* canon_MULTIPASS_MP900_modeuses_Transparency[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_Transparency[] = {
"600x600dpi_std3",
"600x600dpi_draft3",
NULL
-};*/
+};
/*untested*/
-/*static const char* canon_MULTIPASS_MP900_modeuses_PPother[] = {
+static const char* canon_MULTIPASS_MP900_modeuses_PPother[] = {
"600x600dpi_photohigh",
"600x600dpi_photo2",
NULL
- };*/
+ };
static const canon_modeuse_t canon_MULTIPASS_MP900_modeuses[] = {
{ "Plain", canon_MULTIPASS_MP900_modeuses_plain, 0 },
-/* { "GlossyPro", canon_MULTIPASS_MP900_modeuses_PPpro, 0 },*/
-/* { "PhotopaperPlus", canon_MULTIPASS_MP900_modeuses_PPplus, 0 },*/
-/* { "PhotopaperPlusDouble", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },*/
-/* { "GlossyPaper", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },*/
-/* { "PhotopaperMatte", canon_MULTIPASS_MP900_modeuses_PPmatte, 0 },*/
-/* { "Coated", canon_MULTIPASS_MP900_modeuses_coated, 0 },*/
-/* { "InkJetHagaki", canon_MULTIPASS_MP900_modeuses_inkjetHagaki, 0 },*/
+ { "GlossyPro", canon_MULTIPASS_MP900_modeuses_PPpro, 0 },
+ { "PhotopaperPlus", canon_MULTIPASS_MP900_modeuses_PPplus, 0 },
+ { "PhotopaperPlusDouble", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },
+ { "GlossyPaper", canon_MULTIPASS_MP900_modeuses_PPplusDS, 0 },
+ { "PhotopaperMatte", canon_MULTIPASS_MP900_modeuses_PPmatte, 0 },
+ { "Coated", canon_MULTIPASS_MP900_modeuses_coated, 0 },
+ { "InkJetHagaki", canon_MULTIPASS_MP900_modeuses_inkjetHagaki, 0 },
{ "Hagaki", canon_MULTIPASS_MP900_modeuses_Hagaki, 0 },
-/* { "DiscCompat", canon_MULTIPASS_MP900_modeuses_disc, 0 },*/
-/* { "DiscOthers", canon_MULTIPASS_MP900_modeuses_disc, 0 },*/
-/* { "TShirt", canon_MULTIPASS_MP900_modeuses_TShirt, 0 },*/
+ { "DiscCompat", canon_MULTIPASS_MP900_modeuses_disc, 0 },
+ { "DiscOthers", canon_MULTIPASS_MP900_modeuses_disc, 0 },
+ { "TShirt", canon_MULTIPASS_MP900_modeuses_TShirt, 0 },
{ "Envelope", canon_MULTIPASS_MP900_modeuses_Hagaki, 0 },
-/* { "Transparency", canon_MULTIPASS_MP900_modeuses_Transparency, 0 },*/
-/* { "PhotopaperOther", canon_MULTIPASS_MP900_modeuses_PPother, 0 },*/ /*untested*/
+ { "Transparency", canon_MULTIPASS_MP900_modeuses_Transparency, 0 },
+ { "PhotopaperOther", canon_MULTIPASS_MP900_modeuses_PPother, 0 }, /*untested*/
};
DECLARE_MODEUSES(canon_MULTIPASS_MP900);
@@ -11148,6 +11187,66 @@ static const canon_modeuse_t canon_PIXMA_MG3500_modeuses[] = {
DECLARE_MODEUSES(canon_PIXMA_MG3500);
+/* ----------------------------------- Canon MG3600 ----------------------------------- */
+static const char* canon_PIXMA_MG3600_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high5",/* color */
+ "600x600dpi",
+ "300x300dpi",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG3600_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3600_modeuses_PPpro[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3600_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3600_modeuses_TShirt[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const char* canon_PIXMA_MG3600_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG3600_modeuses[] = {
+ { "Plain", canon_PIXMA_MG3600_modeuses_plain, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL | DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProPlat", canon_PIXMA_MG3600_modeuses_PPpro, INKSET_COLOR_SUPPORT },
+ { "PhotoProLuster", canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotoProSemiGloss",canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "PhotopaperMatte", canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "GlossyPaperStandard",canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "Coated", canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "HagakiA", canon_PIXMA_MG3600_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkJetHagaki", canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "InkJetHagakiaddr", canon_PIXMA_MG3600_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "InkjetPhotoHagakiK",canon_PIXMA_MG3600_modeuses_PPplusG2, INKSET_COLOR_SUPPORT },
+ { "InkjetPhotoHagakiKaddr",canon_PIXMA_MG3600_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "Hagaki", canon_PIXMA_MG3600_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "TShirt", canon_PIXMA_MG3600_modeuses_TShirt, INKSET_COLOR_SUPPORT },
+ { "Envelope", canon_PIXMA_MG3600_modeuses_Hagaki, INKSET_BLACK_SUPPORT | INKSET_COLOR_SUPPORT | INKSET_BLACK_MODEREPL | INKSET_COLOR_MODEREPL },
+ { "PhotopaperOther", canon_PIXMA_MG3600_modeuses_PPother, INKSET_COLOR_SUPPORT },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG3600);
+
/* ----------------------------------- Canon MG5100 ----------------------------------- */
static const char* canon_PIXMA_MG5100_modeuses_plain[] = {
"600x600dpi_high",
@@ -11585,6 +11684,73 @@ static const canon_modeuse_t canon_PIXMA_MG5600_modeuses[] = {
DECLARE_MODEUSES(canon_PIXMA_MG5600);
+/* ----------------------------------- Canon MG5700 ----------------------------------- */
+static const char* canon_PIXMA_MG5700_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "600x600dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG5700_modeuses_PPplusG2[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5700_modeuses_PPpro[] = {
+ /*ud1 not supported */
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5700_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5700_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh2",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5700_modeuses_TShirt[] = {
+ "600x600dpi_tshirt",
+ NULL
+};
+
+static const char* canon_PIXMA_MG5700_modeuses_PPother[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+static const canon_modeuse_t canon_PIXMA_MG5700_modeuses[] = {
+ { "Plain", canon_PIXMA_MG5700_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ { "PhotoPlusGloss2", canon_PIXMA_MG5700_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MG5700_modeuses_PPpro, 0 },
+ { "PhotoProLuster", canon_PIXMA_MG5700_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MG5700_modeuses_PPplusG2, 0 },
+ { "PhotopaperMatte", canon_PIXMA_MG5700_modeuses_PPplusG2, 0 },
+ { "GlossyPaperStandard",canon_PIXMA_MG5700_modeuses_PPplusG2, 0 },
+ { "Coated", canon_PIXMA_MG5700_modeuses_PPplusG2, 0 },
+ { "InkJetHagakiaddr", canon_PIXMA_MG5700_modeuses_Hagaki, 0 },
+ { "InkJetHagaki", canon_PIXMA_MG5700_modeuses_inkjetHagaki, 0 },
+ { "InkjetPhotoHagakiKaddr",canon_PIXMA_MG5700_modeuses_Hagaki, 0 },
+ { "InkjetPhotoHagakiK",canon_PIXMA_MG5700_modeuses_PPplusG2, 0 },
+ { "HagakiA", canon_PIXMA_MG5700_modeuses_Hagaki, 0 },
+ { "Hagaki", canon_PIXMA_MG5700_modeuses_Hagaki, 0 },
+ { "TShirt", canon_PIXMA_MG5700_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG5700_modeuses_Hagaki, 0 },
+ { "PhotopaperOther", canon_PIXMA_MG5700_modeuses_PPother, 0 },
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG5700);
+
/* ----------------------------------- Canon MG6100 ----------------------------------- */
/* most photo modes use gray ink which is unsupported */
/* TODO: mono modes for photo media */
@@ -12052,6 +12218,74 @@ static const canon_modeuse_t canon_PIXMA_MG6700_modeuses[] = {
DECLARE_MODEUSES(canon_PIXMA_MG6700);
+/* ----------------------------------- Canon MG7700 ----------------------------------- */
+/* most photo modes use gray ink which is unsupported */
+/* TODO: mono modes for photo media */
+static const char* canon_PIXMA_MG7700_modeuses_plain[] = {
+ "600x600dpi_high",
+ "600x600dpi_high2",/* duplex */
+ "600x600dpi",
+ "600x600dpi_std2",/* duplex */
+ "600x600dpi_draft",
+ NULL
+ };
+
+static const char* canon_PIXMA_MG7700_modeuses_PPmatte[] = {
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
+ NULL
+};
+
+static const char* canon_PIXMA_MG7700_modeuses_Hagaki[] = {
+ "600x600dpi_high3",
+ "600x600dpi_std3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG7700_modeuses_inkjetHagaki[] = {
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
+ NULL
+};
+
+static const char* canon_PIXMA_MG7700_modeuses_disc[] = {
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
+ NULL
+};
+
+static const char* canon_PIXMA_MG7700_modeuses_TShirt[] = {
+ "600x600dpi_photohigh",
+ NULL
+};
+
+/* media using modes requiring H ink are commented out */
+static const canon_modeuse_t canon_PIXMA_MG7700_modeuses[] = {
+ { "Plain", canon_PIXMA_MG7700_modeuses_plain, DUPLEX_SUPPORT | DUPLEX_MODEREPL },
+ /* { "PhotoPlusGloss2", canon_PIXMA_MG7700_modeuses_PPplusG2, 0 },
+ { "PhotoProPlat", canon_PIXMA_MG7700_modeuses_PPpro, 0 },
+ { "PhotoProLuster", canon_PIXMA_MG7700_modeuses_PPplusG2, 0 },
+ { "PhotoProSemiGloss",canon_PIXMA_MG7700_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_MG7700_modeuses_PPplusG2, 0 },*/
+ { "PhotopaperMatte", canon_PIXMA_MG7700_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_MG7700_modeuses_PPmatte, 0 },
+ { "InkJetHagakiaddr", canon_PIXMA_MG7700_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "InkJetHagaki", canon_PIXMA_MG7700_modeuses_inkjetHagaki, 0 },
+ { "InkjetPhotoHagakiKaddr",canon_PIXMA_MG7700_modeuses_Hagaki, DUPLEX_SUPPORT },
+ /*{ "InkjetPhotoHagakiK",canon_PIXMA_MG7700_modeuses_PPplusG2, 0 },*/
+ { "HagakiA", canon_PIXMA_MG7700_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "Hagaki", canon_PIXMA_MG7700_modeuses_Hagaki, DUPLEX_SUPPORT },
+ { "DiscCompat", canon_PIXMA_MG7700_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_MG7700_modeuses_disc, 0 },
+ { "TShirt", canon_PIXMA_MG7700_modeuses_TShirt, 0 },
+ { "Envelope", canon_PIXMA_MG7700_modeuses_Hagaki, 0 },
+ /*{ "FineArtPhotoRag", canon_PIXMA_MG7700_modeuses_photorag, 0 },
+ { "FineArtOther", canon_PIXMA_MG7700_modeuses_photorag, 0 },
+ { "PhotopaperOther", canon_PIXMA_MG7700_modeuses_PPother, 0 },*/
+};
+
+DECLARE_MODEUSES(canon_PIXMA_MG7700);
+
/* ----------------------------------- Canon MG8100 ----------------------------------- */
/* most photo modes use gray ink which is unsupported */
/* TODO: mono modes for photo media */
@@ -12241,155 +12475,155 @@ DECLARE_MODEUSES(canon_PIXMA_MG8200);
/* ----------------------------------- Canon Pro9000 ----------------------------------- */
static const char* canon_PIXMA_Pro9000_modeuses_plain[] = {
-/* "600x600dpi_high2",*/
-/* "600x600dpi",*/
+ "600x600dpi_high2",/* exp */
+ "600x600dpi",/* exp */
"600x600dpi_std2",
"600x600dpi_draft",
"600x600dpi_draft2",
/* Mono */
-/* "600x600dpi_highmono",*/
-/* "600x600dpi_mono",*/
+ "600x600dpi_highmono",/* exp */
+ "600x600dpi_mono",/* exp */
"600x600dpi_draftmono",
"600x600dpi_draftmono2",
NULL
};
/* highest mode not yet supported (R,G inks) */
-/*static const char* canon_PIXMA_Pro9000_modeuses_PPplusG2[] = {
- "600x600dpi_photo",*/
+static const char* canon_PIXMA_Pro9000_modeuses_PPplusG2[] = {
+ "600x600dpi_photo",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomono",
NULL
-};*/
+};
/* highest mode not yet supported (R,G inks) */
-/*static const char* canon_PIXMA_Pro9000_modeuses_PPplus[] = {
+static const char* canon_PIXMA_Pro9000_modeuses_PPplus[] = {
"600x600dpi_photo",
- "600x600dpi_photodraft2",*/
+ "600x600dpi_photodraft2",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomono",
"600x600dpi_photomonodraft",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_Pro9000_modeuses_PPgloss[] = {
+static const char* canon_PIXMA_Pro9000_modeuses_PPgloss[] = {
"600x600dpi_photohigh3",
- "600x600dpi_photodraft",*/
+ "600x600dpi_photodraft",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomonodraft",
NULL
-};*/
+};
/* highest mode not yet supported (R,G inks) */
-/*static const char* canon_PIXMA_Pro9000_modeuses_PPpro[] = {
+static const char* canon_PIXMA_Pro9000_modeuses_PPpro[] = {
"600x600dpi_photohigh",
- "600x600dpi_photo",*/
+ "600x600dpi_photo",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomonomed",
"600x600dpi_photomono",
NULL
-};*/
+};
/* highest mode not yet supported (R,G inks) */
-/*static const char* canon_PIXMA_Pro9000_modeuses_PPproPlat[] = {
- "600x600dpi_photohigh",*/
+static const char* canon_PIXMA_Pro9000_modeuses_PPproPlat[] = {
+ "600x600dpi_photohigh",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomonomed",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_Pro9000_modeuses_PPmatte[] = {
+static const char* canon_PIXMA_Pro9000_modeuses_PPmatte[] = {
"600x600dpi_photohigh2",
- "600x600dpi_photo",*/
+ "600x600dpi_photo",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomono",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_Pro9000_modeuses_inkjetHagaki[] = {
+static const char* canon_PIXMA_Pro9000_modeuses_inkjetHagaki[] = {
"600x600dpi_photomed2",
- "600x600dpi_photomed",*/
+ "600x600dpi_photomed",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomono",
NULL
-};*/
+};
static const char* canon_PIXMA_Pro9000_modeuses_Hagaki[] = {
-/* "600x600dpi_high3",*/
-/* "600x600dpi_std3",*/ /*Mono High*/
-/* "600x600dpi_std4",*/ /* bw=2 for mono */
+ "600x600dpi_high3",/* exp */
+ "600x600dpi_std3",/* exp */ /*Mono High*/
+ "600x600dpi_std4",/* exp */ /* bw=2 for mono */
"600x600dpi_draft3",/* bw=2 for mono */
NULL
};
-/*static const char* canon_PIXMA_Pro9000_modeuses_disc[] = {
+static const char* canon_PIXMA_Pro9000_modeuses_disc[] = {
"600x600dpi_photohigh4",
- "600x600dpi_photo2",*/
+ "600x600dpi_photo2",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomono",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_Pro9000_modeuses_board[] = {
- "600x600dpi_photohigh5",*/
+static const char* canon_PIXMA_Pro9000_modeuses_board[] = {
+ "600x600dpi_photohigh5",
/* Mono */
-/* "600x600dpi_photomono",
+ "600x600dpi_photomono",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_Pro9000_modeuses_photorag[] = {
+static const char* canon_PIXMA_Pro9000_modeuses_photorag[] = {
"600x600dpi_photohigh5",
- "600x600dpi_photo",*/
+ "600x600dpi_photo",
/* Mono */
-/* "600x600dpi_photomonohigh",
+ "600x600dpi_photomonohigh",
"600x600dpi_photomono",
NULL
-};*/
+};
-/*static const char* canon_PIXMA_Pro9000_modeuses_TShirt[] = {
- "600x600dpi_tshirt",*/ /* bw=2 for mono */
-/* NULL
-};*/
+static const char* canon_PIXMA_Pro9000_modeuses_TShirt[] = {
+ "600x600dpi_tshirt", /* bw=2 for mono */
+ NULL
+};
-/*static const char* canon_PIXMA_Pro9000_modeuses_PPother[] = {
- "600x600dpi_photo",*/
+static const char* canon_PIXMA_Pro9000_modeuses_PPother[] = {
+ "600x600dpi_photo",
/* Mono */
-/* "600x600dpi_photomono",
+ "600x600dpi_photomono",
NULL
-};*/
+};
static const canon_modeuse_t canon_PIXMA_Pro9000_modeuses[] = {
{ "Plain", canon_PIXMA_Pro9000_modeuses_plain, 0 },
-/* { "PhotopaperPlus", canon_PIXMA_Pro9000_modeuses_PPplus, 0 },*/
-/* { "PhotoPlusGloss2", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },*/
-/* { "GlossyPaper", canon_PIXMA_Pro9000_modeuses_PPgloss, 0 },*/
-/* { "PhotoProSemiGloss", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },*/
-/* { "GlossyPro", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },*/
-/* { "PhotoPro2", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },*/
-/* { "PhotoProPlat", canon_PIXMA_Pro9000_modeuses_PPproPlat, 0 },*/
-/* { "PhotopaperMatte", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },*/
-/* { "Coated", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },*/
-/* { "InkJetHagaki", canon_PIXMA_Pro9000_modeuses_inkjetHagaki, 0 },*/
+ { "PhotopaperPlus", canon_PIXMA_Pro9000_modeuses_PPplus, 0 },
+ { "PhotoPlusGloss2", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },
+ { "GlossyPaper", canon_PIXMA_Pro9000_modeuses_PPgloss, 0 },
+ { "PhotoProSemiGloss", canon_PIXMA_Pro9000_modeuses_PPplusG2, 0 },
+ { "GlossyPro", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },
+ { "PhotoPro2", canon_PIXMA_Pro9000_modeuses_PPpro, 0 },
+ { "PhotoProPlat", canon_PIXMA_Pro9000_modeuses_PPproPlat, 0 },
+ { "PhotopaperMatte", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },
+ { "Coated", canon_PIXMA_Pro9000_modeuses_PPmatte, 0 },
+ { "InkJetHagaki", canon_PIXMA_Pro9000_modeuses_inkjetHagaki, 0 },
{ "Hagaki", canon_PIXMA_Pro9000_modeuses_Hagaki, 0 },
-/* { "DiscCompat", canon_PIXMA_Pro9000_modeuses_disc, 0 },*/
-/* { "DiscOthers", canon_PIXMA_Pro9000_modeuses_disc, 0 },*/
-/* { "Boardpaper", canon_PIXMA_Pro9000_modeuses_board, 0 },*/
-/* { "Canvas", canon_PIXMA_Pro9000_modeuses_board, 0 },*/
-/* { "FineArtPhotoRag", canon_PIXMA_Pro9000_modeuses_photorag, 0 },*/
-/* { "FineArtOther", canon_PIXMA_Pro9000_modeuses_board, 0 },*/
-/* { "FineArtPremiumMatte",canon_PIXMA_Pro9000_modeuses_board, 0 },*/
-/* { "FineArtMuseumEtching",canon_PIXMA_Pro9000_modeuses_photorag, 0 },*/
-/* { "TShirt", canon_PIXMA_Pro9000_modeuses_TShirt, 0 },*/
+ { "DiscCompat", canon_PIXMA_Pro9000_modeuses_disc, 0 },
+ { "DiscOthers", canon_PIXMA_Pro9000_modeuses_disc, 0 },
+ { "Boardpaper", canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "Canvas", canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "FineArtPhotoRag", canon_PIXMA_Pro9000_modeuses_photorag, 0 },
+ { "FineArtOther", canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "FineArtPremiumMatte",canon_PIXMA_Pro9000_modeuses_board, 0 },
+ { "FineArtMuseumEtching",canon_PIXMA_Pro9000_modeuses_photorag, 0 },
+ { "TShirt", canon_PIXMA_Pro9000_modeuses_TShirt, 0 },
{ "Envelope", canon_PIXMA_Pro9000_modeuses_Hagaki, 0 },
-/* { "PhotopaperOther", canon_PIXMA_Pro9000_modeuses_PPother, 0 },*/
+ { "PhotopaperOther", canon_PIXMA_Pro9000_modeuses_PPother, 0 },
};
DECLARE_MODEUSES(canon_PIXMA_Pro9000);
@@ -12397,13 +12631,13 @@ DECLARE_MODEUSES(canon_PIXMA_Pro9000);
/* ----------------------------------- Canon Pro9000mk2 ----------------------------------- */
static const char* canon_PIXMA_Pro9000mk2_modeuses_plain[] = {
-/* "600x600dpi_high",*/
-/* "600x600dpi",*/
+ "600x600dpi_high",
+ "600x600dpi",
"600x600dpi_draft",
"600x600dpi_draft2",
/* Mono */
-/* "600x600dpi_highmono",*/
-/* "600x600dpi_mono",*/
+ "600x600dpi_highmono",
+ "600x600dpi_mono",
"600x600dpi_draftmono",
"600x600dpi_draftmono2",
NULL
@@ -12411,7 +12645,7 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_plain[] = {
/* highest mode not yet supported (R,G inks) */
static const char* canon_PIXMA_Pro9000mk2_modeuses_PPplusG2[] = {
-/* "600x600dpi_photo",*/
+ "600x600dpi_photo",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomono",
@@ -12419,8 +12653,8 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_PPplusG2[] = {
};
static const char* canon_PIXMA_Pro9000mk2_modeuses_PPgloss[] = {
-/* "600x600dpi_photohigh2",*/
-/* "600x600dpi_photodraft",*/
+ "600x600dpi_photohigh2",
+ "600x600dpi_photodraft",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomonodraft",
@@ -12429,8 +12663,8 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_PPgloss[] = {
/* highest mode not yet supported (R,G inks) */
static const char* canon_PIXMA_Pro9000mk2_modeuses_PPpro2[] = {
-/* "600x600dpi_photomed",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photomed",
+ "600x600dpi_photo",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomonomed",/*untested: quality setting uncertain*/
@@ -12440,7 +12674,7 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_PPpro2[] = {
/* highest mode not yet supported (R,G inks) */
static const char* canon_PIXMA_Pro9000mk2_modeuses_PPproPlat[] = {
-/* "600x600dpi_photomed",*/
+ "600x600dpi_photomed",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomonomed",
@@ -12448,8 +12682,8 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_PPproPlat[] = {
};
static const char* canon_PIXMA_Pro9000mk2_modeuses_PPmatte[] = {
-/* "600x600dpi_photohigh",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh",
+ "600x600dpi_photo",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomono",
@@ -12457,8 +12691,8 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_PPmatte[] = {
};
static const char* canon_PIXMA_Pro9000mk2_modeuses_inkjetHagaki[] = {
-/* "600x600dpi_photohigh3",*/
-/* "600x600dpi_photo3",*/
+ "600x600dpi_photohigh3",
+ "600x600dpi_photo3",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomono",
@@ -12466,17 +12700,17 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_inkjetHagaki[] = {
};
static const char* canon_PIXMA_Pro9000mk2_modeuses_Hagaki[] = {
-/* "600x600dpi_high2",*/ /* bw=2 for mono */
-/* "600x600dpi_std2",*/ /* bw=2 for mono */
+ "600x600dpi_high2", /* bw=2 for mono */
+ "600x600dpi_std2", /* bw=2 for mono */
"600x600dpi_draft2",/* bw=2 for mono */
/* Mono */
-/* "600x600dpi_high3",*/
+ "600x600dpi_high3",
NULL
};
static const char* canon_PIXMA_Pro9000mk2_modeuses_disc[] = {
-/* "600x600dpi_photohigh4",*/
-/* "600x600dpi_photo4",*/
+ "600x600dpi_photohigh4",
+ "600x600dpi_photo4",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomono",
@@ -12484,28 +12718,28 @@ static const char* canon_PIXMA_Pro9000mk2_modeuses_disc[] = {
};
static const char* canon_PIXMA_Pro9000mk2_modeuses_board[] = {
-/* "600x600dpi_photohigh5",*/
+ "600x600dpi_photohigh5",
/* Mono */
"600x600dpi_photomonohigh",
NULL
};
static const char* canon_PIXMA_Pro9000mk2_modeuses_photorag[] = {
-/* "600x600dpi_photohigh5",*/
-/* "600x600dpi_photo",*/
+ "600x600dpi_photohigh5",
+ "600x600dpi_photo",
/* Mono */
"600x600dpi_photomonohigh",
"600x600dpi_photomono",
NULL
};
-/*static const char* canon_PIXMA_Pro9000mk2_modeuses_TShirt[] = {
- "600x600dpi_tshirt",*/ /* bw=2 for mono */
-/* NULL
-};*/
+static const char* canon_PIXMA_Pro9000mk2_modeuses_TShirt[] = {
+ "600x600dpi_tshirt", /* bw=2 for mono */
+ NULL
+};
static const char* canon_PIXMA_Pro9000mk2_modeuses_PPother[] = {
-/* "600x600dpi_photo",*/
+ "600x600dpi_photo",
/* Mono */
"600x600dpi_photomono",
NULL
@@ -12530,7 +12764,7 @@ static const canon_modeuse_t canon_PIXMA_Pro9000mk2_modeuses[] = {
{ "FineArtOther", canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
{ "FineArtPremiumMatte",canon_PIXMA_Pro9000mk2_modeuses_board, 0 },
{ "FineArtMuseumEtching",canon_PIXMA_Pro9000mk2_modeuses_photorag, 0 },
-/* { "TShirt", canon_PIXMA_Pro9000mk2_modeuses_TShirt, 0 },*/
+ { "TShirt", canon_PIXMA_Pro9000mk2_modeuses_TShirt, 0 },
{ "Envelope", canon_PIXMA_Pro9000mk2_modeuses_Hagaki, 0 },
{ "PhotopaperOther", canon_PIXMA_Pro9000mk2_modeuses_PPother, 0 },
};
@@ -12544,9 +12778,9 @@ static const char* canon_PIXMA_Pro9500_modeuses_plain[] = {
"600x600dpi",
"600x600dpi_draft",
/* Mono */
-/* "600x600dpi_highmono2",*/
-/* "600x600dpi_highmono",*/ /*untested*/
-/* "600x600dpi_mono",*/
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono", /*untested*/
+ "600x600dpi_mono",
"600x600dpi_draftmono",
"600x600dpi_draftmono2",/*untested*/
NULL
@@ -12599,9 +12833,9 @@ static const char* canon_PIXMA_Pro9500_modeuses_inkjetHagaki[] = {
/* modes not yet supported (R,G inks) */
static const char* canon_PIXMA_Pro9500_modeuses_Hagaki[] = {
/* Mono */
-/* "600x600dpi_highmono2",*/
-/* "600x600dpi_highmono",*/
-/* "600x600dpi_mono",*/ /*untested*/
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono",
+ "600x600dpi_mono", /*untested*/
"600x600dpi_draftmono",/*untested*/
"600x600dpi_draftmono2",/*untested*/
NULL
@@ -12674,9 +12908,9 @@ static const char* canon_PIXMA_Pro9500mk2_modeuses_plain[] = {
"600x600dpi",
"600x600dpi_draft",
/* Mono */
-/* "600x600dpi_highmono2",*/
-/* "600x600dpi_highmono",*/ /*untested*/
-/* "600x600dpi_mono",*/
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono", /*untested*/
+ "600x600dpi_mono",
"600x600dpi_draftmono",
"600x600dpi_draftmono2",/*untested*/
NULL
@@ -12721,9 +12955,9 @@ static const char* canon_PIXMA_Pro9500mk2_modeuses_inkjetHagaki[] = {
/* modes not yet supported (R,G inks) */
static const char* canon_PIXMA_Pro9500mk2_modeuses_Hagaki[] = {
/* Mono */
-/* "600x600dpi_highmono2",*/
-/* "600x600dpi_highmono",*/
-/* "600x600dpi_mono",*/ /*untested*/
+ "600x600dpi_highmono2",
+ "600x600dpi_highmono",
+ "600x600dpi_mono", /*untested*/
"600x600dpi_draftmono",/*untested*/
"600x600dpi_draftmono2",/*untested*/
NULL
diff --git a/src/main/canon-media.h b/src/main/canon-media.h
index 7d0069e..2b37391 100644
--- a/src/main/canon-media.h
+++ b/src/main/canon-media.h
@@ -235,12 +235,14 @@ static const canon_slot_t canon_PIXMA_MG5200_slots[] = {
};
DECLARE_SLOTS(canon_PIXMA_MG5200);
+/* Casssette containing an upper (cassette 1) and a lower tray (cassette 2) */
static const canon_slot_t canon_PIXMA_MG5400_slots[] = {
{ "Cassette", N_ ("Cassette"), 0xd },
{ "CD", N_ ("CD tray"), 0xa },
};
DECLARE_SLOTS(canon_PIXMA_MG5400);
+/* Casssette containing an upper (cassette 1) and a lower tray (cassette 2) */
static const canon_slot_t canon_PIXMA_MX720_slots[] = {
{ "Cassette", N_ ("Cassette"), 0xd },
};
@@ -267,6 +269,7 @@ typedef struct {
unsigned char media_code_c; /* Media Code used for the ESC (c (SetColor) command */
unsigned char media_code_l; /* Media Code used for the ESC (l (SetTray) command */
unsigned char media_code_P; /* Media Code used for the ESC (P (Unknown) command */
+ unsigned char media_code_w; /* Media Code used for the ESC (w (Unknown) command */
double base_density;
double k_lower_scale;
double k_upper;
@@ -291,2003 +294,2086 @@ static const canon_paperlist_t name##_paperlist = { \
/* paperlists for the various printers. The first entry will be the default */
-static const canon_paper_t canon_default_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00, 0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02, 0x02,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
- { "BackPrint", N_ ("Back Print Film"), 0x03, 0x03,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
- { "Fabric", N_ ("Fabric Sheets"), 0x04, 0x04,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08, 0x08,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07, 0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03, 0x03,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06, 0x06,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05, 0x05,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "GlossyCard", N_ ("Glossy Photo Cards"), 0x0a, 0x0a,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09, 0x09,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "Other", N_ ("Other"), 0x00, 0x00,0x00,0.50, 0.25, .5, 0, 0, 0 },
+static const canon_paper_t canon_default_papers[] = { /* k_lower hue_adj sat_adj */
+ /* Name Text (c (l (P (w Density k_upper lum_adj */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
+ { "BackPrint", N_ ("Back Print Film"), 0x03,0x03,0x00,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
+ { "Fabric", N_ ("Fabric Sheets"), 0x04,0x04,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyCard", N_ ("Glossy Photo Cards"), 0x0a,0x0a,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x09,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "Other", N_ ("Other"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_default);
static const canon_paper_t canon_PIXMA_iP4000_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,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 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "CD", N_ ("CD"), 0x00,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* legacy */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CD", N_ ("CD"), 0x00,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* legacy */
/* FIXME media code for c) should be 0x0c for CD but this will restrict CD printing to a single, not well supported, resolution */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
};
DECLARE_PAPERS(canon_PIXMA_iP4000);
static const canon_paper_t canon_PIXMA_iP2000_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP2000);
static const canon_paper_t canon_PIXMA_iP3000_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP3000);
static const canon_paper_t canon_PIXMA_iP3100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_PIXMA_iP3100);
+static const canon_paper_t canon_PIXMA_MP5_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0d 0x09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_PIXMA_MP5);
+
+static const canon_paper_t canon_PIXMA_MP55_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0d 0x09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_PIXMA_MP55);
+
+static const canon_paper_t canon_PIXMA_MPC400_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested: using different from 0x0d 0x09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested: using different from 0x0d 0x09 */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyCard", N_ ("Glossy Photo Cards"), 0x05,0x0c,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+};
+DECLARE_PAPERS(canon_PIXMA_MPC400);
+
static const canon_paper_t canon_MULTIPASS_MP900_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
-/* { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photopaper Plus Double Sided"), 0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
};
DECLARE_PAPERS(canon_MULTIPASS_MP900);
static const canon_paper_t canon_PIXMA_iP4100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
};
DECLARE_PAPERS(canon_PIXMA_iP4100);
static const canon_paper_t canon_PIXMA_iP4200_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,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 an unsupported resolution */
- { "CD", N_ ("CD"), 0x00,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "CD", N_ ("CD"), 0x00,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* added 2011-11-26 */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP4200);
static const canon_paper_t canon_BJC_S200_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_S200);
static const canon_paper_t canon_BJC_S300_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested*/
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyCard", N_ ("Glossy Photo Cards"), 0x05,0x0c,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/* different from expected 0xa 0xa */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested*/
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyCard", N_ ("Glossy Photo Cards"), 0x05,0x0c,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/* different from expected 0xa 0xa */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_S300);
static const canon_paper_t canon_BJC_S330_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_S330);
static const canon_paper_t canon_BJC_S520_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_S520);
static const canon_paper_t canon_BJC_S750_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_S750);
static const canon_paper_t canon_BJC_S800_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyCard", N_ ("Glossy Photo Cards"), 0x05,0x0a,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/* different from expected 0xa 0xa */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x00,0x0f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0xf 0x14 */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.50, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0b 0x11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0x0a 0x10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyCard", N_ ("Glossy Photo Cards"), 0x05,0x0a,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/* different from expected 0xa 0xa */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x00,0x0f,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0xf 0x14 */
};
DECLARE_PAPERS(canon_BJC_S800);
static const canon_paper_t canon_BJC_i50_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i50);
static const canon_paper_t canon_BJC_i80_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_BJC_i80);
static const canon_paper_t canon_BJC_i250_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 11 */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* 250i,350i different from expected 08 */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* 250i,350i */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* 250i,350i different from expected 08 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* 250i,350i */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i250);
static const canon_paper_t canon_BJC_i320_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i320);
static const canon_paper_t canon_BJC_i450_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i450);
static const canon_paper_t canon_BJC_i455_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i455);
static const canon_paper_t canon_BJC_i550_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i550);
static const canon_paper_t canon_BJC_i560_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i560);
static const canon_paper_t canon_BJC_i850_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 9 */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 9 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i850);
static const canon_paper_t canon_BJC_i950_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x09,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 9 */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x09,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 9 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i950);
static const canon_paper_t canon_BJC_i6100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected b 11 */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected a 10 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected b 11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected a 10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_BJC_i6100);
static const canon_paper_t canon_BJC_i9100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected b 11 */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected a 10 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x09,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 09 */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected b 11 */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected a 10 */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x09,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected d 09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i9100);
static const canon_paper_t canon_BJC_i9900_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_BJC_i9900);
static const canon_paper_t canon_PIXMA_iP90_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP90);
static const canon_paper_t canon_PIXMA_iP100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP100);
static const canon_paper_t canon_PIXMA_iP1000_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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*/
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*experiment*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,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 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,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 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* experimental */
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 1.00, 0.900, 0, 0, 0 },/* experimental */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* experimental */
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,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 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 1.00, 0.900, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,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 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP2600);
static const canon_paper_t canon_PIXMA_iP3300_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro*/
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuper */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuperDS */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPgloss */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PPmatte */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PPother */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* HiRes */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjetHagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro*/
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuper */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuperDS */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPgloss */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPmatte */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPother */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* HiRes */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjetHagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
};
DECLARE_PAPERS(canon_PIXMA_iP3300);
static const canon_paper_t canon_PIXMA_iP5000_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*untested*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*untested*/
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photopaper Plus Double Sided"), 0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*untested*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*untested*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP5000);
static const canon_paper_t canon_PIXMA_iP6100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photopaper Plus Double Sided"), 0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CD", N_ ("CD"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP6100);
-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 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+static const canon_paper_t canon_PIXMA_iP6600_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP6600);
-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 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+static const canon_paper_t canon_PIXMA_iP6700_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP6700);
-static const canon_paper_t canon_PIXMA_iP7100_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x02,0x0d,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
- { "FineArtOther", N_ ("Fine Art Other"), 0x02,0x0d,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+static const canon_paper_t canon_PIXMA_iP7100_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x02,0x0d,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x02,0x0d,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_PIXMA_iP7100);
-static const canon_paper_t canon_PIXMA_iP7100_limited_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x02,0x0d,0x28,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* note: different c,l from usual */
-/* { "FineArtOther", N_ ("Fine Art Other"), 0x02,0x0d,0x29,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* note: different c,l from usual */
-/* { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* untested */
+static const canon_paper_t canon_PIXMA_iP7100_limited_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x02,0x0d,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* note: different c,l from usual */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x02,0x0d,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* note: different c,l from usual */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
};
DECLARE_PAPERS(canon_PIXMA_iP7100_limited);
-static const canon_paper_t canon_PIXMA_iP7500_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_PIXMA_iP7500_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP7500);
static const canon_paper_t canon_PIXMA_iP8500_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP8500);
static const canon_paper_t canon_PIXMA_iP8500_limited_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
-/* { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* untested */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
-/* { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.900, 0, 0, 0 },*/
-/* { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },*/
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photopaper Plus Double Sided"), 0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.900, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP8500_limited);
-static const canon_paper_t canon_PIXMA_iP9910_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x09,0x11,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x09,0x0d,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
- { "FineArtOther", N_ ("Fine Art Other"), 0x09,0x0d,0x29,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_PIXMA_iP9910_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x09,0x11,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x09,0x0d,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x09,0x0d,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different c,l from usual */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP9910);
-static const canon_paper_t canon_PIXMA_iP9910_limited_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x09,0x11,0x25,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* note: different c,l from usual */
-/* { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
-/* { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x09,0x0d,0x28,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* note: different c,l from usual */
-/* { "FineArtOther", N_ ("Fine Art Other"), 0x09,0x0d,0x29,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* note: different c,l from usual */
-/* { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },*/
-/* { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_PIXMA_iP9910_limited_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x09,0x11,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* note: different c,l from usual */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x09,0x0d,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* note: different c,l from usual */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x09,0x0d,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* note: different c,l from usual */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP9910_limited);
/* 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 },*/
-/* { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },*/ /*PPpro*/
-/* { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x09,0x0d,0x34,0.78, 0.25, 0.500, 0, 0, 0 },*/ /*PPGpro*/
-/* { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x09,0x11,0x33,0.78, 0.25, 0.500, 0, 0, 0 },*/ /*PPGproPlat*/
-/* { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "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 },*/ /* note: different c,l from usual */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /*PPsuper*/
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x0b,0x11,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /*PPGgold*/
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /*PPgloss*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /*PPpro*/
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x09,0x0d,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /*PPGpro*/
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x09,0x11,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /*PPGproPlat*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x20,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* note: different c,l from usual */
/* special papers */
-/* { "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0.78, 0.25, 0.500, 0, 0, 0 },*/ /* note: different from usual 13,1b,29 */
-/* { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },*/
-/* { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },*/
+ { "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 }, /* note: different from usual 13,1b,29 */
+ { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0x00,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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPgloss*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PP kinumecho*/
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGpro*/
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGproPlat*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,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 },/* note: different from usual 13,1b,29 */
- { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
+ { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_Pro9000mk2);
/* PIXMA Pro9500 */
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 },/* untested */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGpro*/
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGproPlat*/
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGpro*/
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGproPlat*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,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 },/* note: different from usual 13,1b,29 */
- { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
+ { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_Pro9500);
/* PIXMA Pro9500 Mk.II */
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*/
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGproPlat*/
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGgold*/
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*PPGproPlat*/
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,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 },/* note: different from usual 13,1b,29 */
- { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Boardpaper", N_ ("Board Paper"), 0x18,0x1d,0x2e,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Canvas", N_ ("Canvas"), 0x19,0x1e,0x2d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x16,0x1b,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note: different from usual 13,1b,29 */
+ { "FineArtPremiumMatte",N_ ("Fine Art Premium Matte"), 0x15,0x1a,0x2c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtMuseumEtching",N_ ("Fine Art Museum Etching"), 0x14,0x19,0x31,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_Pro9500mk2);
static const canon_paper_t canon_SELPHY_DS700_papers[] = {
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09, 0x0d,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b, 0x11,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a, 0x10,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05, 0x05,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d, 0x09,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08, 0x09,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
};
DECLARE_PAPERS(canon_SELPHY_DS700);
static const canon_paper_t canon_SELPHY_DS810_papers[] = {
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09, 0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b, 0x11,0x1d,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a, 0x10,0x1c,1.00, 1.00, 0.999, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05, 0x05,0x16,1.00, 1.00, 0.999, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d, 0x09,0x1b,1.00, 1.00, 0.999, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08, 0x09,0x07,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
};
DECLARE_PAPERS(canon_SELPHY_DS810);
static const canon_paper_t canon_PIXMA_mini320_papers[] = {
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09, 0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b, 0x11,0x1d,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10, 0x15,0x25,1.00, 1.00, 0.999, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a, 0x10,0x1c,1.00, 1.00, 0.999, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05, 0x05,0x16,1.00, 1.00, 0.999, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d, 0x23,0x32,1.00, 1.00, 0.999, 0, 0, 0 },/*PPGgold*/
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d, 0x09,0x1b,1.00, 1.00, 0.999, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08, 0x09,0x07,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/*PPsuper*/
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,1.00, 1.00, 0.999, 0, 0, 0 },/*PPGgold*/
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_mini320);
static const canon_paper_t canon_MULTIPASS_MP150_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP150);
static const canon_paper_t canon_MULTIPASS_MP190_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro */
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt 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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro */
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP190);
static const canon_paper_t canon_MULTIPASS_MP360_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,1.00, 1.00, 0.900, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP360);
/* MX300, MX310, MX700 */
static const canon_paper_t canon_MULTIPASS_MX300_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MX300);
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 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,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 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,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 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MX360);
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 */
- { "PhotoProSemiGloss",N_ ("Photo Paper Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MX420);
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 */
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Semi-gloss"), 0x0b,0x11,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho new !! */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Semi-gloss"), 0x0b,0x11,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho new !! */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,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 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_MX880);
-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 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_MULTIPASS_MX7600_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MX7600);
-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 */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+static const canon_paper_t canon_PIXMA_iX7000_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iX7000);
static const canon_paper_t canon_MULTIPASS_MP240_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_MP240);
static const canon_paper_t canon_MULTIPASS_MP250_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* pro photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* pro photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_MP250);
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 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_MP280);
static const canon_paper_t canon_MULTIPASS_MP470_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP470);
static const canon_paper_t canon_MULTIPASS_MP480_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,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 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* Pro photo hagaki*/
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Pro photo hagaki*/
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
};
DECLARE_PAPERS(canon_MULTIPASS_MP493);
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 */
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro*/
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuper */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuperDS */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPgloss */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PPmatte */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PPother */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* HiRes */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjetHagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPpro*/
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuper */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPsuperDS */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPgloss */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPmatte */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPother */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* HiRes */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjetHagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
};
DECLARE_PAPERS(canon_MULTIPASS_MP520);
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 },
- { "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 */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_iP1900);
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 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
- { "CD", N_ ("CD"), 0x00,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },/*allow plain modes for now*/
- { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CD", N_ ("CD"), 0x00,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*allow plain modes for now*/
+ { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP600);
static const canon_paper_t canon_MULTIPASS_MP610_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP610);
static const canon_paper_t canon_MULTIPASS_MP630_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_MP630);
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 */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* pro photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "ProPhotoHagakiP", N_ ("Hagaki P (Pro Photo)"), 0x1f,0x25,0x37,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* pro photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_MP640);
static const canon_paper_t canon_MULTIPASS_MP700_papers[] = { /* no ESC (P for MP700/730 */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 07 09 */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photopaper Plus Double Sided"), 0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.999, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 07 09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_MULTIPASS_MP700);
static const canon_paper_t canon_MULTIPASS_MP710_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },/* untested */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0d 09 */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photopaper Plus Double Sided"), 0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.999, 0, 0, 0 },/* untested */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x07,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* different from expected 0d 09 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* untested */
};
DECLARE_PAPERS(canon_MULTIPASS_MP710);
/* MP750/MP760/MP770/MP780/MP790 */
static const canon_paper_t canon_MULTIPASS_MP750_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0.78, 0.25, 0.999, 0, 0, 0 },/* untested */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from Japanese models */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from Japanese models */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from US models */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Professional Photo Paper"), 0x09,0x0d,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Glossy Photo Paper Plus"), 0x0b,0x11,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photopaper Plus Double Sided"), 0x10,0x15,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyFilm", N_ ("High Gloss Film"), 0x06,0x06,0x00,0x00,0.78, 0.25, 0.999, 0, 0, 0 },/* untested */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from Japanese models */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from Japanese models */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* from US models */
};
DECLARE_PAPERS(canon_MULTIPASS_MP750);
static const canon_paper_t canon_PIXMA_iP2700_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGpro */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGproPlat */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP kinumecho */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPG */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP matte */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hi res paper */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_iP2700);
-static const canon_paper_t canon_PIXMA_iP3600_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_PIXMA_iP3600_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP3600);
static const canon_paper_t canon_PIXMA_iP4500_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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 },
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (recommended)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (others)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,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 */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_PIXMA_iP4600_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
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 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "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 },
- { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_PIXMA_iP4700_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "OtherPhotoHagakiO",N_ ("Hagaki O (Other Photo)"), 0x1f,0x25,0x37,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Other photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_PIXMA_iP4700);
-static const canon_paper_t canon_MULTIPASS_MP950_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_MULTIPASS_MP950_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP950);
-static const canon_paper_t canon_MULTIPASS_MP960_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,1.00, 0.25, 0.500, 0, 0, 0 }, /* untested */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_MULTIPASS_MP960_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble",N_ ("Photo Paper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Transparency", N_ ("Transparencies"), 0x02,0x02,0x01,0x00,1.00, 0.25, 0.500, 0, 0, 0 }, /* untested */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP960);
-static const canon_paper_t canon_MULTIPASS_MP970_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,1.00, 1.00, 0.999, 0, 0, 0 },
- { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x25,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Coated Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_MULTIPASS_MP970_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPro", N_ ("Photo Paper Pro"), 0x09,0x0d,0x1a,0x00,1.00, 1.00, 0.999, 0, 0, 0 },
+ { "PhotopaperPlus", N_ ("Photo Paper Plus Glossy"), 0x0b,0x11,0x1d,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperPlusDouble", N_ ("Photopaper Plus Double Sided"),0x10,0x15,0x25,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Coated Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP970);
-static const canon_paper_t canon_MULTIPASS_MP980_papers[] = { /* k_lower_scale *hue_adjustment *sat_adjustment */
- /* Name Text (c (l (P Density k_upper *lum_adjustment */
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_MULTIPASS_MP980_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,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 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "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*/
- { "ProPhotoHagakiP", N_ ("Hagaki K (Pro Photo)"), 0x1f,0x25,0x37,0.78, 0.25, 0.500, 0, 0, 0 },/* Pro photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },
+static const canon_paper_t canon_MULTIPASS_MP990_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPro2", N_ ("Photo Paper Pro II"), 0x1f,0x25,0x34,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfer"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "ProPhotoHagakiP", N_ ("Hagaki K (Pro Photo)"), 0x1f,0x25,0x37,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Pro photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
};
DECLARE_PAPERS(canon_MULTIPASS_MP990);
static const canon_paper_t canon_PIXMA_MG2400_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: PPproLuster*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },/* glossy */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: Canon photo hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: hagaki */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: 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 },/* unconfirmed: PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },/* plain */
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* glossy */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: Canon photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: hagaki */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG2400);
/* new paper type from October 2012 */
static const canon_paper_t canon_PIXMA_MG3200_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG3200);
static const canon_paper_t canon_PIXMA_P200_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 },
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "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 },/*unsupported*/
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "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 },/*unsupported*/
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
};
DECLARE_PAPERS(canon_PIXMA_P200);
static const canon_paper_t canon_PIXMA_MG5100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG5100);
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 },
- { "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 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG5200);
/* new paper type from October 2012 */
static const canon_paper_t canon_PIXMA_MG5400_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG5400);
static const canon_paper_t canon_PIXMA_MG6100_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG6100);
/* new paper type from October 2012 */
static const canon_paper_t canon_PIXMA_MG6300_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* Untested */
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaper", N_ ("Glossy Photo Paper"), 0x05,0x05,0x16,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "CanonPhotoHagakiK",N_ ("Hagaki K (Canon Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Canon photo hagaki*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki*/
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Untested */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG6300);
/* new paper type from February 2014 */
static const canon_paper_t canon_PIXMA_MG2900_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 },/* unconfirmed */
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: PPproLuster*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
- { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: inkjet hagaki */
- { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: Canon photo hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: hagaki */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: 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 },/* unconfirmed: PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: PPproLuster*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: inkjet hagaki */
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: Canon photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: hagaki */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unconfirmed: PP other */
};
DECLARE_PAPERS(canon_PIXMA_MG2900);
static const canon_paper_t canon_PIXMA_iP8700_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Inkjet photo hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki */
- { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0.78, 0.25, 0.500, 0, 0, 0 },
- { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0.78, 0.25, 0.500, 0, 0, 0 },
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* Untested */
- { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Inkjet photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki */
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "FineArtPhotoRag", N_ ("Fine Art Photo Rag"), 0x13,0x18,0x28,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Untested */
+ { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_iP8700);
static const canon_paper_t canon_MULTIPASS_E400_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 },
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,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 },/*unsupported*/
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
- { "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 },/*unsupported*/
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/*unsupported*/
};
DECLARE_PAPERS(canon_MULTIPASS_E400);
static const canon_paper_t canon_MULTIPASS_E480_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: inkjet hagaki */
- { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: Inkjet photo hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: hagaki */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: inkjet hagaki */
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: Inkjet photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: hagaki */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported: T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_MULTIPASS_E480);
static const canon_paper_t canon_PIXMA_iX6800_papers[] = {
- { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
- { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
- { "PhotoProPlat", N_ ("Photo Paper Platinum"), 0x1e,0x24,0x33,0.78, 0.25, 0.500, 0, 0, 0 },
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
- { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
- { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* Inkjet photo hagaki */
- { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki */
- { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
- { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
- { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPproLuster */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* all hagaki */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* inkjet hagaki */
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* Inkjet photo hagaki */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* hagaki */
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* T-shirt */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* env */
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PP other */
};
DECLARE_PAPERS(canon_PIXMA_iX6800);
static const canon_paper_t canon_PIXMA_iP110_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 },/* unsupported */
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
- { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
- { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,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 },/* unsupported */
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,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 },
- { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x09,0x36,0.78, 0.25, 0.500, 0, 0, 0 },/* note Esc (l different */
- { "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 },/* unsupported */
- { "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 },/* unsupported */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x09,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* note Esc (l different */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
};
DECLARE_PAPERS(canon_PIXMA_iP110);
static const canon_paper_t canon_MAXIFY_iB4000_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 },/* unsupported */
- { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,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 },
- { "GlossyPaperStandard", N_ ("Standard Glossy Photo Paper"), 0x05,0x05,0x44,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
- { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0.78, 0.25, 0.500, 0, 0, 0 },
- { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0.78, 0.25, 0.500, 0, 0, 0 },
- { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0.78, 0.25, 0.500, 0, 0, 0 },
- { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,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 },/* unsupported */
- { "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 },/* unsupported */
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki A (address side)"), 0x08,0x09,0x38,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x00,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x00,0.78, 0.25, 0.500, 0, 0, 0 },/* unsupported */
};
DECLARE_PAPERS(canon_MAXIFY_iB4000);
+/* new papers from September 2015 */
+/* MG3600 does not use ESC (w command but MG5700, MG6800 do */
+static const canon_paper_t canon_PIXMA_MG3600_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x03,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGgold */
+ { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x05,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x11,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x06,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x0e,0.78, 0.25, 0.500, 0, 0, 0 },/* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x0f,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x09,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagakiaddr", N_ ("Ink Jet Hagaki (A)"), 0x08,0x09,0x46,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* NEW Sep 2015 */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x0b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkjetPhotoHagakiKaddr",N_ ("Hagaki K (Inkjet Photo) (A)"),0x08,0x09,0x47,0x26,0.78, 0.25, 0.500, 0, 0, 0 },/* NEW Sep 2015 */
+ { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x0d,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "HagakiA", N_ ("Hagaki (A)"), 0x08,0x09,0x48,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* Renamed Sep 2015 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x0c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x13,0.78, 0.25, 0.500, 0, 0, 0 },
+};
+DECLARE_PAPERS(canon_PIXMA_MG3600);
+
+/* media using only modes with (unsupported) H ink commented out */
+static const canon_paper_t canon_PIXMA_MG7700_papers[] = {
+ { "Plain", N_ ("Plain Paper"), 0x00,0x00,0x00,0x00,1.00, 0.25, 0.500, 0, 0, 0 },
+ /* { "PhotoPlusGloss2", N_ ("Photo Paper Plus Glossy II"), 0x1d,0x23,0x32,0x03,0.78, 0.25, 0.500, 0, 0, 0 },*//* PPGgold */
+ /* { "PhotoProPlat", N_ ("Photo Paper Pro Platinum"), 0x1e,0x24,0x33,0x05,0.78, 0.25, 0.500, 0, 0, 0 },*/
+ /* { "PhotoProLuster", N_ ("Photo Paper Pro Luster"), 0x25,0x28,0x3f,0x11,0.78, 0.25, 0.500, 0, 0, 0 },*/
+ /* { "PhotoProSemiGloss",N_ ("Photo Paper Plus Semi-gloss"), 0x1a,0x1f,0x2a,0x06,0.78, 0.25, 0.500, 0, 0, 0 },*/
+ /* { "GlossyPaperStandard",N_ ("Photo Paper Glossy"), 0x05,0x05,0x44,0x0e,0.78, 0.25, 0.500, 0, 0, 0 },*//* PPGstandard */
+ { "PhotopaperMatte", N_ ("Matte Photo Paper"), 0x0a,0x10,0x1c,0x0f,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Coated", N_ ("High Resolution Paper"), 0x07,0x07,0x10,0x09,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkJetHagakiaddr", N_ ("Ink Jet Hagaki (A)"), 0x08,0x09,0x46,0x24,0.78, 0.25, 0.500, 0, 0, 0 },/* NEW Sep 2015 */
+ { "InkJetHagaki", N_ ("Ink Jet Hagaki"), 0x0d,0x09,0x1b,0x0b,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "InkjetPhotoHagakiKaddr",N_ ("Hagaki K (Inkjet Photo) (A)"),0x08,0x09,0x47,0x26,0.78, 0.25, 0.500, 0, 0, 0 },/* NEW Sep 2015 */
+ /* { "InkjetPhotoHagakiK",N_ ("Hagaki K (Inkjet Photo)"), 0x05,0x05,0x36,0x0d,0.78, 0.25, 0.500, 0, 0, 0 },*/
+ { "HagakiA", N_ ("Hagaki (A)"), 0x08,0x09,0x48,0x28,0.78, 0.25, 0.500, 0, 0, 0 },/* Renamed Sep 2015 */
+ { "Hagaki", N_ ("Hagaki"), 0x08,0x09,0x07,0x0c,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscCompat", N_ ("Printable Disc (Compatible)"), 0x0c,0x12,0x1f,0x21,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "DiscOthers", N_ ("Printable Disc (Other)"), 0x0c,0x12,0x20,0x22,0.78, 0.25, 0.500, 0, 0, 0 },
+ /* { "FineArtOther", N_ ("Fine Art Other"), 0x13,0x18,0x29,0x24,0.78, 0.25, 0.500, 0, 0, 0 },*/
+ { "TShirt", N_ ("T-Shirt Transfers"), 0x03,0x03,0x12,0x2a,0.78, 0.25, 0.500, 0, 0, 0 },
+ { "Envelope", N_ ("Envelope"), 0x08,0x08,0x08,0x12,0.78, 0.25, 0.500, 0, 0, 0 },
+ /* { "PhotopaperOther", N_ ("Other Photo Paper"), 0x0f,0x14,0x24,0x13,0.78, 0.25, 0.500, 0, 0, 0 },*/
+};
+DECLARE_PAPERS(canon_PIXMA_MG7700);
+
#endif
diff --git a/src/main/canon-modes.h b/src/main/canon-modes.h
index 653cb43..bb9ed09 100644
--- a/src/main/canon-modes.h
+++ b/src/main/canon-modes.h
@@ -313,15 +313,15 @@ DECLARE_MODES(canon_BJC_i50,1);
/* inkjetHagaki and Hagaki from 80i */
static const canon_mode_t canon_BJC_i80_modes[] = {
- /* original modes */
- /* { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2}, */
- /* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2}, */
- /* plain modes --- Env/Hagaki same */
+ /* legacy modes, from before Windows printjobs fully analysed */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_std2",N_("300x300 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* plain modes --- Env/Hagaki same */
{ 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4y4plain),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},/* CMYKcmy */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH MONO"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},/* mono only---color untested*/
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1},
- { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* 1bpp */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0}, /* 1bpp */
/* photo modes */
{ 600, 600,CANON_INK_CMY,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST Pro"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4}, /* cmy */
{ 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C9M9Y9K2c9m9y9photo8),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* cmy */
@@ -344,7 +344,7 @@ static const canon_mode_t canon_BJC_i80_modes[] = {
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_BJC_i80,2);
+DECLARE_MODES(canon_BJC_i80,4);
/* not known what is format of sending of logical color data, just sequence of (z commands like some iP devices */
/* all modes use MP360 flag */
@@ -501,10 +501,10 @@ DECLARE_MODES(canon_BJC_i550,2);
/* inkjetHagaki, Hagaki and CD from 560i */
static const canon_mode_t canon_BJC_i560_modes[] = {
- /* original modes (2) */
- /* { 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYyK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,3.5,1.0,NULL,NULL,NULL,2}, */
- /* { 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,2}, */
- /* plain modes */
+ /* legacy modes from before Windows printjobs fully analysed */
+ { 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYyK,"600x600dpi_high3",N_("600x600 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.8,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYyK,"300x300dpi_std2",N_("300x300 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,3.5,1.0,NULL,NULL,NULL,2},
+ /* plain modes */
{ 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 300, 300,CANON_INK_CMYK|CANON_INK_K,"300x300dpi_high",N_("300x300 DPI HIGH"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/*untested*/
@@ -532,7 +532,7 @@ static const canon_mode_t canon_BJC_i560_modes[] = {
{ 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C4M4Y4K2c4m4plain),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_BJC_i560,1);
+DECLARE_MODES(canon_BJC_i560,3);
/* inkjetHagaki, Hagaki and CD from 850i */
static const canon_mode_t canon_BJC_i850_modes[] = {
@@ -628,129 +628,120 @@ DECLARE_MODES(canon_BJC_i900,1);
/* inkjetHagaki, Hagaki and CD from 950i */
static const canon_mode_t canon_BJC_i950_modes[] = {
/* plain modes */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/ /* untested */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes/PhotoFilm"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes/PhotoFilm"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft5",N_("600x600 DPI CD DRAFT"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft5",N_("600x600 DPI CD DRAFT"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI LOW Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI LOW Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* T-Shirt --- same as plain std */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki --- same as plain modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI STD Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/ /* untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI STD Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2}, /* untested */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI LOW Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_std5",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono5",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
};
-DECLARE_MODES(canon_BJC_i950,1);
+DECLARE_MODES(canon_BJC_i950,2);
/* inkjetHagaki, Hagaki and CD from 960i */
static const canon_mode_t canon_BJC_i960_modes[] = {
/* plain modes */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/ /* untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo5",N_("600x600 DPI PHOTO DRAFT HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI LOW Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},*/ /*untested*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI LOW Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0}, /*untested*/
/* T-Shirt --- same as plain std */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki --- same as plain modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI MEDIUM Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI STD Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/ /* untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high5",N_("600x600 DPI MEDIUM Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI STD Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_std5",N_("600x600 DPI LOW Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft5",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono5",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
};
-DECLARE_MODES(canon_BJC_i960,1);
+DECLARE_MODES(canon_BJC_i960,2);
/* inkjetHagaki and Hagaki from 990i */
static const canon_mode_t canon_BJC_i990_modes[] = {
/* plain modes */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH (duplex)"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI MEDIUM"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes --- many use R ink which is not yet supported */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT gloss"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT gloss"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki --- high mode uses unsupported R ink */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* T-Shirt --- same as plain std */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki --- same as plain modes: but no special duplex modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft5",N_("600x600 DPI LOW Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono5",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
};
-DECLARE_MODES(canon_BJC_i990,1);
+DECLARE_MODES(canon_BJC_i990,2);
/* inkjetHagaki and Hagaki from 6100i */
static const canon_mode_t canon_BJC_i6100_modes[] = {
@@ -784,34 +775,31 @@ DECLARE_MODES(canon_BJC_i6100,2);
/* inkjetHagaki and Hagaki from 9100i */
static const canon_mode_t canon_BJC_i9100_modes[] = {
/* plain modes */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/plusGlossy"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH pro/plusGlossy"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki */
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT inkjet Hagaki"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/ /* untested */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* T-Shirt */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
};
@@ -819,34 +807,31 @@ DECLARE_MODES(canon_BJC_i9100,1);
static const canon_mode_t canon_BJC_i9900_modes[] = {
/* plain modes */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI MEDIUM"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI MEDIUM"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes --- many use R, G inks which are not yet supported */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM HiRes"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT gloss/plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM HiRes"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT gloss/plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki --- high mode uses unsupported R,G inks */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* T-Shirt --- same as plain std */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki --- same as plain modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft5",N_("600x600 DPI LOW Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO LOW Env/Hagaki"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
@@ -883,9 +868,9 @@ static const canon_mode_t canon_S200_modes[] = {
DECLARE_MODES(canon_S200,2);
static const canon_mode_t canon_BJC_S300_modes[] = {
- /* original two modes */
- /*{ 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYK,"300x300dpi",N_("300x300 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
- /*{ 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYK,"600x600dpi",N_("600x600 DPI"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ /* legacy modes from before Windows printjobs fully analysed */
+ { 600, 600,CANON_INK_CMYK | CANON_INK_CcMmYK,"600x600dpi_std4",N_("600x600 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK | CANON_INK_CcMmYK,"300x300dpi_std2",N_("300x300 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* plain modes */
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI MEDIUM"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
@@ -907,7 +892,7 @@ static const canon_mode_t canon_BJC_S300_modes[] = {
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C3M3Y2K2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_BJC_S300,2);
+DECLARE_MODES(canon_BJC_S300,4);
static const canon_mode_t canon_BJC_S330_modes[] = {
/* plain modes */
@@ -986,10 +971,11 @@ static const canon_mode_t canon_BJC_S520_modes[] = {
DECLARE_MODES(canon_BJC_S520,2);
static const canon_mode_t canon_BJC_S600_modes[] = {
+ /* legacy modes from before Windows printjobs fully analysed */
+ { 1200,1200,CANON_INK_CMYK,"1200x1200dpi",N_("1200x1200 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi_std2",N_("300x300 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* plain modes */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
@@ -1015,7 +1001,7 @@ static const canon_mode_t canon_BJC_S600_modes[] = {
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_BJC_S600,1);
+DECLARE_MODES(canon_BJC_S600,4);
static const canon_mode_t canon_BJC_S750_modes[] = {
/* plain modes */
@@ -1043,97 +1029,92 @@ static const canon_mode_t canon_BJC_S750_modes[] = {
DECLARE_MODES(canon_BJC_S750,1);
static const canon_mode_t canon_BJC_S800_modes[] = {
+ /* legacy modes from before Windows printjobs fully analysed */
+ { 1200,1200,CANON_INK_CMYK,"1200x1200dpi",N_("1200x1200 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI (LEGACY)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* plain modes --- also for Env/Hagaki */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(1_K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
/* photo modes */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGHEST pro/other"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST matte/gloss/HiRes/PhotoCard/"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST matte/gloss/HiRes/PhotoCard/"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH plusGlossy/PhotoFilm"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/matte/gloss/HiRes/PhotoCard/other"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes/PhotoCard"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO other"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/matte/gloss/HiRes/PhotoCard/other"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes/PhotoCard"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO other"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT other"),INKSET(4_C2M2Y2K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
/* mono photo modes for PPother only --- manual feed preferred in Windows driver */
{ 600, 600,CANON_INK_K,"600x600dpi_photomonohigh2",N_("600x600 DPI PHOTO HIGHEST MONO other"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_K,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_K,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_K,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(1_K2),16,0,NULL,1.0,1.0,NULL,NULL,NULL,0},/* 1bpp */
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* T-Shirt */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_S800,1);
+DECLARE_MODES(canon_BJC_S800,5);
/* Windows driver shows fewer modes than S800, but it could be they exist */
/* modes present in S800 but not accessible in Windows driver for S820 are marked as untested */
static const canon_mode_t canon_BJC_S820_modes[] = {
/* plain modes --- also for Env/Hagaki */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/ /* untested */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* untested */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* untested */
-/* { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/ /* untested */
-/* { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/ /* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGHEST pro/other"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST matte/gloss/HiRes/PhotoCard/"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST matte/gloss/HiRes/PhotoCard/"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH plusGlossy/PhotoFilm"),INKSET(9_C9M9Y9K9c9m9),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/matte/gloss/HiRes/PhotoCard/other"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes/PhotoCard"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO other"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/ /* untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/matte/gloss/HiRes/PhotoCard/other"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes/PhotoCard"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO other"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* T-Shirt */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_BJC_S820,1);
+DECLARE_MODES(canon_BJC_S820,2);
static const canon_mode_t canon_BJC_S900_modes[] = {
/* plain modes --- also for Env/Hagaki */
- { 1200,1200,CANON_INK_CMYK,"1200x1200dpi_legacy",N_("1200x1200 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 600, 600,CANON_INK_CMYK,"600x600dpi_legacy",N_("600x600 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
- { 300, 300,CANON_INK_CMYK,"300x300dpi_legacy",N_("300x300 DPI (legacy)"),INKSET(6_C2M2Y2K2c2m2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,2},/* untested */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH 2"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH 2"),INKSET(9_C5M5Y5K9c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_highmono2",N_("600x600 DPI HIGH MONO 2"),INKSET(9_K9),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* untested */
-/* { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/ /* untested */
-/* { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/ /* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_highmono",N_("600x600 DPI HIGH MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* untested */
+ { 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(9_K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI PHOTO HIGHEST pro"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGHEST HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH plusGlossy"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/gloss/PhotoFilm"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO DRAFT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/ /* untested */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI PHOTO HIGHEST pro"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGHEST HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH plusGlossy"),INKSET(9_C5M5Y5K5c9m9_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/gloss/PhotoFilm"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH pro/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO matte/gloss/HiRes"),INKSET(9_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO DRAFT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1}, /* untested */
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* T-Shirt */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C5M5Y5K5_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
DECLARE_MODES(canon_BJC_S900,1);
@@ -1438,8 +1419,8 @@ static const canon_mode_t canon_PIXMA_iP4000_modes[] = {
/* plain modes --- same for duplex */
/* NOTE: temporarily allowing plain modes for CD printing */
/* legacy modes were used before printer capabilites were improved to handle real mode from driver */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high2",N_("600x600 DPI HIGH (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},/* legacy */
- { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std2",N_("600x600 DPI (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/* legacy */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_high4",N_("600x600 DPI HIGH (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},/* legacy */
+ { 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_std4",N_("600x600 DPI (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},/* legacy */
{ 600, 600,CANON_INK_CMYK|CANON_INK_K,"600x600dpi_draft2",N_("600x600 DPI DRAFT (LEGACY)"),INKSET(4_C2M2Y2K2),16,MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,0},/* legacy */
/* actual printer modes --- same as for iP4100 */
{ 600, 600,CANON_INK_CcMmYK|CANON_INK_K,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K2c4m4k4p),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -1695,7 +1676,7 @@ DECLARE_MODES(canon_PIXMA_iP6700,1);
/* ------------------------------Start of MP series------------------------------ */
-/* MP5, MP10 */
+/* MP5, MP10, MPC190, MPC200 */
static const canon_mode_t canon_PIXMA_MP5_modes[] = {
/* plain modes */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C4M4Y4K3),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_MP360,NULL,1.0,1.0,NULL,NULL,NULL,3},
@@ -1754,6 +1735,34 @@ static const canon_mode_t canon_PIXMA_MP55_modes[] = {
};
DECLARE_MODES(canon_PIXMA_MP55,2);
+static const canon_mode_t canon_PIXMA_MPC400_modes[] = {
+ /* plain modes */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,1},/* untested */
+ { 300, 300,CANON_INK_K|CANON_INK_CMYK,"300x300dpi_draft",N_("300x300 DPI DRAFT"),INKSET(4_C2M2Y2K2),8,0,NULL,1.0,1.0,NULL,NULL,NULL,0},
+ /* photo modes (PPother, PPmatte are experimental) */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGHEST HiRes,Glossy,GlossyPhotoCard,Matte"),INKSET(9_C4M4Y4K2c4m4y4twobit),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH Pro,GlossyFilm"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes,Glossy,GlossyPhotoCard,Matte,Other"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo2",N_("600x600 DPI PHOTO Pro,GlossyFilm"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes,Glossy,GlossyPhotoCard,Matte,Other"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT HiRes,Matte"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* inkjet Hagaki: experimental as not included in overseas model drivers */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO HIGH inkjet Hagaki"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_photo4",N_("600x600 DPI PHOTO inkjet Hagaki"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Transparency */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohphigh",N_("600x600 DPI HIGH Transparency"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_ohp",N_("600x600 DPI Transparency"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* T-shirt */
+ { 600, 600,CANON_INK_CcMmYyK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C2M2Y2K2c2m2y2),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki (Hagaki is experimental as not included in overseas model drivers) */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(9_C3M3Y2K2_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
+};
+DECLARE_MODES(canon_PIXMA_MPC400,1);
+
static const canon_mode_t canon_MULTIPASS_MP150_modes[] = {
/* plain modes */
{ 600, 600,CANON_INK_CcMmYyK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y4K2c4m4y4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3}, /* subtract 0x60 from cmy */
@@ -2665,36 +2674,36 @@ DECLARE_MODES(canon_MULTIPASS_MP710,1);
static const canon_mode_t canon_MULTIPASS_MP900_modes[] = {
/* plain modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* mono */
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO LOW"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO / DRAFT PHOTO HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO / DRAFT PHOTO HiRes"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* inkjet Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(9_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft4",N_("600x600 DPI DRAFT CD"),INKSET(9_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Transparency"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* T-Shirt --- same as plain std */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Env/Hagaki --- same as plain modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(9_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(9_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(9_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono4",N_("600x600 DPI MONO Env/Hagaki"),INKSET(9_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_MULTIPASS_MP900,0);
+DECLARE_MODES(canon_MULTIPASS_MP900,1);
static const canon_mode_t canon_PIXMA_iP2700_modes[] = {
/* plain modes */
@@ -3384,89 +3393,89 @@ DECLARE_MODES(canon_PIXMA_iX7000,1);
/* mono uses bw=2 */
static const canon_mode_t canon_PIXMA_Pro9000_modes[] = {
-/* Plain Modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ /* Plain Modes */
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH 2"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},/* experimental */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* experimental */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* plain mono */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* experimental */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* experimental */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Photo Modes */
/* highest uses R,G so cannot support */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH GlossPro/proPlat/pro"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH GlossPro/proPlat/pro"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* photo mono */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO MONO HIGH / CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonomed",N_("600x600 DPI PHOTO MONO MEDIUM"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO / CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO MONO HIGH / CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonomed",N_("600x600 DPI PHOTO MONO MEDIUM"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO / CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Env/Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki 2"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI MONO HIGH Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki 2"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},/* experimental */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI MONO HIGH Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},/* experimental */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},/* experimental */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* T-shirt */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* board, canvas, FineArt, Museum Etching */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI Board/Canvas/FineArt/Museum"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI Board/Canvas/FineArt/Museum"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
};
-DECLARE_MODES(canon_PIXMA_Pro9000,0);
+DECLARE_MODES(canon_PIXMA_Pro9000,1);
/* all use normal BJ format and ink codes */
/* mono uses bw=2 */
static const canon_mode_t canon_PIXMA_Pro9000mk2_modes[] = {
/* plain modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* plain mono modes */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT 2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes --- highest use RGH so cannot support yet */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM pro/proPlat/"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO gloss"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH gloss"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomed",N_("600x600 DPI PHOTO MEDIUM pro/proPlat/"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO gloss"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(11_C6M6Y6K6c16m16_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjet Hagaki"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* CD */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH CD"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo4",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* photo mono */
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonohigh",N_("600x600 DPI PHOTO MONO HIGH / CD"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonomed",N_("600x600 DPI PHOTO MONO MEDIUM"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomono",N_("600x600 DPI PHOTO MONO / CD"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CcMmYK,"600x600dpi_photomonodraft",N_("600x600 DPI PHOTO MONO DRAFT"),INKSET(11_C16M16Y16K16c16m16),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Env/Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI MONO HIGH Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high2",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI MONO HIGH Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std2",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* T-Shirt */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* board, canvas, FineArt, Museum Etching */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI Board/Canvas/FineArt/Museum"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh5",N_("600x600 DPI Board/Canvas/FineArt/Museum"),INKSET(11_C6M6Y6K6c6m6_c),8,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
};
-DECLARE_MODES(canon_PIXMA_Pro9000mk2,0);
+DECLARE_MODES(canon_PIXMA_Pro9000mk2,1);
/* all modes use normal BJ ink and format codes */
/* However, most modes use RGH inks as well as CMYKcmyk, and so cannot be currently supported */
@@ -3479,16 +3488,16 @@ static const canon_mode_t canon_PIXMA_Pro9500_modes[] = {
/* 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),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO Hagaki STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono2",N_("600x600 DPI MONO PLAIN/Hagaki HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO Hagaki STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},/*untested*/
/* Photo modes: only mono using CMYK-only can be supported currently */
/* this has k instead of K --- also CD */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_photomono",N_("600x600 DPI MONO PHOTO / CD"),INKSET(11_C16M16Y16k16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
};
-DECLARE_MODES(canon_PIXMA_Pro9500,0);
+DECLARE_MODES(canon_PIXMA_Pro9500,1);
/* all modes use normal BJ ink and format codes */
/* However, most modes use RGH inks as well as CMYKcmyk, and so cannot be currently supported */
@@ -3500,46 +3509,46 @@ static const canon_mode_t canon_PIXMA_Pro9500mk2_modes[] = {
/* 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),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO Hagaki STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono2",N_("600x600 DPI MONO PLAIN/Hagaki HIGH"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_highmono",N_("600x600 DPI MONO Hagaki STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_mono",N_("600x600 DPI MONO PLAIN STD"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draftmono2",N_("600x600 DPI MONO DRAFT2"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Photo modes: only mono using CMYK-only can be supported currently */
/* this has k instead of K --- also CD */
{ 600, 600,CANON_INK_CMYK,"600x600dpi_photomono",N_("600x600 DPI MONO PHOTO / CD"),INKSET(11_C16M16Y16k16),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,4},
};
-DECLARE_MODES(canon_PIXMA_Pro9500mk2,0);
+DECLARE_MODES(canon_PIXMA_Pro9500mk2,1);
/* iP7100 */
/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
static const canon_mode_t canon_PIXMA_iP7100_modes[] = {
/* plain modes: color */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Hagaki/Env */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* plain modes: mono */
{ 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Fine Art*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_PIXMA_iP7100,0);
+DECLARE_MODES(canon_PIXMA_iP7100,2);
static const canon_mode_t canon_PIXMA_iP7200_modes[] = {
/* plain - used for mono also. For duplex use CMYKk */
@@ -3589,101 +3598,101 @@ DECLARE_MODES(canon_PIXMA_iP7500,1);
/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
static const canon_mode_t canon_PIXMA_iP8100_modes[] = {
/* plain modes: color */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Hagaki/Env */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* plain modes: mono */
{ 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
/* one mode for PPpro ud1, hi cannot be supported yet as it uses Red ink (R) in addtion to CMYKcm */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO / CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Fine Art*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_PIXMA_iP8100,0);
+DECLARE_MODES(canon_PIXMA_iP8100,2);
/* iP8500 */
/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
static const canon_mode_t canon_PIXMA_iP8500_modes[] = {
/* plain modes */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Env/Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* plain modes: mono */
{ 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
/* some modes cannot be supported yet as they use Red (R) and Green (G) ink in addition to CMYKcm */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plus"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusDS/glossy"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO HiRes/other"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO DRAFT plus"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusDS/glossy"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* CD CMYKcm */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft3",N_("600x600 DPI DRAFT CD"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* Transparency CMYK */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* T-Shirt CMYK */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_PIXMA_iP8500,0);
+DECLARE_MODES(canon_PIXMA_iP8500,2);
/* iP8600 */
/* ESC (r command is 0x64 but another one befor data is sent: ESC (r 0x62 0x0 */
static const canon_mode_t canon_PIXMA_iP8600_modes[] = {
/* plain modes: color */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Env/Hagaki */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* plain modes: mono */
{ 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
/* one mode for PPpro ud1, hi, and PPplusGlossy hi cannot be supported yet as it uses Red (R) and Green (G) ink in addition to CMYKcm */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH plusDS/gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/plusGlossy/matte/HiRes CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH plusDS/gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro/plusGlossy/matte/HiRes CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO plusDS/gloss"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki separate out */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Fine Art */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI PHOTO FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_PIXMA_iP8600,0);
+DECLARE_MODES(canon_PIXMA_iP8600,2);
/* for this printer most photo modes have grey (H) ink. */
/* borderless: plain (qlty 2 only), hagaki (qlty 3 and 2) use std mode with CMYk, those with photo modes unchanged. No env, HiRes, TST for borderless */
@@ -3713,36 +3722,36 @@ DECLARE_MODES(canon_PIXMA_iP8700,1);
/* ESC (r command before data is sent: ESC (r 0x62 0x0 */
static const canon_mode_t canon_PIXMA_iP9910_modes[] = {
/* plain modes: color */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_high2",N_("600x600 DPI HIGH (duplex)"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI plain/T-Shirt"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI LOW"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft2",N_("600x600 DPI DRAFT"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* Hagaki/Env */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(11_C6M6Y6K9c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
{ 600, 600,CANON_INK_CMYK,"600x600dpi_draft3",N_("600x600 DPI DRAFT Env/Hagaki"),INKSET(11_C2M2Y2K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* plain modes: mono */
{ 600, 600,CANON_INK_K,"600x600dpi_mono",N_("600x600 DPI MONO"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
{ 600, 600,CANON_INK_K,"600x600dpi_draftmono",N_("600x600 DPI MONO DRAFT"),INKSET(11_K2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,0},
/* photo modes */
/* one mode for PPpro hi, and PPplusGlossy hi cannot be supported yet as it uses Red (R) and Green (G) ink in addtion to CMYKcm */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH plusDS/gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/plusGlossy/matte/HiRes/other CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO gloss CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH plusDS/gloss"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGH matte/HiRes"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo",N_("600x600 DPI PHOTO pro"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo2",N_("600x600 DPI PHOTO pro/plusGlossy/matte/HiRes/other CD High"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft",N_("600x600 DPI PHOTO gloss CD Draft"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photodraft2",N_("600x600 DPI PHOTO DRAFT plusGlossy"),INKSET(11_C5M5Y5K5c5m5_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,1},
/* inkjet Hagaki separate out */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH inkjetHagaki"),INKSET(11_C6M6Y6K6c16m16_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photo3",N_("600x600 DPI inkjetHagaki"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,2},
/* Fine Art */
-/* { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},*/
+ { 600, 600,CANON_INK_CcMmYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH FineArt"),INKSET(11_C6M6Y6K6c6m6_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_PRO,NULL,1.0,1.0,NULL,NULL,NULL,4},
/* Transparency */
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},*/
-/* { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},*/
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_std4",N_("600x600 DPI Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_draft4",N_("600x600 DPI DRAFT Transparency"),INKSET(11_C6M6Y6K6_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,1},
};
-DECLARE_MODES(canon_PIXMA_iP9910,0);
+DECLARE_MODES(canon_PIXMA_iP9910,2);
static const canon_mode_t canon_PIXMA_MG2100_modes[] = {
/* plain modes */
@@ -3818,7 +3827,7 @@ static const canon_mode_t canon_PIXMA_MG3100_modes[] = {
{ 600, 600,CANON_INK_CMY,"600x600dpi_high4",N_("600x600 DPI HIGH Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_CMY,"600x600dpi_std4",N_("600x600 DPI STANDARD Env/Hagaki COLOR-ONLY"),INKSET(13_C3M3Y2K3off),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_PIXMA_MG3100,1);
+DECLARE_MODES(canon_PIXMA_MG3100,2);
/* same as MG3100, but try to use inktypes to control use of inks in inkets */
static const canon_mode_t canon_PIXMA_MG3500_modes[] = {
@@ -3835,7 +3844,23 @@ static const canon_mode_t canon_PIXMA_MG3500_modes[] = {
{ 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
{ 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
};
-DECLARE_MODES(canon_PIXMA_MG3500,1);
+DECLARE_MODES(canon_PIXMA_MG3500,2);
+
+static const canon_mode_t canon_PIXMA_MG3600_modes[] = {
+ /* plain modes - borderless uses CMY */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C4M4Y3K4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_high5",N_("600x600 DPI HIGH (color)"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ { 300, 300,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"300x300dpi",N_("300x300 DPI"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* Photo modes (incl. inkjet Hagaki, inkjet Photo Hagaki) */
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh2",N_("600x600 DPI PHOTO HIGHEST proPlat"),INKSET(13_C14M14Y14c14m14y14),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,4},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH / T-Shirt"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMY,"600x600dpi_photo",N_("600x600 DPI PHOTO"),INKSET(13_C4M4Y4),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/Hagaki modes - borderless uses CMY */
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMY|CANON_INK_CMYK,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_BLACK|MODE_FLAG_COLOR,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG3600,2);
static const canon_mode_t canon_PIXMA_MG5100_modes[] = {
/* plain modes --- duplex no mono */
@@ -3950,6 +3975,29 @@ static const canon_mode_t canon_PIXMA_MG5500_modes[] = {
};
DECLARE_MODES(canon_PIXMA_MG5500,1);
+static const canon_mode_t canon_PIXMA_MG5700_modes[] = {
+ /* plain modes -- B/W also */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(13_C6M6Y4K3k4_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(13_C3M3Y2K3k3_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Duplex CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH duplex"),INKSET(13_C6M6Y4K3k4on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI duplex"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* draft */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(13_C2M2Y2K2),8,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo modes CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH (incl. Photo Hagaki)"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO (incl. Photo Hagaki)"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet hagaki CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh2",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo2",N_("600x600 DPI inkjet Hagaki"),INKSET(13_C5M5Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/(plain)Hagaki*/
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(13_C3M3Y2K3k3on_c),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* T-Shirt CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_tshirt",N_("600x600 DPI T-SHIRT"),INKSET(13_C6M6Y4k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+};
+DECLARE_MODES(canon_PIXMA_MG5700,1);
+
/* for this printer most photo modes have grey (H) ink. */
static const canon_mode_t canon_PIXMA_MG6100_modes[] = {
/* plain modes --- duplex no mono CMYK */
@@ -4053,6 +4101,32 @@ static const canon_mode_t canon_PIXMA_MG6500_modes[] = {
DECLARE_MODES(canon_PIXMA_MG6500,1);
/* for this printer most photo modes have grey (H) ink. */
+/* borderless: plain (qlty 2 only), hagaki (qlty 3 and 2) use std mode with CMYk, those with photo modes unchanged. No env, HiRes, TST for borderless */
+static const canon_mode_t canon_PIXMA_MG7700_modes[] = {
+ /* plain modes simplex */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(30_K3C6M6Y4k4off4bit),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi",N_("600x600 DPI"),INKSET(30_K3C3M3Y2k3off2bit),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* duplex CMYKk */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high2",N_("600x600 DPI HIGH duplex"),INKSET(30_K3C6M6Y4k4on4bit),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std2",N_("600x600 DPI duplex"),INKSET(30_K3C3M3Y2k3on2bit),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* plain draft (also duplex) */
+ { 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_draft",N_("600x600 DPI DRAFT"),INKSET(30_K2C2M2Y2),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_IP8500,NULL,1.0,1.0,NULL,NULL,NULL,1},
+ /* photo modes CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh",N_("600x600 DPI PHOTO HIGH matte/HiRes/T-shirt"),INKSET(30_M8K8m4k4H8off4bit),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo",N_("600x600 DPI PHOTO matte/HiRes"),INKSET(30_M6K6m4k4H6off4bit),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* CD CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh3",N_("600x600 DPI HIGH CD"),INKSET(30_C5M5Y5k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo3",N_("600x600 DPI CD"),INKSET(30_C5M5Y5k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_CD,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* inkjet Hagaki CMYk */
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photohigh4",N_("600x600 DPI HIGH inkjet Hagaki"),INKSET(30_C5M5Y5k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_CMYK,"600x600dpi_photo4",N_("600x600 DPI Hagaki"),INKSET(30_C5M5Y5k4),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+ /* Env/(plain)Hagaki*/
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_high3",N_("600x600 DPI HIGH Env/Hagaki"),INKSET(30_K3C3M3Y2k3on2bit),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,3},
+ { 600, 600,CANON_INK_K|CANON_INK_CMYKk,"600x600dpi_std3",N_("600x600 DPI Env/Hagaki"),INKSET(30_K3C3M3Y2k3on2bit),16,MODE_FLAG_EXTENDED_T,NULL,1.0,1.0,NULL,NULL,NULL,2},
+};
+DECLARE_MODES(canon_PIXMA_MG7700,1);
+
+/* for this printer most photo modes have grey (H) ink. */
static const canon_mode_t canon_PIXMA_MG8100_modes[] = {
/* plain modes --- duplex no mono CMYK */
{ 600, 600,CANON_INK_K|CANON_INK_CMYK,"600x600dpi_high",N_("600x600 DPI HIGH"),INKSET(30_K2C6M6Y4k4),16,MODE_FLAG_EXTENDED_T|MODE_FLAG_NODUPLEX,NULL,1.0,1.0,NULL,NULL,NULL,3},
diff --git a/src/main/canon-printers.h b/src/main/canon-printers.h
index 2447c29..fae13b9 100644
--- a/src/main/canon-printers.h
+++ b/src/main/canon-printers.h
@@ -636,7 +636,7 @@ static const canon_cap_t canon_model_capabilities[] =
618, 936, /* 8.58" x 13 " */
11, 9, 10, 18, /* unconfirmed */
&canon_default_slotlist,
- CANON_CAP_STD0 | CANON_CAP_cart,0,
+ CANON_CAP_STD0 | CANON_CAP_a | CANON_CAP_cart,0,
2,0,
0, /* Upper/Lower Cassette option */
NULL,
@@ -1970,7 +1970,7 @@ static const canon_cap_t canon_model_capabilities[] =
&canon_PIXMA_MG5400_slotlist, /* iP7200 uses ESC (r 0x68 command for CD tray only */
CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_px|CANON_CAP_v|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
3,9, /* ESC (l and (P command lengths */
- 0, /* Upper/Lower Cassette option */
+ 1, /* Upper/Lower Cassette option */
control_cmd_PIXMA_MG5300, /* features Uses ESC (r only for CD media */
&canon_PIXMA_iP7200_modelist,
&canon_PIXMA_MG5400_paperlist,
@@ -2509,35 +2509,57 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
- { /* Canon PIXMA MP5 */
+ { /* Canon PIXUS MP5, PIXUS MP10, SmartBase MPC190, SmartBase MPC200 */
+ /* these printers declare themselves as USB mass storage devices
+ rather than printers, and require a special backend. Thus
+ they are not currently included in the supported printers */
"PIXMA MP5", 3, /*model, model_id*/
INCH(17/2), INCH(23), /* max paper width and height */ /* assumed */
10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
- &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder */
CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
2,0, /* ESC (l and (P command lengths */
0, /* Upper/Lower Cassette option */
control_cmd_PIXMA_iP2700, /*features */
- &canon_MULTIPASS_MP150_modelist,
- &canon_MULTIPASS_MP150_paperlist,
- &canon_MULTIPASS_MP150_modeuselist,
+ &canon_PIXMA_MP5_modelist,
+ &canon_PIXMA_MP5_paperlist,
+ &canon_PIXMA_MP5_modeuselist,
NULL,
NULL,
NULL,
NULL /* KYMC */
},
- { /* Canon PIXMA MP55 */
+ { /* Canon PIXUS MP55 */
+ /* Unknown if requires special backend or not, left in supported
+ printers as experimental */
"PIXMA MP55", 3, /*model, model_id*/
INCH(17/2), INCH(23), /* max paper width and height */ /* assumed */
10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
- &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder */
CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0,
2,0, /* ESC (l and (P command lengths */
0, /* Upper/Lower Cassette option */
control_cmd_BJC_i550, /*features */
- &canon_MULTIPASS_MP150_modelist,
- &canon_MULTIPASS_MP150_paperlist,
- &canon_MULTIPASS_MP150_modeuselist,
+ &canon_PIXMA_MP55_modelist,
+ &canon_PIXMA_MP55_paperlist,
+ &canon_PIXMA_MP55_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ NULL /* KYMC */
+ },
+ { /* Canon PIXMA MPC400, MPC600F */
+ "PIXMA MPC400", 3, /* model, model_id */
+ INCH(17/2), INCH(23), /* max paper width and height: assumed */
+ 10, 10, 9, 15, /* border_left, border_right, border_top, border_bottom: assumed */
+ &canon_MULTIPASS_MP150_slotlist, /* these models only have an auto sheet feeder */
+ CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_BORDERLESS,0, /* borderless not supported in Windows driver, adding experimentally */
+ 2,0, /* ESC (l and (P command lengths */
+ 0, /* Upper/Lower Cassette option */
+ control_cmd_BJC_i6100, /* features */
+ &canon_PIXMA_MPC400_modelist,
+ &canon_PIXMA_MPC400_paperlist,
+ &canon_PIXMA_MPC400_modeuselist,
NULL,
NULL,
NULL,
@@ -2917,6 +2939,24 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA MG3600 */
+ /* no support for Esc (s and ESC (u commands yet for duplex */
+ "PIXMA MG3600", 3, /*model, model_id*/
+ INCH(17/2), 1917, /* max paper width and height */ /* unconfirmed */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG2100_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_T|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ 0, /* Upper/Lower Cassette option */
+ control_cmd_PIXMA_MG3500, /* features: also uses CAP_T */
+ &canon_PIXMA_MG3600_modelist,
+ &canon_PIXMA_MG3600_paperlist, /* Address side media added for inkjet and photo Hagaki, name of HagakiA changed to Hagaki (A) */
+ &canon_PIXMA_MG3600_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA MG5100 */
"PIXMA MG5100", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
@@ -3020,6 +3060,24 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA MG5700 */
+ /* no support for Esc (s and ESC (u commands yet for duplex */
+ "PIXMA MG5700", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* not confirmed yet */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_MULTIPASS_MX7600_slotlist,
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_v|CANON_CAP_w|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ 0, /* Upper/Lower Cassette option */
+ control_cmd_PIXMA_MG5600,
+ &canon_PIXMA_MG5700_modelist,
+ &canon_PIXMA_MG3600_paperlist, /* new media types September 2015 */
+ &canon_PIXMA_MG5700_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA MG6100 */
"PIXMA MG6100", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
@@ -3044,7 +3102,7 @@ static const canon_cap_t canon_model_capabilities[] =
&canon_PIXMA_MG5200_slotlist, /* ESC (r only for CD media */
CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
3,6, /* ESC (l and (P command lengths */
- 1, /* Upper/Lower Cassette option */
+ 0, /* Upper/Lower Cassette option */
control_cmd_PIXMA_MG5300, /* features */
&canon_PIXMA_MG6200_modelist,
&canon_PIXMA_MG6100_paperlist,
@@ -3122,6 +3180,23 @@ static const canon_cap_t canon_model_capabilities[] =
NULL,
iP4500_channel_order
},
+ { /* Canon PIXMA MG7700 */
+ "PIXMA MG7700", 3, /*model, model_id*/
+ INCH(17/2), INCH(14), /* max paper width and height */ /* not confirmed yet */
+ 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */
+ &canon_PIXMA_MG5400_slotlist, /* ESC (r only for CD media */
+ CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_rr|CANON_CAP_v|CANON_CAP_w|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
+ 3,9, /* ESC (l and (P command lengths */
+ 1, /* Upper/Lower Cassette option */
+ control_cmd_PIXMA_MG5600,
+ &canon_PIXMA_MG7700_modelist,
+ &canon_PIXMA_MG7700_paperlist,
+ &canon_PIXMA_MG7700_modeuselist,
+ NULL,
+ NULL,
+ NULL,
+ iP4500_channel_order
+ },
{ /* Canon PIXMA MG8100 */
"PIXMA MG8100", 3, /*model, model_id*/
INCH(17/2), 1917, /* max paper width and height */ /* from linux driver v3.40 */
@@ -3402,7 +3477,7 @@ static const canon_cap_t canon_model_capabilities[] =
&canon_PIXMA_MX720_slotlist,
CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
3,9, /* ESC (l and (P command lengths */
- 0, /* Upper/Lower Cassette option */
+ 1, /* Upper/Lower Cassette option */
control_cmd_PIXMA_MG5300,
&canon_PIXMA_MX720_modelist,
&canon_PIXMA_MG3200_paperlist,
@@ -3487,7 +3562,7 @@ static const canon_cap_t canon_model_capabilities[] =
&canon_PIXMA_MG5400_slotlist, /* iP7200 uses ESC (r 0x68 command for CD tray only */
CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_v|CANON_CAP_XML|CANON_CAP_BORDERLESS,0,
3,9, /* ESC (l and (P command lengths */
- 0, /* Upper/Lower Cassette option */
+ 1, /* Upper/Lower Cassette option */
control_cmd_PIXMA_MG5300, /* features Uses ESC (r only for CD media */
&canon_PIXMA_MX920_modelist,
&canon_PIXMA_MG5400_paperlist,
diff --git a/src/main/print-canon.c b/src/main/print-canon.c
index f5d0714..0b13445 100644
--- a/src/main/print-canon.c
+++ b/src/main/print-canon.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-canon.c,v 1.569 2015/05/26 16:33:07 gernot2270 Exp $"
+ * "$Id: print-canon.c,v 1.586 2015/10/01 15:22:29 gernot2270 Exp $"
*
* Print plug-in CANON BJL driver for the GIMP.
*
@@ -105,26 +105,26 @@ pack_pixels3_5(unsigned char* buf,int len)
{
int read_pos = 0;
int write_pos = 0;
- int shift = 7;
+ int shift = 4;
while(read_pos < len)
{
- /* read 3pixels at 3 bit */
+ /* read 3pixels at 4 bit */
unsigned short value = buf[read_pos] << 8;
if(read_pos+1 < len)
value += buf[read_pos + 1];
- if(shift)
+ if(shift) /*4,0*/
value >>= shift;
/* write 8bit value representing the 12 bit pixel combination */
- buf[write_pos] = twelve2eight[value & 1023];
+ buf[write_pos] = twelve2eight[value & 4095];
++write_pos;
if(shift == 0)
{
- shift = 7;
+ shift = 4;
read_pos += 2;
}
else
{
- shift -= 1;
+ shift -= 4;
++read_pos;
}
}
@@ -137,26 +137,26 @@ pack_pixels3_6(unsigned char* buf,int len)
{
int read_pos = 0;
int write_pos = 0;
- int shift = 7;
+ int shift = 4;
while(read_pos < len)
{
- /* read 3pixels at 3 bit */
+ /* read 3pixels at 4 bit */
unsigned short value = buf[read_pos] << 8;
if(read_pos+1 < len)
value += buf[read_pos + 1];
- if(shift)
+ if(shift) /*4,0*/
value >>= shift;
/* write 8bit value representing the 12 bit pixel combination */
- buf[write_pos] = twelve2eight2[value & 1023];
+ buf[write_pos] = twelve2eight2[value & 4095];
++write_pos;
if(shift == 0)
{
- shift = 7;
+ shift = 4;
read_pos += 2;
}
else
{
- shift -= 1;
+ shift -= 4;
++read_pos;
}
}
@@ -179,17 +179,18 @@ pack_pixels3_6(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_T 0x10000ul /* cartridge selection for PIXMA printers with Black and Color carts */
+#define CANON_CAP_P 0x20000ul /* related to media type selection */
+#define CANON_CAP_DUPLEX 0x40000ul /* duplex printing */
+#define CANON_CAP_XML 0x80000ul /* use of XML at start and end of print data */
#define CANON_CAP_CARTRIDGE 0x100000ul /* not sure of this yet */
#define CANON_CAP_M 0x200000ul /* not sure of this yet */
#define CANON_CAP_S 0x400000ul /* not sure of this yet */
#define CANON_CAP_cart 0x800000ul /* BJC printers with Color, Black, Photo options */
-#define CANON_CAP_BORDERLESS 0x1000000ul /* borderless printing */
+#define CANON_CAP_BORDERLESS 0x1000000ul /* borderless (fullbleed) printing */
#define CANON_CAP_NOBLACK 0x2000000ul /* no Black cartridge selection */
#define CANON_CAP_v 0x4000000ul /* not sure of this yet */
+#define CANON_CAP_w 0x8000000ul /* related to media type selection */
#define CANON_CAP_STD0 (CANON_CAP_b|CANON_CAP_c|CANON_CAP_d|\
CANON_CAP_l|CANON_CAP_q|CANON_CAP_t)
@@ -520,6 +521,7 @@ static const char* canon_families[] = {
"PIXMA P", /* 13 */
"MAXIFY iB", /* 14 */
"MAXIFY MB", /* 15 */
+ "PIXMA MPC", /* 16 */
};
/* canon model ids look like the following
@@ -2605,7 +2607,7 @@ canon_size_type(const stp_vars_t *v, const canon_cap_t * caps)
/* if (!strcmp(name,"CD5Inch")) return 0x57; */ /* CD Tray H */
/* Fine Art paper codes */
- /* MG6300, MG6500, MG6700, MG7100, MG7500 (only A4) */
+ /* MG6300, MG6500, MG6700, MG7100, MG7500 (only A4), MG6900, MG7700 */
/* iP8700, iX6800 (A3 */
/* if (!strcmp(name,"A4")) return 0x58; */ /* FineArt A4 35mm border */
/* if (!strcmp(name,"Letter")) return 0x5a; */ /* FineArt Letter 35mm border */
@@ -2667,7 +2669,15 @@ static stp_parameter_list_t
canon_list_parameters(const stp_vars_t *v)
{
stp_parameter_list_t *ret = stp_parameter_list_create();
+ stp_parameter_list_t *tmp_list;
+
int i;
+
+ /* Set up dithering */
+ tmp_list = stp_dither_list_parameters(v);
+ stp_parameter_list_append(ret, tmp_list);
+ stp_parameter_list_destroy(tmp_list);
+
for (i = 0; i < the_parameter_count; i++)
stp_parameter_list_add_param(ret, &(the_parameters[i]));
for (i = 0; i < float_parameter_count; i++)
@@ -2732,27 +2742,15 @@ canon_parameters(const stp_vars_t *v, const char *name,
}else{
for (i = 0; i < papersizes; i++) {
const stp_papersize_t *pt = stp_get_papersize_by_index(i);
+ if (pt->paper_size_type != PAPERSIZE_TYPE_STANDARD &&
+ pt->paper_size_type != PAPERSIZE_TYPE_ENVELOPE)
+ continue;
if (strlen(pt->name) > 0 &&
pt->width <= width_limit && pt->height <= height_limit){
stp_string_list_add_string(description->bounds.str,
pt->name, gettext(pt->text));
}
}
- /*
- {
- for (i = 0; i < papersizes; i++)
- {
- const stp_papersize_t *pt = stp_get_papersize_by_index(i);
- if (verify_papersize(v, pt))
- stp_string_list_add_string(description->bounds.str,
- pt->name, gettext(pt->text));
- }
- }
-
-
- */
-
-
}
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
@@ -2761,9 +2759,9 @@ canon_parameters(const stp_vars_t *v, const char *name,
{
const char* input_slot = stp_get_string_parameter(v, "InputSlot");
description->bounds.str = stp_string_list_create();
- if (input_slot && !strcmp(input_slot,"CD") &&
+ if ( (!input_slot || !strcmp(input_slot,"CD")) &&
(!stp_get_string_parameter(v, "PageSize") ||
- strcmp(stp_get_string_parameter(v, "PageSize"), "CDCustom") != 0))
+ strcmp(stp_get_string_parameter(v, "PageSize"), "CDCustom") != 0) )
{
stp_string_list_add_string
(description->bounds.str, "None", _("Normal"));
@@ -2781,9 +2779,9 @@ canon_parameters(const stp_vars_t *v, const char *name,
description->bounds.dimension.lower = 16 * 10 * 72 / 254;
description->bounds.dimension.upper = 43 * 10 * 72 / 254;
description->deflt.dimension = 43 * 10 * 72 / 254;
- if (input_slot && !strcmp(input_slot,"CD") &&
+ if ( (!input_slot || !strcmp(input_slot,"CD")) &&
(!stp_get_string_parameter(v, "PageSize") ||
- strcmp(stp_get_string_parameter(v, "PageSize"), "CDCustom") == 0))
+ strcmp(stp_get_string_parameter(v, "PageSize"), "CDCustom") == 0) )
description->is_active = 1;
else
description->is_active = 0;
@@ -2794,9 +2792,9 @@ canon_parameters(const stp_vars_t *v, const char *name,
description->bounds.dimension.lower = 65 * 10 * 72 / 254;
description->bounds.dimension.upper = 120 * 10 * 72 / 254;
description->deflt.dimension = 329;
- if (input_slot && !strcmp(input_slot,"CD") &&
+ if ( (!input_slot || !strcmp(input_slot,"CD")) &&
(!stp_get_string_parameter(v, "PageSize") ||
- strcmp(stp_get_string_parameter(v, "PageSize"), "CDCustom") == 0))
+ strcmp(stp_get_string_parameter(v, "PageSize"), "CDCustom") == 0) )
description->is_active = 1;
else
description->is_active = 0;
@@ -2808,7 +2806,7 @@ canon_parameters(const stp_vars_t *v, const char *name,
description->bounds.dimension.lower = -15;
description->bounds.dimension.upper = 15;
description->deflt.dimension = 0;
- if (input_slot && !strcmp(input_slot,"CD"))
+ if (!input_slot || !strcmp(input_slot,"CD"))
description->is_active = 1;
else
description->is_active = 0;
@@ -2822,7 +2820,7 @@ canon_parameters(const stp_vars_t *v, const char *name,
description->deflt.str = NULL;
for(i=0;i<caps->modelist->count;i++){
#if 0
- if(!(input_slot && !strcmp(input_slot,"CD") && !(caps->modelist->modes[i].flags & MODE_FLAG_CD)))
+ if(!((!input_slot || !strcmp(input_slot,"CD")) && !(caps->modelist->modes[i].flags & MODE_FLAG_CD)))
#endif
stp_string_list_add_string(description->bounds.str,
caps->modelist->modes[i].name, gettext(caps->modelist->modes[i].text));
@@ -2905,28 +2903,30 @@ canon_parameters(const stp_vars_t *v, const char *name,
int count = caps->slotlist->count;
description->bounds.str= stp_string_list_create();
description->deflt.str= canon_slot_list[0].name;
-
+
for (i = 0; i < count; i ++)
stp_string_list_add_string(description->bounds.str,
- canon_slot_list[i].name,
- gettext(canon_slot_list[i].text));
+ canon_slot_list[i].name,
+ gettext(canon_slot_list[i].text));
}
else if (strcmp(name, "CassetteTray") == 0)
- {
- description->bounds.str= stp_string_list_create();
- if (caps->CassetteTray_Opts == 1) {
- stp_string_list_add_string
- (description->bounds.str, "Upper", _("Upper Tray"));
- stp_string_list_add_string
- (description->bounds.str, "Lower", _("Lower Tray"));
- } else {
- /* make sure to have at least a default value: no choice */
- stp_string_list_add_string
- (description->bounds.str, "None", _("None"));
- }
+ {
+ description->bounds.str= stp_string_list_create();
+ description->is_active = 0;
+ if (caps->CassetteTray_Opts) {
+ const char* input_slot = stp_get_string_parameter(v, "InputSlot");
+ stp_string_list_add_string
+ (description->bounds.str, "Default", _("Driver-Controlled"));
+ stp_string_list_add_string
+ (description->bounds.str, "Upper", _("Upper Tray/Cassette 1"));
+ stp_string_list_add_string
+ (description->bounds.str, "Lower", _("Lower Tray/Cassette 2"));
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
+ if (!input_slot || !strcmp(input_slot,"Cassette"))
+ description->is_active = 1;
}
+ }
else if (strcmp(name, "PrintingMode") == 0)
{
int found_color, found_mono;
@@ -4049,7 +4049,7 @@ canon_init_setPageMargins2(const stp_vars_t *v, canon_privdata_t *init)
if ((init->caps->features & CANON_CAP_px) ) {
/* workaround for CD writing that uses CANON_CAP_px --- fix with capabilities */
- if ( !( input_slot && !(strcmp(input_slot,"CD")) ) || !(strcmp(init->caps->name,"PIXMA iP4500")) || !(strcmp(init->caps->name,"PIXMA iP4600")) || !(strcmp(init->caps->name,"PIXMA iP4700")) || !(strcmp(init->caps->name,"PIXMA iP4800")) || !(strcmp(init->caps->name,"PIXMA iP4900")) || !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MG5200")) || !(strcmp(init->caps->name,"PIXMA MG5300")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA MP710")) || !(strcmp(init->caps->name,"PIXMA iP3000")) || !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) )
+ if ( !( input_slot && !(strcmp(input_slot,"CD")) ) || !(strcmp(init->caps->name,"PIXMA iP4500")) || !(strcmp(init->caps->name,"PIXMA iP4600")) || !(strcmp(init->caps->name,"PIXMA iP4700")) || !(strcmp(init->caps->name,"PIXMA iP4800")) || !(strcmp(init->caps->name,"PIXMA iP4900")) || !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MP980")) || !(strcmp(init->caps->name,"PIXMA MP990")) || !(strcmp(init->caps->name,"PIXMA MG5200")) || !(strcmp(init->caps->name,"PIXMA MG5300")) || !(strcmp(init->caps->name,"PIXMA MG6100")) || !(strcmp(init->caps->name,"PIXMA MG6200")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) || !(strcmp(init->caps->name,"PIXMA MG7700")) || !(strcmp(init->caps->name,"PIXMA MG8100")) || !(strcmp(init->caps->name,"PIXMA MG8200")) || !(strcmp(init->caps->name,"PIXMA iP9910")) || !(strcmp(init->caps->name,"PIXMA MP710")) || !(strcmp(init->caps->name,"PIXMA iP3000")) || !(strcmp(init->caps->name,"PIXMA Pro9000")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) )
/* need to check if iP9910, MP710, iP3000, Pro9000 use Esc (p */
{
@@ -4228,15 +4228,86 @@ static void
canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
{
unsigned char arg_ESCP_1, arg_ESCP_2, arg_ESCP_9;
+
+ int width, length;
+ /* const char *media_size = stp_get_string_parameter(v, "PageSize");
+ const stp_papersize_t *pt = NULL; */
+ const char* input_slot = stp_get_string_parameter(v, "InputSlot");
+ const char* input_tray = stp_get_string_parameter(v, "CassetteTray");
+ /* const canon_cap_t * caps= canon_get_model_capabilities(v); */
+ int print_cd = (input_slot && (!strcmp(input_slot, "CD")));
+ int tray_upper = (input_tray && (!strcmp(input_tray, "Upper")));
+ int tray_lower = (input_tray && (!strcmp(input_tray, "Lower")));
+ int tray_user_select;
+ unsigned char user_ESCP_9;
+
if(!(init->caps->features & CANON_CAP_P))
return;
+ /* if (media_size)
+ pt = stp_get_papersize_by_name(media_size); */
+ stp_default_media_size(v, &width, &length);
+ if (tray_upper || tray_lower)
+ tray_user_select=1;
+ else
+ tray_user_select=0;
+ if (tray_upper)
+ user_ESCP_9=0x01;
+ else if (tray_lower)
+ user_ESCP_9=0x02;
+ else
+ user_ESCP_9=0x00; /* fall-through setting, but this value is not used */
+
arg_ESCP_1 = (init->pt) ? canon_size_type(v,init->caps): 0x03;
arg_ESCP_2 = (init->pt) ? init->pt->media_code_P: 0x00;
- if ( !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MG5400")) || !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) ) {
- arg_ESCP_9 = 0x02;
+
+ /* Code for last argument in 9-byte ESC (P printers with and upper and lower tray included in the cassette input source
+ The intention appears to be to allow printing of photos and non-photo paper without needing to change trays.
+ Note, envelopes are printed from the lower tray.
+
+ Upper tray specification from MG7700 user manual:
+ Min width: 3.5 inches / 89.0 mm (L size)
+ Min height: 5 inches / 127.0 mm (L size)
+ Max width: 7.87 inches / 200.0 mm (marked up to 5 inches)
+ Max height: 7.28 inches / 184.9 mm
+
+ Lower tray specification:
+ Min width: 3.54 inches / 90.0 mm (takes business envelopes)
+ Min height: 7.29 inches / 185.0 mm
+ Max width: 8.5 inches / 215.9 mm
+ Max height: 14 inches / 355.6 mm
+
+ Conditions:
+ Init: Upper tray
+ Media:
+ Hagaki, Photo media --> upper tray
+ Envelopes (argESCP_2 == 0x08) --> lower tray
+ Other --> lower tray
+ Size: Length:
+ < 7.29 inches (524 pt = 184.85 mm; 525 pt = 185.2 mm ) --> upper tray
+ >=7.29 inches (524 pt = 184.85 mm; 525 pt = 185.2 mm ) --> lower tray
+
+ Printers with this capability:
+ Code 0xd for cassette (standard cassette code is 0x8)
+
+ MG5400
+ MG6300
+ MG6500
+ MG6700
+ MG6900 - same as MG7700
+ MG7500
+ MG7700
+ iP7200
+ MX720
+ MX920
+ */
+
+
+ if ( !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MG5400")) || !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) || !(strcmp(init->caps->name,"PIXMA MG7700")) || !(strcmp(init->caps->name,"PIXMA MX720")) || !(strcmp(init->caps->name,"PIXMA MX920")) ) {
+ /* default: use upper tray of cassette with two trays, condition check later */
+ arg_ESCP_9 = 0x01;
}
- else if ( !(strcmp(init->caps->name,"PIXMA E400")) || !(strcmp(init->caps->name,"PIXMA E460")) || !(strcmp(init->caps->name,"PIXMA E480")) || !(strcmp(init->caps->name,"PIXMA E560")) || !(strcmp(init->caps->name,"PIXMA MG2900")) || !(strcmp(init->caps->name,"PIXMA MG3500")) || !(strcmp(init->caps->name,"PIXMA MG5500")) || !(strcmp(init->caps->name,"PIXMA MG5600")) || !(strcmp(init->caps->name,"PIXMA iP110")) || !(strcmp(init->caps->name,"PIXMA iP2800")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) || !(strcmp(init->caps->name,"MAXIFY iB4000")) || !(strcmp(init->caps->name,"MAXIFY MB2000")) || !(strcmp(init->caps->name,"MAXIFY MB2300")) || !(strcmp(init->caps->name,"PIXMA MX470")) || !(strcmp(init->caps->name,"PIXMA MX490")) ) {
+ else if ( !(strcmp(init->caps->name,"PIXMA E400")) || !(strcmp(init->caps->name,"PIXMA E460")) || !(strcmp(init->caps->name,"PIXMA E480")) || !(strcmp(init->caps->name,"PIXMA E560")) || !(strcmp(init->caps->name,"PIXMA MG2900")) || !(strcmp(init->caps->name,"PIXMA MG3500")) || !(strcmp(init->caps->name,"PIXMA MG3600")) || !(strcmp(init->caps->name,"PIXMA MG5500")) || !(strcmp(init->caps->name,"PIXMA MG5600")) || !(strcmp(init->caps->name,"PIXMA iP110")) || !(strcmp(init->caps->name,"PIXMA iP2800")) || !(strcmp(init->caps->name,"PIXMA iP8700")) || !(strcmp(init->caps->name,"PIXMA iX6800")) || !(strcmp(init->caps->name,"MAXIFY iB4000")) || !(strcmp(init->caps->name,"MAXIFY MB2000")) || !(strcmp(init->caps->name,"MAXIFY MB2300")) || !(strcmp(init->caps->name,"PIXMA MX470")) || !(strcmp(init->caps->name,"PIXMA MX490")) ) {
arg_ESCP_9 = 0xff;
}
@@ -4284,7 +4355,7 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
arg_ESCP_1 = 0x56;
}
/* Tray J from iP7200 onwards */
- if ( !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MG5400")) || !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) || !(strcmp(init->caps->name,"PIXMA MX920")) ) {
+ if ( !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MG5400")) || !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) || !(strcmp(init->caps->name,"PIXMA MG7700")) || !(strcmp(init->caps->name,"PIXMA MX920")) ) {
arg_ESCP_1 = 0x5b;
arg_ESCP_9 = 0x00;
}
@@ -4355,7 +4426,9 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
/* MG6300: CD Tray J : 0x5b */
/* MG6500: CD Tray J : 0x5b */
/* MG6700: CD Tray J : 0x5b */
+ /* MG6900: CD Tray J : 0x5b */
/* MG7500: CD Tray J : 0x5b */
+ /* MG7700: CD Tray J : 0x5b */
/* MG8100: CD Tray G : 0x56 */
/* MG8200: CD Tray G : 0x56 */
/* pro9000:CD Tray E : 0x4c */
@@ -4471,33 +4544,67 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
}
/* workaround for media type based differences in 9-parameter ESC (P commands */
- /* MX720, MX920, MG6500 uses 2 usually, 1 with various Hagaki media, and 0 with CD media */
- /* Note: issue is use of upper (1)/lower tray(2) wth cassette media source, 0 for CD media */
- if ( !(strcmp(init->caps->name,"PIXMA MX720")) || !(strcmp(init->caps->name,"PIXMA MX920")) || !(strcmp(init->caps->name,"PIXMA MG6500")) ) {
- switch(arg_ESCP_2)
- {
- /* Hagaki media */
- case 0x07: arg_ESCP_9=0x01; break;;
- case 0x14: arg_ESCP_9=0x01; break;;
- case 0x1b: arg_ESCP_9=0x01; break;;
- case 0x36: arg_ESCP_9=0x01; break;;
- case 0x38: arg_ESCP_9=0x01; break;;
- /* CD media */
- case 0x1f: arg_ESCP_9=0x00; break;;
- case 0x20: arg_ESCP_9=0x00; break;;
- /* other media */
- default: arg_ESCP_9=0x02; break;;
+ /* These printers use 0x02 (lower tray) usually and for envelopes, 0x01 (upper tray) with various Hagaki/Photo media, and 0x00 with CD media */
+ if ( !(strcmp(init->caps->name,"PIXMA iP7200")) || !(strcmp(init->caps->name,"PIXMA MG5400")) || !(strcmp(init->caps->name,"PIXMA MG6300")) || !(strcmp(init->caps->name,"PIXMA MG6500")) || !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) || !(strcmp(init->caps->name,"PIXMA MG7700")) || !(strcmp(init->caps->name,"PIXMA MX720")) || !(strcmp(init->caps->name,"PIXMA MX920")) ) {
+ if (tray_user_select && !print_cd)
+ arg_ESCP_9=user_ESCP_9;
+ else {
+ switch(arg_ESCP_2)
+ {
+ /* Hagaki media */
+ case 0x07: arg_ESCP_9=0x01; break;;
+ case 0x14: arg_ESCP_9=0x01; break;; /* not used with any of these models */
+ case 0x1b: arg_ESCP_9=0x01; break;;
+ case 0x36: arg_ESCP_9=0x01; break;;
+ case 0x38: arg_ESCP_9=0x01; break;;
+ case 0x46: arg_ESCP_9=0x01; break;;
+ case 0x47: arg_ESCP_9=0x01; break;;
+ case 0x48: arg_ESCP_9=0x01; break;;
+ /* Photo media here */
+ case 0x32: arg_ESCP_9=0x01; break;;
+ case 0x33: arg_ESCP_9=0x01; break;;
+ case 0x3f: arg_ESCP_9=0x01; break;;
+ case 0x2a: arg_ESCP_9=0x01; break;;
+ case 0x16: arg_ESCP_9=0x01; break;;
+ case 0x44: arg_ESCP_9=0x01; break;; /* MG6700, MG7500 only, instead of 0x16 */
+ case 0x1c: arg_ESCP_9=0x01; break;;
+ case 0x24: arg_ESCP_9=0x01; break;;
+ /* Envelope media */
+ case 0x08: arg_ESCP_9=0x02; break;;
+ /* CD media */
+ case 0x1f: arg_ESCP_9=0x00; break;;
+ case 0x20: arg_ESCP_9=0x00; break;;
+ /* other media default to lower tray */
+ default: arg_ESCP_9=0x02; break;;
+ }
+
+ /* condition for length to use lower tray: 7.29 in equals 524-525 points */
+ if ( (arg_ESCP_9 == 0x01) && ( length > 524 ) ) {
+ arg_ESCP_9=0x02;
}
+
+ /* even if user does not select correct CD media type, set appropriately */
+ if (print_cd)
+ arg_ESCP_9=0x00;
+ }
}
/* MG6700, MG7500 uses 0xff with CD media tray */
if ( !(strcmp(init->caps->name,"PIXMA MG6700")) || !(strcmp(init->caps->name,"PIXMA MG7500")) ) {
- switch(arg_ESCP_2)
- {
- /* CD media */
- case 0x1f: arg_ESCP_9=0x00; break;;
- case 0x20: arg_ESCP_9=0x00; break;;
- }
+ if (tray_user_select && !print_cd)
+ arg_ESCP_9=user_ESCP_9;
+ else {
+ switch(arg_ESCP_2)
+ {
+ /* CD media */
+ case 0x1f: arg_ESCP_9=0xff; break;;
+ case 0x20: arg_ESCP_9=0xff; break;;
+ }
+
+ /* even if user does not select correct CD media type, set appropriately */
+ if (print_cd)
+ arg_ESCP_9=0x00;
+ }
}
if ( init->caps->ESC_P_len == 9 ) /* support for new devices from October 2012. */
@@ -4537,6 +4644,21 @@ canon_init_setESC_P(const stp_vars_t *v, const canon_privdata_t *init)
"ESC_P_len=%d!!\n",init->caps->ESC_P_len);
}
+#if 0
+/* ESC (s -- 0x73 -- used in some newer printers for duplex pages except last one -- */
+/* When capability available, used for non-tumble and tumble (unlike Esc (u which is non-tumble only) */
+static void
+canon_init_setESC_s(const stp_vars_t *v, const canon_privdata_t *init)
+{
+ if (!(init->caps->features & CANON_CAP_DUPLEX))
+ return;
+ if (!(init->caps->features & CANON_CAP_s))
+ return;
+
+ canon_cmd(v,ESC28,0x73, 1, 0x00);
+}
+#endif
+
/* ESC (S -- 0x53 -- unknown -- :
Required by iP90/iP90v and iP100 printers.
*/
@@ -4607,7 +4729,6 @@ canon_init_setESC_S(const stp_vars_t *v, const canon_privdata_t *init)
}
-
/* ESC (T -- 0x54 -- setCartridge -- :
*/
static void
@@ -4873,7 +4994,7 @@ canon_init_setMultiRaster(const stp_vars_t *v, const canon_privdata_t *init){
stp_put16_le(init->num_channels, v);
/* add an exception here to add 0x60 of cmy channels for those printers/modes that require it */
raster_channel_order=init->channel_order;
- if ( !(strcmp(init->caps->name,"PIXMA MP140")) || !(strcmp(init->caps->name,"PIXMA MP150")) || !(strcmp(init->caps->name,"PIXMA MP160")) || !(strcmp(init->caps->name,"PIXMA MP170")) || !(strcmp(init->caps->name,"PIXMA MP180")) || !(strcmp(init->caps->name,"PIXMA MP190")) || !(strcmp(init->caps->name,"PIXMA MP210")) || !(strcmp(init->caps->name,"PIXMA MP220")) || !(strcmp(init->caps->name,"PIXMA MP240")) || !(strcmp(init->caps->name,"PIXMA MP250")) || !(strcmp(init->caps->name,"PIXMA MP270")) || !(strcmp(init->caps->name,"PIXMA MP280")) || !(strcmp(init->caps->name,"PIXMA MP450")) || !(strcmp(init->caps->name,"PIXMA MP460")) || !(strcmp(init->caps->name,"PIXMA MP470")) || !(strcmp(init->caps->name,"PIXMA MP480")) || !(strcmp(init->caps->name,"PIXMA MP490")) || !(strcmp(init->caps->name,"PIXMA MP495")) || !(strcmp(init->caps->name,"PIXMA MX300")) || !(strcmp(init->caps->name,"PIXMA MX310")) || !(strcmp(init->caps->name,"PIXMA MX330")) || !(strcmp(init->caps->name,"PIXMA MX340")) || !(strcmp(init->caps->name,"PIXMA MX350")) || !(strcmp(init->caps->name,"PIXMA MX360")) || !(strcmp(init->caps->name,"PIXMA MX370")) || !(strcmp(init->caps->name,"PIXMA MX410")) || !(strcmp(init->caps->name,"PIXMA MX510")) || !(strcmp(init->caps->name,"PIXMA MX520")) || !(strcmp(init->caps->name,"PIXMA iP2700")) || !(strcmp(init->caps->name,"PIXMA MG2100")) || !(strcmp(init->caps->name,"PIXMA MG2400")) || !(strcmp(init->caps->name,"PIXMA MG2500")) || !(strcmp(init->caps->name,"PIXMA MG3500")) )
+ if ( !(strcmp(init->caps->name,"PIXMA MP140")) || !(strcmp(init->caps->name,"PIXMA MP150")) || !(strcmp(init->caps->name,"PIXMA MP160")) || !(strcmp(init->caps->name,"PIXMA MP170")) || !(strcmp(init->caps->name,"PIXMA MP180")) || !(strcmp(init->caps->name,"PIXMA MP190")) || !(strcmp(init->caps->name,"PIXMA MP210")) || !(strcmp(init->caps->name,"PIXMA MP220")) || !(strcmp(init->caps->name,"PIXMA MP240")) || !(strcmp(init->caps->name,"PIXMA MP250")) || !(strcmp(init->caps->name,"PIXMA MP270")) || !(strcmp(init->caps->name,"PIXMA MP280")) || !(strcmp(init->caps->name,"PIXMA MP450")) || !(strcmp(init->caps->name,"PIXMA MP460")) || !(strcmp(init->caps->name,"PIXMA MP470")) || !(strcmp(init->caps->name,"PIXMA MP480")) || !(strcmp(init->caps->name,"PIXMA MP490")) || !(strcmp(init->caps->name,"PIXMA MP495")) || !(strcmp(init->caps->name,"PIXMA MX300")) || !(strcmp(init->caps->name,"PIXMA MX310")) || !(strcmp(init->caps->name,"PIXMA MX330")) || !(strcmp(init->caps->name,"PIXMA MX340")) || !(strcmp(init->caps->name,"PIXMA MX350")) || !(strcmp(init->caps->name,"PIXMA MX360")) || !(strcmp(init->caps->name,"PIXMA MX370")) || !(strcmp(init->caps->name,"PIXMA MX410")) || !(strcmp(init->caps->name,"PIXMA MX510")) || !(strcmp(init->caps->name,"PIXMA MX520")) || !(strcmp(init->caps->name,"PIXMA iP2700")) || !(strcmp(init->caps->name,"PIXMA MG2100")) || !(strcmp(init->caps->name,"PIXMA MG2400")) || !(strcmp(init->caps->name,"PIXMA MG2500")) || !(strcmp(init->caps->name,"PIXMA MG3500")) || !(strcmp(init->caps->name,"PIXMA MG3600")) )
{
/* if cmy there, add 0x60 to each --- all modes using cmy require it */
for(i=0;i<init->num_channels;i++){
@@ -4938,7 +5059,15 @@ canon_init_setMultiRaster(const stp_vars_t *v, const canon_privdata_t *init){
}
}
+/* ESC (u -- 0x75 -- even pages duplex for long side only -- */
+static void
+canon_init_setESC_u(const stp_vars_t *v, const canon_privdata_t *init)
+{
+ if (!(init->caps->features & CANON_CAP_DUPLEX))
+ return;
+ canon_cmd(v,ESC28,0x75, 1, 0x01);
+}
/* ESC (v -- 0x76 -- */
static void
@@ -4950,12 +5079,27 @@ canon_init_setESC_v(const stp_vars_t *v, const canon_privdata_t *init)
canon_cmd(v,ESC28,0x76, 1, 0x00);
}
+/* ESC (w -- 0x77 -- */
+static void
+canon_init_setESC_w(const stp_vars_t *v, const canon_privdata_t *init)
+{
+ unsigned char arg_ESCw_1;
+ /* new September 2015, currently only 1 byte */
+ if (!(init->caps->features & CANON_CAP_w))
+ return;
+
+ arg_ESCw_1 = (init->pt) ? init->pt->media_code_w: 0x00;
+
+ canon_cmd(v,ESC28,0x77, 1, arg_ESCw_1);
+}
static void
canon_init_printer(const stp_vars_t *v, canon_privdata_t *init)
{
unsigned int mytop;
+ int page_number = stp_get_int_parameter(v, "PageNumber");
+ const char *duplex_mode =stp_get_string_parameter(v, "Duplex");
/* init printer */
if (init->is_first_page) {
canon_init_resetPrinter(v,init); /* ESC [K */
@@ -4977,6 +5121,9 @@ canon_init_printer(const stp_vars_t *v, canon_privdata_t *init)
canon_init_setTray(v,init); /* ESC (l */
canon_init_setX72(v,init); /* ESC (r */
canon_init_setESC_v(v,init); /* ESC (v */
+ canon_init_setESC_w(v,init); /* ESC (w */
+ if((page_number & 1) && duplex_mode && !strcmp(duplex_mode,"DuplexNoTumble"))
+ canon_init_setESC_u(v,init); /* ESC (u 0x1 */
canon_init_setMultiRaster(v,init); /* ESC (I (J (L */
/* some linefeeds */
diff --git a/src/main/print-escp2.c b/src/main/print-escp2.c
index 2a5b03e..4619722 100644
--- a/src/main/print-escp2.c
+++ b/src/main/print-escp2.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-escp2.c,v 1.442 2014/01/23 13:22:41 rlk Exp $"
+ * "$Id: print-escp2.c,v 1.444 2015/09/09 23:57:32 speachy Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -1626,6 +1626,11 @@ verify_papersize(const stp_vars_t *v, const stp_papersize_t *pt)
height_limit = escp2_max_paper_height(v);
min_width_limit = escp2_min_paper_width(v);
min_height_limit = escp2_min_paper_height(v);
+
+ if (pt->paper_size_type != PAPERSIZE_TYPE_STANDARD &&
+ pt->paper_size_type != PAPERSIZE_TYPE_ENVELOPE)
+ return 0;
+
if (strlen(pt->name) > 0 &&
(pt->paper_size_type != PAPERSIZE_TYPE_ENVELOPE ||
envelope_landscape || pt->height > pt->width) &&
@@ -1769,7 +1774,15 @@ static stp_parameter_list_t
escp2_list_parameters(const stp_vars_t *v)
{
stp_parameter_list_t *ret = stp_parameter_list_create();
+ stp_parameter_list_t *tmp_list;
+
int i;
+
+ /* Set up dithering */
+ tmp_list = stp_dither_list_parameters(v);
+ stp_parameter_list_append(ret, tmp_list);
+ stp_parameter_list_destroy(tmp_list);
+
for (i = 0; i < the_parameter_count; i++)
stp_parameter_list_add_param(ret, &(the_parameters[i]));
for (i = 0; i < float_parameter_count; i++)
diff --git a/src/main/print-lexmark.c b/src/main/print-lexmark.c
index 95b2881..d8d3dcd 100644
--- a/src/main/print-lexmark.c
+++ b/src/main/print-lexmark.c
@@ -1,6 +1,6 @@
/*
- * "$Id: print-lexmark.c,v 1.163 2014/01/04 23:07:22 rlk Exp $"
+ * "$Id: print-lexmark.c,v 1.165 2015/09/09 23:57:32 speachy Exp $"
*
* Print plug-in Lexmark driver for the GIMP.
*
@@ -1128,7 +1128,15 @@ static stp_parameter_list_t
lexmark_list_parameters(const stp_vars_t *v)
{
stp_parameter_list_t *ret = stp_parameter_list_create();
+ stp_parameter_list_t *tmp_list;
+
int i;
+
+ /* Set up dithering */
+ tmp_list = stp_dither_list_parameters(v);
+ stp_parameter_list_append(ret, tmp_list);
+ stp_parameter_list_destroy(tmp_list);
+
for (i = 0; i < the_parameter_count; i++)
stp_parameter_list_add_param(ret, &(the_parameters[i]));
for (i = 0; i < float_parameter_count; i++)
@@ -1204,6 +1212,11 @@ lexmark_parameters(const stp_vars_t *v, const char *name,
for (i = 0; i < papersizes; i++) {
const stp_papersize_t *pt = stp_get_papersize_by_index(i);
+
+ if (pt->paper_size_type != PAPERSIZE_TYPE_STANDARD &&
+ pt->paper_size_type != PAPERSIZE_TYPE_ENVELOPE)
+ continue;
+
if (strlen(pt->name) > 0 &&
pt->width <= width_limit && pt->height <= height_limit &&
(pt->height >= min_height_limit || pt->height == 0) &&
diff --git a/src/main/print-olympus.c b/src/main/print-olympus.c
index 7499cda..1d1f653 100644
--- a/src/main/print-olympus.c
+++ b/src/main/print-olympus.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-olympus.c,v 1.195 2015/06/26 02:47:11 rlk Exp $"
+ * "$Id: print-olympus.c,v 1.218 2015/09/13 14:26:01 speachy Exp $"
*
* Print plug-in DyeSub driver (formerly Olympus driver) for the GIMP.
*
@@ -42,11 +42,6 @@
#define inline __inline__
#endif
-/* Uncomment this to add full multicut support to all printers that support
- it. Be warned that you will also need a patch to papers.xml to define
- the additional paper types. */
-/* #define MULTICUT */
-
#define DYESUB_FEATURE_NONE 0x00000000
#define DYESUB_FEATURE_FULL_WIDTH 0x00000001
#define DYESUB_FEATURE_FULL_HEIGHT 0x00000002
@@ -60,6 +55,7 @@
#define DYESUB_FEATURE_16BPP 0x00000200
#define DYESUB_FEATURE_BIGENDIAN 0x00000400
#define DYESUB_FEATURE_RGBtoYCBCR 0x00000800
+#define DYESUB_FEATURE_DUPLEX 0x00001000
#define DYESUB_PORTRAIT 0
#define DYESUB_LANDSCAPE 1
@@ -144,7 +140,6 @@ typedef struct {
size_t n_items;
} dyesub_printsize_list_t;
-
typedef struct {
const char *name;
const char *text;
@@ -167,6 +162,16 @@ typedef struct {
size_t n_items;
} dyesub_media_list_t;
+typedef struct {
+ const char* name;
+ const char *text;
+} dyesub_stringitem_t;
+
+typedef struct {
+ const dyesub_stringitem_t *item;
+ size_t n_items;
+} dyesub_stringlist_t;
+
#define NPUTC_BUFSIZE (4096)
typedef struct
@@ -179,8 +184,11 @@ typedef struct
const char* pagesize;
const laminate_t* laminate;
const dyesub_media_t* media;
+ const char* slot;
int print_mode;
int bpp;
+ const char* duplex_mode;
+ int page_number;
char nputc_buf[NPUTC_BUFSIZE];
} dyesub_privdata_t;
@@ -225,6 +233,7 @@ typedef struct /* printer specific parameters */
const char *adj_yellow;
const laminate_list_t *laminate;
const dyesub_media_list_t *media;
+ const dyesub_stringlist_t *uiconstraints;
} dyesub_cap_t;
@@ -272,8 +281,8 @@ LIST(dyesub_resolution_list_t, res_310dpi_list, dyesub_resolution_t, res_310dpi)
static const dyesub_pagesize_t p10_page[] =
{
- { "w288h432", "4 x 6", 298, 430, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 4x6" */
- { "B7", "3.5 x 5", 266, 370, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 3.5x5" */
+ { "w288h432", "4x6", 298, 430, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 4x6" */
+ { "B7", "3.5x5", 266, 370, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 3.5x5" */
{ "Custom", NULL, 298, 430, 28, 28, 48, 48, DYESUB_PORTRAIT},
};
@@ -384,7 +393,7 @@ LIST(dyesub_resolution_list_t, p300_res_list, dyesub_resolution_t, p300_res);
static const dyesub_pagesize_t p300_page[] =
{
- { "A6", NULL, -1, -1, 28, 28, 48, 48, DYESUB_PORTRAIT},
+ { "A6", "A6", -1, -1, 28, 28, 48, 48, DYESUB_PORTRAIT},
{ "Custom", NULL, -1, -1, 28, 28, 48, 48, DYESUB_PORTRAIT},
};
@@ -480,7 +489,7 @@ LIST(dyesub_resolution_list_t, res_314dpi_list, dyesub_resolution_t, res_314dpi)
static const dyesub_pagesize_t p400_page[] =
{
- { "A4", NULL, -1, -1, 22, 22, 54, 54, DYESUB_PORTRAIT},
+ { "A4", "A4", -1, -1, 22, 22, 54, 54, DYESUB_PORTRAIT},
{ "c8x10", "A5 wide", -1, -1, 58, 59, 84, 85, DYESUB_PORTRAIT},
{ "C6", "2 Postcards (A4)", -1, -1, 9, 9, 9, 9, DYESUB_PORTRAIT},
{ "Custom", NULL, -1, -1, 22, 22, 54, 54, DYESUB_PORTRAIT},
@@ -598,7 +607,7 @@ static const char p400_adj_yellow[] =
/* Olympus P-440 series */
static const dyesub_pagesize_t p440_page[] =
{
- { "A4", NULL, -1, -1, 10, 9, 54, 54, DYESUB_PORTRAIT},
+ { "A4", "A4", -1, -1, 10, 9, 54, 54, DYESUB_PORTRAIT},
{ "c8x10", "A5 wide", -1, -1, 58, 59, 72, 72, DYESUB_PORTRAIT},
{ "C6", "2 Postcards (A4)", -1, -1, 9, 9, 9, 9, DYESUB_PORTRAIT},
{ "w255h581", "A6 wide", -1, -1, 25, 25, 25, 24, DYESUB_PORTRAIT},
@@ -693,8 +702,8 @@ static void p440_block_end_func(stp_vars_t *v)
/* Olympus P-S100 */
static const dyesub_pagesize_t ps100_page[] =
{
- { "w288h432", "4 x 6", 296, 426, 0, 0, 0, 0, DYESUB_PORTRAIT},/* 4x6" */
- { "B7", "3.5 x 5", 264, 366, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 3.5x5" */
+ { "w288h432", "4x6", 296, 426, 0, 0, 0, 0, DYESUB_PORTRAIT},/* 4x6" */
+ { "B7", "3.5x5", 264, 366, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 3.5x5" */
{ "Custom", NULL, 296, 426, 0, 0, 0, 0, DYESUB_PORTRAIT},
};
@@ -763,7 +772,6 @@ LIST(dyesub_resolution_list_t, res_300dpi_list, dyesub_resolution_t, res_300dpi)
static const dyesub_pagesize_t cp10_page[] =
{
{ "w155h244", "Card 54x86mm", 159, 250, 6, 6, 29, 29, DYESUB_PORTRAIT},
- { "Custom", NULL, -1, -1, 6, 6, 29, 29, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, cp10_page_list, dyesub_pagesize_t, cp10_page);
@@ -771,7 +779,6 @@ LIST(dyesub_pagesize_list_t, cp10_page_list, dyesub_pagesize_t, cp10_page);
static const dyesub_printsize_t cp10_printsize[] =
{
{ "300x300", "w155h244", 662, 1040},
- { "300x300", "Custom", 662, 1040},
};
LIST(dyesub_printsize_list_t, cp10_printsize_list, dyesub_printsize_t, cp10_printsize);
@@ -782,7 +789,6 @@ static const dyesub_pagesize_t cpx00_page[] =
{ "Postcard", "Postcard 100x148mm", 296, 434, 13, 13, 16, 19, DYESUB_PORTRAIT},
{ "w253h337", "CP_L 89x119mm", 264, 350, 13, 13, 15, 15, DYESUB_PORTRAIT},
{ "w155h244", "Card 54x86mm", 162, 250, 13, 13, 15, 15, DYESUB_LANDSCAPE},
- { "Custom", NULL, 296, 434, 13, 13, 16, 19, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, cpx00_page_list, dyesub_pagesize_t, cpx00_page);
@@ -792,7 +798,6 @@ static const dyesub_printsize_t cpx00_printsize[] =
{ "300x300", "Postcard", 1232, 1808},
{ "300x300", "w253h337", 1100, 1456},
{ "300x300", "w155h244", 672, 1040},
- { "300x300", "Custom", 1232, 1808},
};
LIST(dyesub_printsize_list_t, cpx00_printsize_list, dyesub_printsize_t, cpx00_printsize);
@@ -875,7 +880,6 @@ static const dyesub_pagesize_t cp220_page[] =
{ "w253h337", "CP_L 89x119mm", 264, 350, 13, 13, 15, 15, DYESUB_PORTRAIT},
{ "w155h244", "Card 54x86mm", 162, 250, 13, 13, 15, 15, DYESUB_LANDSCAPE},
{ "w283h566", "Wide 100x200mm", 296, 580, 13, 13, 20, 20, DYESUB_PORTRAIT},
- { "Custom", NULL, 296, 434, 13, 13, 16, 19, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, cp220_page_list, dyesub_pagesize_t, cp220_page);
@@ -886,7 +890,6 @@ static const dyesub_printsize_t cp220_printsize[] =
{ "300x300", "w253h337", 1100, 1456},
{ "300x300", "w155h244", 672, 1040},
{ "300x300", "w283h566", 1232, 2416},
- { "300x300", "Custom", 1232, 1808},
};
LIST(dyesub_printsize_list_t, cp220_printsize_list, dyesub_printsize_t, cp220_printsize);
@@ -1023,7 +1026,6 @@ static const dyesub_pagesize_t cp910_page[] =
{ "Postcard", "Postcard 100x148mm", PT(1248,300)+1, PT(1872,300)+1, 13, 13, 16, 19, DYESUB_PORTRAIT},
{ "w253h337", "CP_L 89x119mm", PT(1104,300)+1, PT(1536,300)+1, 13, 13, 15, 15, DYESUB_PORTRAIT},
{ "w155h244", "Card 54x86mm", PT(1088,300)+1, PT(668,300)+1, 13, 13, 15, 15, DYESUB_LANDSCAPE},
- { "Custom", NULL, PT(1248,300)+1, PT(1872,300)+1, 13, 13, 16, 19, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, cp910_page_list, dyesub_pagesize_t, cp910_page);
@@ -1033,7 +1035,6 @@ static const dyesub_printsize_t cp910_printsize[] =
{ "300x300", "Postcard", 1248, 1872},
{ "300x300", "w253h337", 1104, 1536},
{ "300x300", "w155h244", 668, 1088},
- { "300x300", "Custom", 1248, 1872},
};
LIST(dyesub_printsize_list_t, cp910_printsize_list, dyesub_printsize_t, cp910_printsize);
@@ -1267,7 +1268,6 @@ static const dyesub_pagesize_t updr100_page[] =
{ "B7", "3.5x5", 261, 369, 0, 0, 0, 0, DYESUB_LANDSCAPE},
{ "w360h504", "5x7", 369, 514, 0, 0, 0, 0, DYESUB_PORTRAIT},
{ "w432h576", "6x8", 442, 588, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "Custom", NULL, 298, 442, 0, 0, 0, 0, DYESUB_LANDSCAPE},
};
LIST(dyesub_pagesize_list_t, updr100_page_list, dyesub_pagesize_t, updr100_page);
@@ -1278,7 +1278,6 @@ static const dyesub_printsize_t updr100_printsize[] =
{ "334x334", "B7", 1210, 1710},
{ "334x334", "w360h504", 1710, 2380},
{ "334x334", "w432h576", 2048, 2724},
- { "334x334", "Custom", 1382, 2048},
};
LIST(dyesub_printsize_list_t, updr100_printsize_list, dyesub_printsize_t, updr100_printsize);
@@ -1590,9 +1589,9 @@ static void upcr10_printer_end_func(stp_vars_t *v)
/* Fujifilm CX-400 */
static const dyesub_pagesize_t cx400_page[] =
{
- { "w288h432", NULL, 295, 428, 24, 24, 23, 22, DYESUB_PORTRAIT},
+ { "w288h432", "4x6", 295, 428, 24, 24, 23, 22, DYESUB_PORTRAIT},
{ "w288h387", "4x5 3/8", 295, 386, 24, 24, 23, 23, DYESUB_PORTRAIT},
- { "w288h504", NULL, 295, 513, 24, 24, 23, 22, DYESUB_PORTRAIT},
+ { "w288h504", "4x7", 295, 513, 24, 24, 23, 22, DYESUB_PORTRAIT},
{ "Custom", NULL, 295, 428, 0, 0, 0, 0, DYESUB_PORTRAIT},
};
@@ -1650,7 +1649,7 @@ LIST(dyesub_resolution_list_t, res_306dpi_list, dyesub_resolution_t, res_306dpi)
static const dyesub_pagesize_t nx500_page[] =
{
- { "Postcard", NULL, -1, -1, 21, 21, 29, 29, DYESUB_PORTRAIT},
+ { "Postcard", "Postcard", -1, -1, 21, 21, 29, 29, DYESUB_PORTRAIT},
{ "Custom", NULL, -1, -1, 21, 21, 29, 29, DYESUB_PORTRAIT},
};
@@ -1682,7 +1681,7 @@ static void nx500_printer_init_func(stp_vars_t *v)
/* Kodak Easyshare Dock family */
static const dyesub_pagesize_t kodak_dock_page[] =
{
- { "w288h432", NULL, PT(1248,300)+1, PT(1856,300)+1, 0, 0, 0, 0,
+ { "w288h432", "4x6", PT(1248,300)+1, PT(1856,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT}, /* 4x6 */
{ "Custom", NULL, PT(1248,300)+1, PT(1856,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT}, /* 4x6 */
@@ -1719,8 +1718,6 @@ static const dyesub_pagesize_t kodak_6800_page[] =
DYESUB_LANDSCAPE}, /* 4x6 */
{ "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT}, /* 6x8 */
- { "Custom", NULL, PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
- DYESUB_LANDSCAPE}, /* 4x6 */
};
LIST(dyesub_pagesize_list_t, kodak_6800_page_list, dyesub_pagesize_t, kodak_6800_page);
@@ -1729,7 +1726,6 @@ static const dyesub_printsize_t kodak_6800_printsize[] =
{
{ "300x300", "w288h432", 1240, 1844},
{ "300x300", "w432h576", 1844, 2434},
- { "300x300", "Custom", 1240, 1844},
};
LIST(dyesub_printsize_list_t, kodak_6800_printsize_list, dyesub_printsize_t, kodak_6800_printsize);
@@ -1742,19 +1738,6 @@ static const laminate_t kodak_6800_laminate[] =
LIST(laminate_list_t, kodak_6800_laminate_list, laminate_t, kodak_6800_laminate);
-
-static void kodak_6800_printer_init(stp_vars_t *v)
-{
- stp_zfwrite("\x03\x1b\x43\x48\x43\x0a\x00\x01\x00", 1, 9, v);
- stp_putc(0x01, v); /* Number of copies */
- stp_put16_be(privdata.w_size, v);
- stp_put16_be(privdata.h_size, v);
- stp_putc(privdata.h_size == 1240 ? 0x00 : 0x06, v); /* XXX seen it on some 4x6 prints too! */
- stp_zfwrite((privdata.laminate->seq).data, 1,
- (privdata.laminate->seq).bytes, v);
- stp_putc(0x00, v);
-}
-
/* Kodak 6850 */
static const dyesub_pagesize_t kodak_6850_page[] =
{
@@ -1764,8 +1747,6 @@ static const dyesub_pagesize_t kodak_6850_page[] =
DYESUB_PORTRAIT}, /* 5x7 */
{ "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT}, /* 6x8 */
- { "Custom", NULL, PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
- DYESUB_LANDSCAPE}, /* 4x6 */
};
LIST(dyesub_pagesize_list_t, kodak_6850_page_list, dyesub_pagesize_t, kodak_6850_page);
@@ -1775,19 +1756,26 @@ static const dyesub_printsize_t kodak_6850_printsize[] =
{ "300x300", "w288h432", 1240, 1844},
{ "300x300", "w360h504", 1548, 2140},
{ "300x300", "w432h576", 1844, 2434},
- { "300x300", "Custom", 1240, 1844},
};
LIST(dyesub_printsize_list_t, kodak_6850_printsize_list, dyesub_printsize_t, kodak_6850_printsize);
-static void kodak_6850_printer_init(stp_vars_t *v)
+static void kodak_68xx_printer_init(stp_vars_t *v)
{
- stp_zfwrite("\x03\x1b\x43\x48\x43\x0a\x00\x01\x00", 1, 9, v);
- stp_putc(0x01, v); /* Number of copies */
+ stp_zfwrite("\x03\x1b\x43\x48\x43\x0a\x00\x01", 1, 8, v);
+ stp_put16_be(0x01, v); /* Number of copies in BCD */
stp_put16_be(privdata.w_size, v);
stp_put16_be(privdata.h_size, v);
- stp_putc(privdata.h_size == 1240 ? 0x00 :
- privdata.h_size == 1548 ? 0x07 : 0x06, v);
+
+ if (!strcmp(privdata.pagesize,"w288h432"))
+ stp_putc(0x00, v);
+ else if (!strcmp(privdata.pagesize,"w432h576"))
+ stp_putc(0x06, v);
+ else if (!strcmp(privdata.pagesize,"w360h504"))
+ stp_putc(0x07, v);
+ else
+ stp_putc(0x00, v); /* Just in case */
+
stp_zfwrite((privdata.laminate->seq).data, 1,
(privdata.laminate->seq).bytes, v);
stp_putc(0x00, v);
@@ -1802,8 +1790,6 @@ static const dyesub_pagesize_t kodak_605_page[] =
DYESUB_PORTRAIT}, /* 5x7 */
{ "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT}, /* 6x8 */
- { "Custom", NULL, PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
- DYESUB_LANDSCAPE}, /* 4x6 */
};
LIST(dyesub_pagesize_list_t, kodak_605_page_list, dyesub_pagesize_t, kodak_605_page);
@@ -1813,7 +1799,6 @@ static const dyesub_printsize_t kodak_605_printsize[] =
{ "300x300", "w288h432", 1240, 1844},
{ "300x300", "w360h504", 1500, 2100},
{ "300x300", "w432h576", 1844, 2434},
- { "300x300", "Custom", 1240, 1844},
};
LIST(dyesub_printsize_list_t, kodak_605_printsize_list, dyesub_printsize_t, kodak_605_printsize);
@@ -1825,14 +1810,13 @@ static void kodak_605_printer_init(stp_vars_t *v)
stp_putc(0x00, v);
stp_put16_le(privdata.w_size, v);
stp_put16_le(privdata.h_size, v);
- if (privdata.h_size == 1240)
+
+ if (!strcmp(privdata.pagesize,"w288h432"))
stp_putc(0x01, v);
- else if (privdata.h_size == 2100)
- stp_putc(0x02, v);
- else if (privdata.h_size == 2434)
+ else if (!strcmp(privdata.pagesize,"w432h576"))
stp_putc(0x03, v);
- else if (privdata.h_size == 2490)
- stp_putc(0x04, v);
+ else if (!strcmp(privdata.pagesize,"w360h504"))
+ stp_putc(0x02, v);
else
stp_putc(0x01, v);
@@ -1869,10 +1853,9 @@ static const dyesub_pagesize_t kodak_1400_page[] =
The printer can technically print a little wider but these dimensions are
defined by the lamination area, which is fixed.
*/
- { "w612h864", "8.5 x 12", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT}, /* 8x12 */
- { "Legal", "8.5 x 14", PT(2560,301)+1, PT(3612,301)+72*2, PT(35,301)+1, PT(35,301)+1, 72, 72, DYESUB_PORTRAIT}, /* 8x14 */
+ { "w612h864", "8.5x12", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT}, /* 8x12 */
+ { "Legal", "8.5x14", PT(2560,301)+1, PT(3612,301)+72*2, PT(35,301)+1, PT(35,301)+1, 72, 72, DYESUB_PORTRAIT}, /* 8x14 */
{ "A4", "A4", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 0, 0, DYESUB_PORTRAIT}, /* A4, indentical to 8x12 */
- { "Custom", NULL, PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, kodak_1400_page_list, dyesub_pagesize_t, kodak_1400_page);
@@ -1899,7 +1882,6 @@ static const dyesub_printsize_t kodak_1400_printsize[] =
{ "301x301", "w612h864", 2560, 3010},
{ "301x301", "Legal", 2560, 3612},
{ "301x301", "A4", 2560, 3010},
- { "301x301", "Custom", 2560, 3010},
};
LIST(dyesub_printsize_list_t, kodak_1400_printsize_list, dyesub_printsize_t, kodak_1400_printsize);
@@ -1926,9 +1908,8 @@ static const dyesub_pagesize_t kodak_805_page[] =
{
/* Identical to the Kodak 1400 except for the lack of A4 support.
See the 1400 comments for explanations of this. */
- { "w612h864", "8.5 x 12", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT}, /* 8x12 */
- { "Legal", "8.5 x 14", PT(2560,301)+1, PT(3612,301)+72*2, PT(35,301)+1, PT(35,301)+1, 72, 72, DYESUB_PORTRAIT}, /* 8x14 */
- { "Custom", NULL, PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT},
+ { "w612h864", "8.5x12", PT(2560,301)+1, PT(3010,301)+72*2, PT(76,301)+1, PT(76,301), 72, 72, DYESUB_PORTRAIT}, /* 8x12 */
+ { "Legal", "8.5x14", PT(2560,301)+1, PT(3612,301)+72*2, PT(35,301)+1, PT(35,301)+1, 72, 72, DYESUB_PORTRAIT}, /* 8x14 */
};
LIST(dyesub_pagesize_list_t, kodak_805_page_list, dyesub_pagesize_t, kodak_805_page);
@@ -1937,7 +1918,6 @@ static const dyesub_printsize_t kodak_805_printsize[] =
{
{ "301x301", "w612h864", 2560, 3010},
{ "301x301", "Legal", 2560, 3612},
- { "301x301", "Custom", 2560, 3010},
};
LIST(dyesub_printsize_list_t, kodak_805_printsize_list, dyesub_printsize_t, kodak_805_printsize);
@@ -1963,7 +1943,6 @@ static const dyesub_pagesize_t kodak_9810_page[] =
{
{ "c8x10", "8x10", PT(2464,300)+1, PT(3024,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
{ "w576h864", "8x12", PT(2464,300)+1, PT(3624,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "Custom", NULL, PT(2464,300)+1, PT(3024,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, kodak_9810_page_list, dyesub_pagesize_t, kodak_9810_page);
@@ -1971,7 +1950,6 @@ static const dyesub_printsize_t kodak_9810_printsize[] =
{
{ "300x300", "c8x10", 2464, 3024},
{ "300x300", "w576h864", 2464, 3624},
- { "300x300", "Custom", 2464, 3024},
};
LIST(dyesub_printsize_list_t, kodak_9810_printsize_list, dyesub_printsize_t, kodak_9810_printsize);
@@ -2160,9 +2138,7 @@ static const dyesub_pagesize_t kodak_8810_page[] =
{
{ "w288h576", "8x4", PT(1208,300)+1, PT(2464,300)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
{ "c8x10", "8x10", PT(2464,300)+1, PT(3024,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
-#if 0
- { "???", "203x297mm", PT(2464,300)+1, PT(3531,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "A4", "203x297mm", PT(2464,300)+1, PT(3531,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
{ "w576h864", "8x12", PT(2464,300)+1, PT(3624,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, kodak_8810_page_list, dyesub_pagesize_t, kodak_8810_page);
@@ -2171,9 +2147,7 @@ static const dyesub_printsize_t kodak_8810_printsize[] =
{
{ "300x300", "w288h576", 1208, 2464},
{ "300x300", "c8x10", 2464, 3024},
-#if 0
- { "300x300", "???", 2464, 3531},
-#endif
+ { "300x300", "A4", 2464, 3531},
{ "300x300", "w576h864", 2464, 3624},
};
@@ -2183,6 +2157,7 @@ static const laminate_t kodak_8810_laminate[] =
{
{"Glossy", N_("Glossy"), {1, "\x03"}},
{"Satin", N_("Satin"), {1, "\x02"}},
+ {"None", N_("None"), {1, "\x01"}},
};
LIST(laminate_list_t, kodak_8810_laminate_list, laminate_t, kodak_8810_laminate);
@@ -2194,8 +2169,7 @@ static void kodak_8810_printer_init(stp_vars_t *v)
stp_putc(0x12, v);
stp_putc(0x00, v);
stp_putc(0x01, v);
- stp_putc(0x01, v); /* Actually, # of copies */
- stp_putc(0x00, v);
+ stp_put16_le(0x01, v); /* Actually, # of copies */
stp_put16_le(privdata.w_size, v);
stp_put16_le(privdata.h_size, v);
stp_put16_le(privdata.w_size, v);
@@ -2203,15 +2177,78 @@ static void kodak_8810_printer_init(stp_vars_t *v)
dyesub_nputc(v, 0, 4);
stp_zfwrite((privdata.laminate->seq).data, 1,
(privdata.laminate->seq).bytes, v);
- dyesub_nputc(v, 0, 2);
+ stp_putc(0x00, v); /* Method -- 00 is normal, 02 is x2, 03 is x3 */
+ stp_putc(0x00, v); /* Reserved */
+}
+
+/* Kodak 7000/7010 */
+static const dyesub_pagesize_t kodak_7000_page[] =
+{
+ { "w288h432", "4x6", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE}, /* 4x6 */
+ { "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT}, /* 6x8 */
+};
+
+LIST(dyesub_pagesize_list_t, kodak_7000_page_list, dyesub_pagesize_t, kodak_7000_page);
+
+static const dyesub_printsize_t kodak_7000_printsize[] =
+{
+ { "300x300", "w288h432", 1240, 1844},
+ { "300x300", "w432h576", 1844, 2434},
+};
+
+LIST(dyesub_printsize_list_t, kodak_7000_printsize_list, dyesub_printsize_t, kodak_7000_printsize);
+static const laminate_t kodak_7000_laminate[] =
+{
+ {"Glossy", N_("Glossy"), {1, "\x02"}},
+ {"Satin", N_("Satin"), {1, "\x03"}},
+};
+
+LIST(laminate_list_t, kodak_7000_laminate_list, laminate_t, kodak_7000_laminate);
+
+static void kodak_70xx_printer_init(stp_vars_t *v)
+{
+ stp_zfwrite("\x01\x40\x0a\x00\x01", 1, 5, v);
+ stp_put16_le(0x01, v); /* Actually, # of copies */
+ stp_put16_le(privdata.w_size, v);
+ stp_put16_le(privdata.h_size, v);
+
+ if (!strcmp(privdata.pagesize,"w288h432"))
+ stp_putc(0x01, v);
+ else if (!strcmp(privdata.pagesize,"w432h576"))
+ stp_putc(0x03, v);
+ else if (!strcmp(privdata.pagesize,"w360h504"))
+ stp_putc(0x06, v);
+ else
+ stp_putc(0x01, v);
+
+ stp_zfwrite((privdata.laminate->seq).data, 1,
+ (privdata.laminate->seq).bytes, v);
+ stp_putc(0x00, v);
}
+/* Kodak 7015/7015 */
+static const dyesub_pagesize_t kodak_7015_page[] =
+{
+ { "w360h504", "5x7", PT(1548,300)+1, PT(2140,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT}, /* 5x7 */
+};
+
+LIST(dyesub_pagesize_list_t, kodak_7015_page_list, dyesub_pagesize_t, kodak_7015_page);
+
+static const dyesub_printsize_t kodak_7015_printsize[] =
+{
+ { "300x300", "w360h504", 1548, 2140},
+};
+
+LIST(dyesub_printsize_list_t, kodak_7015_printsize_list, dyesub_printsize_t, kodak_7015_printsize);
+
/* Kodak Professional 8500 */
static const dyesub_pagesize_t kodak_8500_page[] =
{
- { "w612h864", "8.5 x 12", PT(2508,314)+1, PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 8.5x12 & A4 */
- { "Letter", "8.5 x 11", PT(2508,314)+1, PT(2954,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* Letter */
- { "Custom", NULL, PT(2508,314), PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "w612h864", "8.5x12", PT(2508,314)+1, PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* 8.5x12 & A4 */
+ { "Letter", "8.5x11", PT(2508,314)+1, PT(2954,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* Letter */
};
LIST(dyesub_pagesize_list_t, kodak_8500_page_list, dyesub_pagesize_t, kodak_8500_page);
@@ -2220,7 +2257,6 @@ static const dyesub_printsize_t kodak_8500_printsize[] =
{
{ "314x314", "w612h864", 2508, 3134},
{ "314x314", "Letter", 2508, 2954},
- { "314x314", "Custom", 2508, 3134},
};
LIST(dyesub_printsize_list_t, kodak_8500_printsize_list, dyesub_printsize_t, kodak_8500_printsize);
@@ -2328,7 +2364,6 @@ static const dyesub_pagesize_t mitsu_cp3020d_page[] =
{
{ "A4", "A4", PT(2508,314)+1, PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* A4 */
{ "Legal", "Letter Long", PT(2508,314)+1, PT(3762,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT}, /* Letter */
- { "Custom", NULL, PT(2508,314), PT(3134,314)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, mitsu_cp3020d_page_list, dyesub_pagesize_t, mitsu_cp3020d_page);
@@ -2337,7 +2372,6 @@ static const dyesub_printsize_t mitsu_cp3020d_printsize[] =
{
{ "314x314", "A4", 2508, 3134},
{ "314x314", "Legal", 2508, 3762},
- { "314x314", "Custom", 2508, 3134},
};
LIST(dyesub_printsize_list_t, mitsu_cp3020d_printsize_list, dyesub_printsize_t, mitsu_cp3020d_printsize);
@@ -2507,10 +2541,8 @@ static const dyesub_pagesize_t mitsu_cp9550_page[] =
DYESUB_LANDSCAPE},
{ "w288h432", "4x6", PT(1416,346)+1, PT(2152,346)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1416,346)+1, PT(2152,346)+1, 0, 0, 0, 0,
- DYESUB_LANDSCAPE},
-#endif
+ { "w288h432-div2", "2x6*2", PT(1416,346)+1, PT(2152,346)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1812,346)+1, PT(2402,346)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
{ "w432h576", "6x8", PT(2152,346)+1, PT(2792,346)+1, 0, 0, 0, 0,
@@ -2527,9 +2559,7 @@ static const dyesub_printsize_t mitsu_cp9550_printsize[] =
{
{ "346x346", "B7", 1240, 1812},
{ "346x346", "w288h432", 1416, 2152},
-#ifdef MULTICUT
- { "346x346", "2x6_x2", 1416, 2152},
-#endif
+ { "346x346", "w288h432-div2", 1416, 2152},
{ "346x346", "w360h504", 1812, 2402},
{ "346x346", "w432h576", 2152, 2792},
{ "346x346", "w432h612", 2152, 2956},
@@ -2566,7 +2596,7 @@ static void mitsu_cp9550_printer_init(stp_vars_t *v)
dyesub_nputc(v, 0x00, 19);
stp_putc(0x01, v); /* This is Copies on other models.. */
dyesub_nputc(v, 0x00, 2);
- if (strcmp(privdata.pagesize,"2x6_x2") == 0)
+ if (strcmp(privdata.pagesize,"w288h432-div2") == 0)
stp_putc(0x83, v);
else
stp_putc(0x00, v);
@@ -2621,8 +2651,6 @@ static const dyesub_pagesize_t mitsu_cp9810_page[] =
DYESUB_PORTRAIT},
{ "w432h648", "6x9", PT(1868,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
- { "Custom", NULL, PT(1220,300)+1, PT(1868,300)+1, 0, 0, 0, 0,
- DYESUB_LANDSCAPE},
};
LIST(dyesub_pagesize_list_t, mitsu_cp9810_page_list, dyesub_pagesize_t, mitsu_cp9810_page);
@@ -2635,7 +2663,6 @@ static const dyesub_printsize_t mitsu_cp9810_printsize[] =
{ "300x300", "w432h576", 1868, 2442},
{ "300x300", "w432h612", 1868, 2564},
{ "300x300", "w432h648", 1868, 2730},
- { "300x300", "Custom", 1220, 1868},
};
LIST(dyesub_printsize_list_t, mitsu_cp9810_printsize_list, dyesub_printsize_t, mitsu_cp9810_printsize);
@@ -2748,12 +2775,12 @@ static const dyesub_pagesize_t mitsu_cpd70x_page[] =
DYESUB_LANDSCAPE},
{ "w288h432", "4x6", PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "4x6*2", PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ { "w288h432-div2", "2x6*2", PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#endif
{ "w360h504", "5x7", PT(1568,300)+1, PT(2128,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
+ { "w360h504-div2", "3.5x5*2", PT(1568,300)+1, PT(2128,300)+1, 0, 0, 0, 0,
+ DYESUB_PORTRAIT},
{ "w432h432", "6x6", PT(1820,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
{ "w432h576", "6x8", PT(1864,300)+1, PT(2422,300)+1, 0, 0, 0, 0,
@@ -2762,10 +2789,8 @@ static const dyesub_pagesize_t mitsu_cpd70x_page[] =
DYESUB_PORTRAIT},
{ "w432h648", "6x9", PT(1864,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "4x6_x2", "4x6*2", PT(1864,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
+ { "w432h576-div2", "4x6*2", PT(1864,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#endif
};
LIST(dyesub_pagesize_list_t, mitsu_cpd70x_page_list, dyesub_pagesize_t, mitsu_cpd70x_page);
@@ -2774,17 +2799,14 @@ static const dyesub_printsize_t mitsu_cpd70x_printsize[] =
{
{ "300x300", "B7", 1076, 1568},
{ "300x300", "w288h432", 1228, 1864},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1228, 1864},
-#endif
+ { "300x300", "w288h432-div2", 1228, 1864},
{ "300x300", "w360h504", 1568, 2128},
+ { "300x300", "w360h504-div2", 1568, 2128},
{ "300x300", "w432h432", 1820, 1864},
{ "300x300", "w432h576", 1864, 2422},
{ "300x300", "w432h612", 1864, 2564},
{ "300x300", "w432h648", 1864, 2730},
-#ifdef MULTICUT
- { "300x300", "4x6_x2", 1864, 2730},
-#endif
+ { "300x300", "w432h576-div2", 1864, 2730},
};
LIST(dyesub_printsize_list_t, mitsu_cpd70x_printsize_list, dyesub_printsize_t, mitsu_cpd70x_printsize);
@@ -2855,11 +2877,11 @@ static void mitsu_cpd70k60_printer_init(stp_vars_t *v, int is_k60, int is_305)
stp_putc(0x00, v);
}
} else {
- if (strcmp(privdata.pagesize,"4x6_x2") == 0) {
+ if (strcmp(privdata.pagesize,"w432h576-div2") == 0) {
stp_putc(0x01, v);
- } else if (strcmp(privdata.pagesize,"B7_x2") == 0) {
+ } else if (strcmp(privdata.pagesize,"w360h504-div2") == 0) {
stp_putc(0x01, v);
- } else if (strcmp(privdata.pagesize,"2x6_x2") == 0) {
+ } else if (strcmp(privdata.pagesize,"w288h432-div2") == 0) {
stp_putc(0x05, v);
} else {
stp_putc(0x00, v);
@@ -2945,24 +2967,18 @@ static const dyesub_pagesize_t mitsu_cpk60_page[] =
DYESUB_LANDSCAPE},
{ "w288h432", "4x6", PT(1218,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1218,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ { "w288h432-div2", "2x6*2", PT(1218,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#endif
{ "w360h504", "5x7", PT(1568,300)+1, PT(2128,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "B7_x2", "3.5x5*2", PT(1568,300)+1, PT(2190,300)+1, 0, 0, 0, 0,
- DYESUB_PORTRAIT},
-#endif
- { "w432h432", "6x6", PT(1864,300)+1, PT(1820,300)+1, 0, 0, 0, 0,
+ { "w360h504-div2", "3.5x5*2", PT(1568,300)+1, PT(2190,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
+ { "w432h432", "6x6", PT(1820,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ DYESUB_LANDSCAPE},
{ "w432h576", "6x8", PT(1864,300)+1, PT(2422,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "4x6_x2", "4x6*2", PT(1864,300)+1, PT(2454,300)+1, 0, 0, 0, 0,
+ { "w432h576-div2", "4x6*2", PT(1864,300)+1, PT(2454,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#endif
};
LIST(dyesub_pagesize_list_t, mitsu_cpk60_page_list, dyesub_pagesize_t, mitsu_cpk60_page);
@@ -2971,18 +2987,12 @@ static const dyesub_printsize_t mitsu_cpk60_printsize[] =
{
{ "300x300", "B7", 1076, 1568},
{ "300x300", "w288h432", 1218, 1864},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1218, 1864},
-#endif
+ { "300x300", "w288h432-div2", 1218, 1864},
{ "300x300", "w360h504", 1568, 2128},
-#ifdef MULTICUT
- { "B7_x2", "3.5x5*2", 1568, 2190},
-#endif
- { "300x300", "w432h432", 1864, 1820},
+ { "300x300", "w360h504-div2", 1568, 2190},
+ { "300x300", "w432h432", 1820, 1864},
{ "300x300", "w432h576", 1864, 2422},
-#ifdef MULTICUT
- { "300x300", "4x6_x2", 1864, 2454},
-#endif
+ { "300x300", "w432h576-div2", 1864, 2454},
};
LIST(dyesub_printsize_list_t, mitsu_cpk60_printsize_list, dyesub_printsize_t, mitsu_cpk60_printsize);
@@ -2996,10 +3006,8 @@ static const dyesub_pagesize_t mitsu_cpd80_page[] =
{
{ "w288h432", "4x6", PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
+ { "w288h432-div2", "2x6*2", PT(1228,300)+1, PT(1864,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#endif
{ "w360h360", "5x5", PT(1524,300)+1, PT(1568,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1568,300)+1, PT(2128,300)+1, 0, 0, 0, 0,
@@ -3008,10 +3016,8 @@ static const dyesub_pagesize_t mitsu_cpd80_page[] =
DYESUB_PORTRAIT},
{ "w432h576", "6x8", PT(1864,300)+1, PT(2422,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "4x6_x2", "4x6*2", PT(1864,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
+ { "w432h576-div2", "4x6*2", PT(1864,300)+1, PT(2730,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#endif
};
LIST(dyesub_pagesize_list_t, mitsu_cpd80_page_list, dyesub_pagesize_t, mitsu_cpd80_page);
@@ -3019,16 +3025,12 @@ LIST(dyesub_pagesize_list_t, mitsu_cpd80_page_list, dyesub_pagesize_t, mitsu_cpd
static const dyesub_printsize_t mitsu_cpd80_printsize[] =
{
{ "300x300", "w288h432", 1228, 1864},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1228, 1864},
-#endif
+ { "300x300", "w288h432-div2", 1228, 1864},
{ "300x300", "w360h360", 1524, 1568},
{ "300x300", "w360h504", 1568, 2128},
{ "300x300", "w432h432", 1864, 1820},
{ "300x300", "w432h576", 1864, 2422},
-#ifdef MULTICUT
- { "300x300", "4x6_x2", 1864, 2730},
-#endif
+ { "300x300", "w432h576-div2", 1864, 2730},
};
LIST(dyesub_printsize_list_t, mitsu_cpd80_printsize_list, dyesub_printsize_t, mitsu_cpd80_printsize);
@@ -3067,7 +3069,7 @@ static const dyesub_pagesize_t shinko_chcs9045_page[] =
DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1548,300)+1, PT(2140,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
- { "w432h576", "6x9", PT(1844,300)+1, PT(2740,300)+1, 0, 0, 0, 0,
+ { "w432h648", "6x9", PT(1844,300)+1, PT(2740,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
{ "w283h425", "Sticker paper", PT(1092,300)+1, PT(1726,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
@@ -3082,7 +3084,7 @@ static const dyesub_printsize_t shinko_chcs9045_printsize[] =
{ "300x300", "w288h432", 1240, 1844},
{ "300x300", "B7", 1088, 1548},
{ "300x300", "w360h504", 1548, 2140},
- { "300x300", "w432h576", 1844, 2740},
+ { "300x300", "w432h648", 1844, 2740},
{ "300x300", "w283h425", 1092, 1726},
{ "300x300", "Custom", 1240, 1844},
};
@@ -3120,24 +3122,18 @@ static const dyesub_pagesize_t shinko_chcs2145_page[] =
DYESUB_LANDSCAPE},
{ "w288h432", "4x6", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ { "w288h432-div2", "2x6*2", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#endif
{ "B7", "3.5x5", PT(1088,300)+1, PT(1548,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1548,300)+1, PT(2140,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
{ "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "4x6_x2", "4x6*2", PT(1844,300)+1, PT(2492,300)+1, 0, 0, 0, 0,
+ { "w432h576-div2", "4x6*2", PT(1844,300)+1, PT(2492,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#endif
{ "w432h648", "6x9", PT(1844,300)+1, PT(2740,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
- { "Custom", NULL, PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
- DYESUB_LANDSCAPE},
};
LIST(dyesub_pagesize_list_t, shinko_chcs2145_page_list, dyesub_pagesize_t, shinko_chcs2145_page);
@@ -3146,17 +3142,12 @@ static const dyesub_printsize_t shinko_chcs2145_printsize[] =
{
{ "300x300", "w144h432", 634, 1844},
{ "300x300", "w288h432", 1240, 1844},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1240, 1844},
-#endif
+ { "300x300", "w288h432-div2", 1240, 1844},
{ "300x300", "B7", 1088, 1548},
{ "300x300", "w360h504", 1548, 2140},
{ "300x300", "w432h576", 1844, 2434},
-#ifdef MULTICUT
- { "300x300", "4x6_x2", 1844, 2492},
-#endif
+ { "300x300", "w432h576-div2", 1844, 2492},
{ "300x300", "w432h648", 1844, 2740},
- { "300x300", "Custom", 1240, 1844},
};
LIST(dyesub_printsize_list_t, shinko_chcs2145_printsize_list, dyesub_printsize_t, shinko_chcs2145_printsize);
@@ -3180,7 +3171,7 @@ static void shinko_chcs2145_printer_init(stp_vars_t *v)
if (strcmp(privdata.pagesize,"w288h432") == 0)
media = '\0';
- else if (strcmp(privdata.pagesize,"2x6_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w288h432-div2") == 0)
media = '\0';
else if (strcmp(privdata.pagesize,"B7") == 0)
media = '\1';
@@ -3190,7 +3181,7 @@ static void shinko_chcs2145_printer_init(stp_vars_t *v)
media = '\6';
else if (strcmp(privdata.pagesize,"w432h648") == 0)
media = '\5';
- else if (strcmp(privdata.pagesize,"4x6_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w432h576-div2") == 0)
media = '\5';
else if (strcmp(privdata.pagesize,"w144h432") == 0)
media = '\7';
@@ -3205,9 +3196,9 @@ static void shinko_chcs2145_printer_init(stp_vars_t *v)
stp_put32_le(media, v); /* Media Type */
stp_put32_le(0x00, v);
- if (strcmp(privdata.pagesize,"4x6_x2") == 0) {
+ if (strcmp(privdata.pagesize,"w432h576-div2") == 0) {
stp_put32_le(0x02, v);
- } else if (strcmp(privdata.pagesize,"2x6_x2") == 0) {
+ } else if (strcmp(privdata.pagesize,"w288h432-div2") == 0) {
stp_put32_le(0x04, v);
} else {
stp_put32_le(0x00, v); /* Print Method */
@@ -3256,19 +3247,13 @@ static const dyesub_pagesize_t shinko_chcs1245_page[] =
{ "w360h576", "8x5", PT(1530,300)+1, PT(2446,300)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
{ "w432h576", "8x6", PT(1831,300)+1, PT(2446,300)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
{ "w576h576", "8x8", PT(2436,300)+1, PT(2446,300)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "8x4_x2", "8x4*2", PT(2446,300)+1, PT(2468,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "w576h576-div2", "8x4*2", PT(2446,300)+1, PT(2468,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
{ "c8x10", "8x10", PT(2446,300)+1, PT(3036,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "8x6_8x4", "8x6+8x4", PT(2446,300)+1, PT(3070,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "8x5_x2", "8x5*2", PT(2446,300)+1, PT(3070,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "c8x10-w576h432_w576h288", "8x6+8x4", PT(2446,300)+1, PT(3070,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "c8x10-div2", "8x5*2", PT(2446,300)+1, PT(3070,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
{ "w576h864", "8x12", PT(2446,300)+1, PT(3636,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "8x6_x2", "8x6*2", PT(2446,300)+1, PT(3672,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
- { "8x4_x3", "8x4*3", PT(2446,300)+1, PT(3707,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "w576h864-div2", "8x6*2", PT(2446,300)+1, PT(3672,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-div3", "8x4*3", PT(2446,300)+1, PT(3707,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, shinko_chcs1245_page_list, dyesub_pagesize_t, shinko_chcs1245_page);
@@ -3279,19 +3264,13 @@ static const dyesub_printsize_t shinko_chcs1245_printsize[] =
{ "300x300", "w360h576", 1530, 2446},
{ "300x300", "w432h576", 1831, 2446},
{ "300x300", "w576h576", 2436, 2446},
-#ifdef MULTICUT
- { "300x300", "8x4_x2", 2446, 2468},
-#endif
+ { "300x300", "w576h576-div2", 2446, 2468},
{ "300x300", "c8x10", 2446, 3036},
-#ifdef MULTICUT
- { "300x300", "8x6_8x4", 2446, 3070},
- { "300x300", "8x5_x2", 2446, 3070},
-#endif
+ { "300x300", "c8x10-w576h432_w576h288", 2446, 3070},
+ { "300x300", "c8x10-div2", 2446, 3070},
{ "300x300", "w576h864", 2446, 3636},
-#ifdef MULTICUT
- { "300x300", "8x6_x2", 2446, 3672},
- { "300x300", "8x4_x3", 2446, 3707},
-#endif
+ { "300x300", "w576h864-div2", 2446, 3672},
+ { "300x300", "w576h864-div3", 2446, 3707},
};
LIST(dyesub_printsize_list_t, shinko_chcs1245_printsize_list, dyesub_printsize_t, shinko_chcs1245_printsize);
@@ -3319,19 +3298,19 @@ static void shinko_chcs1245_printer_init(stp_vars_t *v)
media = 6;
else if (strcmp(privdata.pagesize,"w576h576") == 0)
media = 9;
- else if (strcmp(privdata.pagesize,"8x4_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w576h576-div2") == 0)
media = 2;
else if (strcmp(privdata.pagesize,"c8x10") == 0)
media = 0;
- else if (strcmp(privdata.pagesize,"8x6_8x4") == 0)
+ else if (strcmp(privdata.pagesize,"c8x10-w576h432_w576h288") == 0)
media = 3;
- else if (strcmp(privdata.pagesize,"8x5_x2") == 0)
+ else if (strcmp(privdata.pagesize,"c8x10-div2") == 0)
media = 1;
else if (strcmp(privdata.pagesize,"w576h864") == 0)
media = 0;
- else if (strcmp(privdata.pagesize,"8x6_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w576h864-div2") == 0)
media = 7;
- else if (strcmp(privdata.pagesize,"8x4_x3") == 0)
+ else if (strcmp(privdata.pagesize,"w576h864-div3") == 0)
media = 8;
stp_put32_le(0x10, v);
@@ -3385,8 +3364,12 @@ static const dyesub_pagesize_t shinko_chcs6245_page[] =
{ "w360h576", "8x5", PT(1536,300)+1, PT(2464,300)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
{ "w432h576", "8x6", PT(1836,300)+1, PT(2464,300)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
{ "w576h576", "8x8", PT(2436,300)+1, PT(2464,300)+1, 0, 0, 0, 0, DYESUB_LANDSCAPE},
+ { "w576h576-div2", "8x4*2", PT(2464,300)+1, PT(2494,300)+1, 0, 0, PT(0,300), PT(0,300), DYESUB_PORTRAIT},
{ "c8x10", "8x10", PT(2464,300)+1, PT(3036,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "c8x10-div2", "8x5*2", PT(2464,300)+1, PT(3094,300)+1, 0, 0, PT(0,300), PT(0,300), DYESUB_PORTRAIT},
{ "w576h864", "8x12", PT(2464,300)+1, PT(3636,300)+1, 0, 0, 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-div2", "8x6*2", PT(2464,300)+1, PT(3694,300)+1, 0, 0, PT(0,300), PT(0,300), DYESUB_PORTRAIT},
+ { "w576h864-div3", "8x4*3", PT(2464,300)+1, PT(3742,300)+1, 0, 0, PT(0,300), PT(0,300), DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, shinko_chcs6245_page_list, dyesub_pagesize_t, shinko_chcs6245_page);
@@ -3397,8 +3380,12 @@ static const dyesub_printsize_t shinko_chcs6245_printsize[] =
{ "300x300", "w360h576", 1536, 2464},
{ "300x300", "w432h576", 1836, 2464},
{ "300x300", "w576h576", 2436, 2464},
+ { "300x300", "w576h576-div2", 2464, 2494},
{ "300x300", "c8x10", 2464, 3036},
+ { "300x300", "c8x10-div2", 2464, 3094},
{ "300x300", "w576h864", 2464, 3636},
+ { "300x300", "w576h864-div2", 2464, 3694},
+ { "300x300", "w576h864-div3", 2464, 3742},
};
LIST(dyesub_printsize_list_t, shinko_chcs6245_printsize_list, dyesub_printsize_t, shinko_chcs6245_printsize);
@@ -3428,6 +3415,14 @@ static void shinko_chcs6245_printer_init(stp_vars_t *v)
media = 0x10;
else if (strcmp(privdata.pagesize,"w576h864") == 0)
media = 0x11;
+ else if (strcmp(privdata.pagesize,"w576h576-div2") == 0)
+ media = 0x30;
+ else if (strcmp(privdata.pagesize,"c8x10-div2") == 0)
+ media = 0x31;
+ else if (strcmp(privdata.pagesize,"w576h864-div2") == 0)
+ media = 0x32;
+ else if (strcmp(privdata.pagesize,"w576h864-div3") == 0)
+ media = 0x40;
stp_put32_le(0x10, v);
stp_put32_le(6245, v); /* Printer Model */
@@ -3475,10 +3470,8 @@ static const dyesub_pagesize_t shinko_chcs6145_page[] =
DYESUB_LANDSCAPE},
{ "w288h432", "4x6", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ { "w288h432-div2", "2x6*2", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#endif
{ "w360h360", "5x5", PT(1536,300)+1, PT(1548,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1548,300)+1, PT(2140,300)+1, 0, 0, 0, 0,
@@ -3487,10 +3480,8 @@ static const dyesub_pagesize_t shinko_chcs6145_page[] =
DYESUB_LANDSCAPE},
{ "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "4x6_2x6", "4x6+2x6", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
+ { "w432h576-w432h432_w432h144", "6x6+2x6", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#endif
};
LIST(dyesub_pagesize_list_t, shinko_chcs6145_page_list, dyesub_pagesize_t, shinko_chcs6145_page);
@@ -3499,16 +3490,12 @@ static const dyesub_printsize_t shinko_chcs6145_printsize[] =
{
{ "300x300", "w144h432", 634, 1844},
{ "300x300", "w288h432", 1240, 1844},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1240, 1844},
-#endif
+ { "300x300", "w288h432-div2", 1240, 1844},
{ "300x300", "w360h360", 1536, 1548},
{ "300x300", "w360h504", 1548, 2140},
{ "300x300", "w432h432", 1832, 1844},
{ "300x300", "w432h576", 1844, 2434},
-#ifdef MULTICUT
- { "300x300", "4x6_2x6", 1844, 2434},
-#endif
+ { "300x300", "w432h576-w432h432_w432h144", 1844, 2434},
};
LIST(dyesub_printsize_list_t, shinko_chcs6145_printsize_list, dyesub_printsize_t, shinko_chcs6145_printsize);
@@ -3528,7 +3515,7 @@ static void shinko_chcs6145_printer_init(stp_vars_t *v)
if (strcmp(privdata.pagesize,"w288h432") == 0)
media = 0x00;
- else if (strcmp(privdata.pagesize,"2x6_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w288h432-div2") == 0)
media = 0x00;
else if (strcmp(privdata.pagesize,"w360h360") == 0)
media = 0x08;
@@ -3540,9 +3527,7 @@ static void shinko_chcs6145_printer_init(stp_vars_t *v)
media = 0x06;
else if (strcmp(privdata.pagesize,"w144h432") == 0)
media = 0x07;
- else if (strcmp(privdata.pagesize,"4x6_2x6") == 0)
- media = 0x06;
- else if (strcmp(privdata.pagesize,"6x6_2x6") == 0)
+ else if (strcmp(privdata.pagesize,"w432h576-w432h432_w432h144") == 0)
media = 0x06;
stp_put32_le(0x10, v);
@@ -3559,9 +3544,9 @@ static void shinko_chcs6145_printer_init(stp_vars_t *v)
stp_put32_le(media, v); /* Media Type */
stp_put32_le(0x00, v);
- if (strcmp(privdata.pagesize,"6x6_2x6") == 0) {
+ if (strcmp(privdata.pagesize,"w432h576-w432h432_w432h144") == 0) {
stp_put32_le(0x05, v);
- } else if (strcmp(privdata.pagesize,"2x6_x2") == 0) {
+ } else if (strcmp(privdata.pagesize,"w288h432-div2") == 0) {
stp_put32_le(0x04, v);
} else {
stp_put32_le(0x00, v);
@@ -3601,18 +3586,14 @@ static const dyesub_pagesize_t ciaat_brava21_page[] =
DYESUB_LANDSCAPE},
{ "w288h432", "4x6", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
+ { "w288h432-div2", "2x6*2", PT(1240,300)+1, PT(1844,300)+1, 0, 0, 0, 0,
DYESUB_LANDSCAPE},
-#endif
{ "w360h504", "5x7", PT(1548,300)+1, PT(2140,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
{ "w432h576", "6x8", PT(1844,300)+1, PT(2434,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "4x6_x2", "4x6*2", PT(1844,300)+1, PT(2492,300)+1, 0, 0, 0, 0,
+ { "w432h576-div2", "4x6*2", PT(1844,300)+1, PT(2492,300)+1, 0, 0, 0, 0,
DYESUB_PORTRAIT},
-#endif
};
LIST(dyesub_pagesize_list_t, ciaat_brava21_page_list, dyesub_pagesize_t, ciaat_brava21_page);
@@ -3621,14 +3602,10 @@ static const dyesub_printsize_t ciaat_brava21_printsize[] =
{
{ "300x300", "w144h432", 634, 1844},
{ "300x300", "w288h432", 1240, 1844},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1240, 1844},
-#endif
+ { "300x300", "w288h432-div2", 1240, 1844},
{ "300x300", "w360h504", 1548, 2140},
{ "300x300", "w432h576", 1844, 2434},
-#ifdef MULTICUT
- { "300x300", "4x6_x2", 1844, 2492},
-#endif
+ { "300x300", "w432h576-div2", 1844, 2492},
};
LIST(dyesub_printsize_list_t, ciaat_brava21_printsize_list, dyesub_printsize_t, ciaat_brava21_printsize);
@@ -3648,7 +3625,7 @@ static void ciaat_brava21_printer_init(stp_vars_t *v)
if (strcmp(privdata.pagesize,"w288h432") == 0)
media = 0x00;
- else if (strcmp(privdata.pagesize,"2x6_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w288h432-div2") == 0)
media = 0x00;
else if (strcmp(privdata.pagesize,"w360h504") == 0)
media = 0x03;
@@ -3656,7 +3633,7 @@ static void ciaat_brava21_printer_init(stp_vars_t *v)
media = 0x06;
else if (strcmp(privdata.pagesize,"w144h432") == 0)
media = 0x07;
- else if (strcmp(privdata.pagesize,"w4x6_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w432h576-div2") == 0)
media = 0x06;
stp_putc(0x01, v);
@@ -3674,9 +3651,9 @@ static void ciaat_brava21_printer_init(stp_vars_t *v)
dyesub_nputc(v, 0x00, 6);
stp_putc(0x01, v);
- if (strcmp(privdata.pagesize,"2x6_x2") == 0)
+ if (strcmp(privdata.pagesize,"w288h432-div2") == 0)
media = 0x04;
- else if (strcmp(privdata.pagesize,"4x6_x2") == 0)
+ else if (strcmp(privdata.pagesize,"w432h576-div2") == 0)
media = 0x02;
else
media = 0x00; /* or 0x01 to turn off trimming */
@@ -3702,15 +3679,13 @@ static const dyesub_pagesize_t dnpds40_page[] =
{
{ "B7", "3.5x5", PT(1088,300)+1, PT(1920,300)+1, 0, 0, PT(186,300), PT(186,300), DYESUB_LANDSCAPE},
{ "w288h432", "4x6", PT(1240,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1240,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
-#endif
+ { "w288h432-div2", "2x6*2", PT(1240,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1920,300)+1, PT(2138,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
- { "A5", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "4x6_x2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#endif
- { "w432h576", "6x9", PT(1920,300)+1, PT(2740,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w360h504-div2", "3.5x5*2", PT(1920,300)+1, PT(2176,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576-div4", "2x6*4", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576-div2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h648", "6x9", PT(1920,300)+1, PT(2740,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, dnpds40_page_list, dyesub_pagesize_t, dnpds40_page);
@@ -3721,20 +3696,20 @@ static const dyesub_printsize_t dnpds40_printsize[] =
{ "300x600", "B7", 2176, 1920},
{ "300x300", "w288h432", 1240, 1920},
{ "300x600", "w288h432", 2480, 1920},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1240, 1920},
- { "300x600", "2x6_x2", 2480, 1920},
-#endif
+ { "300x300", "w288h432-div2", 1240, 1920},
+ { "300x600", "w288h432-div2", 2480, 1920},
{ "300x300", "w360h504", 1920, 2138},
{ "300x600", "w360h504", 1920, 4276},
- { "300x300", "A5", 1920, 2436},
- { "300x600", "A5", 1920, 4872},
-#ifdef MULTICUT
- { "300x300", "4x6_x2", 1920, 2498},
- { "300x600", "4x6_x2", 1920, 4996},
-#endif
- { "300x300", "w432h576", 1920, 2740},
- { "300x600", "w432h576", 1920, 5480},
+ { "300x300", "w360h504-div2", 1920, 2176},
+ { "300x600", "w360h504-div2", 1920, 4352},
+ { "300x300", "w432h576", 1920, 2436},
+ { "300x600", "w432h576", 1920, 4872},
+ { "300x300", "w432h576-div4", 1920, 2436},
+ { "300x600", "w432h576-div4", 1920, 4872},
+ { "300x300", "w432h576-div2", 1920, 2498},
+ { "300x600", "w432h576-div2", 1920, 4996},
+ { "300x300", "w432h648", 1920, 2740},
+ { "300x600", "w432h648", 1920, 5480},
};
LIST(dyesub_printsize_list_t, dnpds40_printsize_list, dyesub_printsize_t, dnpds40_printsize);
@@ -3766,7 +3741,9 @@ static void dnpds40_printer_start(stp_vars_t *v)
/* Set cutter option to "normal" */
stp_zprintf(v, "\033PCNTRL CUTTER 0000000800000");
- if (!strcmp(privdata.pagesize, "2x6_x2")) {
+ if (!strcmp(privdata.pagesize, "w288h432-div2")) {
+ stp_zprintf(v, "120");
+ } else if (!strcmp(privdata.pagesize, "w432h576-div4")) {
stp_zprintf(v, "120");
} else {
stp_zprintf(v, "000");
@@ -3777,17 +3754,22 @@ static void dnpds40_printer_start(stp_vars_t *v)
if (!strcmp(privdata.pagesize, "B7")) {
stp_zprintf(v, "01");
- } else if (!strcmp(privdata.pagesize, "w288h432") ||
- !strcmp(privdata.pagesize, "2x6_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w288h432")) {
stp_zprintf(v, "02");
} else if (!strcmp(privdata.pagesize, "w360h504")) {
stp_zprintf(v, "03");
- } else if (!strcmp(privdata.pagesize, "A5")) {
- stp_zprintf(v, "04");
+ } else if (!strcmp(privdata.pagesize, "w360h504-div2")) {
+ stp_zprintf(v, "22");
} else if (!strcmp(privdata.pagesize, "w432h576")) {
+ stp_zprintf(v, "04");
+ } else if (!strcmp(privdata.pagesize, "w432h648")) {
stp_zprintf(v, "05");
- } else if (!strcmp(privdata.pagesize, "4x6_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-div2")) {
stp_zprintf(v, "12");
+ } else if (!strcmp(privdata.pagesize, "w288h432-div2")) {
+ stp_zprintf(v, "02");
+ } else if (!strcmp(privdata.pagesize, "w432h576-div4")) {
+ stp_zprintf(v, "04");
} else {
stp_zprintf(v, "00"); /* should be impossible. */
}
@@ -3845,23 +3827,17 @@ static const dyesub_pagesize_t dnpds80_page[] =
{ "w360h576", "8x5", PT(1536,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
{ "w432h576", "8x6", PT(1836,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
{ "w576h576", "8x8", PT(2436,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
-#ifdef MULTICUT
- { "8x4_x2", "8x4*2", PT(2502,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
- { "8x5_8x4", "8x5+8x4", PT(2560,300)+1, PT(2802,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "w576h576-div2", "8x4*2", PT(2502,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
+ { "w576h648-w576h360_w576h288", "8x5+8x4", PT(2560,300)+1, PT(2802,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
{ "c8x10", "8x10", PT(2560,300)+1, PT(3036,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "8x5_x2", "8x5*2", PT(2560,300)+1, PT(3036,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
- { "8x6_8x4", "8x6+8x4", PT(2560,300)+1, PT(3036,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
- { "8x6_8x5", "8x6+8x5", PT(2560,300)+1, PT(3402,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "c8x10-div2", "8x5*2", PT(2560,300)+1, PT(3102,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "c8x10-w576h432_w576h288", "8x6+8x4", PT(2560,300)+1, PT(3102,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h792-w576h432_w576h360", "8x6+8x5", PT(2560,300)+1, PT(3402,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
{ "A4", "A4 Length", PT(2560,300)+1, PT(3544,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
{ "w576h864", "8x12", PT(2560,300)+1, PT(3636,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "8x6_x2", "8x6*2", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
- { "8x8_8x4", "8x8+8x4", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
- { "8x4_x3", "8x4*3", PT(2560,300)+1, PT(3768,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "w576h864-div2", "8x6*2", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-w576h576_w576h288", "8x8+8x4", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-div3", "8x4*3", PT(2560,300)+1, PT(3768,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, dnpds80_page_list, dyesub_pagesize_t, dnpds80_page);
@@ -3876,34 +3852,28 @@ static const dyesub_printsize_t dnpds80_printsize[] =
{ "300x600", "w432h576", 3672, 2560},
{ "300x300", "w576h576", 2436, 2560},
{ "300x600", "w576h576", 4872, 2560},
-#ifdef MULTICUT
- { "300x300", "8x4_x2", 2502, 2560},
- { "300x600", "8x4_x2", 5004, 2560},
- { "300x300", "8x5_8x4", 2560, 2802},
- { "300x600", "8x5_8x4", 2560, 5604},
-#endif
+ { "300x300", "w576h576-div2", 2502, 2560},
+ { "300x600", "w576h576-div2", 5004, 2560},
+ { "300x300", "w576h648-w576h360_w576h288", 2560, 2802},
+ { "300x600", "w576h648-w576h360_w576h288", 2560, 5604},
{ "300x300", "c8x10", 2560, 3036},
{ "300x600", "c8x10", 2560, 6072},
-#ifdef MULTICUT
- { "300x300", "8x5_x2", 2560, 3102},
- { "300x600", "8x5_x2", 2560, 6204},
- { "300x300", "8x6_8x4", 2560, 3102},
- { "300x600", "8x6_8x4", 2560, 6204},
- { "300x300", "8x6_8x5", 2560, 3402},
- { "300x600", "8x6_8x5", 2560, 6804},
-#endif
+ { "300x300", "c8x10-div2", 2560, 3102},
+ { "300x600", "c8x10-div2", 2560, 6204},
+ { "300x300", "c8x10-w576h432_w576h288", 2560, 3102},
+ { "300x600", "c8x10-w576h432_w576h288", 2560, 6204},
+ { "300x300", "w576h792-w576h432_w576h360", 2560, 3402},
+ { "300x600", "w576h792-w576h432_w576h360", 2560, 6804},
{ "300x300", "A4", 2560, 3544},
{ "300x600", "A4", 2560, 7088},
{ "300x300", "w576h864", 2560, 3636},
{ "300x600", "w576h864", 2560, 7272},
-#ifdef MULTICUT
- { "300x300", "8x6_x2", 2560, 3702},
- { "300x600", "8x6_x2", 2560, 7404},
- { "300x300", "8x8_8x4", 2560, 3702},
- { "300x600", "8x8_8x4", 2560, 7404},
- { "300x300", "8x4_x3", 2560, 3768},
- { "300x600", "8x4_x3", 2560, 7536},
-#endif
+ { "300x300", "w576h864-div2", 2560, 3702},
+ { "300x600", "w576h864-div2", 2560, 7404},
+ { "300x300", "w576h864-w576h576_w576h288", 2560, 3702},
+ { "300x600", "w576h864-w576h576_w576h288", 2560, 7404},
+ { "300x300", "w576h864-div3", 2560, 3768},
+ { "300x600", "w576h864-div3", 2560, 7536},
};
LIST(dyesub_printsize_list_t, dnpds80_printsize_list, dyesub_printsize_t, dnpds80_printsize);
@@ -3931,21 +3901,21 @@ static void dnpds80_printer_start(stp_vars_t *v)
stp_zprintf(v, "10");
} else if (!strcmp(privdata.pagesize, "w576h576")) {
stp_zprintf(v, "11");
- } else if (!strcmp(privdata.pagesize, "8x4_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w576h576-div2")) {
stp_zprintf(v, "13");
- } else if (!strcmp(privdata.pagesize, "8x5_x2")) {
+ } else if (!strcmp(privdata.pagesize, "c8x10-div2")) {
stp_zprintf(v, "14");
- } else if (!strcmp(privdata.pagesize, "8x6_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w576h864-div2")) {
stp_zprintf(v, "15");
- } else if (!strcmp(privdata.pagesize, "8x5_8x4")) {
+ } else if (!strcmp(privdata.pagesize, "w576h648-w576h360_w576h288")) {
stp_zprintf(v, "16");
- } else if (!strcmp(privdata.pagesize, "8x6_8x4")) {
+ } else if (!strcmp(privdata.pagesize, "c8x10-w576h432_w576h288")) {
stp_zprintf(v, "17");
- } else if (!strcmp(privdata.pagesize, "8x6_8x5")) {
+ } else if (!strcmp(privdata.pagesize, "w576h792-w576h432_w576h360")) {
stp_zprintf(v, "18");
- } else if (!strcmp(privdata.pagesize, "8x8_8x4")) {
+ } else if (!strcmp(privdata.pagesize, "w576h864-w576h576_w576h288")) {
stp_zprintf(v, "19");
- } else if (!strcmp(privdata.pagesize, "8x4_x3")) {
+ } else if (!strcmp(privdata.pagesize, "w576h864-div3")) {
stp_zprintf(v, "20");
} else if (!strcmp(privdata.pagesize, "A4")) {
stp_zprintf(v, "21");
@@ -3954,46 +3924,196 @@ static void dnpds80_printer_start(stp_vars_t *v)
}
}
+/* Dai Nippon Printing DS80DX */
+static const dyesub_media_t dnpds80dx_medias[] =
+{
+ {"Roll", N_("Roll"), {0, ""}},
+ {"Sheet", N_("Sheet"), {0, ""}},
+};
+
+LIST(dyesub_media_list_t, dnpds80dx_media_list, dyesub_media_t, dnpds80dx_medias);
+
+/* This list is *not* translated */
+static const dyesub_stringitem_t dnpds80dx_uiconstraints[] =
+{
+ /* PPD generation handles constraint reciprocation */
+ {"UIConstraints", "*Duplex *MediaType Roll"},
+ {"UIConstraints", "*PageSize A4 *MediaType Sheet"},
+ {"UIConstraints", "*PageSize w576h792-w576h432_w576h360 *MediaType Sheet"},
+ {"UIConstraints", "*PageSize w576h648-w576h360_w576h288 *MediaType Sheet"},
+ {"UIConstraints", "*PageSize c8x10-w576h432_w576h288 *MediaType Sheet"},
+ {"UIConstraints", "*PageSize w576h864-w576h576_w576h288 *MediaType Sheet"},
+ {"UIConstraints", "*PageSize w576h864-div3 *MediaType Sheet"},
+ {"UIConstraints", "*PageSize w576h864-div3sheet *MediaType Roll"},
+ {"UIConstraints", "*PageSize w576h774-w576h756 *MediaType Roll"},
+ {"UIConstraints", "*PageSize w576h774 *MediaType Roll"},
+};
+
+LIST(dyesub_stringlist_t, dnpds80dx_uiconstraints_list, dyesub_stringitem_t, dnpds80dx_uiconstraints);
+
+/* This is the same as the DS80, except with 10.5" and 10.75" sizes
+ only meant for sheet media. Duplex is *only* supported on sheet media.
+
+ Also, 8x4*3 differs depending on if you're using sheet or roll media,
+ hence the almost-duplicated definition.
+
+ See the constraints list for the illegal combinations
+*/
+
+static const dyesub_pagesize_t dnpds80dx_page[] =
+{
+ { "w288h576", "8x4", PT(1236,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
+ { "w360h576", "8x5", PT(1536,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
+ { "w432h576", "8x6", PT(1836,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
+ { "w576h576", "8x8", PT(2436,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
+ { "w576h576-div2", "8x4*2", PT(2502,300)+1, PT(2560,300)+1, 0, 0, PT(56,300), PT(56,300), DYESUB_LANDSCAPE},
+ { "w576h648-w576h360_w576h288", "8x5+8x4", PT(2560,300)+1, PT(2802,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "c8x10", "8x10", PT(2560,300)+1, PT(3036,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "c8x10-div2", "8x5*2", PT(2560,300)+1, PT(3102,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "c8x10-w576h432_w576h288", "8x6+8x4", PT(2560,300)+1, PT(3102,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h774-w576h756", "8x10.5", PT(2560,300)+1, PT(3186,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h774", "8x10.75", PT(2560,300)+1, PT(3186,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h792-w576h432_w576h360", "8x6+8x5", PT(2560,300)+1, PT(3402,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "A4", "A4 Length", PT(2560,300)+1, PT(3544,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864", "8x12", PT(2560,300)+1, PT(3636,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-div2", "8x6*2", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-w576h576_w576h288", "8x8+8x4", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-div3", "8x4*3", PT(2560,300)+1, PT(3768,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+ { "w576h864-div3sheet", "8x4*3 SHEET", PT(2560,300)+1, PT(3702,300)+1, PT(56,300), PT(56,300), 0, 0, DYESUB_PORTRAIT},
+};
+
+LIST(dyesub_pagesize_list_t, dnpds80dx_page_list, dyesub_pagesize_t, dnpds80dx_page);
+
+static const dyesub_printsize_t dnpds80dx_printsize[] =
+{
+ { "300x300", "w288h576", 1236, 2560},
+ { "300x600", "w288h576", 2472, 2560},
+ { "300x300", "w360h576", 1536, 2560},
+ { "300x600", "w360h576", 3072, 2560},
+ { "300x300", "w432h576", 1836, 2560},
+ { "300x600", "w432h576", 3672, 2560},
+ { "300x300", "w576h576", 2436, 2560},
+ { "300x600", "w576h576", 4872, 2560},
+ { "300x300", "w576h576-div2", 2502, 2560},
+ { "300x600", "w576h576-div2", 5004, 2560},
+ { "300x300", "w576h648-w576h360_w576h288", 2560, 2802},
+ { "300x600", "w576h648-w576h360_w576h288", 2560, 5604},
+ { "300x300", "c8x10", 2560, 3036},
+ { "300x600", "c8x10", 2560, 6072},
+ { "300x300", "c8x10-div2", 2560, 3102},
+ { "300x600", "c8x10-div2", 2560, 6204},
+ { "300x300", "c8x10-w576h432_w576h288", 2560, 3102},
+ { "300x600", "c8x10-w576h432_w576h288", 2560, 6204},
+ { "300x300", "w576h774", 2560, 3186},
+ { "300x600", "w576h774", 2560, 6372},
+ { "300x300", "w576h774-w576h756", 2560, 3186},
+ { "300x600", "w576h774-w576h756", 2560, 6372},
+ { "300x300", "w576h792-w576h432_w576h360", 2560, 3402},
+ { "300x600", "w576h792-w576h432_w576h360", 2560, 6804},
+ { "300x300", "A4", 2560, 3544},
+ { "300x600", "A4", 2560, 7088},
+ { "300x300", "w576h864", 2560, 3636},
+ { "300x600", "w576h864", 2560, 7272},
+ { "300x300", "w576h864-div2", 2560, 3702},
+ { "300x600", "w576h864-div2", 2560, 7404},
+ { "300x300", "w576h864-w576h576_w576h288", 2560, 3702},
+ { "300x600", "w576h864-w576h576_w576h288", 2560, 7404},
+ { "300x300", "w576h864-div3", 2560, 3768},
+ { "300x600", "w576h864-div3", 2560, 7536},
+ { "300x300", "w576h864-div3sheet", 2560, 3702},
+ { "300x600", "w576h864-div3sheet", 2560, 7404},
+};
+
+LIST(dyesub_printsize_list_t, dnpds80dx_printsize_list, dyesub_printsize_t, dnpds80dx_printsize);
+
+static void dnpds80dx_printer_start(stp_vars_t *v)
+{
+ int multicut;
+
+ /* If we're using roll media, act the same as a standard DS80 */
+ if (!strcmp(privdata.media->name, "Roll"))
+ {
+ dnpds80_printer_start(v);
+ return;
+ }
+
+ /* Common code */
+ dnp_printer_start_common(v);
+
+ /* Set cutter option to "normal" */
+ stp_zprintf(v, "\033PCNTRL CUTTER 0000000800000000");
+
+ if (!strcmp(privdata.pagesize, "c8x10")) {
+ multicut = 6;
+ } else if (!strcmp(privdata.pagesize, "w576h864")) {
+ multicut = 7;
+ } else if (!strcmp(privdata.pagesize, "w288h576")) {
+ multicut = 8;
+ } else if (!strcmp(privdata.pagesize, "w360h576")) {
+ multicut = 9;
+ } else if (!strcmp(privdata.pagesize, "w432h576")) {
+ multicut = 10;
+ } else if (!strcmp(privdata.pagesize, "w576h576")) {
+ multicut = 11;
+ } else if (!strcmp(privdata.pagesize, "w576h774-w576h756")) {
+ multicut = 25;
+ } else if (!strcmp(privdata.pagesize, "w576h774")) {
+ multicut = 26;
+ } else if (!strcmp(privdata.pagesize, "w576h576-div2")) {
+ multicut = 13;
+ } else if (!strcmp(privdata.pagesize, "c8x10-div2")) {
+ multicut = 14;
+ } else if (!strcmp(privdata.pagesize, "w576h864-div2")) {
+ multicut = 15;
+ } else if (!strcmp(privdata.pagesize, "w576h864-div3sheet")) {
+ multicut = 28;
+ } else {
+ multicut = 0;
+ }
+
+ /* Add correct offset to multicut mode based on duplex state */
+ if (!strcmp(privdata.duplex_mode, "None"))
+ multicut += 100; /* Simplex */
+ else if (privdata.page_number & 1)
+ multicut += 300; /* Duplex, back */
+ else
+ multicut += 200; /* Duplex, front */
+
+ stp_zprintf(v, "\033PIMAGE MULTICUT 00000008%08d", multicut);
+}
+
/* Dai Nippon Printing DS-RX1 */
/* Imaging area is wider than print size, we always must supply the
printer with the full imaging width. */
static const dyesub_pagesize_t dnpsrx1_page[] =
{
- { "B7", "3.5x5", PT(1920,300)+1, PT(1088,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
- { "w288h432", "4x6", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "B7", "3.5x5", PT(1088,300)+1, PT(1920,300)+1, 0, 0, PT(186,300), PT(186,300), DYESUB_LANDSCAPE},
+ { "w288h432", "4x6", PT(1240,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
+ { "w288h432-div2", "2x6*2", PT(1240,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1920,300)+1, PT(2138,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
- { "A5", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "2x6_x4", "2x6*4", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
- { "4x6_x2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "w432h576", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576-div4", "2x6*4", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576-div2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, dnpsrx1_page_list, dyesub_pagesize_t, dnpsrx1_page);
static const dyesub_printsize_t dnpsrx1_printsize[] =
{
- { "300x300", "B7", 1920, 1088},
- { "300x600", "B7", 1920, 2176},
- { "300x300", "w288h432", 1920, 1240},
- { "300x600", "w288h432", 1920, 2480},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1920, 1240},
- { "300x600", "2x6_x2", 1920, 2480},
-#endif
+ { "300x300", "B7", 1088, 1920},
+ { "300x600", "B7", 2176, 1920},
+ { "300x300", "w288h432", 1240, 1920},
+ { "300x600", "w288h432", 2480, 1920},
+ { "300x300", "w288h432-div2", 1240, 1920},
+ { "300x600", "w288h432-div2", 2480, 1920},
{ "300x300", "w360h504", 1920, 2138},
{ "300x600", "w360h504", 1920, 4276},
- { "300x300", "A5", 1920, 2436},
- { "300x600", "A5", 1920, 4872},
-#ifdef MULTICUT
- { "300x300", "2x6_x4", 1920, 2436},
- { "300x600", "2x6_x4", 1920, 4872},
- { "300x300", "4x6_x2", 1920, 2498},
- { "300x600", "4x6_x2", 1920, 4996},
-#endif
+ { "300x300", "w432h576", 1920, 2436},
+ { "300x600", "w432h576", 1920, 4872},
+ { "300x300", "w432h576-div4", 1920, 2436},
+ { "300x600", "w432h576-div4", 1920, 4872},
+ { "300x300", "w432h576-div2", 1920, 2498},
+ { "300x600", "w432h576-div2", 1920, 4996},
};
LIST(dyesub_printsize_list_t, dnpsrx1_printsize_list, dyesub_printsize_t, dnpsrx1_printsize);
@@ -4005,9 +4125,9 @@ static void dnpdsrx1_printer_start(stp_vars_t *v)
/* Set cutter option to "normal" */
stp_zprintf(v, "\033PCNTRL CUTTER 0000000800000");
- if (!strcmp(privdata.pagesize, "2x6_x2")) {
+ if (!strcmp(privdata.pagesize, "w288h432-div2")) {
stp_zprintf(v, "120");
- } else if (!strcmp(privdata.pagesize, "2x6_x4")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-div4")) {
stp_zprintf(v, "120");
} else {
stp_zprintf(v, "000");
@@ -4022,13 +4142,13 @@ static void dnpdsrx1_printer_start(stp_vars_t *v)
stp_zprintf(v, "02");
} else if (!strcmp(privdata.pagesize, "w360h504")) {
stp_zprintf(v, "03");
- } else if (!strcmp(privdata.pagesize, "A5")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576")) {
stp_zprintf(v, "04");
- } else if (!strcmp(privdata.pagesize, "4x6_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-div2")) {
stp_zprintf(v, "12");
- } else if (!strcmp(privdata.pagesize, "2x6_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w288h432-div2")) {
stp_zprintf(v, "02");
- } else if (!strcmp(privdata.pagesize, "2x6_x4")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-div4")) {
stp_zprintf(v, "04");
} else {
stp_zprintf(v, "00");
@@ -4040,70 +4160,54 @@ static void dnpdsrx1_printer_start(stp_vars_t *v)
printer with the full imaging width. */
static const dyesub_pagesize_t dnpds620_page[] =
{
- { "B7", "3.5x5", PT(1920,300)+1, PT(1088,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
- { "w288h432", "4x6", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "2x6_x2", "2x6*2", PT(1920,300)+1, PT(1240,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#endif
- { "w324h432", "4.5x6", PT(1920,300)+1, PT(1386,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
- { "w360h360", "5x5", PT(1920,300)+1, PT(1540,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
+ { "B7", "3.5x5", PT(1088,300)+1, PT(1920,300)+1, 0, 0, PT(186,300), PT(186,300), DYESUB_LANDSCAPE},
+ { "w288h432", "4x6", PT(1240,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
+ { "w288h432-div2", "2x6*2", PT(1240,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
+ { "w324h432", "4.5x6", PT(1386,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
+ { "w360h360", "5x5", PT(1540,300)+1, PT(1920,300)+1, 0, 0, PT(186,300), PT(186,300), DYESUB_LANDSCAPE},
{ "w360h504", "5x7", PT(1920,300)+1, PT(2138,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "B7_x2", "3.5x5*2", PT(1920,300)+1, PT(2176,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
-#endif
- { "w432h432", "6x6", PT(1920,300)+1, PT(1836,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
- { "A5", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "6x6_2x6", "6x6+2x6", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
- { "2x6_x4", "2x6*4", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
- { "4x6_x2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#endif
- { "w432h576", "6x9", PT(1920,300)+1, PT(2740,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#ifdef MULTICUT
- { "w324h432_x2", "4.5x6*2", PT(1920,300)+1, PT(2802,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
-#endif
+ { "w360h504-div2", "3.5x5*2", PT(1920,300)+1, PT(2176,300)+1, PT(186,300), PT(186,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h432", "6x6", PT(1836,300)+1, PT(1920,300)+1, 0, 0, PT(38,300), PT(38,300), DYESUB_LANDSCAPE},
+ { "w432h576", "6x8", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576-w432h432_w432h144", "6x6+2x6", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576-div4", "2x6*4", PT(1920,300)+1, PT(2436,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576-div2", "4x6*2", PT(1920,300)+1, PT(2498,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h648", "6x9", PT(1920,300)+1, PT(2740,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
+ { "w432h648-div2", "4.5x6*2", PT(1920,300)+1, PT(2802,300)+1, PT(38,300), PT(38,300), 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, dnpds620_page_list, dyesub_pagesize_t, dnpds620_page);
static const dyesub_printsize_t dnpds620_printsize[] =
{
- { "300x300", "B7", 1920, 1088},
- { "300x600", "B7", 1920, 2176},
- { "300x300", "w288h432", 1920, 1240},
- { "300x600", "w288h432", 1920, 2480},
-#ifdef MULTICUT
- { "300x300", "2x6_x2", 1920, 1240},
- { "300x600", "2x6_x2", 1920, 2480},
-#endif
- { "300x300", "w324h432", 1920, 1386},
- { "300x600", "w324h432", 1920, 2772},
- { "300x300", "w360h360", 1920, 1540},
- { "300x600", "w360h360", 1920, 3080},
+ { "300x300", "B7", 1088, 1920},
+ { "300x600", "B7", 2176, 1920},
+ { "300x300", "w288h432", 1240, 1920},
+ { "300x600", "w288h432", 2480, 1920},
+ { "300x300", "w288h432-div2", 1240, 1920},
+ { "300x600", "w288h432-div2", 2480, 1920},
+ { "300x300", "w324h432", 1386, 1920},
+ { "300x600", "w324h432", 2772, 1920},
+ { "300x300", "w360h360", 1540, 1920},
+ { "300x600", "w360h360", 3080, 1920},
{ "300x300", "w360h504", 1920, 2138},
{ "300x600", "w360h504", 1920, 4276},
-#ifdef MULTICUT
- { "300x300", "B7_x2", 1920, 2176},
- { "300x600", "B7_x2", 1920, 4352},
-#endif
- { "300x300", "w432h432", 1920, 1836},
- { "300x600", "w432h432", 1920, 3672},
- { "300x300", "A5", 1920, 2436},
- { "300x600", "A5", 1920, 4872},
-#ifdef MULTICUT
- { "300x300", "2x6_x4", 1920, 2436},
- { "300x600", "2x6_x4", 1920, 4872},
- { "300x300", "6x6_2x6", 1920, 2436},
- { "300x600", "6x6_2x6", 1920, 4872},
- { "300x300", "4x6_x2", 1920, 2498},
- { "300x600", "4x6_x2", 1920, 4996},
-#endif
- { "300x300", "w432h576", 1920, 2740},
- { "300x600", "w432h576", 1920, 5480},
-#ifdef MULTICUT
- { "300x300", "w324h432_x2", 1920, 2802},
- { "300x600", "w324h432_x2", 1920, 5604},
-#endif
+ { "300x300", "w360h504-div2", 1920, 2176},
+ { "300x600", "w360h504-div2", 1920, 4352},
+ { "300x300", "w432h432", 1836, 1920},
+ { "300x600", "w432h432", 3672, 1920},
+ { "300x300", "w432h576", 1920, 2436},
+ { "300x600", "w432h576", 1920, 4872},
+ { "300x300", "w432h576-div4", 1920, 2436},
+ { "300x600", "w432h576-div4", 1920, 4872},
+ { "300x300", "w432h576-w432h432_w432h144", 1920, 2436},
+ { "300x600", "w432h576-w432h432_w432h144", 1920, 4872},
+ { "300x300", "w432h576-div2", 1920, 2498},
+ { "300x600", "w432h576-div2", 1920, 4996},
+ { "300x300", "w432h648", 1920, 2740},
+ { "300x600", "w432h648", 1920, 5480},
+ { "300x300", "w432h648-div2", 1920, 2802},
+ { "300x600", "w432h648-div2", 1920, 5604},
};
LIST(dyesub_printsize_list_t, dnpds620_printsize_list, dyesub_printsize_t, dnpds620_printsize);
@@ -4114,49 +4218,50 @@ static void dnpds620_printer_start(stp_vars_t *v)
dnp_printer_start_common(v);
/* Multicut when 8x6 media is in use */
- if (!strcmp(privdata.pagesize, "A5") &&
+ if (!strcmp(privdata.pagesize, "w432h576") &&
!strcmp(privdata.pagesize, "w432h648")) {
- stp_zprintf(v, "\033PCNTRL FULL_CUTTER_SET 00000016");
+ stp_zprintf(v, "\033PCNTRL FULL_CUTTER_SET 00000016");
stp_zprintf(v, "0000000000000000");
- } else if (!strcmp(privdata.pagesize, "2x6_x4")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-div4")) {
stp_zprintf(v, "\033PCNTRL FULL_CUTTER_SET 00000016");
stp_zprintf(v, "0200200200200000");
- } else if (!strcmp(privdata.pagesize, "6x6_2x6")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-w432h432_w432h144")) {
stp_zprintf(v, "\033PCNTRL FULL_CUTTER_SET 00000016");
- stp_zprintf(v, "0600200000000000");
- } else if (!strcmp(privdata.pagesize, "2x6_x2")) {
+ stp_zprintf(v, "0600200000000000");
+ } else if (!strcmp(privdata.pagesize, "w288h432-div2")) {
stp_zprintf(v, "\033PCNTRL CUTTER 00000008");
stp_zprintf(v, "00000120");
}
/* Configure multi-cut/page size */
stp_zprintf(v, "\033PIMAGE MULTICUT 00000008000000");
-
if (!strcmp(privdata.pagesize, "B7")) {
stp_zprintf(v, "01");
} else if (!strcmp(privdata.pagesize, "w288h432")) {
stp_zprintf(v, "02");
+ } else if (!strcmp(privdata.pagesize, "w288h432-div2")) {
+ stp_zprintf(v, "02");
} else if (!strcmp(privdata.pagesize, "w324h432")) {
stp_zprintf(v, "30");
} else if (!strcmp(privdata.pagesize, "w360h360")) {
stp_zprintf(v, "29");
} else if (!strcmp(privdata.pagesize, "w360h504")) {
stp_zprintf(v, "03");
+ } else if (!strcmp(privdata.pagesize, "w360h504-div2")) {
+ stp_zprintf(v, "22");
} else if (!strcmp(privdata.pagesize, "w432h432")) {
stp_zprintf(v, "27");
- } else if (!strcmp(privdata.pagesize, "A5")) {
- stp_zprintf(v, "04");
} else if (!strcmp(privdata.pagesize, "w432h576")) {
- stp_zprintf(v, "05");
- } else if (!strcmp(privdata.pagesize, "6x6_2x6")) {
stp_zprintf(v, "04");
- } else if (!strcmp(privdata.pagesize, "2x6_x4")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-w432h432_w432h144")) {
stp_zprintf(v, "04");
- } else if (!strcmp(privdata.pagesize, "2x6_x2")) {
- stp_zprintf(v, "02");
- } else if (!strcmp(privdata.pagesize, "4x6_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w432h576-div4")) {
+ stp_zprintf(v, "04");
+ } else if (!strcmp(privdata.pagesize, "w432h576-div2")) {
stp_zprintf(v, "12");
- } else if (!strcmp(privdata.pagesize, "w324h432_x2")) {
+ } else if (!strcmp(privdata.pagesize, "w432h648")) {
+ stp_zprintf(v, "05");
+ } else if (!strcmp(privdata.pagesize, "w432h648-div2")) {
stp_zprintf(v, "31");
} else {
stp_zprintf(v, "00"); /* Should be impossible */
@@ -4179,8 +4284,8 @@ static const dyesub_pagesize_t citizen_cw01_page[] =
{ "w288h432", "4x6", PT(1380,334)+1, PT(2048,334)+1, 0, 0, PT(5,334), PT(5,334), DYESUB_LANDSCAPE},
{ "w338h504", "4.7x7", PT(2048,334)+1, PT(2380,334)+1, PT(225,334), PT(225,334), 0, 0, DYESUB_PORTRAIT},
{ "w360h504", "5x7", PT(2048,334)+1, PT(2380,334)+1, PT(169,334), PT(169,334), 0, 0, DYESUB_PORTRAIT},
- { "A5", "6x8", PT(2048,334)+1, PT(2710,300)+1, PT(5,334), PT(5,334), 0, 0, DYESUB_PORTRAIT},
- { "w432h576", "6x9", PT(2048,334)+1, PT(3050,334)+1, PT(5,334), PT(5,334), 0, 0, DYESUB_PORTRAIT},
+ { "w432h576", "6x8", PT(2048,334)+1, PT(2710,300)+1, PT(5,334), PT(5,334), 0, 0, DYESUB_PORTRAIT},
+ { "w432h648", "6x9", PT(2048,334)+1, PT(3050,334)+1, PT(5,334), PT(5,334), 0, 0, DYESUB_PORTRAIT},
};
LIST(dyesub_pagesize_list_t, citizen_cw01_page_list, dyesub_pagesize_t, citizen_cw01_page);
@@ -4188,7 +4293,7 @@ LIST(dyesub_pagesize_list_t, citizen_cw01_page_list, dyesub_pagesize_t, citizen_
static const dyesub_printsize_t citizen_cw01_printsize[] =
{
{ "334x334", "w252h338", 1210, 2048},
- { "334x600", "w252h388", 2176, 2048},
+ { "334x600", "w252h338", 2176, 2048},
{ "334x334", "B7", 1210, 2048},
{ "334x600", "B7", 2176, 2048},
{ "334x334", "w288h432", 1380, 2048},
@@ -4197,8 +4302,8 @@ static const dyesub_printsize_t citizen_cw01_printsize[] =
{ "334x600", "w338h504", 2048, 4276},
{ "334x334", "w360h504", 2048, 2380},
{ "334x600", "w360h504", 2048, 4276},
- { "334x334", "A5", 2048, 2710},
- { "334x600", "A5", 2048, 4870},
+ { "334x334", "w432h576", 2048, 2710},
+ { "334x600", "w432h576", 2048, 4870},
{ "334x334", "w432h576", 2048, 3050},
{ "334x600", "w432h576", 2048, 5480},
};
@@ -4219,7 +4324,7 @@ static void citizen_cw01_printer_start(stp_vars_t *v)
media = 0x03;
else if (strcmp(privdata.pagesize,"w360h504") == 0)
media = 0x04;
- else if (strcmp(privdata.pagesize,"A5") == 0)
+ else if (strcmp(privdata.pagesize,"w432h576") == 0)
media = 0x05;
else if (strcmp(privdata.pagesize,"w432h576") == 0)
media = 0x06;
@@ -4285,7 +4390,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
&p10_block_init_func, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &p10_laminate_list, NULL,
+ &p10_laminate_list, NULL, NULL
},
{ /* Olympus P-200 */
4,
@@ -4300,7 +4405,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&p200_plane_init_func, NULL,
NULL, NULL,
p200_adj_any, p200_adj_any, p200_adj_any,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Olympus P-300 */
0,
@@ -4315,7 +4420,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, &p300_plane_end_func,
&p300_block_init_func, NULL,
p300_adj_cyan, p300_adj_magenta, p300_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Olympus P-400 */
1,
@@ -4330,7 +4435,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&p400_plane_init_func, &p400_plane_end_func,
&p400_block_init_func, NULL,
p400_adj_cyan, p400_adj_magenta, p400_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Olympus P-440 */
3,
@@ -4344,7 +4449,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
&p440_block_init_func, &p440_block_end_func,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &p10_laminate_list, NULL,
+ &p10_laminate_list, NULL, NULL
},
{ /* Olympus P-S100 */
20,
@@ -4358,7 +4463,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon CP-10 */
1002,
@@ -4374,7 +4479,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon CP-100, CP-200, CP-300 */
1000,
@@ -4390,7 +4495,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon CP-220, CP-330, SELPHY CP400, SELPHY CP500, SELPHY CP510,
SELPHY CP520, SELPHY CP530, SELPHY CP600, SELPHY CP710,
@@ -4409,7 +4514,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon SELPHY ES1 */
1003,
@@ -4425,7 +4530,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es1_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon SELPHY ES2, SELPHY ES20 */
1005,
@@ -4441,7 +4546,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon SELPHY ES3, SELPHY ES30 */
1006,
@@ -4457,7 +4562,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon SELPHY ES40 */
1007,
@@ -4473,7 +4578,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon SELPHY CP790 */
1008,
@@ -4489,7 +4594,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&es2_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon SELPHY CP800 */
1009,
@@ -4505,7 +4610,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon SELPHY CP900 */
1010,
@@ -4521,7 +4626,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&cpx00_plane_init_func, NULL,
NULL, NULL,
cpx00_adj_cyan, cpx00_adj_magenta, cpx00_adj_yellow,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Canon CP820, CP910 */
1011,
@@ -4537,7 +4642,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* Printer handles color correction! */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Sony UP-DP10 */
2000,
@@ -4552,7 +4657,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
updp10_adj_cyan, updp10_adj_magenta, updp10_adj_yellow,
- &updp10_laminate_list, NULL,
+ &updp10_laminate_list, NULL, NULL,
},
{ /* Sony UP-DR150 */
2001,
@@ -4566,7 +4671,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &updp10_laminate_list, NULL,
+ &updp10_laminate_list, NULL, NULL,
},
{ /* Sony DPP-EX5, DPP-EX7 */
2002,
@@ -4581,7 +4686,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
&dppex5_block_init, NULL,
NULL, NULL, NULL,
- &dppex5_laminate_list, NULL,
+ &dppex5_laminate_list, NULL, NULL,
},
{ /* Sony UP-DR100 */
2003,
@@ -4595,7 +4700,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &updr100_laminate_list, NULL,
+ &updr100_laminate_list, NULL, NULL,
},
{ /* Sony UP-DR200 */
2004,
@@ -4609,7 +4714,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &updr200_laminate_list, NULL,
+ &updr200_laminate_list, NULL, NULL,
},
{ /* Sony UP-CR10L / DNP SL10 */
2005,
@@ -4623,7 +4728,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Fujifilm Printpix CX-400 */
3000,
@@ -4638,7 +4743,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Fujifilm Printpix CX-550 */
3001,
@@ -4653,7 +4758,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Fujifilm FinePix NX-500 */
3002,
@@ -4667,7 +4772,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Kodak Easyshare Dock family */
4000,
@@ -4682,7 +4787,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&kodak_dock_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Kodak Photo Printer 6800 */
4001,
@@ -4692,11 +4797,11 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&kodak_6800_printsize_list,
SHRT_MAX,
DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
- &kodak_6800_printer_init, NULL,
+ &kodak_68xx_printer_init, NULL,
NULL, NULL, /* No plane funcs */
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &kodak_6800_laminate_list, NULL,
+ &kodak_6800_laminate_list, NULL, NULL,
},
{ /* Kodak Photo Printer 6850 */
4002,
@@ -4706,11 +4811,11 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&kodak_6850_printsize_list,
SHRT_MAX,
DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT,
- &kodak_6850_printer_init, NULL,
+ &kodak_68xx_printer_init, NULL,
NULL, NULL, /* No plane funcs */
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &kodak_6800_laminate_list, NULL,
+ &kodak_6800_laminate_list, NULL, NULL,
},
{ /* Kodak Photo Printer 605 */
4003,
@@ -4724,7 +4829,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No plane funcs */
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &kodak_605_laminate_list, NULL,
+ &kodak_605_laminate_list, NULL, NULL,
},
{ /* Kodak Professional 1400 */
4004,
@@ -4740,8 +4845,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &kodak_6800_laminate_list,
- &kodak_1400_media_list,
+ &kodak_6800_laminate_list, &kodak_1400_media_list, NULL,
},
{ /* Kodak Photo Printer 805 */
4005,
@@ -4757,7 +4861,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No plane funcs */
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &kodak_6800_laminate_list, NULL,
+ &kodak_6800_laminate_list, NULL, NULL,
},
{ /* Kodak Professional 9810 */
4006,
@@ -4772,7 +4876,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&kodak_9810_plane_init, NULL,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &kodak_9810_laminate_list, NULL,
+ &kodak_9810_laminate_list, NULL, NULL,
},
{ /* Kodak 8810 */
4007,
@@ -4784,12 +4888,41 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
| DYESUB_FEATURE_PLANE_INTERLACE,
&kodak_8810_printer_init, NULL,
- NULL, NULL,
+ NULL, NULL,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &kodak_8810_laminate_list, NULL,
+ &kodak_8810_laminate_list, NULL, NULL,
+ },
+ { /* Kodak 7000/7010 */
+ 4008,
+ &bgr_ink_list,
+ &res_300dpi_list,
+ &kodak_7000_page_list,
+ &kodak_7000_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &kodak_70xx_printer_init, NULL,
+ NULL, NULL,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_7000_laminate_list, NULL, NULL,
+ },
+ { /* Kodak 7015 */
+ 4009,
+ &bgr_ink_list,
+ &res_300dpi_list,
+ &kodak_7015_page_list,
+ &kodak_7015_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT
+ | DYESUB_FEATURE_PLANE_INTERLACE,
+ &kodak_70xx_printer_init, NULL,
+ NULL, NULL,
+ NULL, NULL, /* No block funcs */
+ NULL, NULL, NULL, /* color profile/adjustment is built into printer */
+ &kodak_7000_laminate_list, NULL, NULL,
},
-
{ /* Kodak Professional 8500 */
4100,
&bgr_ink_list,
@@ -4802,8 +4935,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No plane funcs */
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &kodak_8500_laminate_list,
- &kodak_8500_media_list,
+ &kodak_8500_laminate_list, &kodak_8500_media_list, NULL,
},
{ /* Mitsubishi CP3020D/DU/DE */
4101,
@@ -4818,7 +4950,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&mitsu_cp3020d_plane_init, &mitsu_cp3020d_plane_end,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Mitsubishi CP3020DA/DAE */
4102,
@@ -4833,7 +4965,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&mitsu_cp3020da_plane_init, NULL,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Mitsubishi CP9550D */
4103,
@@ -4848,7 +4980,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&mitsu_cp3020da_plane_init, NULL,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Mitsubishi CP9810D */
4104,
@@ -4864,7 +4996,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&mitsu_cp3020da_plane_init, NULL,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &mitsu_cp9810_laminate_list, NULL,
+ &mitsu_cp9810_laminate_list, NULL, NULL,
},
{ /* Mitsubishi CPD70D/CPD707D */
4105,
@@ -4880,7 +5012,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, &mitsu_cpd70x_plane_end,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &mitsu_cpd70x_laminate_list, NULL,
+ &mitsu_cpd70x_laminate_list, NULL, NULL,
},
{ /* Mitsubishi CPK60D */
4106,
@@ -4896,7 +5028,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, &mitsu_cpd70x_plane_end,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &mitsu_cpd70x_laminate_list, NULL,
+ &mitsu_cpd70x_laminate_list, NULL, NULL,
},
{ /* Mitsubishi CPD80D */
4107,
@@ -4912,7 +5044,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, &mitsu_cpd70x_plane_end,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &mitsu_cpd70x_laminate_list, NULL,
+ &mitsu_cpd70x_laminate_list, NULL, NULL,
},
{ /* Kodak 305 */
4108,
@@ -4928,7 +5060,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, &mitsu_cpd70x_plane_end,
NULL, NULL, /* No block funcs */
NULL, NULL, NULL, /* color profile/adjustment is built into printer */
- &mitsu_cpd70x_laminate_list, NULL,
+ &mitsu_cpd70x_laminate_list, NULL, NULL,
},
{ /* Shinko CHC-S9045 (experimental) */
5000,
@@ -4942,7 +5074,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL,
},
{ /* Shinko/Sinfonia CHC-S2145 */
5001,
@@ -4956,7 +5088,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No planes */
NULL, NULL, /* No blocks */
NULL, NULL, NULL, /* Color correction in printer */
- &shinko_chcs2145_laminate_list, NULL,
+ &shinko_chcs2145_laminate_list, NULL, NULL,
},
{ /* Shinko/Sinfonia CHC-S1245 */
5002,
@@ -4970,7 +5102,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No planes */
NULL, NULL, /* No blocks */
NULL, NULL, NULL, /* Color correction in printer */
- &shinko_chcs1245_laminate_list, NULL,
+ &shinko_chcs1245_laminate_list, NULL, NULL,
},
{ /* Shinko/Sinfonia CHC-S6245 */
5003,
@@ -4984,11 +5116,11 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No planes */
NULL, NULL, /* No blocks */
NULL, NULL, NULL, /* Color correction in printer */
- &shinko_chcs6245_laminate_list, NULL,
+ &shinko_chcs6245_laminate_list, NULL, NULL,
},
{ /* Shinko/Sinfonia CHC-S6145 */
5004,
- &rgb_ink_list,
+ &ymc_ink_list,
&res_300dpi_list,
&shinko_chcs6145_page_list,
&shinko_chcs6145_printsize_list,
@@ -4998,7 +5130,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No planes */
NULL, NULL, /* No blocks */
NULL, NULL, NULL, /* Color correction in printer */
- &shinko_chcs6145_laminate_list, NULL,
+ &shinko_chcs6145_laminate_list, NULL, NULL,
},
{ /* CIAAT Brava 21 */
5005,
@@ -5012,7 +5144,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
NULL, NULL, /* No planes */
NULL, NULL, /* No blocks */
NULL, NULL, NULL, /* Color correction in printer */
- &ciaat_brava21_laminate_list, NULL,
+ &ciaat_brava21_laminate_list, NULL, NULL,
},
{ /* Dai Nippon Printing DS40 */
6000,
@@ -5027,7 +5159,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&dnpds40_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &dnpds40_laminate_list, NULL,
+ &dnpds40_laminate_list, NULL, NULL,
},
{ /* Dai Nippon Printing DS80 */
6001,
@@ -5042,7 +5174,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&dnpds40_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &dnpds40_laminate_list, NULL,
+ &dnpds40_laminate_list, NULL, NULL,
},
{ /* Dai Nippon Printing DSRX1 */
6002,
@@ -5057,7 +5189,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&dnpds40_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &dnpds40_laminate_list, NULL,
+ &dnpds40_laminate_list, NULL, NULL,
},
{ /* Dai Nippon Printing DS620 */
6003,
@@ -5072,7 +5204,7 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&dnpds40_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
- &dnpds40_laminate_list, NULL,
+ &dnpds40_laminate_list, NULL, NULL,
},
{ /* Citizen CW-01 */
6005,
@@ -5087,7 +5219,22 @@ static const dyesub_cap_t dyesub_model_capabilities[] =
&citizen_cw01_plane_init, NULL,
NULL, NULL,
NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ },
+ { /* Dai Nippon Printing DS80DX */
+ 6006,
+ &bgr_ink_list,
+ &res_dnpds40_dpi_list,
+ &dnpds80dx_page_list,
+ &dnpds80dx_printsize_list,
+ SHRT_MAX,
+ DYESUB_FEATURE_FULL_WIDTH | DYESUB_FEATURE_FULL_HEIGHT | DYESUB_FEATURE_WHITE_BORDER
+ | DYESUB_FEATURE_PLANE_INTERLACE | DYESUB_FEATURE_PLANE_LEFTTORIGHT | DYESUB_FEATURE_DUPLEX,
+ &dnpds80dx_printer_start, &dnpds40_printer_end,
+ &dnpds40_plane_init, NULL,
NULL, NULL,
+ NULL, NULL, NULL,
+ &dnpds40_laminate_list, &dnpds80dx_media_list, &dnpds80dx_uiconstraints_list,
},
};
@@ -5145,6 +5292,24 @@ static const stp_parameter_t the_parameters[] =
STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_CORE,
STP_PARAMETER_LEVEL_BASIC, 1, 1, STP_CHANNEL_NONE, 1, 0
},
+ {
+ "NativeCopies", N_("Printer Generates Copies Natively"), "Color=No,Category=Advanced Printer Functionality",
+ N_("Printer Generates Copies"),
+ STP_PARAMETER_TYPE_BOOLEAN, STP_PARAMETER_CLASS_FEATURE,
+ STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 1
+ },
+ {
+ "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
+ },
+ {
+ "PPDUIConstraints", N_("PPD User Interface Constraints"), "Color=No,Category=Advanced Printer Functionality",
+ N_("PPD UIConstraints List"),
+ STP_PARAMETER_TYPE_STRING_LIST, STP_PARAMETER_CLASS_FEATURE,
+ STP_PARAMETER_LEVEL_INTERNAL, 0, 0, STP_CHANNEL_NONE, 0, 1
+ },
};
static int the_parameter_count =
@@ -5198,6 +5363,20 @@ static const float_param_t float_parameters[] =
static const int float_parameter_count =
sizeof(float_parameters) / sizeof(const float_param_t);
+/*
+ * Duplex support - modes available
+ * Note that the internal names MUST match those in cups/genppd.c else the
+ * PPD files will not be generated correctly
+ */
+
+static const stp_param_string_t duplex_types[] =
+{
+ { "None", N_ ("Off") },
+ { "DuplexNoTumble", N_ ("Long Edge (Standard)") },
+ { "DuplexTumble", N_ ("Short Edge (Flip)") }
+};
+#define NUM_DUPLEX (sizeof (duplex_types) / sizeof (stp_param_string_t))
+
static const dyesub_cap_t* dyesub_get_model_capabilities(int model)
{
int i;
@@ -5367,11 +5546,6 @@ dyesub_parameters(const stp_vars_t *v, const char *name,
description->is_active = 0;
}
}
- else if (strcmp(name, "InputSlot") == 0)
- {
- description->bounds.str = stp_string_list_create();
- description->is_active = 0;
- }
else if (strcmp(name, "Resolution") == 0)
{
char res_text[24];
@@ -5416,6 +5590,8 @@ dyesub_parameters(const stp_vars_t *v, const char *name,
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
description->is_active = 1;
+ } else {
+ description->is_active = 0;
}
}
else if (strcmp(name, "Borderless") == 0)
@@ -5431,6 +5607,54 @@ dyesub_parameters(const stp_vars_t *v, const char *name,
description->deflt.str =
stp_string_list_param(description->bounds.str, 0)->name;
}
+ else if (strcmp(name, "PPDUIConstraints") == 0)
+ {
+ description->bounds.str = stp_string_list_create();
+ if (caps->uiconstraints) {
+ const dyesub_stringlist_t *mlist = caps->uiconstraints;
+ for (i = 0; i < mlist->n_items; i++)
+ {
+ const dyesub_stringitem_t *m = &(mlist->item[i]);
+ stp_string_list_add_string(description->bounds.str,
+ m->name, m->text); /* Do *not* want this translated */
+ }
+ description->deflt.str =
+ stp_string_list_param(description->bounds.str, 0)->name;
+ description->is_active = 1;
+ } else {
+ description->is_active = 0;
+ }
+ }
+ else if (strcmp(name, "Duplex") == 0)
+ {
+ int offer_duplex=0;
+
+ description->bounds.str = stp_string_list_create();
+
+ /*
+ * Don't offer the Duplex/Tumble options if the JobMode parameter is
+ * set to "Page" Mode.
+ * "Page" mode is set by the Gimp Plugin, which only outputs one page at a
+ * time, so Duplex/Tumble is meaningless.
+ */
+
+ if (stp_get_string_parameter(v, "JobMode"))
+ offer_duplex = strcmp(stp_get_string_parameter(v, "JobMode"), "Page");
+ else
+ offer_duplex=1;
+
+ if (offer_duplex && (caps->features & DYESUB_FEATURE_DUPLEX))
+ {
+ description->deflt.str = duplex_types[0].name;
+ for (i=0; i < NUM_DUPLEX; i++)
+ {
+ stp_string_list_add_string(description->bounds.str,
+ duplex_types[i].name,gettext(duplex_types[i].text));
+ }
+ }
+ else
+ description->is_active = 0;
+ }
else
description->is_active = 0;
}
@@ -5586,7 +5810,7 @@ dyesub_describe_output_internal(const stp_vars_t *v, dyesub_print_vars_t *pv)
int i;
pv->ink_channels = 1;
- pv->ink_order = NULL;
+ pv->ink_order = "\1";
output_type = "CMY";
if (ink_type)
@@ -5954,8 +6178,6 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
int pl;
-
-
if (!stp_verify(v))
{
stp_eprintf(v, _("Print options not verified; cannot print.\n"));
@@ -5970,6 +6192,12 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
stp_describe_resolution(v, &w_dpi, &h_dpi);
dyesub_printsize(v, &max_print_px_width, &max_print_px_height);
+ /* Duplex processing -- Rotate even pages for DuplexNoTumble */
+ privdata.duplex_mode = stp_get_string_parameter(v, "Duplex");
+ privdata.page_number = stp_get_int_parameter(v, "PageNumber");
+ if((privdata.page_number & 1) && privdata.duplex_mode && !strcmp(privdata.duplex_mode,"DuplexNoTumble"))
+ image = stpi_buffer_image(image,BUFFER_FLAG_FLIP_X | BUFFER_FLAG_FLIP_Y);
+
privdata.pagesize = stp_get_string_parameter(v, "PageSize");
if (caps->laminate)
privdata.laminate = dyesub_get_laminate_pattern(v);
@@ -5980,7 +6208,11 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
(dyesub_feature(caps, DYESUB_FEATURE_WHITE_BORDER) ? 1 : 0),
&page_pt_left, &page_pt_right, &page_pt_bottom, &page_pt_top,
&page_mode);
-
+
+ /* Swap DPI so these computations will work out properly */
+ if (page_mode == DYESUB_LANDSCAPE)
+ dyesub_swap_ints(&w_dpi, &h_dpi);
+
pv.prnw_px = MIN(max_print_px_width,
PX(page_pt_right - page_pt_left, w_dpi));
pv.prnh_px = MIN(max_print_px_height,
@@ -5988,7 +6220,6 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
pv.outw_px = PX(out_pt_width, w_dpi);
pv.outh_px = PX(out_pt_height, h_dpi);
-
/* if image size is close enough to output size send out original size */
if (abs(pv.outw_px - pv.imgw_px) < SIZE_THRESHOLD)
pv.outw_px = pv.imgw_px;
@@ -6003,7 +6234,10 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
pv.prnh_px - pv.outh_px);
pv.outr_px = pv.outl_px + pv.outw_px;
pv.outb_px = pv.outt_px + pv.outh_px;
-
+
+ /* Swap back so that everything that follows will work. */
+ if (page_mode == DYESUB_LANDSCAPE)
+ dyesub_swap_ints(&w_dpi, &h_dpi);
stp_deprintf(STP_DBG_DYESUB,
"paper (pt) %d x %d\n"
@@ -6027,8 +6261,7 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
page_pt_bottom, page_pt_top, page_pt_bottom - page_pt_top,
pv.prnw_px, pv.prnh_px,
w_dpi, h_dpi
- );
-
+ );
/* FIXME: move this into print_init_drv */
ink_type = dyesub_describe_output_internal(v, &pv);
@@ -6095,7 +6328,6 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
dyesub_adjust_curve(v, caps->adj_cyan, "CyanCurve");
dyesub_adjust_curve(v, caps->adj_magenta, "MagentaCurve");
dyesub_adjust_curve(v, caps->adj_yellow, "YellowCurve");
- stp_set_float_parameter(v, "Density", 1.0);
if (dyesub_feature(caps, DYESUB_FEATURE_FULL_HEIGHT))
{
@@ -6147,7 +6379,7 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image)
privdata.h_size = pv.prnh_px;
privdata.print_mode = pv.print_mode;
privdata.bpp = pv.bits_per_ink_channel;
-
+
/* printer init */
dyesub_exec(v, caps->printer_init_func, "caps->printer_init");
diff --git a/src/main/print-papers.c b/src/main/print-papers.c
index 7a7528d..fa84f96 100644
--- a/src/main/print-papers.c
+++ b/src/main/print-papers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-papers.c,v 1.43 2014/01/12 01:30:44 rlk Exp $"
+ * "$Id: print-papers.c,v 1.44 2015/09/07 21:57:37 speachy Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -386,6 +386,8 @@ stp_xml_process_paper(stp_mxml_node_t *paper) /* The paper node */
{
if (!strcmp(stmp, "envelope"))
outpaper->paper_size_type = PAPERSIZE_TYPE_ENVELOPE;
+ else if (!strcmp(stmp, "special"))
+ outpaper->paper_size_type = PAPERSIZE_TYPE_SPECIAL;
else
outpaper->paper_size_type = PAPERSIZE_TYPE_STANDARD;
}
diff --git a/src/main/print-pcl.c b/src/main/print-pcl.c
index 239eb74..5f0d1fa 100644
--- a/src/main/print-pcl.c
+++ b/src/main/print-pcl.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-pcl.c,v 1.163 2015/05/05 02:13:14 rlk Exp $"
+ * "$Id: print-pcl.c,v 1.165 2015/09/09 23:57:32 speachy Exp $"
*
* Print plug-in HP PCL driver for the GIMP.
*
@@ -1875,6 +1875,13 @@ pcl_papersize_valid(const stp_papersize_t *pt,
return(0);
/*
+ * Is it a valid type?
+ */
+ if (pt->paper_size_type != PAPERSIZE_TYPE_STANDARD &&
+ pt->paper_size_type != PAPERSIZE_TYPE_ENVELOPE)
+ return(0);
+
+/*
* Is it a recognized supported name?
*/
@@ -1926,7 +1933,15 @@ static stp_parameter_list_t
pcl_list_parameters(const stp_vars_t *v)
{
stp_parameter_list_t *ret = stp_parameter_list_create();
+ stp_parameter_list_t *tmp_list;
+
int i;
+
+ /* Set up dithering */
+ tmp_list = stp_dither_list_parameters(v);
+ stp_parameter_list_append(ret, tmp_list);
+ stp_parameter_list_destroy(tmp_list);
+
for (i = 0; i < the_parameter_count; i++)
stp_parameter_list_add_param(ret, &(the_parameters[i]));
for (i = 0; i < float_parameter_count; i++)
diff --git a/src/main/print-raw.c b/src/main/print-raw.c
index 95c0ef2..6f4b57d 100644
--- a/src/main/print-raw.c
+++ b/src/main/print-raw.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-raw.c,v 1.43 2013/09/08 15:35:18 rlk Exp $"
+ * "$Id: print-raw.c,v 1.47 2015/09/09 23:57:32 speachy Exp $"
*
* Print plug-in RAW driver for the GIMP.
*
@@ -26,6 +26,17 @@
* compile on generic platforms that don't support glib, gimp, gtk, etc.
*/
+/*
+ * To use this driver, we recommend this:
+ *
+ * stp_set_driver(v, "raw-data-8"); // or raw_data-16
+ * stp_set_string_parameter(v, "PageSize", "Custom");
+ * stp_set_page_height(v, HEIGHT);
+ * stp_set_page_width(v, WIDTH);
+ *
+ * For further details, see compute_thumbnail() in gutenprintui2/panel.c
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -150,6 +161,8 @@ raw_parameters(const stp_vars_t *v, const char *name,
description->bounds.str = stp_string_list_create();
for (i = 0; i < papersizes; i++)
{
+ /* All users of the raw drivers should use "Custom" PageSize
+ and manually set page height/width! */
const stp_papersize_t *pt = stp_get_papersize_by_index(i);
stp_string_list_add_string(description->bounds.str,
pt->name, gettext(pt->text));
@@ -161,10 +174,6 @@ raw_parameters(const stp_vars_t *v, const char *name,
description->is_active = 0;
}
-/*
- * 'escp2_imageable_area()' - Return the imageable area of the page.
- */
-
static void
raw_imageable_area(const stp_vars_t *v,
int *left,
@@ -210,9 +219,6 @@ raw_describe_output(const stp_vars_t *v)
return "RGB";
}
-/*
- * 'escp2_print()' - Print an image to an EPSON printer.
- */
static int
raw_print(const stp_vars_t *v, stp_image_t *image)
{
@@ -258,7 +264,6 @@ raw_print(const stp_vars_t *v, stp_image_t *image)
}
}
- stp_set_float_parameter(nv, "Density", 1.0);
stp_set_boolean_parameter(nv, "SimpleGamma", 1);
stp_channel_reset(nv);
for (i = 0; i < ink_channels; i++)
diff --git a/src/main/print-util.c b/src/main/print-util.c
index c5bfebd..ca7cef9 100644
--- a/src/main/print-util.c
+++ b/src/main/print-util.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-util.c,v 1.121 2015/04/11 16:19:46 rlk Exp $"
+ * "$Id: print-util.c,v 1.122 2015/09/09 23:57:32 speachy Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -639,8 +639,8 @@ stp_merge_printvars(stp_vars_t *user, const stp_vars_t *print)
stp_parameter_list_t
stp_get_parameter_list(const stp_vars_t *v)
{
- stp_parameter_list_t ret = stp_parameter_list_create();
- stp_parameter_list_t tmp_list;
+ stp_parameter_list_t *ret = stp_parameter_list_create();
+ stp_parameter_list_t *tmp_list;
tmp_list = stp_printer_list_parameters(v);
stp_parameter_list_append(ret, tmp_list);
@@ -650,10 +650,6 @@ stp_get_parameter_list(const stp_vars_t *v)
stp_parameter_list_append(ret, tmp_list);
stp_parameter_list_destroy(tmp_list);
- tmp_list = stp_dither_list_parameters(v);
- stp_parameter_list_append(ret, tmp_list);
- stp_parameter_list_destroy(tmp_list);
-
tmp_list = stp_list_generic_parameters(v);
stp_parameter_list_append(ret, tmp_list);
stp_parameter_list_destroy(tmp_list);
diff --git a/src/main/printers.c b/src/main/printers.c
index 997a0ba..7effdfb 100644
--- a/src/main/printers.c
+++ b/src/main/printers.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printers.c,v 1.92 2014/05/22 02:08:20 rlk Exp $"
+ * "$Id: printers.c,v 1.94 2015/07/13 02:18:20 speachy Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
diff --git a/src/testpattern/Makefile.am b/src/testpattern/Makefile.am
index a8680f1..7fe813f 100644
--- a/src/testpattern/Makefile.am
+++ b/src/testpattern/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.28 2012/06/25 22:22:04 rlk Exp $
+## $Id: Makefile.am,v 1.29 2015/09/13 15:30:40 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -34,7 +34,7 @@ TESTS = run-testpattern-1 run-testpattern-2
if BUILD_TESTPATTERN
bin_PROGRAMS = testpattern
noinst_PROGRAMS = printers printer_options
-noinst_SCRIPTS = run-testpattern-2
+noinst_SCRIPTS = run-testpattern-2 compare-checksums
endif
AM_LFLAGS = -i
@@ -61,5 +61,5 @@ endif
MAINTAINERCLEANFILES = Makefile.in testpatternl.c testpatterny.c testpatterny.h
-EXTRA_DIST = testpatterny.h $(pkgdata_DATA) run-testpattern run-testpattern-1
+EXTRA_DIST = testpatterny.h $(pkgdata_DATA) run-testpattern run-testpattern-1 compare-checksums.in
diff --git a/src/testpattern/Makefile.in b/src/testpattern/Makefile.in
index 43d6242..152eea8 100644
--- a/src/testpattern/Makefile.in
+++ b/src/testpattern/Makefile.in
@@ -86,9 +86,10 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(top_srcdir)/scripts/global.mk $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/scripts/mkinstalldirs \
- $(srcdir)/run-testpattern-2.in testpatterny.h testpatterny.c \
- testpatternl.c $(top_srcdir)/scripts/depcomp \
- $(top_srcdir)/scripts/ylwrap $(top_srcdir)/scripts/test-driver
+ $(srcdir)/run-testpattern-2.in $(srcdir)/compare-checksums.in \
+ testpatterny.h testpatterny.c testpatternl.c \
+ $(top_srcdir)/scripts/depcomp $(top_srcdir)/scripts/ylwrap \
+ $(top_srcdir)/scripts/test-driver
@BUILD_TESTPATTERN_TRUE@bin_PROGRAMS = testpattern$(EXEEXT)
@BUILD_TESTPATTERN_TRUE@noinst_PROGRAMS = printers$(EXEEXT) \
@BUILD_TESTPATTERN_TRUE@ printer_options$(EXEEXT)
@@ -109,7 +110,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = run-testpattern-2
+CONFIG_CLEAN_FILES = run-testpattern-2 compare-checksums
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)"
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
@@ -452,6 +453,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
@@ -635,7 +638,7 @@ top_srcdir = @top_srcdir@
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS)
GUTENPRINTUI_LIBS = $(top_builddir)/src/gutenprintui/libgutenprintui.la
TESTS = run-testpattern-1 run-testpattern-2
-@BUILD_TESTPATTERN_TRUE@noinst_SCRIPTS = run-testpattern-2
+@BUILD_TESTPATTERN_TRUE@noinst_SCRIPTS = run-testpattern-2 compare-checksums
AM_LFLAGS = -i
AM_YFLAGS = -d
testpattern_SOURCES = testpattern.c testpatterny.y testpatternl.l testpattern.h
@@ -644,7 +647,7 @@ printers_LDADD = $(GUTENPRINT_LIBS)
printer_options_LDADD = $(GUTENPRINT_LIBS)
@INSTALL_SAMPLES_TRUE@pkgdata_DATA = testpattern.sample extended.sample
MAINTAINERCLEANFILES = Makefile.in testpatternl.c testpatterny.c testpatterny.h
-EXTRA_DIST = testpatterny.h $(pkgdata_DATA) run-testpattern run-testpattern-1
+EXTRA_DIST = testpatterny.h $(pkgdata_DATA) run-testpattern run-testpattern-1 compare-checksums.in
all: all-am
.SUFFIXES:
@@ -682,6 +685,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
run-testpattern-2: $(top_builddir)/config.status $(srcdir)/run-testpattern-2.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+compare-checksums: $(top_builddir)/config.status $(srcdir)/compare-checksums.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
diff --git a/src/testpattern/compare-checksums.in b/src/testpattern/compare-checksums.in
new file mode 100755
index 0000000..0846424
--- /dev/null
+++ b/src/testpattern/compare-checksums.in
@@ -0,0 +1,109 @@
+#!@PERL@
+
+use strict;
+
+my (%old_modes, %old_printers, %new_modes, %new_printers);
+
+if ($#ARGV != 1) {
+ die "Usage: $0 old_checksum_file new_checksum_file\n";
+}
+
+open(OLD, $ARGV[0]) or die("Can't open old checksum file $ARGV[0]: $!\n");
+open(NEW, $ARGV[1]) or die("Can't open new checksum file $ARGV[1]: $!\n");
+
+sub get_printer($) {
+ my ($mode) = @_;
+ $mode =~ s/_PrintingMode.*//;
+ return $mode;
+}
+
+sub get_mode($) {
+ my ($mode) = @_;
+ $mode =~ s/.*_PrintingMode/PrintingMode/;
+ return $mode;
+}
+
+while (<OLD>) {
+ chomp;
+ my ($sum, $mode) = split(/ +[*]?/);
+ $mode =~ s/\.prn$//;
+ $old_modes{$mode} = $sum;
+ my ($printer) = get_printer($mode);
+ $old_printers{$printer} = 1;
+}
+
+close OLD;
+
+while (<NEW>) {
+ chomp;
+ my ($sum, $mode) = split(/ +[*]?/);
+ $mode =~ s/\.prn$//;
+ $new_modes{$mode} = $sum;
+ my ($printer) = get_printer($mode);
+ $new_printers{$printer} = 1;
+}
+
+my (%only_old_printers, %only_new_printers);
+
+foreach my $new_printer (keys %new_printers) {
+ if (! defined $old_printers{$new_printer}) {
+ $only_new_printers{$new_printer} = 1;
+ }
+}
+
+foreach my $old_printer (keys %old_printers) {
+ if (! defined $new_printers{$old_printer}) {
+ $only_old_printers{$old_printer} = 1;
+ }
+}
+
+my (@only_old_modes, @only_new_modes, @changed_modes);
+
+foreach my $old_mode (sort keys %old_modes) {
+ next if defined $only_old_printers{get_printer($old_mode)};
+ if (defined $new_modes{$old_mode}) {
+ if ($new_modes{$old_mode} ne $old_modes{$old_mode}) {
+ push @changed_modes, $old_mode;
+ }
+ } else {
+ push @only_old_modes, $old_mode;
+ }
+}
+
+foreach my $new_mode (sort keys %new_modes) {
+ next if defined $only_new_printers{get_printer($new_mode)};
+ if (!defined $old_modes{$new_mode}) {
+ push @only_new_modes, $new_mode;
+ }
+}
+
+my (@only_old_printers) = sort keys %only_old_printers;
+my (@only_new_printers) = sort keys %only_new_printers;
+
+sub print_changes($$@) {
+ my ($tag, $detail, @changes) = @_;
+ my ($prev_printer);
+ return if ($#changes < 0);
+ print "$tag:\n";
+ foreach my $m (@changes) {
+ my ($printer) = get_printer($m);
+ my ($mode) = get_mode($m);
+ if ($detail) {
+ if ($printer ne $prev_printer) {
+ print " $printer:\n";
+ $prev_printer = $printer;
+ }
+ print " $mode\n";
+ } else {
+ print " $mode\n";
+ }
+ }
+ print "\n";
+}
+
+print "*** Changes from $ARGV[0] to $ARGV[1] ***\n\n";
+print_changes("Printers removed from $ARGV[1]", 0, @only_old_printers);
+print_changes("Printers added to $ARGV[1]", 0, @only_new_printers);
+print_changes("Modes removed from $ARGV[1]", 1, @only_old_modes);
+print_changes("Modes added to $ARGV[1]", 1, @only_new_modes);
+print_changes("Changed printing modes", 1, @changed_modes);
diff --git a/src/testpattern/printer_options.c b/src/testpattern/printer_options.c
index e0f1bf2..a13479e 100644
--- a/src/testpattern/printer_options.c
+++ b/src/testpattern/printer_options.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printer_options.c,v 1.6 2012/05/26 15:56:03 rlk Exp $"
+ * "$Id: printer_options.c,v 1.7 2015/10/04 15:09:54 rlk Exp $"
*
* Dump the per-printer options for the OpenPrinting database
*
@@ -57,7 +57,7 @@ main(int argc, char **argv)
const stp_printer_t *printer = stp_get_printer_by_index(i);
const char *driver = stp_printer_get_driver(printer);
const char *family = stp_printer_get_family(printer);
- stp_vars_t *pv = stp_vars_create_copy(stp_printer_get_defaults(printer));
+ stp_vars_t *pv;
int tcount = 0;
size_t count;
int printer_is_color = 0;
@@ -66,6 +66,7 @@ main(int argc, char **argv)
if (printer_list && !stp_string_list_is_present(printer_list, driver))
continue;
+ pv = stp_vars_create_copy(stp_printer_get_defaults(printer));
/* Set Job Mode to "Job" as this enables the Duplex option */
stp_set_string_parameter(pv, "JobMode", "Job");
diff --git a/src/testpattern/run-testpattern-2.in b/src/testpattern/run-testpattern-2.in
index 4c44027..62c7cbf 100644
--- a/src/testpattern/run-testpattern-2.in
+++ b/src/testpattern/run-testpattern-2.in
@@ -41,6 +41,8 @@ my $global_printer;
my $global_messages;
my $global_page;
my $global_case;
+my $enable_static = "@ENABLE_STATIC@";
+my $enable_shared = "@ENABLE_SHARED@";
my @extras = ();
my @job_extras = ();
@@ -62,6 +64,7 @@ my $rerun = 0;
my $list_printers = 0;
my $list_options = 0;
my $verbose = 0;
+my $use_unused_options = 0;
my @default_options = ();
my %base_settings = ("DitherAlgorithm" => "Fast");
@@ -99,6 +102,7 @@ GetOptions("C=s" => \$csum_type,
"q+" => \$quiet,
"r!" => \$skip_resolutions,
"s!" => \$skip_duplicate_printers,
+ "N!" => \$use_unused_options,
"v+" => \$valgrind,
"x=s" => \@exclude_list,
"y=s" => \@exclude_patterns);
@@ -169,6 +173,7 @@ Usage: run-testpattern-2 [opts] [model ...]
-RR Use only the minimum resolution, and do not test other
resolutions.
-X Repeat specified cases listed on standard input.
+ -N Supply all requested options, even if unused.
Miscellaneous options:
-i Use the installed Gutenprint libraries rather than
@@ -266,6 +271,10 @@ if (! $run_installed && ! defined $ENV{"STP_DATA_PATH"}) {
$ENV{"STP_DATA_PATH"} = "${sdir}/../xml";
}
+if ($valgrind && ! $run_installed && $enable_shared ne "no") {
+ die "Valgrind is not compatible with --enable-shared in tree.\nPlease use autogen.sh --disable-shared.\n";
+}
+
if (! defined $ENV{"STP_MODULE_PATH"}) {
$ENV{"STP_MODULE_PATH"} = "${sdir}/../main:${sdir}/../main/.libs";
}
@@ -618,7 +627,7 @@ sub do_printer($$) {
}
set_opt("PrintingMode", $pmode, $printer);
set_opt("Resolution", $resolution, $printer);
- map { set_opt($_, $base_settings{$_}, $printer)} sort keys %base_settings;
+ map { set_opt($_, $base_settings{$_}, $printer)} grep { $use_unused_options || defined $stpdata{$printer}{$_}} sort keys %base_settings;
my ($case) = "${printer}_PrintingMode_${pmode}_Resolution_${resolution}";
$global_case = $case;
if (! $rerun || $rerun_cases{$case}) {
@@ -687,7 +696,7 @@ sub do_printer($$) {
$pages = $duplex_pages;
}
}
- } keys %base_settings;
+ } grep { $use_unused_options || defined $stpdata{$printer}{$_}} (keys %base_settings);
my ($mstring) = join "_", @mvals;
my ($ostring) = join "+", @ovals;
my $case;
diff --git a/src/xml/Makefile.in b/src/xml/Makefile.in
index dfd1747..3e494b4 100644
--- a/src/xml/Makefile.in
+++ b/src/xml/Makefile.in
@@ -284,6 +284,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/Makefile.in b/src/xml/escp2/Makefile.in
index 0917eb3..c234cc1 100644
--- a/src/xml/escp2/Makefile.in
+++ b/src/xml/escp2/Makefile.in
@@ -221,6 +221,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/inks/Makefile.in b/src/xml/escp2/inks/Makefile.in
index 208bb1f..e7af151 100644
--- a/src/xml/escp2/inks/Makefile.in
+++ b/src/xml/escp2/inks/Makefile.in
@@ -191,6 +191,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/inputslots/Makefile.in b/src/xml/escp2/inputslots/Makefile.in
index 6a9eb25..e8cec78 100644
--- a/src/xml/escp2/inputslots/Makefile.in
+++ b/src/xml/escp2/inputslots/Makefile.in
@@ -191,6 +191,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/media/Makefile.in b/src/xml/escp2/media/Makefile.in
index 11813e8..062fae0 100644
--- a/src/xml/escp2/media/Makefile.in
+++ b/src/xml/escp2/media/Makefile.in
@@ -191,6 +191,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/mediasizes/Makefile.in b/src/xml/escp2/mediasizes/Makefile.in
index 5e63aaa..cdf2ee9 100644
--- a/src/xml/escp2/mediasizes/Makefile.in
+++ b/src/xml/escp2/mediasizes/Makefile.in
@@ -191,6 +191,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/model/Makefile.in b/src/xml/escp2/model/Makefile.in
index 4e8ccdc..c6a2d79 100644
--- a/src/xml/escp2/model/Makefile.in
+++ b/src/xml/escp2/model/Makefile.in
@@ -191,6 +191,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/model/model_47.xml b/src/xml/escp2/model/model_47.xml
index a85b89b..8073e8e 100644
--- a/src/xml/escp2/model/model_47.xml
+++ b/src/xml/escp2/model/model_47.xml
@@ -29,7 +29,7 @@ xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.
<preinitRemoteSequence>PM\002\000\000\000</preinitRemoteSequence>
<postinitRemoteSequence>JE\001\000\000</postinitRemoteSequence>
<commandSet>2000</commandSet>
- <borderless>VerticalRestricted</borderless>
+ <borderless>Yes</borderless>
<supportsVariableDropsizes/>
<hasFastGraymode/>
<hasFast360DPI/>
diff --git a/src/xml/escp2/qualitypresets/Makefile.in b/src/xml/escp2/qualitypresets/Makefile.in
index cec2145..8bf1efa 100644
--- a/src/xml/escp2/qualitypresets/Makefile.in
+++ b/src/xml/escp2/qualitypresets/Makefile.in
@@ -191,6 +191,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/escp2/weaves/Makefile.in b/src/xml/escp2/weaves/Makefile.in
index c9b6ba7..fdf41d0 100644
--- a/src/xml/escp2/weaves/Makefile.in
+++ b/src/xml/escp2/weaves/Makefile.in
@@ -191,6 +191,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
diff --git a/src/xml/papers.xml b/src/xml/papers.xml
index 7b6d2f9..e6a637f 100644
--- a/src/xml/papers.xml
+++ b/src/xml/papers.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
- "$Id: papers.xml,v 1.20 2015/06/22 23:02:44 speachy Exp $"
+ "$Id: papers.xml,v 1.30 2015/10/04 15:20:31 rlk Exp $"
XML description of papers known to libgutenprint.
You can add additional paper sizes here.
@@ -118,6 +118,7 @@
</paper>
<paper name="w252h338">
<description translate="value" value="3.5x4.7"/>
+ <comment value="Only used by CW-01/OP900 dyesub printers"/>
<width value="252"/>
<height value="338"/>
<unit value="english-extended"/>
@@ -154,9 +155,10 @@
</paper>
<paper name="w324h432">
<description translate="value" value="4.5x6"/>
+ <comment value="Only used by DS620 dyesub printer"/>
<width value="324"/>
<height value="432"/>
- <unit value="english"/>
+ <unit value="english-extended"/>
</paper>
<paper name="w324h495">
<description translate="value" value="Epson 4x6 Photo Paper (tear-off borders)"/>
@@ -186,6 +188,7 @@
</paper>
<paper name="w338h504">
<description translate="value" value="4.7x7"/>
+ <comment value="Only used by CW-01/OP900 dyesub printers"/>
<width value="338"/>
<height value="504"/>
<unit value="english-extended"/>
@@ -210,6 +213,7 @@
</paper>
<paper name="w432h432">
<description translate="value" value="6x6"/>
+ <comment value="Only used by certain dyesub models"/>
<width value="432"/>
<height value="432"/>
<unit value="english-extended"/>
@@ -222,6 +226,7 @@
</paper>
<paper name="w432h612">
<description translate="value" value="6x8.5"/>
+ <comment value="Only used by certain Mitsubishi dyesub models"/>
<width value="432"/>
<height value="612"/>
<unit value="english-extended"/>
@@ -276,16 +281,25 @@
-->
<paper name="w360h360">
<description translate="value" value="5x5"/>
+ <comment value="Only used by certain dyesub models"/>
<width value="360"/>
<height value="360"/>
<unit value="english-extended"/>
</paper>
<paper name="w576h576">
<description translate="value" value="8x8"/>
+ <comment value="Only used by certain dyesub models"/>
<width value="576"/>
<height value="576"/>
<unit value="english-extended"/>
</paper>
+ <paper name="w576h774">
+ <description translate="value" value="8x10.75"/>
+ <comment value="Only used by DS80DX dyesub printer"/>
+ <width value="576"/>
+ <height value="774"/>
+ <unit value="english-extended"/>
+ </paper>
<paper name="w576h864">
<description translate="value" value="8x12"/>
<comment value="Sometimes used for 35mm"/>
@@ -295,7 +309,7 @@
</paper>
<paper name="w612h864">
<description translate="value" value="8.5x12"/>
- <comment value="8.5in x 12in"/>
+ <comment value="Only used by Kodak 1400 and 805 dyesub printers"/>
<width value="612"/>
<height value="864"/>
<unit value="english"/>
@@ -1643,6 +1657,126 @@
<unit value="metric"/>
</paper>
+ <!--
+ Special dyesub-specific sizes
+
+ These are all used solely to expose multicut parameters
+
+ They can be removed once we figure out a better paper API
+ -->
+ <paper name="w288h432-div2">
+ <description translate="value" value="2x6*2"/>
+ <width value="288"/>
+ <height value="432"/>
+ <unit value="english"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w360h504-div2">
+ <description translate="value" value="3.5x5*2"/>
+ <width value="360"/>
+ <height value="504"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w432h576-div2">
+ <description translate="value" value="4x6*2"/>
+ <width value="432"/>
+ <height value="576"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w432h576-div4">
+ <description translate="value" value="2x6*4"/>
+ <width value="432"/>
+ <height value="576"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w432h576-w432h432_w432h144">
+ <description translate="value" value="6x6+2x6"/>
+ <width value="432"/>
+ <height value="576"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w432h648-div2">
+ <description translate="value" value="4.5x6*2"/>
+ <width value="432"/>
+ <height value="648"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h576-div2">
+ <description translate="value" value="4x8*2"/>
+ <width value="576"/>
+ <height value="576"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h648-w576h360_w576h288">
+ <description translate="value" value="8x5+8x4"/>
+ <width value="576"/>
+ <height value="648"/>
+ <unit value="english-extended"/>
+ </paper>
+ <paper name="c8x10-div2">
+ <description translate="value" value="8x5*2"/>
+ <width value="576"/>
+ <height value="720"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="c8x10-w576h432_w576h288">
+ <description translate="value" value="8x6+8x4"/>
+ <width value="576"/>
+ <height value="720"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h774-w576h756">
+ <description translate="value" value="8x10.5"/>
+ <comment value="Only used by DS80DX dyesub printer"/>
+ <width value="576"/>
+ <height value="774"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h792-w576h432_w576h360">
+ <description translate="value" value="8x6+8x5"/>
+ <width value="576"/>
+ <height value="792"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h864-div2">
+ <description translate="value" value="8x6*2"/>
+ <width value="576"/>
+ <height value="864"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h864-div3">
+ <description translate="value" value="8x4*3"/>
+ <width value="576"/>
+ <height value="864"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h864-div3sheet">
+ <description translate="value" value="8x4*3"/>
+ <width value="576"/>
+ <height value="864"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+ <paper name="w576h864-w576h576_w576h288">
+ <description translate="value" value="8x8+8x4"/>
+ <width value="576"/>
+ <height value="864"/>
+ <unit value="english-extended"/>
+ <type value="special"/>
+ </paper>
+
<!--
Custom
-->
diff --git a/src/xml/printers.xml b/src/xml/printers.xml
index bffe238..8ec79c5 100644
--- a/src/xml/printers.xml
+++ b/src/xml/printers.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
- "$Id: printers.xml,v 1.407 2015/06/24 15:01:03 gernot2270 Exp $"
+ "$Id: printers.xml,v 1.427 2015/10/03 22:20:34 rlk Exp $"
XML description of printers known to libgutenprint
You can add additional printers here, but the underlying driver has
@@ -308,7 +308,7 @@
<printer translate="name" name="Canon PIXMA iP8100" driver="bjc-PIXMA-iP8100" manufacturer="Canon" model="3008100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8100">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXUS iP8100" driver="bjc-PIXUS-iP8100" manufacturer="Canon" model="3008100" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP8100">EXPERIMENTAL</printer>
<!-- Canon iP8500 -->
- <printer translate="name" name="Canon PIXMA iP8500" driver="bjc-PIXMA-iP8500" manufacturer="Canon" model="3008500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8500">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA iP8500" deviceid="MFG:Canon;MDL:iP8500;CMD:BJL,BJRaster3,BSCCe;" driver="bjc-PIXMA-iP8500" manufacturer="Canon" model="3008500" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8500">EXPERIMENTAL</printer>
<!-- Canon iP8600 (PIXUS only, PIXMA iP8600 does not exist) -->
<printer translate="name" name="Canon PIXMA iP8600" driver="bjc-PIXMA-iP8600" manufacturer="Canon" model="3008600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-iP8600">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXUS iP8600" driver="bjc-PIXUS-iP8600" manufacturer="Canon" model="3008600" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-iP8600">EXPERIMENTAL</printer>
@@ -375,6 +375,11 @@
<printer translate="name" name="Canon Pro9500 Mk.II series" driver="bjc-Pro9500mk2-series" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-Pro9500-Mk2-series">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA Pro9500mk2" driver="bjc-PIXMA-Pro9500mk2" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXMA-Pro9500- Mk2">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXUS Pro9500mk2" driver="bjc-PIXUS-Pro9500mk2" manufacturer="Canon" model="7009502" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-Pro9500-Mk2">EXPERIMENTAL</printer>
+ <!-- Canon MPC400 family -->
+ <printer translate="name" name="Canon SmartBase MPC400" driver="bjc-SmartBase-MPC400" manufacturer="Canon" model="16000400" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MPC400">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon SmartBase MPC600F" driver="bjc-SmartBase-MPC600F" manufacturer="Canon" model="16000400" parameters="PIXMA_iP4000_params" foomaticid="Canon-SmartBase-MPC600F">EXPERIMENTAL</printer>
+ <!-- Canon MP55 family -->
+ <printer translate="name" name="Canon PIXUS MP55" driver="bjc-PIXUS-MP55" manufacturer="Canon" model="5000055" parameters="PIXMA_iP4000_params" foomaticid="Canon-PIXUS-MP55">EXPERIMENTAL</printer>
<!-- Canon MP140 family -->
<printer translate="name" name="Canon MP140 series" driver="bjc-MP140-series" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MP140-series">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MP140" driver="bjc-MULTIPASS-MP140" manufacturer="Canon" model="5000150" parameters="PIXMA_iP4000_params" foomaticid="Canon-MULTIPASS-MP140">EXPERIMENTAL</printer><!-- driver and foomaticid legacy names used -->
@@ -657,7 +662,9 @@
<printer translate="name" name="Canon PIXMA MG2550" driver="bjc-PIXMA-MG2550" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2550">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
<printer translate="name" name="Canon PIXMA MG2560" driver="bjc-PIXMA-MG2560" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2560">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
<printer translate="name" name="Canon PIXMA MG2570" driver="bjc-PIXMA-MG2570" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2570">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
+ <printer translate="name" name="Canon PIXMA MG2570S" driver="bjc-PIXMA-MG2570S" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2570S">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
<printer translate="name" name="Canon PIXMA MG2580" driver="bjc-PIXMA-MG2580" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2580">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
+ <printer translate="name" name="Canon PIXMA MG2580S" driver="bjc-PIXMA-MG2580S" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2580S">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
<printer translate="name" name="Canon PIXMA MG2590" driver="bjc-PIXMA-MG2590" manufacturer="Canon" model="8002400" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG2590">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
<!-- Canon MG2900 family -->
<printer translate="name" name="Canon MG2900 series" driver="bjc-MG2900-series" manufacturer="Canon" model="8002900" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG2900-series">EXPERIMENTAL; Only supports plain, photo paper gloss gold, photo paper gloss, and envelope; unconfirmed whether other media will work</printer>
@@ -704,6 +711,15 @@
<printer translate="name" name="Canon PIXMA MG3560" driver="bjc-PIXMA-MG3560" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3560">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG3570" driver="bjc-PIXMA-MG3570" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3570">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG3580" driver="bjc-PIXMA-MG3580" manufacturer="Canon" model="8003500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3580">EXPERIMENTAL</printer>
+ <!-- Canon MG3600 family -->
+ <printer translate="name" name="Canon MG3600 series" driver="bjc-MG3600-series" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG3600-series">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG3610" driver="bjc-PIXMA-MG3610" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3610">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG3620" driver="bjc-PIXMA-MG3620" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3620">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXUS MG3630" driver="bjc-PIXUS-MG3630" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG3630">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG3640" driver="bjc-PIXMA-MG3640" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3640">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG3650" driver="bjc-PIXMA-MG3650" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3650">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG3670" driver="bjc-PIXMA-MG3670" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3670">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG3680" driver="bjc-PIXMA-MG3680" manufacturer="Canon" model="8003600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG3680">EXPERIMENTAL</printer>
<!-- Canon MG4100 family -->
<printer translate="name" name="Canon MG4100 series" driver="bjc-MG4100-series" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG4100-series">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG4100" driver="bjc-PIXMA-MG4100" manufacturer="Canon" model="8003100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG4100">EXPERIMENTAL</printer>
@@ -788,6 +804,23 @@
<printer translate="name" name="Canon PIXMA MG5670" driver="bjc-PIXMA-MG5670" manufacturer="Canon" model="8005600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5670">EXPERIMENTAL</printer>
<printer translate="name" name="Canon Mommy Photo MG5670" driver="bjc-Mommy-Photo-MG5670" manufacturer="Canon" model="8005600" parameters="PIXMA_iP4300_params" foomaticid="Canon-Mommy-Photo-MG5670">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG5680" driver="bjc-PIXMA-MG5680" manufacturer="Canon" model="8005600" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5680">EXPERIMENTAL</printer>
+ <!-- Canon MG5700 family -->
+ <printer translate="name" name="Canon MG5700 series" driver="bjc-MG5700-series" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG5700-series">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG5710" driver="bjc-PIXMA-MG5710" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5710">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG5720" driver="bjc-PIXMA-MG5720" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5720">EXPERIMENTAL</printer><!-- black model -->
+ <printer translate="name" name="Canon PIXMA MG5721" driver="bjc-PIXMA-MG5721" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5721">EXPERIMENTAL</printer><!-- silver/black model -->
+ <printer translate="name" name="Canon PIXMA MG5722" driver="bjc-PIXMA-MG5722" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5722">EXPERIMENTAL</printer><!-- silver/white model -->
+ <printer translate="name" name="Canon PIXUS MG5730" driver="bjc-PIXUS-MG5730" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG5730">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG5740" driver="bjc-PIXMA-MG5740" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5740">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG5750" driver="bjc-PIXMA-MG5750" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5750">EXPERIMENTAL</printer><!-- black model -->
+ <printer translate="name" name="Canon PIXMA MG5751" driver="bjc-PIXMA-MG5751" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5751">EXPERIMENTAL</printer><!-- white model -->
+ <printer translate="name" name="Canon PIXMA MG5752" driver="bjc-PIXMA-MG5752" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5752">EXPERIMENTAL</printer><!-- silver/black model -->
+ <printer translate="name" name="Canon PIXMA MG5753" driver="bjc-PIXMA-MG5753" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5753">EXPERIMENTAL</printer><!-- silver/white model -->
+ <printer translate="name" name="Canon PIXMA MG5770" driver="bjc-PIXMA-MG5770" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5770">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG5780" driver="bjc-PIXMA-MG5780" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5780">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG5790" driver="bjc-PIXMA-MG5790" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5790">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon Mommy Photo MG5790" driver="bjc-Mommy-Photo-MG5790" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-Mommy-Photo-MG5790">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG5795" driver="bjc-PIXMA-MG5795" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG5795">EXPERIMENTAL</printer>
<!-- Canon MG6100 family -->
<printer translate="name" name="Canon MG6100 series" driver="bjc-MG6100-series" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6100-series">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG6100" driver="bjc-PIXMA-MG6100" manufacturer="Canon" model="8006100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6100">EXPERIMENTAL</printer>
@@ -843,6 +876,22 @@
<!-- Canon MG6700 family -->
<printer translate="name" name="Canon MG6700 series" driver="bjc-MG6700-series" manufacturer="Canon" model="8006700" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6700-series">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXUS MG6730" driver="bjc-PIXUS-MG6730" manufacturer="Canon" model="8006700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG6730">EXPERIMENTAL</printer>
+ <!-- Canon MG6800 family -->
+ <printer translate="name" name="Canon MG6800 series" driver="bjc-MG6800-series" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6800-series">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG6810" driver="bjc-PIXMA-MG6810" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6810">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG6820" driver="bjc-PIXMA-MG6820" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6820">EXPERIMENTAL</printer><!-- black model -->
+ <printer translate="name" name="Canon PIXMA MG6821" driver="bjc-PIXMA-MG6821" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6821">EXPERIMENTAL</printer><!-- silver/black model -->
+ <printer translate="name" name="Canon PIXMA MG6822" driver="bjc-PIXMA-MG6822" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6822">EXPERIMENTAL</printer><!-- silver/white model -->
+ <printer translate="name" name="Canon PIXMA MG6840" driver="bjc-PIXMA-MG6840" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6840">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG6850" driver="bjc-PIXMA-MG6850" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6850">EXPERIMENTAL</printer><!-- black model -->
+ <printer translate="name" name="Canon PIXMA MG6851" driver="bjc-PIXMA-MG6851" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6851">EXPERIMENTAL</printer><!-- white model -->
+ <printer translate="name" name="Canon PIXMA MG6852" driver="bjc-PIXMA-MG6852" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6852">EXPERIMENTAL</printer><!-- silver/black model -->
+ <printer translate="name" name="Canon PIXMA MG6853" driver="bjc-PIXMA-MG6853" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6853">EXPERIMENTAL</printer><!-- silver/white model -->
+ <printer translate="name" name="Canon PIXMA MG6870" driver="bjc-PIXMA-MG6870" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6870">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG6880" driver="bjc-PIXMA-MG6880" manufacturer="Canon" model="8005700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG6880">EXPERIMENTAL</printer>
+ <!-- Canon MG6900 family -->
+ <printer translate="name" name="Canon MG6900 series" driver="bjc-MG6900-series" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG6900-series">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXUS MG6930" driver="bjc-PIXUS-MG6930" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG6930">EXPERIMENTAL</printer>
<!-- Canon MG7100 family -->
<printer translate="name" name="Canon MG7100 series" driver="bjc-MG7100-series" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG7100-series">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG7110" driver="bjc-PIXMA-MG7110" manufacturer="Canon" model="8006500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7110">EXPERIMENTAL</printer>
@@ -864,6 +913,20 @@
<printer translate="name" name="Canon PIXMA MG7570" driver="bjc-PIXMA-MG7570" manufacturer="Canon" model="8007500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7570">EXPERIMENTAL</printer>
<printer translate="name" name="Canon Mommy Photo MG7570" driver="bjc-Mommy-Photo-MG7570" manufacturer="Canon" model="8007500" parameters="PIXMA_iP4300_params" foomaticid="Canon-Mommy-Photo-MG7570">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG7580" driver="bjc-PIXMA-MG7580" manufacturer="Canon" model="8007500" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7580">EXPERIMENTAL</printer>
+ <!-- Canon MG7700 family -->
+ <printer translate="name" name="Canon MG7700 series" driver="bjc-MG7700-series" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG7700-series">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG7710" driver="bjc-PIXMA-MG7710" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7710">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG7720" driver="bjc-PIXMA-MG7720" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7720">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXUS MG7730" driver="bjc-PIXUS-MG7730" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG7730">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXUS MG7730F" driver="bjc-PIXUS-MG7730F" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXUS-MG7730F">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG7740" driver="bjc-PIXMA-MG7740" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7740">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG7750" driver="bjc-PIXMA-MG7750" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7750">EXPERIMENTAL</printer><!-- black model -->
+ <printer translate="name" name="Canon PIXMA MG7751" driver="bjc-PIXMA-MG7751" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7751">EXPERIMENTAL</printer><!-- white model -->
+ <printer translate="name" name="Canon PIXMA MG7752" driver="bjc-PIXMA-MG7752" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7752">EXPERIMENTAL</printer><!-- red model -->
+ <printer translate="name" name="Canon PIXMA MG7753" driver="bjc-PIXMA-MG7753" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7753">EXPERIMENTAL</printer><!-- gold model -->
+ <printer translate="name" name="Canon PIXMA MG7770" driver="bjc-PIXMA-MG7770" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7770">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG7780" driver="bjc-PIXMA-MG7780" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7780">EXPERIMENTAL</printer>
+ <printer translate="name" name="Canon PIXMA MG7790" driver="bjc-PIXMA-MG7790" manufacturer="Canon" model="8007700" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG7790">EXPERIMENTAL</printer>
<!-- Canon MG8100 family -->
<printer translate="name" name="Canon MG8100 series" driver="bjc-MG8100-series" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-MG8100-series">EXPERIMENTAL</printer>
<printer translate="name" name="Canon PIXMA MG8100" driver="bjc-PIXMA-MG8100" manufacturer="Canon" model="8008100" parameters="PIXMA_iP4300_params" foomaticid="Canon-PIXMA-MG8100">EXPERIMENTAL</printer>
@@ -1254,6 +1317,8 @@
<printer translate="name" name="Epson B-500DN" driver="escp2-b500dn" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-B500DN" />
<printer translate="name" name="Epson B-508DN" driver="escp2-b508dn" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-B508DN" />
<printer translate="name" name="Epson B-510DN" driver="escp2-b510dn" manufacturer="Epson" model="87" parameters="standard_params" foomaticid="Epson-B510DN" />
+ <printer translate="name" name="Epson L120" driver="escp2-l120" manufacturer="Epson" model="80" parameters="cx3500_params" foomaticid="Epson-L120" />
+ <printer translate="name" name="Epson L210" driver="escp2-l210" manufacturer="Epson" model="80" parameters="cx3500_params" foomaticid="Epson-L210" />
<printer translate="name" name="Epson Stylus C20" deviceid="MFG:EPSON;MDL:Stylus C20;DES:EPSON Stylus C20;CMD:ESCPL2,BDC,D4;" driver="escp2-c20" manufacturer="Epson" model="42" parameters="480_params" foomaticid="Epson-Stylus_C20" />
<printer translate="name" name="Epson Stylus C20SX" driver="escp2-c20sx" manufacturer="Epson" model="42" parameters="480_params" foomaticid="Epson-Stylus_C20SX" />
<printer translate="name" name="Epson Stylus C20UX" deviceid="MFG:EPSON;MDL:Stylus C20;DES:EPSON Stylus C20;CMD:ESCPL2,BDC,D4;" driver="escp2-c20ux" manufacturer="Epson" model="42" parameters="480_params" foomaticid="Epson-Stylus_C20UX" />
@@ -1677,7 +1742,6 @@
<printer translate="name" name="Epson EP 801A" driver="escp2-ep801a" manufacturer="Epson" model="96" parameters="standard_params" foomaticid="Epson-EP_801A" />
<printer translate="name" name="Epson EP 901A" driver="escp2-ep901a" manufacturer="Epson" model="96" parameters="standard_params" foomaticid="Epson-EP_901A" />
<printer translate="name" name="Epson EP 901F" driver="escp2-ep901f" manufacturer="Epson" model="96" parameters="standard_params" foomaticid="Epson-EP_801F" />
- <printer translate="name" name="Epson L210" driver="escp2-l210" manufacturer="Epson" model="80" parameters="cx3500_params" foomaticid="Epson-L210" />
<printer translate="name" name="Epson MC 2000" driver="escp2-mc2000" manufacturer="Epson" model="26" parameters="standard_params" foomaticid="Epson-MC_2000" />
<printer translate="name" name="Epson MC 5000" driver="escp2-mc5000" manufacturer="Epson" model="40" parameters="pro_5500_params" foomaticid="Epson-MC_5000" />
<printer translate="name" name="Epson MC 7000" driver="escp2-mc7000" manufacturer="Epson" model="29" parameters="pro_5500_params" foomaticid="Epson-MC_7000" />
@@ -1821,6 +1885,7 @@
<printer translate="name" name="Brother HL-2035" driver="brother-hl-2035" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2035" />
<!-- -->
<printer translate="name" name="Brother HL-2060" driver="brother-hl-2060" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2060" />
+ <printer translate="name" name="Brother HL-2250DN" driver="brother-hl-2250dn" manufacturer="Brother" model="62" parameters="pcl_laser_params" foomaticid="Brother-HL-2250DN" />
<printer translate="name" name="Brother HL-2460" deviceid="MFG:Brother;MDL:Brother HL-2460 series;" driver="brother-hl-2460" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2460" />
<printer translate="name" name="Brother HL-2460N" driver="brother-hl-2460n" manufacturer="Brother" model="6" parameters="pcl_laser_params" foomaticid="Brother-HL-2460N" />
<printer translate="name" name="Brother HL-4Ve" driver="brother-hl-4ve" manufacturer="Brother" model="2" parameters="pcl_laser_params" foomaticid="Brother-HL-4Ve" />
@@ -1892,8 +1957,10 @@
<printer translate="name" name="Fujitsu PrintPartner 20W" driver="fujitsu-pp_20w" manufacturer="Fujitsu" model="6" parameters="pcl_laser_params" foomaticid="Fujitsu-PrintPartner_20W" />
<printer translate="name" name="Fujitsu PrintPartner 8000" driver="fujitsu-pp_8000" manufacturer="Fujitsu" model="3" parameters="pcl_laser_params" foomaticid="Fujitsu-PrintPartner_8000" />
<printer translate="name" name="Generic PCL 4 Printer" driver="pcl-g_4" manufacturer="Generic" model="2" parameters="pcl_laser_params" foomaticid="Generic-PCL_4_Printer" />
+ <printer translate="name" name="Generic PCL 4 Printer wide margin" driver="pcl-g_4_a4" manufacturer="Generic" model="22" parameters="pcl_laser_params" foomaticid="Generic-PCL_4_Printer_wide_margin" />
<printer translate="name" name="Generic PCL 4 LF Printer" driver="pcl-g_4_l" manufacturer="Generic" model="23" parameters="pcl_laser_params" foomaticid="Generic-PCL_4_LF_Printer" />
<printer translate="name" name="Generic PCL 5 Printer" driver="pcl-g_5" manufacturer="Generic" model="3" parameters="pcl_laser_params" foomaticid="Generic-PCL_5_Printer" />
+ <printer translate="name" name="Generic PCL 5 Printer wide margin" driver="pcl-g_5_a4" manufacturer="Generic" model="32" parameters="pcl_laser_params" foomaticid="Generic-PCL_5_Printer_wide_margin" />
<printer translate="name" name="Generic PCL 5 LF Printer" driver="pcl-g_5_l" manufacturer="Generic" model="33" parameters="pcl_laser_params" foomaticid="Generic-PCL_5_LF_Printer" />
<printer translate="name" name="Generic PCL 5c Printer" driver="pcl-g_5c" manufacturer="Generic" model="6" parameters="pcl_laser_params" foomaticid="Generic-PCL_5c_Printer" />
<printer translate="name" name="Generic PCL 5c LF Printer" driver="pcl-g_5c_l" manufacturer="Generic" model="61" parameters="pcl_laser_params" foomaticid="Generic-PCL_5c_LF_Printer" />
@@ -1901,6 +1968,9 @@
<printer translate="name" name="Generic PCL 5e LF Printer" driver="pcl-g_5e_l" manufacturer="Generic" model="61" parameters="pcl_laser_params" foomaticid="Generic-PCL_5e_LF_Printer" />
<printer translate="name" name="Generic PCL 6/PCL XL Printer" driver="pcl-g_6" manufacturer="Generic" model="6" parameters="pcl_laser_params" foomaticid="Generic-PCL_6_PCL_XL_Printer" />
<printer translate="name" name="Generic PCL 6/PCL XL LF Printer" driver="pcl-g_6_l" manufacturer="Generic" model="61" parameters="pcl_laser_params" foomaticid="Generic-PCL_6_PCL_XL_LF_Printer" />
+ <printer translate="name" name="Generic PCL 6 Printer wide margin" driver="pcl-g_6_a4" manufacturer="Generic" model="62" parameters="pcl_laser_params" foomaticid="Generic-PCL_6_Printer_wide_margin" />
+ <printer translate="name" name="Generic PCL 6 LF Printer wide margin" driver="pcl-g_6_lf_a4" manufacturer="Generic" model="63" parameters="pcl_laser_params" foomaticid="Generic-PCL_6_LF_Printer_wide_margin" />
+ <printer translate="name" name="Generic PCL 6 Tabl Printer wide margin" driver="pcl-g_6_tabloid_a4" manufacturer="Generic" model="64" parameters="pcl_laser_params" foomaticid="Generic-PCL_6_Tabloid_Printer_wide_margin" />
<printer translate="name" name="Gestetner 10512" driver="gestetner-10512" manufacturer="Gestetner" model="61" parameters="pcl_laser_params" foomaticid="Gestetner-10512" />
<printer translate="name" name="Gestetner 2212" driver="gestetner-2212" manufacturer="Gestetner" model="61" parameters="pcl_laser_params" foomaticid="Gestetner-2212" />
<printer translate="name" name="Gestetner 2712" driver="gestetner-2712" manufacturer="Gestetner" model="61" parameters="pcl_laser_params" foomaticid="Gestetner-2712" />
@@ -2759,6 +2829,9 @@
<printer translate="name" name="Lexmark Z53" driver="lexmark-z53" manufacturer="Lexmark" model="10052" parameters="standard_params" foomaticid="Lexmark-Z53" />
</family>
<family name="dyesub">
+ <parameters name="nativecopies">
+ <parameter type="boolean" name="NativeCopies">1</parameter>
+ </parameters>
<printer translate="name" name="Olympus P-10" driver="olympus-p10" manufacturer="Olympus" model="2" foomaticid="Olympus-P-10" />
<printer translate="name" name="Olympus P-11" driver="olympus-p11" manufacturer="Olympus" model="2" foomaticid="Olympus-P-11" />
<printer translate="name" name="Olympus P-200" driver="olympus-p200" manufacturer="Olympus" model="4" foomaticid="Olympus-P-200" />
@@ -2770,46 +2843,46 @@
<printer translate="name" name="Olympus P-400" driver="olympus-p400" manufacturer="Olympus" model="1" foomaticid="Olympus-P-400" />
<printer translate="name" name="Olympus P-440" driver="olympus-p440" manufacturer="Olympus" model="3" foomaticid="Olympus-P-440" />
<printer translate="name" name="Olympus P-S100" driver="olympus-ps100" manufacturer="Olympus" model="20" foomaticid="Olympus-P-S100" />
- <printer translate="name" name="Canon CP-10" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-10;CLS:PRINTER;DES:Canon CP-10;VER:1.00;" driver="canon-cp10" manufacturer="Canon" model="1002" foomaticid="Canon-CP-10" />
- <printer translate="name" name="Canon CP-100" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-100;CLS:PRINTER;DES:Canon CP-100;VER:1.00;" driver="canon-cp100" manufacturer="Canon" model="1000" foomaticid="Canon-CP-100" />
- <printer translate="name" name="Canon CP-200" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-200;CLS:PRINTER;DES:Canon CP-200;VER:1.00;" driver="canon-cp200" manufacturer="Canon" model="1000" foomaticid="Canon-CP-200" />
- <printer translate="name" name="Canon CP-220" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-220;CLS:PRINTER;DES:Canon CP-220;VER:1.00;" driver="canon-cp220" manufacturer="Canon" model="1001" foomaticid="Canon-CP-220" />
- <printer translate="name" name="Canon CP-300" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-300;CLS:PRINTER;DES:Canon CP-300;VER:1.00;" driver="canon-cp300" manufacturer="Canon" model="1000" foomaticid="Canon-CP-300" />
- <printer translate="name" name="Canon CP-330" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-330;CLS:PRINTER;DES:Canon CP-330;VER:1.00;" driver="canon-cp330" manufacturer="Canon" model="1001" foomaticid="Canon-CP-330" />
- <printer translate="name" name="Canon SELPHY CP400" deviceid="MFG:Canon;CMD:Raster3;MDL:CP400;CLS:PRINTER;DES:Canon CP400;VER:1.00;" driver="canon-cp400" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP400" />
- <printer translate="name" name="Canon SELPHY CP500" deviceid="MFG:Canon;CMD:Raster3;MDL:CP500;CLS:PRINTER;DES:Canon CP500;VER:1.00;" driver="canon-cp500" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP500" />
- <printer translate="name" name="Canon SELPHY CP510" deviceid="MFG:Canon;CMD:Raster3;MDL:CP510;CLS:PRINTER;DES:Canon CP510;VER:1.00;" driver="canon-cp510" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP510" />
- <printer translate="name" name="Canon SELPHY CP520" driver="canon-cp520" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP520" />
- <printer translate="name" name="Canon SELPHY CP530" deviceid="MFG:Canon;CMD:Raster3;MDL:CP530;CLS:PRINTER;DES:Canon CP530;VER:1.00;" driver="canon-cp530" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP530" />
- <printer translate="name" name="Canon SELPHY CP600" deviceid="MFG:Canon;CMD:Raster3;MDL:CP600;CLS:PRINTER;DES:Canon CP600;VER:1.00;" driver="canon-cp600" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP600" />
- <printer translate="name" name="Canon SELPHY CP710" deviceid="MFG:Canon;CMD:Raster3;MDL:CP710;CLS:PRINTER;DES:Canon CP710;VER:1.00;" driver="canon-cp710" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP710" />
- <printer translate="name" name="Canon SELPHY CP720" deviceid="MFG:Canon;CMD:Raster3;MDL:CP720;CLS:PRINTER;DES:Canon CP720;VER:1.00;" driver="canon-cp720" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP720" />
- <printer translate="name" name="Canon SELPHY CP730" deviceid="MFG:Canon;CMD:Raster3;MDL:CP730;CLS:PRINTER;DES:Canon CP730;VER:1.00;" driver="canon-cp730" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP730" />
- <printer translate="name" name="Canon SELPHY CP740" driver="canon-cp740" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP740" />
- <printer translate="name" name="Canon SELPHY CP750" deviceid="MFG:Canon;CMD:Raster3;MDL:CP750;CLS:PRINTER;DES:Canon CP750;VER:1.00;" driver="canon-cp750" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP750" />
- <printer translate="name" name="Canon SELPHY CP760" deviceid="MFG:Canon;CMD:Raster3;MDL:CP760;CLS:PRINTER;DES:Canon CP760;VER:1.00;" driver="canon-cp760" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP760" />
- <printer translate="name" name="Canon SELPHY CP770" driver="canon-cp770" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP770" />
- <printer translate="name" name="Canon SELPHY CP780" deviceid="MFG:Canon;CMD:Raster3;MDL:CP780;CLS:PRINTER;DES:Canon CP780;VER:1.00;" driver="canon-cp780" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP780" />
- <printer translate="name" name="Canon SELPHY CP790" deviceid="MFG:Canon;CMD:Raster3;MDL:CP790;CLS:PRINTER;DES:Canon CP790;VER:1.00;" driver="canon-cp790" manufacturer="Canon" model="1008" foomaticid="Canon-SELPHY-CP790" />
- <printer translate="name" name="Canon SELPHY CP800" deviceid="MFG:Canon;CMD:Raster3;MDL:CP800;CLS:PRINTER;DES:Canon CP800;VER:1.00;" driver="canon-cp800" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP800" />
- <printer translate="name" name="Canon SELPHY CP810" deviceid="MFG:Canon;CMD:Raster3;MDL:CP810;CLS:PRINTER;DES:Canon CP810;VER:3.05;" driver="canon-cp810" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP810" />
+ <printer translate="name" name="Canon CP-10" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-10;CLS:PRINTER;DES:Canon CP-10;VER:1.00;" driver="canon-cp10" manufacturer="Canon" model="1002" foomaticid="Canon-CP-10" parameters="nativecopies" />
+ <printer translate="name" name="Canon CP-100" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-100;CLS:PRINTER;DES:Canon CP-100;VER:1.00;" driver="canon-cp100" manufacturer="Canon" model="1000" foomaticid="Canon-CP-100" parameters="nativecopies" />
+ <printer translate="name" name="Canon CP-200" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-200;CLS:PRINTER;DES:Canon CP-200;VER:1.00;" driver="canon-cp200" manufacturer="Canon" model="1000" foomaticid="Canon-CP-200" parameters="nativecopies" />
+ <printer translate="name" name="Canon CP-220" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-220;CLS:PRINTER;DES:Canon CP-220;VER:1.00;" driver="canon-cp220" manufacturer="Canon" model="1001" foomaticid="Canon-CP-220" parameters="nativecopies" />
+ <printer translate="name" name="Canon CP-300" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-300;CLS:PRINTER;DES:Canon CP-300;VER:1.00;" driver="canon-cp300" manufacturer="Canon" model="1000" foomaticid="Canon-CP-300" parameters="nativecopies" />
+ <printer translate="name" name="Canon CP-330" deviceid="MFG:Canon;CMD:Raster3;MDL:CP-330;CLS:PRINTER;DES:Canon CP-330;VER:1.00;" driver="canon-cp330" manufacturer="Canon" model="1001" foomaticid="Canon-CP-330" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP400" deviceid="MFG:Canon;CMD:Raster3;MDL:CP400;CLS:PRINTER;DES:Canon CP400;VER:1.00;" driver="canon-cp400" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP400" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP500" deviceid="MFG:Canon;CMD:Raster3;MDL:CP500;CLS:PRINTER;DES:Canon CP500;VER:1.00;" driver="canon-cp500" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP500" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP510" deviceid="MFG:Canon;CMD:Raster3;MDL:CP510;CLS:PRINTER;DES:Canon CP510;VER:1.00;" driver="canon-cp510" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP510" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP520" driver="canon-cp520" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP520" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP530" deviceid="MFG:Canon;CMD:Raster3;MDL:CP530;CLS:PRINTER;DES:Canon CP530;VER:1.00;" driver="canon-cp530" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP530" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP600" deviceid="MFG:Canon;CMD:Raster3;MDL:CP600;CLS:PRINTER;DES:Canon CP600;VER:1.00;" driver="canon-cp600" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP600" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP710" deviceid="MFG:Canon;CMD:Raster3;MDL:CP710;CLS:PRINTER;DES:Canon CP710;VER:1.00;" driver="canon-cp710" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP710" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP720" deviceid="MFG:Canon;CMD:Raster3;MDL:CP720;CLS:PRINTER;DES:Canon CP720;VER:1.00;" driver="canon-cp720" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP720" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP730" deviceid="MFG:Canon;CMD:Raster3;MDL:CP730;CLS:PRINTER;DES:Canon CP730;VER:1.00;" driver="canon-cp730" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP730" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP740" driver="canon-cp740" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP740" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP750" deviceid="MFG:Canon;CMD:Raster3;MDL:CP750;CLS:PRINTER;DES:Canon CP750;VER:1.00;" driver="canon-cp750" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP750" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP760" deviceid="MFG:Canon;CMD:Raster3;MDL:CP760;CLS:PRINTER;DES:Canon CP760;VER:1.00;" driver="canon-cp760" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP760" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP770" driver="canon-cp770" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP770" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP780" deviceid="MFG:Canon;CMD:Raster3;MDL:CP780;CLS:PRINTER;DES:Canon CP780;VER:1.00;" driver="canon-cp780" manufacturer="Canon" model="1001" foomaticid="Canon-SELPHY-CP780" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP790" deviceid="MFG:Canon;CMD:Raster3;MDL:CP790;CLS:PRINTER;DES:Canon CP790;VER:1.00;" driver="canon-cp790" manufacturer="Canon" model="1008" foomaticid="Canon-SELPHY-CP790" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP800" deviceid="MFG:Canon;CMD:Raster3;MDL:CP800;CLS:PRINTER;DES:Canon CP800;VER:1.00;" driver="canon-cp800" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP800" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY CP810" deviceid="MFG:Canon;CMD:Raster3;MDL:CP810;CLS:PRINTER;DES:Canon CP810;VER:3.05;" driver="canon-cp810" manufacturer="Canon" model="1009" foomaticid="Canon-SELPHY-CP810" parameters="nativecopies" />
<printer translate="name" name="Canon SELPHY CP820" driver="canon-cp820" manufacturer="Canon" model="1011" foomaticid="Canon-SELPHY-CP820" />
- <printer translate="name" name="Canon SELPHY CP900" deviceid="MFG:Canon;CMD:Raster3;MDL:CP900;CLS:PRINTER;DES:Canon CP900;VER:5.77;" driver="canon-cp900" manufacturer="Canon" model="1010" foomaticid="Canon-SELPHY-CP900" />
+ <printer translate="name" name="Canon SELPHY CP900" deviceid="MFG:Canon;CMD:Raster3;MDL:CP900;CLS:PRINTER;DES:Canon CP900;VER:5.77;" driver="canon-cp900" manufacturer="Canon" model="1010" foomaticid="Canon-SELPHY-CP900" parameters="nativecopies" />
<printer translate="name" name="Canon SELPHY CP910" deviceid="MFG:Canon;CMD:Raster3;MDL:CP910;CLS:PRINTER;DES:Canon CP910;VER:1.00;CID:CA_YCC_ICP;" driver="canon-cp910" manufacturer="Canon" model="1011" foomaticid="Canon-SELPHY-CP910" />
- <printer translate="name" name="Canon SELPHY ES1" deviceid="MFG:Canon;CMD:Raster3;MDL:ES1;CLS:PRINTER;DES:Canon SELPHY ES1;VER:1.00;" driver="canon-es1" manufacturer="Canon" model="1003" foomaticid="Canon-SELPHY-ES1" />
- <printer translate="name" name="Canon SELPHY ES2" deviceid="MFG:Canon;CMD:Raster3;MDL:ES2;CLS:PRINTER;DES:Canon SELPHY ES2;VER:1.00;" driver="canon-es2" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES2" />
- <printer translate="name" name="Canon SELPHY ES3" deviceid="MFG:Canon;CMD:Raster3;MDL:ES3;CLS:PRINTER;DES:Canon SELPHY ES3;VER:1.00;" driver="canon-es3" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES3" />
- <printer translate="name" name="Canon SELPHY ES20" driver="canon-es20" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES20" />
- <printer translate="name" name="Canon SELPHY ES30" deviceid="MFG:Canon;CMD:Raster3;MDL:ES30;CLS:PRINTER;DES:Canon SELPHY ES30;VER:1.00;" driver="canon-es30" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES30" />
- <printer translate="name" name="Canon SELPHY ES40" deviceid="MFG:Canon;CMD:Raster3;MDL:ES40;CLS:PRINTER;DES:Canon SELPHY ES40;VER:1.00;" driver="canon-es40" manufacturer="Canon" model="1007" foomaticid="Canon-SELPHY-ES40" />
+ <printer translate="name" name="Canon SELPHY ES1" deviceid="MFG:Canon;CMD:Raster3;MDL:ES1;CLS:PRINTER;DES:Canon SELPHY ES1;VER:1.00;" driver="canon-es1" manufacturer="Canon" model="1003" foomaticid="Canon-SELPHY-ES1" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY ES2" deviceid="MFG:Canon;CMD:Raster3;MDL:ES2;CLS:PRINTER;DES:Canon SELPHY ES2;VER:1.00;" driver="canon-es2" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES2" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY ES3" deviceid="MFG:Canon;CMD:Raster3;MDL:ES3;CLS:PRINTER;DES:Canon SELPHY ES3;VER:1.00;" driver="canon-es3" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES3" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY ES20" driver="canon-es20" manufacturer="Canon" model="1005" foomaticid="Canon-SELPHY-ES20" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY ES30" deviceid="MFG:Canon;CMD:Raster3;MDL:ES30;CLS:PRINTER;DES:Canon SELPHY ES30;VER:1.00;" driver="canon-es30" manufacturer="Canon" model="1006" foomaticid="Canon-SELPHY-ES30" parameters="nativecopies" />
+ <printer translate="name" name="Canon SELPHY ES40" deviceid="MFG:Canon;CMD:Raster3;MDL:ES40;CLS:PRINTER;DES:Canon SELPHY ES40;VER:1.00;" driver="canon-es40" manufacturer="Canon" model="1007" foomaticid="Canon-SELPHY-ES40" parameters="nativecopies" />
<printer translate="name" name="Sony UP-DP10" driver="sony-updp10" manufacturer="Sony" model="2000" foomaticid="Sony-UP-DP10" />
- <printer translate="name" name="Sony UP-DR150" deviceid="MFG:Sony;MDL:UP-DR150;DES:Sony UP-DR150;CMD:SONY-Original;CLS:PRINTER" driver="sony-updr150" manufacturer="Sony" model="2001" foomaticid="Sony-UP-DR150" />
+ <printer translate="name" name="Sony UP-DR150" deviceid="MFG:Sony;MDL:UP-DR150;DES:Sony UP-DR150;CMD:SONY-Original;CLS:PRINTER" driver="sony-updr150" manufacturer="Sony" model="2001" foomaticid="Sony-UP-DR150" parameters="nativecopies" />
<printer translate="name" name="Sony DPP-EX5" driver="sony-dppex5" manufacturer="Sony" model="2002" foomaticid="Sony-DPP-EX5" />
<printer translate="name" name="Sony DPP-EX7" driver="sony-dppex7" manufacturer="Sony" model="2002" foomaticid="Sony-DPP-EX7" />
<printer translate="name" name="Sony UP-DR100" driver="sony-updr100" manufacturer="Sony" model="2003" foomaticid="Sony-UP-DR100" />
- <printer translate="name" name="Sony UP-DR200" driver="sony-updr200" manufacturer="Sony" model="2004" foomaticid="Sony-UP-DR200" />
- <printer translate="name" name="Sony UP-CR10L" driver="sony-upcr10l" manufacturer="Sony" model="2005" foomaticid="Sony-UP-CR10L" />
- <printer translate="name" name="DNP SL10" driver="dnp-sl10" manufacturer="DNP" model="2005" foomaticid="DNP-SL10" />
+ <printer translate="name" name="Sony UP-DR200" driver="sony-updr200" manufacturer="Sony" model="2004" foomaticid="Sony-UP-DR200" parameters="nativecopies" />
+ <printer translate="name" name="Sony UP-CR10L" driver="sony-upcr10l" manufacturer="Sony" model="2005" foomaticid="Sony-UP-CR10L" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Dai Nippon Printing SL10" driver="dnp-sl10" manufacturer="Dai Nippon Printing" model="2005" foomaticid="DNP-SL10" parameters="nativecopies">EXPERIMENTAL</printer>
<printer translate="name" name="Fujifilm Printpix-CX-400" driver="fujifilm-cx400" manufacturer="Fujifilm" model="3000" foomaticid="Fujifilm-Printpix-CX-400" />
<printer translate="name" name="Fujifilm Printpix-CX-550" driver="fujifilm-cx550" manufacturer="Fujifilm" model="3001" foomaticid="Fujifilm-Printpix-CX-550" />
<printer translate="name" name="Fujifilm FinePix-NX-500" driver="fujifilm-nx500" manufacturer="Fujifilm" model="3002" foomaticid="Fujifilm-FinePix-NX-500" />
@@ -2821,52 +2894,56 @@
<printer translate="name" name="Kodak Photo-Printer-500" driver="kodak-photo-printer-500" manufacturer="Kodak" model="4000" foomaticid="Kodak-Photo-Printer-500" />
<printer translate="name" name="Kodak Printer-Dock-Plus" driver="kodak-dock-plus" manufacturer="Kodak" model="4000" foomaticid="Kodak-Printer-Dock-Plus" />
<printer translate="name" name="Kodak Printer-Dock-Plus-S3" driver="kodak-dock-plus-s3" manufacturer="Kodak" model="4000" foomaticid="Kodak-Printer-Dock-Plus-S3" />
- <printer translate="name" name="Kodak 6800" deviceid="MFG:Eastman Kodak Company;CMD:ESC;MDL:Photo Printer 6800;CLS:PRINTER;DES:KODAK Photo Printer 6800;" driver="kodak-6800" manufacturer="Kodak" model="4001" foomaticid="Kodak-6800" />
- <printer translate="name" name="Kodak 6850" deviceid="MFG:Eastman Kodak Company;CMD:ESC;MDL:Photo Printer 6850;CLS:PRINTER;DES:KODAK Photo Printer 6850;" driver="kodak-6850" manufacturer="Kodak" model="4002" foomaticid="Kodak-6850" />
- <printer translate="name" name="Kodak 605" deviceid="MFG:Eastman Kodak Company;CMD:SUPCC;MCL:KODAK 605 Photo Printer;CLS:PRINTER;DES:Thermal Dye Photo Printer;" driver="kodak-605" manufacturer="Kodak" model="4003" foomaticid="Kodak-605" />
- <printer translate="name" name="Kodak 1400" deviceid="MFG:Eastman Kodak Company;CMD:EK1;MDL: 1400 Printer;CLS:Printer;DES:Kodak 1400 Printer;`" driver="kodak-1400" manufacturer="Kodak" model="4004" foomaticid="Kodak-1400" />
- <printer translate="name" name="Kodak 805" deviceid="MFG:Eastman Kodak Company;CMD:EK2;MDL: KODAK 805 Photo Printer;CLS:Printer;DES:Kodak 805 Photo Printer;" driver="kodak-805" manufacturer="Kodak" model="4005" foomaticid="Kodak-805" />
+ <printer translate="name" name="Kodak 6800" deviceid="MFG:Eastman Kodak Company;CMD:ESC;MDL:Photo Printer 6800;CLS:PRINTER;DES:KODAK Photo Printer 6800;" driver="kodak-6800" manufacturer="Kodak" model="4001" foomaticid="Kodak-6800" parameters="nativecopies" />
+ <printer translate="name" name="Kodak 6850" deviceid="MFG:Eastman Kodak Company;CMD:ESC;MDL:Photo Printer 6850;CLS:PRINTER;DES:KODAK Photo Printer 6850;" driver="kodak-6850" manufacturer="Kodak" model="4002" foomaticid="Kodak-6850" parameters="nativecopies" />
+ <printer translate="name" name="Kodak 605" deviceid="MFG:Eastman Kodak Company;CMD:SUPCC;MCL:KODAK 605 Photo Printer;CLS:PRINTER;DES:Thermal Dye Photo Printer;" driver="kodak-605" manufacturer="Kodak" model="4003" foomaticid="Kodak-605" parameters="nativecopies" />
+ <printer translate="name" name="Kodak 1400" deviceid="MFG:Eastman Kodak Company;CMD:EK1;MDL: 1400 Printer;CLS:Printer;DES:Kodak 1400 Printer;`" driver="kodak-1400" manufacturer="Kodak" model="4004" foomaticid="Kodak-1400" parameters="nativecopies" />
+ <printer translate="name" name="Kodak 805" deviceid="MFG:Eastman Kodak Company;CMD:EK2;MDL: KODAK 805 Photo Printer;CLS:Printer;DES:Kodak 805 Photo Printer;" driver="kodak-805" manufacturer="Kodak" model="4005" foomaticid="Kodak-805" parameters="nativecopies" />
<printer translate="name" name="Kodak 8500" driver="kodak-8500" manufacturer="Kodak" model="4100" foomaticid="Kodak-8500">EXPERIMENTAL</printer>
<printer translate="name" name="Kodak 9810" driver="kodak-9810" manufacturer="Kodak" model="4006" foomaticid="Kodak-9810">EXPERIMENTAL</printer>
<printer translate="name" name="Kodak 8810" driver="kodak-8810" manufacturer="Kodak" model="4007" foomaticid="Kodak-8810">EXPERIMENTAL</printer>
+ <printer translate="name" name="Kodak 7000" driver="kodak-7000" manufacturer="Kodak" model="4008" foomaticid="Kodak-7000">EXPERIMENTAL</printer>
+ <printer translate="name" name="Kodak 7010" driver="kodak-7010" manufacturer="Kodak" model="4008" foomaticid="Kodak-7010">EXPERIMENTAL</printer>
+ <printer translate="name" name="Kodak 7015" driver="kodak-7015" manufacturer="Kodak" model="4009" foomaticid="Kodak-7015">EXPERIMENTAL</printer>
<printer translate="name" name="Mitsubishi CP-3020D" driver="mitsubishi-3020d" manufacturer="Mitsubishi" model="4101" foomaticid="Mitsubishi-3020D">EXPERIMENTAL</printer>
<printer translate="name" name="Mitsubishi CP-3020DU" driver="mitsubishi-3020du" manufacturer="Mitsubishi" model="4101" foomaticid="Mitsubishi-3020DU">EXPERIMENTAL</printer>
<printer translate="name" name="Mitsubishi CP-3020DE" driver="mitsubishi-3020de" manufacturer="Mitsubishi" model="4101" foomaticid="Mitsubishi-3020DE">EXPERIMENTAL</printer>
<printer translate="name" name="Mitsubishi CP-3020DA" driver="mitsubishi-3020da" manufacturer="Mitsubishi" model="4102" foomaticid="Mitsubishi-3020DA">EXPERIMENTAL</printer>
<printer translate="name" name="Mitsubishi CP-3020DAE" driver="mitsubishi-3020dae" manufacturer="Mitsubishi" model="4102" foomaticid="Mitsubishi-3020DAE">EXPERIMENTAL</printer>
- <printer translate="name" name="Mitsubishi CP-9550D" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP9550D ;CLS:PRINTER;DES:MITSUBISHI CP9550D" driver="mitsubishi-9550d" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550D" />
- <printer translate="name" name="Mitsubishi CP-9550DW" driver="mitsubishi-9550dw" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550DW" />
- <printer translate="name" name="Mitsubishi CP-9550DZ" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP9550DZ;CLS:PRINTER;DES:MITSUBISHI CP9550DZ;" driver="mitsubishi-9550dz" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550DZ">EXPERIMENTAL</printer>
+ <printer translate="name" name="Mitsubishi CP-9550D" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP9550D ;CLS:PRINTER;DES:MITSUBISHI CP9550D" driver="mitsubishi-9550d" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550D" parameters="nativecopies" />
+ <printer translate="name" name="Mitsubishi CP-9550DW" driver="mitsubishi-9550dw" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550DW" parameters="nativecopies" />
+ <printer translate="name" name="Mitsubishi CP-9550DZ" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP9550DZ;CLS:PRINTER;DES:MITSUBISHI CP9550DZ;" driver="mitsubishi-9550dz" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550DZ" parameters="nativecopies">EXPERIMENTAL</printer>
<printer translate="name" name="Mitsubishi CP-9550DW-S" driver="mitsubishi-9550dw-s" manufacturer="Mitsubishi" model="4103" foomaticid="Mitsubishi-9550DW-S">EXPERIMENTAL</printer>
<printer translate="name" name="Mitsubishi CP-9810D" driver="mitsubishi-9810d" manufacturer="Mitsubishi" model="4104" foomaticid="Mitsubishi-9810D" />
<printer translate="name" name="Mitsubishi CP-9810DW" driver="mitsubishi-9810dw" manufacturer="Mitsubishi" model="4104" foomaticid="Mitsubishi-9810DW" />
- <printer translate="name" name="Mitsubishi CP-D70DW" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP60D70D707D;CLS:PRINTER;DES:MITSUBISHI CP60D70D707D" driver="mitsubishi-d70dw" manufacturer="Mitsubishi" model="4105" foomaticid="Mitsubishi-D70DW">EXPERIMENTAL</printer>
- <printer translate="name" name="Mitsubishi CP-D707DW" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP60D70D707D;CLS:PRINTER;DES:MITSUBISHI CP60D70D707D" driver="mitsubishi-d707dw" manufacturer="Mitsubishi" model="4105" foomaticid="Mitsubishi-D707DW">EXPERIMENTAL</printer>
- <printer translate="name" name="Mitsubishi CP-K60DW-S" driver="mitsubishi-k60dw-s" manufacturer="Mitsubishi" model="4106" foomaticid="Mitsubishi-K60DW-S">EXPERIMENTAL</printer>
- <printer translate="name" name="Mitsubishi CP-D80DW" driver="mitsubishi-d80dw" manufacturer="Mitsubishi" model="4107" foomaticid="Mitsubishi-D80DW">EXPERIMENTAL</printer>
- <printer translate="name" name="Kodak 305" deviceid="MFG:KODAK;CMD:KODAK305;MDL:305 Photo Printer;CLS:PRINTER;DES:KODAK 305 Photo Printer" driver="kodak-305" manufacturer="Kodak" model="4108" foomaticid="Kodak-305">EXPERIMENTAL</printer>
+ <printer translate="name" name="Mitsubishi CP-D70DW" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP60D70D707D;CLS:PRINTER;DES:MITSUBISHI CP60D70D707D" driver="mitsubishi-d70dw" manufacturer="Mitsubishi" model="4105" foomaticid="Mitsubishi-D70DW" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Mitsubishi CP-D707DW" deviceid="MFG:MITSUBISHI;CMD:MEL;MDL:CP60D70D707D;CLS:PRINTER;DES:MITSUBISHI CP60D70D707D" driver="mitsubishi-d707dw" manufacturer="Mitsubishi" model="4105" foomaticid="Mitsubishi-D707DW" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Mitsubishi CP-K60DW-S" driver="mitsubishi-k60dw" manufacturer="Mitsubishi" model="4106" foomaticid="Mitsubishi-K60DW-S" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Mitsubishi CP-D80DW" driver="mitsubishi-d80dw" manufacturer="Mitsubishi" model="4107" foomaticid="Mitsubishi-D80DW" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Kodak 305" deviceid="MFG:KODAK;CMD:KODAK305;MDL:305 Photo Printer;CLS:PRINTER;DES:KODAK 305 Photo Printer" driver="kodak-305" manufacturer="Kodak" model="4108" foomaticid="Kodak-305" parameters="nativecopies">EXPERIMENTAL</printer>
<printer translate="name" name="Shinko CHC-S9045" driver="shinko-chcs9045" manufacturer="Shinko" model="5000" foomaticid="Shinko-CHC-S9045" />
- <printer translate="name" name="Shinko CHC-S2145" deviceid="MFG:SHINKO;CMD:SUPCC;MDL:CHC-S2145;CLS:PRINTER;DES:SHINKO CHC-S2145;" driver="shinko-chcs2145" manufacturer="Shinko" model="5001" foomaticid="Shinko-CHC-S2145" />
- <printer translate="name" name="Sinfonia S2145/S2" driver="sinfonia-chcs2145" manufacturer="Sinfonia" model="5001" foomaticid="Sinfonia-CHC-S2145" />
- <printer translate="name" name="Shinko CHC-S1245" driver="shinko-chcs1245" manufacturer="Shinko" model="5002" foomaticid="Shinko-CHC-S1245">EXPERIMENTAL</printer>
- <printer translate="name" name="Sinfonia CHC-S1245/E1" driver="sinfonia-chcs1245" manufacturer="Sinfonia" model="5002" foomaticid="Sinfonia-CHC-S1245">EXPERIMENTAL</printer>
- <printer translate="name" name="Shinko CHC-S6245" driver="shinko-chcs6245" manufacturer="Shinko" model="5003" foomaticid="Shinko-CHC-S6245">EXPERIMENTAL</printer>
- <printer translate="name" name="Sinfonia CHC-S6245/CE1" driver="sinfonia-chcs6245" manufacturer="Sinfonia" model="5003" foomaticid="Sinfonia-CHC-S6245">EXPERIMENTAL</printer>
- <printer translate="name" name="Shinko CHC-S6145" driver="shinko-chcs6145" manufacturer="Shinko" model="5004" foomaticid="Shinko-CHC-S6145">EXPERIMENTAL</printer>
+ <printer translate="name" name="Shinko CHC-S2145" deviceid="MFG:SHINKO;CMD:SUPCC;MDL:CHC-S2145;CLS:PRINTER;DES:SHINKO CHC-S2145;" driver="shinko-chcs2145" manufacturer="Shinko" model="5001" foomaticid="Shinko-CHC-S2145" parameters="nativecopies" />
+ <printer translate="name" name="Sinfonia S2145/S2" driver="sinfonia-chcs2145" manufacturer="Sinfonia" model="5001" foomaticid="Sinfonia-CHC-S2145" parameters="nativecopies" />
+ <printer translate="name" name="Shinko CHC-S1245" driver="shinko-chcs1245" manufacturer="Shinko" model="5002" foomaticid="Shinko-CHC-S1245" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Sinfonia CHC-S1245/E1" driver="sinfonia-chcs1245" manufacturer="Sinfonia" model="5002" foomaticid="Sinfonia-CHC-S1245" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Shinko CHC-S6245" driver="shinko-chcs6245" manufacturer="Shinko" model="5003" foomaticid="Shinko-CHC-S6245" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Sinfonia CHC-S6245/CE1" driver="sinfonia-chcs6245" manufacturer="Sinfonia" model="5003" foomaticid="Sinfonia-CHC-S6245" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Shinko CHC-S6145" deviceid="MFG:SINFONIA;CMD:SUPCC;MDL:CHC-S6145;CLS:PRINTER;DES:Thermal Dye Photo Printer;" driver="shinko-chcs6145" manufacturer="Shinko" model="5004" foomaticid="Shinko-CHC-S6145">EXPERIMENTAL</printer>
<printer translate="name" name="Sinfonia CHC-S6145/CS2" driver="sinfonia-chcs6145" manufacturer="Sinfonia" model="5004" foomaticid="Sinfonia-CHC-S6145">EXPERIMENTAL</printer>
<printer translate="name" name="CIAAT Brava 21" driver="ciaat-brava-21" manufacturer="CIAAT" model="5005" foomaticid="CIAAT-Brava-21">EXPERIMENTAL</printer>
- <printer translate="name" name="Dai Nippon Printing DS40" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS40;" driver="dnp-ds40" manufacturer="DNP" model="6000" foomaticid="DNP-DS40" />
- <printer translate="name" name="Dai Nippon Printing DS80" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS80;" driver="dnp-ds80" manufacturer="DNP" model="6001" foomaticid="DNP-DS80" />
- <printer translate="name" name="Dai Nippon Printing DSRX1" driver="dnp-dsrx1" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS-RX1;" manufacturer="DNP" model="6002" foomaticid="DNP-DSRX1" />
- <printer translate="name" name="Dai Nippon Printing DS620" driver="dnp-ds620" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DP-DS620;" manufacturer="DNP" model="6003" foomaticid="DNP-DS620" />
- <printer translate="name" name="Citizen CX" driver="citizen-cx" deviceid="MANUFACTURER:CITIZEN SYSTEMS ;MODEL:CX;" manufacturer="Citizen" model="6000" foomaticid="Citizen-CX" />
- <printer translate="name" name="Citizen CX-W" driver="citizen-cx-w" manufacturer="Citizen" model="6001" foomaticid="Citizen-CX-W" />
- <printer translate="name" name="Citizen CY" driver="citizen-cy" manufacturer="Citizen" model="6002" foomaticid="Citizen-CY" />
- <printer translate="name" name="Citizen CW-01" driver="citizen-cw-01" manufacturer="Citizen" model="6005" foomaticid="Citizen-CW-01">EXPERIMENTAL</printer>
- <printer translate="name" name="Citizen OP900" driver="citizen-op900" manufacturer="Citizen" model="6005" foomaticid="Citizen-OP900">EXPERIMENTAL</printer>
- <printer translate="name" name="Citizen CW-02" driver="citizen-cw-02" manufacturer="Citizen" model="6000" foomaticid="Citizen-CW-02">EXPERIMENTAL</printer>
- <printer translate="name" name="Citizen OP900II" driver="citizen-op900ii" manufacturer="Citizen" model="6000" foomaticid="Citizen-OP900II">EXPERIMENTAL</printer>
- <printer translate="name" name="Mitsubishi CP-3800DW" driver="mitsubishi-cp-3800dw" manufacturer="Mitsubishi" model="6001" foomaticid="Mitsubishi-CP-3800DW" />
+ <printer translate="name" name="Dai Nippon Printing DS40" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS40;" driver="dnp-ds40" manufacturer="Dai Nippon Printing" model="6000" foomaticid="DNP-DS40" parameters="nativecopies" />
+ <printer translate="name" name="Dai Nippon Printing DS80" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS80;" driver="dnp-ds80" manufacturer="Dai Nippon Printing" model="6001" foomaticid="DNP-DS80" parameters="nativecopies" />
+ <printer translate="name" name="Dai Nippon Printing DSRX1" driver="dnp-dsrx1" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DS-RX1;" manufacturer="Dai Nippon Printing" model="6002" foomaticid="DNP-DSRX1" parameters="nativecopies" />
+ <printer translate="name" name="Dai Nippon Printing DS620" driver="dnp-ds620" deviceid="MANUFACTURER:Dai Nippon Printing ;MODEL:DP-DS620;" manufacturer="Dai Nippon Printing" model="6003" foomaticid="DNP-DS620" parameters="nativecopies" />
+ <printer translate="name" name="Citizen CX" driver="citizen-cx" deviceid="MANUFACTURER:CITIZEN SYSTEMS ;MODEL:CX;" manufacturer="Citizen" model="6000" foomaticid="Citizen-CX" parameters="nativecopies" />
+ <printer translate="name" name="Citizen CX-W" driver="citizen-cx-w" manufacturer="Citizen" model="6001" foomaticid="Citizen-CX-W" parameters="nativecopies" />
+ <printer translate="name" name="Citizen CY" driver="citizen-cy" manufacturer="Citizen" model="6002" foomaticid="Citizen-CY" parameters="nativecopies" />
+ <printer translate="name" name="Citizen CW-01" driver="citizen-cw-01" manufacturer="Citizen" model="6005" foomaticid="Citizen-CW-01" parameters="nativecopies" />
+ <printer translate="name" name="Citizen OP900" driver="citizen-op900" manufacturer="Citizen" model="6005" foomaticid="Citizen-OP900" parameters="nativecopies" />
+ <printer translate="name" name="Citizen CW-02" driver="citizen-cw-02" manufacturer="Citizen" model="6000" foomaticid="Citizen-CW-02" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Citizen OP900II" driver="citizen-op900ii" manufacturer="Citizen" model="6000" foomaticid="Citizen-OP900II" parameters="nativecopies">EXPERIMENTAL</printer>
+ <printer translate="name" name="Mitsubishi CP-3800DW" driver="mitsubishi-cp-3800dw" manufacturer="Mitsubishi" model="6001" foomaticid="Mitsubishi-CP-3800DW" parameters="nativecopies" />
+ <printer translate="name" name="Dai Nippon Printing DS80DX" driver="dnp-ds80dx" manufacturer="Dai Nippon Printing" model="6006" foomaticid="DNP-DS80DX" parameters="nativecopies">EXPERIMENTAL</printer>
</family>
<family name="raw">
<printer translate="name" name="RAW DATA 16 bit" driver="raw-data-16" manufacturer="" model="0" />