kopia lustrzana https://gitlab.com/sane-project/backends
Karl Heinz Kremer <khk@khk.net>
backend/epson.c: fixed dates in change log entries and finally fixed the TPU bug with older scannersDEVEL_2_0_BRANCH-1
rodzic
b612995f96
commit
9008bf4643
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define SANE_EPSON_VERSION "SANE Epson Backend v0.2.04 - 2001-05-13"
|
#define SANE_EPSON_VERSION "SANE Epson Backend v0.2.05 - 2001-05-19"
|
||||||
#define SANE_EPSON_BUILD 204
|
#define SANE_EPSON_BUILD 205
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This file is part of the SANE package.
|
This file is part of the SANE package.
|
||||||
|
@ -59,15 +59,19 @@
|
||||||
If you do not wish that, delete this exception notice. */
|
If you do not wish that, delete this exception notice. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
2000-05-13 Version 0.2.04
|
2001-05-19 Version 0.2.05
|
||||||
|
fixed the year in the recent change log entries - I now that it's
|
||||||
|
2001...
|
||||||
|
Finally fixed the TPU problem with B4 level scanners
|
||||||
|
2001-05-13 Version 0.2.04
|
||||||
Removed check for '\n' before end of line
|
Removed check for '\n' before end of line
|
||||||
Free memory malloced in sane_get_devices() in sane_exit() again
|
Free memory malloced in sane_get_devices() in sane_exit() again
|
||||||
2000-04-22 Version 0.2.03
|
2001-04-22 Version 0.2.03
|
||||||
Check first if the scanner does support the set film type
|
Check first if the scanner does support the set film type
|
||||||
and set focus position before the GUI elements are displayed.
|
and set focus position before the GUI elements are displayed.
|
||||||
This caused problems with older (B4 level) scanners when a TPU
|
This caused problems with older (B4 level) scanners when a TPU
|
||||||
was connected.
|
was connected.
|
||||||
2000-03-31 Version 0.2.02
|
2001-03-31 Version 0.2.02
|
||||||
2001-03-17 Next attempt to get the reported number of lines correct
|
2001-03-17 Next attempt to get the reported number of lines correct
|
||||||
for the "color shuffling" part.
|
for the "color shuffling" part.
|
||||||
Added more comments.
|
Added more comments.
|
||||||
|
@ -810,6 +814,9 @@ static int send ( Epson_Scanner * s, const void *buf, size_t buf_size, SANE_Stat
|
||||||
static ssize_t receive ( Epson_Scanner * s, void *buf, ssize_t buf_size, SANE_Status * status);
|
static ssize_t receive ( Epson_Scanner * s, void *buf, ssize_t buf_size, SANE_Status * status);
|
||||||
static SANE_Status color_shuffle(SANE_Handle handle, int *new_length);
|
static SANE_Status color_shuffle(SANE_Handle handle, int *new_length);
|
||||||
static SANE_Status request_focus_position(SANE_Handle handle, u_char * position);
|
static SANE_Status request_focus_position(SANE_Handle handle, u_char * position);
|
||||||
|
static void sane_activate( Epson_Scanner * s, SANE_Int option, SANE_Bool * change);
|
||||||
|
static void sane_deactivate( Epson_Scanner * s, SANE_Int option, SANE_Bool * change);
|
||||||
|
static void sane_optstate( SANE_Bool state, Epson_Scanner * s, SANE_Int option, SANE_Bool * change);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
|
@ -2123,6 +2130,7 @@ SANE_Status sane_get_devices ( const SANE_Device * * * device_list, SANE_Bool lo
|
||||||
|
|
||||||
static SANE_Status init_options ( Epson_Scanner * s) {
|
static SANE_Status init_options ( Epson_Scanner * s) {
|
||||||
int i;
|
int i;
|
||||||
|
SANE_Bool dummy;
|
||||||
|
|
||||||
for( i = 0; i < NUM_OPTIONS; ++i) {
|
for( i = 0; i < NUM_OPTIONS; ++i) {
|
||||||
s->opt[ i].size = sizeof( SANE_Word);
|
s->opt[ i].size = sizeof( SANE_Word);
|
||||||
|
@ -2694,8 +2702,7 @@ static SANE_Status init_options ( Epson_Scanner * s) {
|
||||||
|
|
||||||
s->val[ OPT_FILM_TYPE].w = 0;
|
s->val[ OPT_FILM_TYPE].w = 0;
|
||||||
|
|
||||||
s->opt[ OPT_FILM_TYPE].cap |= SANE_CAP_INACTIVE; /* default is inactive */
|
sane_deactivate(s, OPT_FILM_TYPE, &dummy); /* default is inactive */
|
||||||
|
|
||||||
|
|
||||||
/* focus position */
|
/* focus position */
|
||||||
s->opt[ OPT_FOCUS].name = SANE_EPSON_FOCUS_NAME;
|
s->opt[ OPT_FOCUS].name = SANE_EPSON_FOCUS_NAME;
|
||||||
|
@ -2719,7 +2726,9 @@ static SANE_Status init_options ( Epson_Scanner * s) {
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if( ( ! s->hw->TPU) && ( ! s->hw->cmd->set_bay) ) { /* Hack: Using set_bay to indicate. */
|
if( ( ! s->hw->TPU) && ( ! s->hw->cmd->set_bay) ) { /* Hack: Using set_bay to indicate. */
|
||||||
s->opt[ OPT_FILM_TYPE].cap |= SANE_CAP_INACTIVE;
|
SANE_Bool dummy;
|
||||||
|
sane_deactivate(s, OPT_FILM_TYPE, &dummy);
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3216,16 +3225,20 @@ static void handle_source( Epson_Scanner * s, SANE_Int optindex,
|
||||||
s->hw->y_range = &s->hw->adf_y_range;
|
s->hw->y_range = &s->hw->adf_y_range;
|
||||||
s->hw->use_extension = SANE_TRUE;
|
s->hw->use_extension = SANE_TRUE;
|
||||||
/* disable film type option */
|
/* disable film type option */
|
||||||
s->opt[ OPT_FILM_TYPE].cap &= ~SANE_CAP_INACTIVE;
|
sane_deactivate(s, OPT_FILM_TYPE, &dummy);
|
||||||
s->val[ OPT_FOCUS].w = 0;
|
s->val[ OPT_FOCUS].w = 0;
|
||||||
} else if( ! strcmp( TPU_STR, value) ) {
|
} else if( ! strcmp( TPU_STR, value) ) {
|
||||||
s->hw->x_range = &s->hw->tpu_x_range;
|
s->hw->x_range = &s->hw->tpu_x_range;
|
||||||
s->hw->y_range = &s->hw->tpu_y_range;
|
s->hw->y_range = &s->hw->tpu_y_range;
|
||||||
s->hw->use_extension = SANE_TRUE;
|
s->hw->use_extension = SANE_TRUE;
|
||||||
/* enable film type option if the scanner supports it */
|
/* enable film type option only if the scanner supports it */
|
||||||
if (s->hw->cmd->set_film_type != 0)
|
if (s->hw->cmd->set_film_type != 0)
|
||||||
{
|
{
|
||||||
s->opt[ OPT_FILM_TYPE].cap |= SANE_CAP_INACTIVE;
|
sane_activate(s, OPT_FILM_TYPE, &dummy);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sane_deactivate(s, OPT_FILM_TYPE, &dummy);
|
||||||
}
|
}
|
||||||
/* enable focus position if the scanner supports it */
|
/* enable focus position if the scanner supports it */
|
||||||
if (s->hw->cmd->set_focus_position != 0)
|
if (s->hw->cmd->set_focus_position != 0)
|
||||||
|
@ -3238,7 +3251,7 @@ static void handle_source( Epson_Scanner * s, SANE_Int optindex,
|
||||||
s->hw->y_range = &s->hw->fbf_y_range;
|
s->hw->y_range = &s->hw->fbf_y_range;
|
||||||
s->hw->use_extension = SANE_FALSE;
|
s->hw->use_extension = SANE_FALSE;
|
||||||
/* disable film type option */
|
/* disable film type option */
|
||||||
s->opt[ OPT_FILM_TYPE].cap &= ~SANE_CAP_INACTIVE;
|
sane_deactivate(s, OPT_FILM_TYPE, &dummy);
|
||||||
s->val[ OPT_FOCUS].w = 0;
|
s->val[ OPT_FOCUS].w = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3262,8 +3275,6 @@ static void handle_source( Epson_Scanner * s, SANE_Int optindex,
|
||||||
if( s->val[ OPT_BR_Y].w > s->hw->y_range->max || force_max)
|
if( s->val[ OPT_BR_Y].w > s->hw->y_range->max || force_max)
|
||||||
s->val[ OPT_BR_Y].w = s->hw->y_range->max;
|
s->val[ OPT_BR_Y].w = s->hw->y_range->max;
|
||||||
|
|
||||||
sane_optstate( s->hw->TPU && s->hw->use_extension,
|
|
||||||
s, OPT_FILM_TYPE, &dummy );
|
|
||||||
sane_optstate( s->hw->ADF && s->hw->use_extension,
|
sane_optstate( s->hw->ADF && s->hw->use_extension,
|
||||||
s, OPT_AUTO_EJECT, &dummy );
|
s, OPT_AUTO_EJECT, &dummy );
|
||||||
sane_optstate( s->hw->ADF && s->hw->use_extension,
|
sane_optstate( s->hw->ADF && s->hw->use_extension,
|
||||||
|
@ -3869,11 +3880,8 @@ SANE_Status sane_start ( SANE_Handle handle)
|
||||||
s->invert_image = SANE_FALSE; /* default to not inverting the image */
|
s->invert_image = SANE_FALSE; /* default to not inverting the image */
|
||||||
|
|
||||||
if( SANE_OPTION_IS_ACTIVE( s->opt[ OPT_FILM_TYPE].cap) ) {
|
if( SANE_OPTION_IS_ACTIVE( s->opt[ OPT_FILM_TYPE].cap) ) {
|
||||||
|
|
||||||
s->invert_image = (s->val[ OPT_FILM_TYPE].w == FILM_TYPE_NEGATIVE);
|
s->invert_image = (s->val[ OPT_FILM_TYPE].w == FILM_TYPE_NEGATIVE);
|
||||||
|
|
||||||
status = set_film_type( s, film_params[ s->val[ OPT_FILM_TYPE].w]);
|
status = set_film_type( s, film_params[ s->val[ OPT_FILM_TYPE].w]);
|
||||||
|
|
||||||
if( SANE_STATUS_GOOD != status) {
|
if( SANE_STATUS_GOOD != status) {
|
||||||
DBG( 1, "sane_start: set_film_type failed: %s\n", sane_strstatus( status));
|
DBG( 1, "sane_start: set_film_type failed: %s\n", sane_strstatus( status));
|
||||||
return status;
|
return status;
|
||||||
|
|
Ładowanie…
Reference in New Issue