kopia lustrzana https://gitlab.com/sane-project/backends
Fixed color scan problem.
rodzic
8016aca0d8
commit
5e0caa5b45
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#define BUILD 7 /* 2002-03-02 */
|
#define BUILD 8 /* 2002-03-07 */
|
||||||
#define BACKEND_NAME sceptre
|
#define BACKEND_NAME sceptre
|
||||||
#define SCEPTRE_CONFIG_FILE "sceptre.conf"
|
#define SCEPTRE_CONFIG_FILE "sceptre.conf"
|
||||||
|
|
||||||
|
@ -1556,6 +1556,8 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params)
|
||||||
|
|
||||||
if (!(dev->scanning))
|
if (!(dev->scanning))
|
||||||
{
|
{
|
||||||
|
/* Prepare the parameters for the caller. */
|
||||||
|
memset (&dev->params, 0, sizeof (SANE_Parameters));
|
||||||
|
|
||||||
if (dev->val[OPT_PREVIEW].w == SANE_TRUE)
|
if (dev->val[OPT_PREVIEW].w == SANE_TRUE)
|
||||||
{
|
{
|
||||||
|
@ -1629,9 +1631,6 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Prepare the parameters for the caller. */
|
|
||||||
memset (&dev->params, 0, sizeof (SANE_Parameters));
|
|
||||||
|
|
||||||
/* this scanner does only one pass */
|
/* this scanner does only one pass */
|
||||||
dev->params.last_frame = SANE_TRUE;
|
dev->params.last_frame = SANE_TRUE;
|
||||||
dev->params.depth = dev->depth;
|
dev->params.depth = dev->depth;
|
||||||
|
@ -1677,8 +1676,9 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dev->params.bytes_per_line =
|
dev->params.bytes_per_line = dev->params.pixels_per_line;
|
||||||
dev->params.pixels_per_line * (dev->depth / 8);
|
if (dev->scan_mode == SCEPTRE_COLOR)
|
||||||
|
dev->params.bytes_per_line *= 3;
|
||||||
|
|
||||||
/* lines number rounding rules:
|
/* lines number rounding rules:
|
||||||
* 2n + [0.0 .. 2.0[ -> round to 2n
|
* 2n + [0.0 .. 2.0[ -> round to 2n
|
||||||
|
@ -1825,14 +1825,18 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len,
|
||||||
/*
|
/*
|
||||||
* Try to read the maximum number of bytes.
|
* Try to read the maximum number of bytes.
|
||||||
*
|
*
|
||||||
* The windows driver reads no more than 0xffff byte, I've tried
|
* The windows driver reads no more than 0xffff bytes, I've tried
|
||||||
* some bigger values, but the scanner is losing data!!!
|
* some bigger values, but the scanner is losing data!!!
|
||||||
*/
|
*/
|
||||||
size = data_left;
|
size = dev->bytes_left;
|
||||||
if (size > dev->buffer_size)
|
if (size > dev->buffer_size)
|
||||||
{
|
{
|
||||||
size = dev->buffer_size;
|
size = dev->buffer_size;
|
||||||
}
|
}
|
||||||
|
if (size > data_left)
|
||||||
|
{
|
||||||
|
size = data_left;
|
||||||
|
}
|
||||||
|
|
||||||
/* If it is a preview, read only what we have been asked
|
/* If it is a preview, read only what we have been asked
|
||||||
* for. Else, try to maximize the throughput.
|
* for. Else, try to maximize the throughput.
|
||||||
|
@ -1878,7 +1882,7 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len,
|
||||||
/* Still got some data. Send it. */
|
/* Still got some data. Send it. */
|
||||||
if (size > (size_t) max_len)
|
if (size > (size_t) max_len)
|
||||||
size = max_len;
|
size = max_len;
|
||||||
if (size > (size_t) dev->bytes_left)
|
if (size > dev->bytes_left)
|
||||||
size = dev->bytes_left;
|
size = dev->bytes_left;
|
||||||
|
|
||||||
memcpy (buf, dev->image + dev->image_begin, size);
|
memcpy (buf, dev->image + dev->image_begin, size);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
;
|
;
|
||||||
|
|
||||||
:backend "sceptre"
|
:backend "sceptre"
|
||||||
:version "1.0-7" ; version of backend
|
:version "1.0-8" ; version of backend
|
||||||
:status :new ; :alpha, :beta, :stable, :new
|
:status :new ; :alpha, :beta, :stable, :new
|
||||||
:manpage "sane-sceptre" ; name of manpage
|
:manpage "sane-sceptre" ; name of manpage
|
||||||
:url "http://www.geocities.com/harikus2000/sane" ; backend's web page
|
:url "http://www.geocities.com/harikus2000/sane" ; backend's web page
|
||||||
|
|
|
@ -345,7 +345,7 @@ typedef struct Sceptre_Scanner
|
||||||
int depth; /* depth per color */
|
int depth; /* depth per color */
|
||||||
int halftone_param; /* haltone number, valid for SCEPTRE_HALFTONE */
|
int halftone_param; /* haltone number, valid for SCEPTRE_HALFTONE */
|
||||||
|
|
||||||
int bytes_left; /* number of bytes promised to backend
|
size_t bytes_left; /* number of bytes promised to backend
|
||||||
* left to read. */
|
* left to read. */
|
||||||
|
|
||||||
int color_shift; /* for color scan: number of lines to
|
int color_shift; /* for color scan: number of lines to
|
||||||
|
|
Ładowanie…
Reference in New Issue