* backend/canon_dr.[ch], backend/canon_dr-cmd.h: backend v9

- add rollerdeskew and stapledetect options
- add rollerdeskew and stapledetect bits to ssm_df()
* doc/descriptions/canon_dr.desc: backend v9
merge-requests/1/head
m. allan noah 2008-12-09 03:21:47 +00:00
rodzic 7eedd6b799
commit 56ed54d96e
5 zmienionych plików z 84 dodań i 24 usunięć

Wyświetl plik

@ -1,3 +1,9 @@
2008-12-08 m. allan noah <kitno455 a t gmail d o t com>
* backend/canon_dr.[ch], backend/canon_dr-cmd.h: backend v9
- add rollerdeskew and stapledetect options
- add rollerdeskew and stapledetect bits to ssm_df()
* doc/descriptions/canon_dr.desc: backend v9
2008-12-08 m. allan noah <kitno455 a t gmail d o t com> 2008-12-08 m. allan noah <kitno455 a t gmail d o t com>
* backend/avision.c: backend v289 * backend/avision.c: backend v289
- fix sending SIGTERM when reader_pid == 0 - fix sending SIGTERM when reader_pid == 0
@ -13,13 +19,14 @@
* doc/descriptions/canon_dr.desc, doc/sane-canon_dr.man: backend v8 * doc/descriptions/canon_dr.desc, doc/sane-canon_dr.man: backend v8
2008-12-06 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org> 2008-12-06 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org>
* replaced getlogin/getenv by getpwuid(geteuid) * backend/pixma_bjnp.c pixma_bjnp_private.h:
replaced getlogin/getenv by getpwuid(geteuid)
2008-12-06 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org> 2008-12-06 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org>
* backend/pixma_bjnp.c pixma_bjnp_private.h * backend/pixma_bjnp.c pixma_bjnp_private.h:
On Ubuntu getlogin() returns NULL. So we noew first try getlogin() On Ubuntu getlogin() returns NULL. So we now first try getlogin()
and if that fails, we try getenv("USER") and if that fails we use and if that fails, we try getenv("USER") and if that fails we use
a defaul user string a default user string
2008-12-03 Stéphane Voltz <stef.dev@free.fr> 2008-12-03 Stéphane Voltz <stef.dev@free.fr>
* backend/rts8891.c backend/rts8891_low.c: possible fix for * backend/rts8891.c backend/rts8891_low.c: possible fix for

Wyświetl plik

@ -306,10 +306,10 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
#define set_SSM_page_len(sb, val) sb[0x05] = val #define set_SSM_page_len(sb, val) sb[0x05] = val
/* for DF page */ /* for DF page */
#define set_SSM_DF_unk1(sb, val) setbitfield(sb+7, 1, 5, val) #define set_SSM_DF_deskew_roll(sb, val) setbitfield(sb+7, 1, 5, val)
#define set_SSM_DF_staple(sb, val) setbitfield(sb+7, 1, 4, val) #define set_SSM_DF_staple(sb, val) setbitfield(sb+7, 1, 4, val)
#define set_SSM_DF_len(sb, val) setbitfield(sb+7, 1, 0, val)
#define set_SSM_DF_thick(sb, val) setbitfield(sb+7, 1, 2, val) #define set_SSM_DF_thick(sb, val) setbitfield(sb+7, 1, 2, val)
#define set_SSM_DF_len(sb, val) setbitfield(sb+7, 1, 0, val)
#define set_SSM_DF_textdir(sb, val) setbitfield(sb+9, 0xf, 0, val) #define set_SSM_DF_textdir(sb, val) setbitfield(sb+9, 0xf, 0, val)
/* for DUPLEX page */ /* for DUPLEX page */

Wyświetl plik

