summaryrefslogtreecommitdiff
path: root/backend/magicolor.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/magicolor.c')
-rw-r--r--backend/magicolor.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/backend/magicolor.c b/backend/magicolor.c
index e3cd80d..660f517 100644
--- a/backend/magicolor.c
+++ b/backend/magicolor.c
@@ -103,7 +103,8 @@
* | | | | | | | | | | | | | | |
*/
static struct MagicolorCmd magicolor_cmd[] = {
- {"mc1690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03}
+ {"mc1690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
+ {"mc4690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
};
static SANE_Int magicolor_default_resolutions[] = {150, 300, 600};
@@ -121,7 +122,20 @@ static struct MagicolorCap magicolor_cap[] = {
{0, SANE_FIX(0x13f8 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x1b9c * MM_PER_INCH / 600), 0}, /* FBF x/y ranges (TODO!) */
SANE_TRUE, SANE_FALSE, /* non-duplex ADF, x/y ranges (TODO!) */
{0, SANE_FIX(0x1390 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x20dc * MM_PER_INCH / 600), 0},
- }
+ },
+
+ /* KONICA MINOLTA magicolor 4690MF, USB ID 0x132b:2079 */
+ {
+ 0x2079, "mc4690mf", "KONICA MINOLTA magicolor 4690MF",
+ "FIXME", /* FIXME: fill in the correct OID! */
+ 0x03, 0x85,
+ 600, {150, 600, 0}, magicolor_default_resolutions, 3, /* 600 dpi max, 3 resolutions */
+ 8, magicolor_default_depths, /* color depth 8 default, 1 and 8 possible */
+ {1, 9, 0}, /* brightness ranges (TODO!) */
+ {0, SANE_FIX(0x13f8 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x1b9c * MM_PER_INCH / 600), 0}, /* FBF x/y ranges (TODO!) */
+ SANE_TRUE, SANE_TRUE, /* duplex ADF, x/y ranges (TODO!) */
+ {0, SANE_FIX(0x1390 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x20dc * MM_PER_INCH / 600), 0},
+ },
};
@@ -373,6 +387,7 @@ sanei_magicolor_net_close(struct Magicolor_Scanner *s)
SANE_Word sanei_magicolor_usb_product_ids[] = {
0x2089, /* magicolor 1690MF */
+ 0x2079, /* magicolor 4690MF */
0 /* last entry - this is used for devices that are specified
in the config file as "usb <vendor> <product>" */
};
@@ -1176,7 +1191,12 @@ mc_set_scanning_parameters(Magicolor_Scanner * s)
/* ADF used? */
if (strcmp(source_list[s->val[OPT_SOURCE].w], ADF_STR) == 0) {
/* Use ADF */
- source = 0x01;
+ if (s->val[OPT_ADF_MODE].w == 0) {
+ source = 0x01;
+ } else {
+ /* Use duplex */
+ source = 0x02;
+ }
} else {
source = 0x00;
}
@@ -1670,6 +1690,7 @@ detect_usb(struct Magicolor_Scanner *s)
DBG(2, "found valid Magicolor scanner: 0x%x/0x%x (vendorID/productID)\n",
vendor, product);
+ mc_set_device(s, product);
return SANE_STATUS_GOOD;
}