sane-project-website/old-archive/2000-07/att-0057/01-mtb.diff

49 wiersze
1.8 KiB
Diff

--- backend/microtek2.c.alt Tue Jul 11 17:56:08 2000
+++ backend/microtek2.c Tue Jul 11 18:08:23 2000
@@ -2217,6 +2217,12 @@
if ( md->revision == 1.00 )
md->model_flags |= MD_OFFSET_2;
break;
+ case 0x99:
+ *model_string = "Scanmaker X6";
+ if ( md->revision == 1.00 )
+ md->model_flags |= MD_OFFSET_2;
+ md->model_flags |= MD_X6_SHORT_TRANSFER;
+ break;
case 0x9a:
*model_string = "Phantom 636cx / C6";
/* The Phantom 636cx says it supports the SLIDE mode, but it */
@@ -6571,6 +6577,7 @@
SANE_Bool endiantype;
SANE_Status status;
size_t size;
+ Microtek2_Device *md;
DBG(30, "scsi_read_image: ms=%p, buffer=%p\n", ms, buffer);
@@ -6586,7 +6593,11 @@
if ( md_dump >= 2 )
dump_area2(cmd, RI_CMD_L, "readimagecmd");
- size = ms->src_buffer_size;
+ md = ms->dev;
+ if (md->model_flags & MD_X6_SHORT_TRANSFER)
+ size = ms->transfer_length;
+ else
+ size = ms->src_buffer_size;
status = sanei_scsi_cmd(ms->sfd, cmd, sizeof(cmd), buffer, &size);
/* ms->buf.src_buffer[ms->buf.current_src], &size);*/
--- backend/microtek2.h.old Tue Jul 11 17:59:54 2000
+++ backend/microtek2.h Tue Jul 11 18:08:27 2000
@@ -778,6 +778,8 @@
#define MD_OFFSET_2 256 /* Image data starts 2 bytes */
/* from the beginning of a */
/* scanline */
+#define MD_X6_SHORT_TRANSFER 512 /* X6 USB crashes if you read
+ too much */
u_int32_t n_control_bytes; /* for read_control_bits; the */
/* number is model dependent */