Hi Vadim, Thanks for the patch.
@Allan> Since you're listed as the canon_dr backend's author, can you take a look at this? Vadim V. Vlasov writes: > The patch adds support for batch count by introducing "--batchMode=XX" > parameter. This works at least with Canon DR-G1100 but may also > work with other scanners. At least it should not break current > behaviour (as long as you do not use "--batchMode=XX"). > Note, what you call "SSM2_BUFF_sync" is, probably, page count > rather than "sync (unbuffered) mode". > > diff -rup a/backend/canon_dr.c b/backend/canon_dr.c > --- a/backend/canon_dr.c 2017-08-09 18:50:33.725500231 +0300 > +++ b/backend/canon_dr.c 2017-08-09 19:16:42.073500044 +0300 > @@ -830,6 +830,7 @@ attach_one (const char *device_name, int > s->padded_read = global_padded_read; > s->extra_status = global_extra_status; > s->duplex_offset = global_duplex_offset; > + s->batchmode = 1; > > /* copy the device name */ > strcpy (s->device_name, device_name); > @@ -2540,6 +2541,18 @@ sane_get_option_descriptor (SANE_Handle > opt->cap = SANE_CAP_INACTIVE; > } > > + /*batch count*/ > + if(option==OPT_BATCHMODE){ > + opt->name = "batchMode"; > + opt->title = "Batch count"; > + opt->desc = "Request scanner to batch-scan N pages"; > + opt->type = SANE_TYPE_INT; > + if (s->has_buffer) > + opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | > SANE_CAP_ADVANCED; > + else > + opt->cap = SANE_CAP_INACTIVE; > + } > + > if(option==OPT_SIDE){ > opt->name = "side"; > opt->title = "Duplex side"; > @@ -2914,6 +2927,10 @@ sane_control_option (SANE_Handle handle, > *val_p = s->buffermode; > return SANE_STATUS_GOOD; > > + case OPT_BATCHMODE: > + *val_p = s->batchmode; > + return SANE_STATUS_GOOD; > + > case OPT_SIDE: > *val_p = s->side; > return SANE_STATUS_GOOD; > @@ -3235,6 +3252,13 @@ sane_control_option (SANE_Handle handle, > > case OPT_BUFFERMODE: > s->buffermode = val_c; > + s->batchmode = !s->buffermode; > + return SANE_STATUS_GOOD; > + > + case OPT_BATCHMODE: > + s->batchmode = val_c; > + if (val_c != 1) > + s->buffermode = 1; > return SANE_STATUS_GOOD; > > } > @@ -3313,7 +3337,7 @@ ssm_buffer (struct scanner *s) > memset(out,0,outLen); > set_SSM2_BUFF_unk(out, !s->buffermode); > set_SSM2_BUFF_unk2(out, 0x40); > - set_SSM2_BUFF_sync(out, !s->buffermode); > + set_SSM2_BUFF_sync(out, s->batchmode); > > ret = do_cmd ( > s, 1, 0, > diff -rup a/backend/canon_dr.h b/backend/canon_dr.h > --- a/backend/canon_dr.h 2017-08-09 18:50:33.725500231 +0300 > +++ b/backend/canon_dr.h 2017-08-09 18:51:07.021500227 +0300 > @@ -48,6 +48,7 @@ enum scanner_Option > OPT_DROPOUT_COLOR_F, > OPT_DROPOUT_COLOR_B, > OPT_BUFFERMODE, > + OPT_BATCHMODE, > OPT_SIDE, > > /*sensor group*/ > @@ -280,6 +281,7 @@ struct scanner > int df_thickness; > int dropout_color[2]; > int buffermode; > + int batchmode; > int rollerdeskew; > int swdeskew; > int swdespeck; -- Sent with my mu4e -- sane-devel mailing list: sane-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel Unsubscribe: Send mail with subject "unsubscribe your_password" to sane-devel-requ...@lists.alioth.debian.org