kopia lustrzana https://gitlab.com/sane-project/backends
Fixed some warnings (bug #300823). Fixed Microtek Phantom C6 scanning on big
endian platforms. Based on patch from Matijs van Zuijlen in Debian bug tracking system (#274523).merge-requests/1/head
rodzic
3e4899d63b
commit
0e29f2138f
|
@ -16,7 +16,10 @@
|
||||||
doesn't work on 64 bit platforms as size_t is 64 bits there
|
doesn't work on 64 bit platforms as size_t is 64 bits there
|
||||||
while the length of a data block is defined as 32 bits in the
|
while the length of a data block is defined as 32 bits in the
|
||||||
SANE network standard (bug #300837).
|
SANE network standard (bug #300837).
|
||||||
* backend/microtek2.c: Fixed some warnings (bug #300823).
|
* backend/microtek2.c backend/microtek2.h: Fixed some warnings
|
||||||
|
(bug #300823). Fixed Microtek Phantom C6 scanning on big endian
|
||||||
|
platforms. Based on patch from Matijs van Zuijlen in Debian bug
|
||||||
|
tracking system (#274523).
|
||||||
|
|
||||||
2004-10-02 Thomas Soumarmon <thomas.soumarmon@cogitae.net>
|
2004-10-02 Thomas Soumarmon <thomas.soumarmon@cogitae.net>
|
||||||
|
|
||||||
|
|
|
@ -893,7 +893,7 @@ cancel_scan(Microtek2_Scanner *ms)
|
||||||
|
|
||||||
/* READ IMAGE with a transferlength of 0 aborts a scan */
|
/* READ IMAGE with a transferlength of 0 aborts a scan */
|
||||||
ms->transfer_length = 0;
|
ms->transfer_length = 0;
|
||||||
status = scsi_read_image(ms, (u_int8_t *) NULL);
|
status = scsi_read_image(ms, (u_int8_t *) NULL, 1);
|
||||||
if ( status != SANE_STATUS_GOOD )
|
if ( status != SANE_STATUS_GOOD )
|
||||||
{
|
{
|
||||||
DBG(1, "cancel_scan: cancel failed: '%s'\n", sane_strstatus(status));
|
DBG(1, "cancel_scan: cancel failed: '%s'\n", sane_strstatus(status));
|
||||||
|
@ -4668,12 +4668,14 @@ scsi_read_image_info(Microtek2_Scanner *ms)
|
||||||
/*---------- scsi_read_image() -----------------------------------------------*/
|
/*---------- scsi_read_image() -----------------------------------------------*/
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
scsi_read_image(Microtek2_Scanner *ms, u_int8_t *buffer)
|
scsi_read_image(Microtek2_Scanner *ms, u_int8_t *buffer, int bytes_per_pixel)
|
||||||
{
|
{
|
||||||
u_int8_t cmd[RI_CMD_L];
|
u_int8_t cmd[RI_CMD_L];
|
||||||
SANE_Bool endiantype;
|
SANE_Bool endiantype;
|
||||||
SANE_Status status;
|
SANE_Status status;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
size_t i;
|
||||||
|
u_int8_t tmp;
|
||||||
|
|
||||||
|
|
||||||
DBG(30, "scsi_read_image: ms=%p, buffer=%p\n", (void *) ms, buffer);
|
DBG(30, "scsi_read_image: ms=%p, buffer=%p\n", (void *) ms, buffer);
|
||||||
|
@ -4692,6 +4694,24 @@ scsi_read_image(Microtek2_Scanner *ms, u_int8_t *buffer)
|
||||||
size = ms->transfer_length;
|
size = ms->transfer_length;
|
||||||
status = sanei_scsi_cmd(ms->sfd, cmd, sizeof(cmd), buffer, &size);
|
status = sanei_scsi_cmd(ms->sfd, cmd, sizeof(cmd), buffer, &size);
|
||||||
|
|
||||||
|
if ( buffer && ( ms->dev->model_flags & MD_PHANTOM_C6 ) && endiantype )
|
||||||
|
{
|
||||||
|
switch(bytes_per_pixel)
|
||||||
|
{
|
||||||
|
case 1: break;
|
||||||
|
case 2:
|
||||||
|
for ( i = 1; i < size; i += 2 )
|
||||||
|
{
|
||||||
|
tmp = buffer[i-1];
|
||||||
|
buffer[i-1] = buffer[i];
|
||||||
|
buffer[i] = tmp;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
DBG(1, "scsi_read_image: Unexpected bytes_per_pixel=%d\n", bytes_per_pixel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( status != SANE_STATUS_GOOD )
|
if ( status != SANE_STATUS_GOOD )
|
||||||
DBG(1, "scsi_read_image: '%s'\n", sane_strstatus(status));
|
DBG(1, "scsi_read_image: '%s'\n", sane_strstatus(status));
|
||||||
|
|
||||||
|
@ -6098,7 +6118,7 @@ read_shading_image(Microtek2_Scanner *ms)
|
||||||
#ifdef TESTBACKEND
|
#ifdef TESTBACKEND
|
||||||
status = scsi_read_sh_d_image(ms, buf);
|
status = scsi_read_sh_d_image(ms, buf);
|
||||||
#else
|
#else
|
||||||
status = scsi_read_image(ms, buf);
|
status = scsi_read_image(ms, buf, md->shading_depth>8 ? 2 : 1);
|
||||||
#endif
|
#endif
|
||||||
if ( status != SANE_STATUS_GOOD )
|
if ( status != SANE_STATUS_GOOD )
|
||||||
{
|
{
|
||||||
|
@ -6239,7 +6259,7 @@ read_shading_image(Microtek2_Scanner *ms)
|
||||||
#ifdef TESTBACKEND
|
#ifdef TESTBACKEND
|
||||||
status = scsi_read_sh_w_image(ms, buf);
|
status = scsi_read_sh_w_image(ms, buf);
|
||||||
#else
|
#else
|
||||||
status = scsi_read_image(ms, buf);
|
status = scsi_read_image(ms, buf, md->shading_depth>8 ? 2 : 1);
|
||||||
#endif
|
#endif
|
||||||
if ( status != SANE_STATUS_GOOD )
|
if ( status != SANE_STATUS_GOOD )
|
||||||
return status;
|
return status;
|
||||||
|
@ -7148,7 +7168,7 @@ reader_process(void *data)
|
||||||
ms->src_lines_to_read, ms->bpl, ms->real_bpl, ms->buf.src_buf);
|
ms->src_lines_to_read, ms->bpl, ms->real_bpl, ms->buf.src_buf);
|
||||||
|
|
||||||
sigprocmask (SIG_BLOCK, &sigterm_set, 0);
|
sigprocmask (SIG_BLOCK, &sigterm_set, 0);
|
||||||
status = scsi_read_image(ms, ms->buf.src_buf);
|
status = scsi_read_image(ms, ms->buf.src_buf, (ms->depth > 8) ? 2 : 1);
|
||||||
sigprocmask (SIG_UNBLOCK, &sigterm_set, 0);
|
sigprocmask (SIG_UNBLOCK, &sigterm_set, 0);
|
||||||
if ( status != SANE_STATUS_GOOD )
|
if ( status != SANE_STATUS_GOOD )
|
||||||
return SANE_STATUS_IO_ERROR;
|
return SANE_STATUS_IO_ERROR;
|
||||||
|
|
|
@ -1344,7 +1344,7 @@ scsi_read_control_bits(Microtek2_Scanner *);
|
||||||
scsi_read_gamma(Microtek2_Scanner *); */
|
scsi_read_gamma(Microtek2_Scanner *); */
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
scsi_read_image(Microtek2_Scanner *, u_int8_t *);
|
scsi_read_image(Microtek2_Scanner *, u_int8_t *, int);
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
scsi_read_image_info(Microtek2_Scanner *);
|
scsi_read_image_info(Microtek2_Scanner *);
|
||||||
|
|
Ładowanie…
Reference in New Issue