@ -109,6 +109,9 @@
- call TUR twice in wait_scanner(), even if first succeeds - call TUR twice in wait_scanner(), even if first succeeds
- disable rif - disable rif
- enable brightness/contrast/threshold options - enable brightness/contrast/threshold options
v9 2008-12-07, MAN
- add rollerdeskew and stapledetect options
- add rollerdeskew and stapledetect bits to ssm_df()
SANE FLOW DIAGRAM SANE FLOW DIAGRAM
@ -169,7 +172,7 @@
#include "canon_dr.h" #include "canon_dr.h"
#define DEBUG 1 #define DEBUG 1
#define BUILD 8 #define BUILD 9
/* values for SANE_DEBUG_CANON_DR env var: /* values for SANE_DEBUG_CANON_DR env var:
- errors 5 - errors 5
@ -1672,6 +1675,30 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->cap = SANE_CAP_INACTIVE; opt->cap = SANE_CAP_INACTIVE;
} }
/*deskew by roller*/
if(option==OPT_ROLLERDESKEW){
opt->name = "rollerdeskew";
opt->title = "Roller deskew";
opt->desc = "Request scanner to correct skewed pages mechanically";
opt->type = SANE_TYPE_BOOL;
if (1)
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
/*staple detection*/
if(option==OPT_STAPLEDETECT){
opt->name = "stapledetect";
opt->title = "Staple detect";
opt->desc = "Request scanner to halt if stapled pages are detected";
opt->type = SANE_TYPE_BOOL;
if (1)
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
/*dropout color front*/ /*dropout color front*/
if(option==OPT_DROPOUT_COLOR_F){ if(option==OPT_DROPOUT_COLOR_F){
s->do_color_list[0] = string_None; s->do_color_list[0] = string_None;
@ -1732,12 +1759,12 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
if(option==OPT_BUFFERMODE){ if(option==OPT_BUFFERMODE){
opt->name = "buffermode"; opt->name = "buffermode";
opt->title = "Buffer mode"; opt->title = "Buffer mode";
opt->desc = "Request scanner to read pages quickly from ADF into internal memory"; opt->desc = "Request scanner to read pages async into internal memory";
opt->type = SANE_TYPE_BOOL; opt->type = SANE_TYPE_BOOL;
if (s->has_buffer) if (s->has_buffer)
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED; opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
else else
opt->cap = SANE_CAP_INACTIVE; opt->cap = SANE_CAP_INACTIVE;
} }
/* "Sensor" group ------------------------------------------------------ */ /* "Sensor" group ------------------------------------------------------ */
@ -1974,6 +2001,14 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
*val_p = s->df_thickness; *val_p = s->df_thickness;
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
case OPT_ROLLERDESKEW:
*val_p = s->rollerdeskew;
return SANE_STATUS_GOOD;
case OPT_STAPLEDETECT:
*val_p = s->stapledetect;
return SANE_STATUS_GOOD;
case OPT_DROPOUT_COLOR_F: case OPT_DROPOUT_COLOR_F:
switch (s->dropout_color_f) { switch (s->dropout_color_f) {
case COLOR_NONE: case COLOR_NONE:
@ -2259,6 +2294,14 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
s->df_thickness = val_c; s->df_thickness = val_c;
return ssm_df(s); return ssm_df(s);
case OPT_ROLLERDESKEW:
s->rollerdeskew = val_c;
return ssm_df(s);
case OPT_STAPLEDETECT:
s->stapledetect = val_c;
return ssm_df(s);
case OPT_DROPOUT_COLOR_F: case OPT_DROPOUT_COLOR_F:
if (!strcmp(val, string_None)) if (!strcmp(val, string_None))
s->dropout_color_f = COLOR_NONE; s->dropout_color_f = COLOR_NONE;
@ -2370,18 +2413,24 @@ ssm_df (struct scanner *s)
set_SSM_page_code(out, SM_pc_df); set_SSM_page_code(out, SM_pc_df);
set_SSM_page_len(out, SSM_PAGE_len); set_SSM_page_len(out, SSM_PAGE_len);
if(s->df_thickness || s->df_length){ /* deskew by roller */
set_SSM_DF_unk1(out, 1); if(s->rollerdeskew){
set_SSM_DF_deskew_roll(out, 1);
/* thickness */ }
if(s->df_thickness){
set_SSM_DF_thick(out, 1);
}
/* length */ /* staple detection */
if(s->df_length){ if(s->stapledetect){
set_SSM_DF_len(out, 1); set_SSM_DF_staple(out, 1);
} }
/* thickness */
if(s->df_thickness){
set_SSM_DF_thick(out, 1);
}
/* length */
if(s->df_length){
set_SSM_DF_len(out, 1);
} }
ret = do_cmd ( ret = do_cmd (

Wyświetl plik

@ -40,6 +40,8 @@ enum scanner_Option
OPT_COMPRESS_ARG, OPT_COMPRESS_ARG,
OPT_DF_THICKNESS, OPT_DF_THICKNESS,
OPT_DF_LENGTH, OPT_DF_LENGTH,
OPT_ROLLERDESKEW,
OPT_STAPLEDETECT,
OPT_DROPOUT_COLOR_F, OPT_DROPOUT_COLOR_F,
OPT_DROPOUT_COLOR_B, OPT_DROPOUT_COLOR_B,
OPT_BUFFERMODE, OPT_BUFFERMODE,
@ -225,6 +227,8 @@ struct scanner
int dropout_color_f; int dropout_color_f;
int dropout_color_b; int dropout_color_b;
int buffermode; int buffermode;
int rollerdeskew;
int stapledetect;
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
/* values which are derived from setting the options above */ /* values which are derived from setting the options above */

Wyświetl plik

@ -11,7 +11,7 @@
:backend "canon_dr" ; name of backend :backend "canon_dr" ; name of backend
:url "http://www.thebility.com/canon/" :url "http://www.thebility.com/canon/"
:version "8" ; version of backend :version "9" ; version of backend
:manpage "sane-canon_dr" ; name of manpage (if it exists) :manpage "sane-canon_dr" ; name of manpage (if it exists)
:comment "New backend as of SANE release 1.1.0, testers needed, see manpage" :comment "New backend as of SANE release 1.1.0, testers needed, see manpage"
:devicetype :scanner ; start of a list of devices.... :devicetype :scanner ; start of a list of devices....
@ -83,13 +83,13 @@
:interface "USB SCSI" :interface "USB SCSI"
:usbid "0x04a9" "0x160b" :usbid "0x04a9" "0x160b"
:status :good :status :good
:comment "Simplex, duplex, all resolutions, binary/ht/gray, async mode, dropout-color, multifeed detection, buttons and gray JPEG working, imprinter unsupported" :comment "Simplex, duplex, all resolutions, binary/ht/gray, async mode, dropout-color, multifeed/staple detection, deskew, buttons and gray JPEG working, imprinter unsupported"
:model "DR-9080C" :model "DR-9080C"
:interface "USB SCSI" :interface "USB SCSI"
:usbid "0x04a9" "0x1603" :usbid "0x04a9" "0x1603"
:status :good :status :good
:comment "Simplex, duplex, all resolutions, binary/ht/gray/color, async mode, dropout-color, multifeed detection, buttons and gray JPEG working, imprinter unsupported, color JPEG broken" :comment "Simplex, duplex, all resolutions, binary/ht/gray/color, async mode, dropout-color, multifeed/staple detection, deskew, buttons and gray JPEG working, imprinter unsupported, color JPEG broken"
:model "DR-X10C" :model "DR-X10C"
:interface "USB SCSI" :interface "USB SCSI"