kopia lustrzana https://gitlab.com/sane-project/backends
upgraded Canon SCSI backend to version 1.10:
modified invocations of sanei_scsi_open() to avoid crashes with Mandrake Linux added support of focus control for the FS2710S film scannerDEVEL_2_0_BRANCH-1
rodzic
c4f961bf5f
commit
0a43a10869
|
@ -1,5 +1,13 @@
|
||||||
****** Release of sane-backends 1.0.9. End of code freeze ******
|
****** Release of sane-backends 1.0.9. End of code freeze ******
|
||||||
|
|
||||||
|
2002-11-13 Ulrich Deiters <ukd@xenon.pc.uni-koeln.de>
|
||||||
|
|
||||||
|
* modified the Canon SCSI backend (now version 1.10):
|
||||||
|
* backend/canon.c, canon-scsi.c: Added support of focus control for
|
||||||
|
the FS2710 film scanner.
|
||||||
|
backend/canon-sane.c: Set handler_arg in sanei_scsi_open() calls
|
||||||
|
to zero to avoid crashes with Mandrake Linux 9.0
|
||||||
|
|
||||||
2002-10-23 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
2002-10-23 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||||
|
|
||||||
* doc/descriptions-external/gt68xx.conf: Updated status of scanners.
|
* doc/descriptions-external/gt68xx.conf: Updated status of scanners.
|
||||||
|
|
|
@ -198,7 +198,7 @@ sane_close (SANE_Handle handle)
|
||||||
{
|
{
|
||||||
if (s->fd == -1)
|
if (s->fd == -1)
|
||||||
{
|
{
|
||||||
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, s);
|
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, 0);
|
||||||
}
|
}
|
||||||
status = medium_position (s->fd);
|
status = medium_position (s->fd);
|
||||||
if (status != SANE_STATUS_GOOD)
|
if (status != SANE_STATUS_GOOD)
|
||||||
|
@ -335,7 +335,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
|
|
||||||
memset (gbuf, 0, sizeof (gbuf));
|
memset (gbuf, 0, sizeof (gbuf));
|
||||||
buf_size = 256;
|
buf_size = 256;
|
||||||
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, s);
|
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, 0);
|
||||||
transfer_data_type = 0x03;
|
transfer_data_type = 0x03;
|
||||||
|
|
||||||
DBG (21, "sending GET_DENSITY_CURVE\n");
|
DBG (21, "sending GET_DENSITY_CURVE\n");
|
||||||
|
@ -669,6 +669,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
}
|
}
|
||||||
s->opt[OPT_TPU_PN].cap ^= SANE_CAP_INACTIVE;
|
s->opt[OPT_TPU_PN].cap ^= SANE_CAP_INACTIVE;
|
||||||
s->opt[OPT_TPU_DCM].cap ^= SANE_CAP_INACTIVE;
|
s->opt[OPT_TPU_DCM].cap ^= SANE_CAP_INACTIVE;
|
||||||
|
if (info)
|
||||||
*info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
*info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
||||||
return SANE_STATUS_GOOD;
|
return SANE_STATUS_GOOD;
|
||||||
|
|
||||||
|
@ -693,6 +694,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
s->hw->tpu.ControlMode = 0;
|
s->hw->tpu.ControlMode = 0;
|
||||||
|
if (info)
|
||||||
*info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
*info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS;
|
||||||
return SANE_STATUS_GOOD;
|
return SANE_STATUS_GOOD;
|
||||||
|
|
||||||
|
@ -869,7 +871,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
|
|
||||||
/* modification for FB620S */
|
/* modification for FB620S */
|
||||||
case OPT_CALIBRATION_NOW:
|
case OPT_CALIBRATION_NOW:
|
||||||
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, s);
|
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, 0);
|
||||||
if (status == SANE_STATUS_GOOD)
|
if (status == SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -893,7 +895,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
case OPT_SCANNER_SELF_DIAGNOSTIC:
|
case OPT_SCANNER_SELF_DIAGNOSTIC:
|
||||||
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, s);
|
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, 0);
|
||||||
if (status == SANE_STATUS_GOOD)
|
if (status == SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
status = send_diagnostic (s->fd);
|
status = send_diagnostic (s->fd);
|
||||||
|
@ -919,7 +921,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
case OPT_RESET_SCANNER:
|
case OPT_RESET_SCANNER:
|
||||||
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, s);
|
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, 0);
|
||||||
if (status == SANE_STATUS_GOOD)
|
if (status == SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
time (&(s->time1));
|
time (&(s->time1));
|
||||||
|
@ -972,7 +974,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
case OPT_EJECT_NOW:
|
case OPT_EJECT_NOW:
|
||||||
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, s);
|
sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, 0);
|
||||||
status = medium_position (s->fd);
|
status = medium_position (s->fd);
|
||||||
if (status != SANE_STATUS_GOOD)
|
if (status != SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
|
@ -1230,7 +1232,7 @@ sane_start (SANE_Handle handle)
|
||||||
if (status != SANE_STATUS_GOOD)
|
if (status != SANE_STATUS_GOOD)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
status = sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, s);
|
status = sanei_scsi_open (s->hw->sane.name, &s->fd, sense_handler, 0);
|
||||||
if (status != SANE_STATUS_GOOD)
|
if (status != SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
DBG (1, "open of %s failed: %s\n",
|
DBG (1, "open of %s failed: %s\n",
|
||||||
|
|
|
@ -309,6 +309,25 @@ execute_auto_focus (int fd, int mode, int speed, int AE, int count)
|
||||||
return (status);
|
return (status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static SANE_Status
|
||||||
|
execute_auto_focus_FS2710 (int fd, int mode, int AE, int count)
|
||||||
|
{
|
||||||
|
static u_char cmd[10];
|
||||||
|
int status;
|
||||||
|
DBG (7, ">> execute auto focus 2710\n");
|
||||||
|
DBG (7, ">> focus: mode='%d', count='%d'\n", mode, count);
|
||||||
|
|
||||||
|
memset (cmd, 0, sizeof (cmd));
|
||||||
|
cmd[0] = 0xe0;
|
||||||
|
cmd[1] = mode;
|
||||||
|
cmd[2] = AE;
|
||||||
|
cmd[4] = (char) (28 * ((int) (count/28.5)) - 12);
|
||||||
|
status = sanei_scsi_cmd2 (fd, cmd, sizeof (cmd), NULL, 0, NULL, NULL);
|
||||||
|
|
||||||
|
DBG (7, "<< execute auto focus2710\n");
|
||||||
|
return (status);
|
||||||
|
}
|
||||||
|
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
set_adf_mode (int fd, u_char priority)
|
set_adf_mode (int fd, u_char priority)
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
(Canon refused to make the FS2710 documentation available,
|
(Canon refused to make the FS2710 documentation available,
|
||||||
hence not all features are supported.)
|
hence not all features are supported.)
|
||||||
|
|
||||||
|
backend version: 1.10
|
||||||
|
|
||||||
This file is part of the SANE package.
|
This file is part of the SANE package.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
This program is free software; you can redistribute it and/or
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
:backend "canon" ; name of backend
|
:backend "canon" ; name of backend
|
||||||
:manpage "sane-canon"
|
:manpage "sane-canon"
|
||||||
:version "0.2" ; version of backend
|
:version "1.10" ; version of backend
|
||||||
:status :alpha ; :alpha, :beta, :stable, :new
|
:status :alpha ; :alpha, :beta, :stable, :new
|
||||||
|
|
||||||
:url "http://www.rzg.mpg.de/~mpd/sane/" ; backend home page
|
:url "http://www.rzg.mpg.de/~mpd/sane/" ; backend home page
|
||||||
|
|
Ładowanie…
Reference in New Issue