Added option for disabling double-buffering. Updated man page. New version:

1.0-108.
Henning Meier-Geinitz <henning@meier-geinitz.de>
DEVEL_2_0_BRANCH-1
Henning Geinitz 2001-07-07 15:16:06 +00:00
rodzic 2cc5b5d2db
commit 0e7b9ed8dc
2 zmienionych plików z 44 dodań i 8 usunięć

Wyświetl plik

@ -46,7 +46,7 @@
/**************************************************************************/ /**************************************************************************/
/* Mustek backend version */ /* Mustek backend version */
#define BUILD 107 #define BUILD 108
/**************************************************************************/ /**************************************************************************/
#include "../include/sane/config.h" #include "../include/sane/config.h"
@ -95,6 +95,9 @@ static double strip_height;
/* Should we wait for the scan slider to return after each scan? */ /* Should we wait for the scan slider to return after each scan? */
static SANE_Bool force_wait; static SANE_Bool force_wait;
/* Should we disable double buffering when reading data from the scanner? */
static SANE_Bool disable_double_buffering;
static SANE_Int num_devices; static SANE_Int num_devices;
static Mustek_Device *first_dev; static Mustek_Device *first_dev;
static Mustek_Scanner *first_handle; static Mustek_Scanner *first_handle;
@ -404,7 +407,7 @@ scsi_inquiry_wait_ready (Mustek_Scanner *s)
{ {
DBG(5, "scsi_inquiry_wait_ready: sending INQUIRY\n"); DBG(5, "scsi_inquiry_wait_ready: sending INQUIRY\n");
status = inquiry (s); status = inquiry (s);
DBG(5, "scsi_inquiry_ready: INQUIRY finished\n"); DBG(5, "scsi_inquiry_wait_ready: INQUIRY finished\n");
switch (status) switch (status)
{ {
default: default:
@ -4536,6 +4539,10 @@ reader_process (Mustek_Scanner *s, SANE_Int fd)
SANE_Bool finished; /* block is finished */ SANE_Bool finished; /* block is finished */
} bstat [2]; } bstat [2];
if (disable_double_buffering)
DBG(3, "reader_process: disable_double_buffering is set, this may be "
"slow.\n");
sigemptyset (&sigterm_set); sigemptyset (&sigterm_set);
sigaddset (&sigterm_set, SIGTERM); sigaddset (&sigterm_set, SIGTERM);
@ -4681,6 +4688,15 @@ reader_process (Mustek_Scanner *s, SANE_Int fd)
if (bstat[buffernumber].finished) if (bstat[buffernumber].finished)
break; /* everything written; exit loop */ break; /* everything written; exit loop */
} }
if (disable_double_buffering)
{
/* Enter only one buffer at once */
if (buffernumber == 1)
buffernumber = 0;
else
buffernumber = 1;
}
/* enter read requests only if data left */ /* enter read requests only if data left */
if ((s->line < s->hw->lines) && (buffer_count < max_buffers)) if ((s->line < s->hw->lines) && (buffer_count < max_buffers))
{ {
@ -4732,12 +4748,13 @@ reader_process (Mustek_Scanner *s, SANE_Int fd)
return status; return status;
} }
} }
if (!disable_double_buffering)
if (buffernumber == 1) {
buffernumber = 0; if (buffernumber == 1)
else buffernumber = 0;
buffernumber = 1; else
buffernumber = 1;
}
/* This is said to fix the scanner hangs that reportedly show on /* This is said to fix the scanner hangs that reportedly show on
some MFS-12000SP scanners. */ some MFS-12000SP scanners. */
if (s->mode == 0 && (s->hw->flags & MUSTEK_FLAG_LINEART_FIX)) if (s->mode == 0 && (s->hw->flags & MUSTEK_FLAG_LINEART_FIX))
@ -4819,6 +4836,7 @@ sane_init (SANE_Int *version_code, SANE_Auth_Callback authorize)
num_devices = 0; num_devices = 0;
force_wait = SANE_FALSE; force_wait = SANE_FALSE;
disable_double_buffering = SANE_FALSE;
fp = sanei_config_open (MUSTEK_CONFIG_FILE); fp = sanei_config_open (MUSTEK_CONFIG_FILE);
if (!fp) if (!fp)
@ -4899,6 +4917,15 @@ sane_init (SANE_Int *version_code, SANE_Auth_Callback authorize)
free (word); free (word);
word = 0; word = 0;
} }
else if (strcmp (word, "disable-double-buffering") == 0)
{
DBG(3, "sane_init: config file line %d: disabling "
"double-buffering\n", linenumber);
disable_double_buffering = SANE_TRUE;
if (word)
free (word);
word = 0;
}
else if (strcmp (word, "legal-size") == 0) else if (strcmp (word, "legal-size") == 0)
{ {
if (new_dev_len > 0) if (new_dev_len > 0)

Wyświetl plik

@ -1,5 +1,14 @@
CHANGES for the SANE Mustek backend CHANGES for the SANE Mustek backend
2001-07-07
* Released Mustek backend 1.0-108.
2001-07-07
* added option to disable double-buffering
* don't set any options by default in mustek.conf
* updated manpage
* fixed debug statement in scsi_inquiry_wait_ready
2001-05-06 2001-05-06
* Fixed memory leak in sane_get_devices () * Fixed memory leak in sane_get_devices ()