From 93b880cbd1af7f437de405b293cd8cfc9dabfef5 Mon Sep 17 00:00:00 2001 From: "m. allan noah" Date: Tue, 24 Mar 2009 13:38:32 +0000 Subject: [PATCH] * backend/canon_dr.[ch], backend/canon_dr-cmd.h: backend v21 - correct rgb padding macro - skip send_panel and ssm_df commands for DR-20xx scanners * doc/desciptions/microtek2.desc: add ScanMaker 6400XL --- ChangeLog | 8 +++++++- backend/canon_dr-cmd.h | 7 +++---- backend/canon_dr.c | 27 ++++++++++++++++++++++++--- backend/canon_dr.h | 4 +++- doc/descriptions/microtek2.desc | 4 ++++ 5 files changed, 41 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index d502f30b1..d10e15ebf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,10 @@ -2009-03-05 Chris Bagwell +2009-03-24 m. allan noah + * backend/canon_dr.[ch], backend/canon_dr-cmd.h: backend v21 + - correct rgb padding macro + - skip send_panel and ssm_df commands for DR-20xx scanners + * doc/desciptions/microtek2.desc: add ScanMaker 6400XL + +2009-03-24 Chris Bagwell * doc/Makefile.am: Don't include any template.desc. into generated HTML files. diff --git a/backend/canon_dr-cmd.h b/backend/canon_dr-cmd.h index 1eb44d8df..1b32e6fae 100644 --- a/backend/canon_dr-cmd.h +++ b/backend/canon_dr-cmd.h @@ -3,8 +3,7 @@ /* * Part of SANE - Scanner Access Now Easy. - * - * Please see to opening comments in canon_dr.c + * Please see opening comments in canon_dr.c */ /****************************************************/ @@ -425,8 +424,8 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes) /* 0x1d - Reverse image, reserved area, padding type */ #define set_WD_rif(sb, val) setbitfield(sb + 0x1d, 1, 7, val) #define get_WD_rif(sb) getbitfield(sb + 0x1d, 1, 7) -#define set_WD_rgb(sb, val) setbitfield(sb + 0x1d, 7, 6, val) -#define get_WD_rgb(sb) getbitfield(sb + 0x1d, 7, 6) +#define set_WD_rgb(sb, val) setbitfield(sb + 0x1d, 7, 4, val) +#define get_WD_rgb(sb) getbitfield(sb + 0x1d, 7, 4) #define set_WD_padding(sb, val) setbitfield(sb + 0x1d, 7, 0, val) #define get_WD_padding(sb) getbitfield(sb + 0x1d, 7, 0) diff --git a/backend/canon_dr.c b/backend/canon_dr.c index 9019ccc39..19dcc3b6a 100644 --- a/backend/canon_dr.c +++ b/backend/canon_dr.c @@ -156,6 +156,9 @@ - remove status-length config option - add padded-read config option - rewrite do_usb_cmd to pad reads and calloc/copy buffers + v21 2009-03-24, MAN + - correct rgb padding macro + - skip send_panel and ssm_df commands for DR-20xx scanners SANE FLOW DIAGRAM @@ -216,7 +219,7 @@ #include "canon_dr.h" #define DEBUG 1 -#define BUILD 20 +#define BUILD 21 /* values for SANE_DEBUG_CANON_DR env var: - errors 5 @@ -1009,10 +1012,12 @@ init_model (struct scanner *s) s->reverse_by_mode[MODE_GRAYSCALE] = 0; s->reverse_by_mode[MODE_COLOR] = 0; + s->has_df = 1; s->has_counter = 1; s->has_adf = 1; s->has_duplex = 1; s->has_buffer = 1; + s->can_write_panel = 1; s->brightness_steps = 255; s->contrast_steps = 255; @@ -1037,7 +1042,6 @@ init_model (struct scanner *s) s->duplex_interlace = DUPLEX_INTERLACE_BYTE; s->can_halftone = 0; s->can_monochrome = 0; - s->has_counter = 0; } /* specific settings missing from vpd */ @@ -1061,6 +1065,13 @@ init_model (struct scanner *s) s->fixed_width = 1; } + else if (strstr (s->model_name,"DR-2050") + || strstr (s->model_name,"DR-2080") + ){ + s->can_write_panel = 0; + s->has_df = 0; + } + DBG (10, "init_model: finish\n"); return SANE_STATUS_GOOD; @@ -2535,6 +2546,11 @@ ssm_df (struct scanner *s) DBG (10, "ssm_df: start\n"); + if(!s->has_df){ + DBG (10, "ssm_df: unsupported, finishing\n"); + return ret; + } + memset(cmd,0,cmdLen); set_SCSI_opcode(cmd, SET_SCAN_MODE_code); set_SSM_pf(cmd, 1); @@ -2725,7 +2741,12 @@ send_panel(struct scanner *s) size_t outLen = S_PANEL_len; DBG (10, "send_panel: start\n"); - + + if(!s->can_write_panel){ + DBG (10, "send_panel: unsupported, finishing\n"); + return ret; + } + memset(cmd,0,cmdLen); set_SCSI_opcode(cmd, SEND_code); set_S_xfer_datatype (cmd, SR_datatype_panel); diff --git a/backend/canon_dr.h b/backend/canon_dr.h index 46f095b8e..c8dd5f6ec 100644 --- a/backend/canon_dr.h +++ b/backend/canon_dr.h @@ -3,7 +3,7 @@ /* * Part of SANE - Scanner Access Now Easy. - * Please see opening comment in canon_dr.c + * Please see opening comments in canon_dr.c */ /* ------------------------------------------------------------------------- @@ -143,6 +143,8 @@ struct scanner int has_back; /* not all duplex scanners can do adf back side only */ int has_comp_JPEG; int has_buffer; + int has_df; + int can_write_panel; int rgb_format; /* meaning unknown */ int padding; /* meaning unknown */ diff --git a/doc/descriptions/microtek2.desc b/doc/descriptions/microtek2.desc index 956dff54b..ae2b78d4a 100644 --- a/doc/descriptions/microtek2.desc +++ b/doc/descriptions/microtek2.desc @@ -76,6 +76,10 @@ :interface "SCSI" :status :complete +:model "ScanMaker 6400XL" +:interface "SCSI" +:status :complete + :model "ScanMaker 9600XL" :interface "SCSI" :comment "only flatbed mode ?"