- sane_start change to allow batch scanning. Previous code would

immediatly return if head was parking, now we wait for parking
	  completion
merge-requests/1/head
Stéphane Voltz 2005-10-11 05:28:18 +00:00
rodzic 689749d26f
commit 9c28fc433c
2 zmienionych plików z 67 dodań i 47 usunięć

Wyświetl plik

@ -1,3 +1,8 @@
2005-10-11 Stephane Voltz <stefdev@modulonet.fr>
* backend/umax_pp.c: change sane_start semantic to allow for batch
scanning
2005-10-08 Henning Meier-Geinitz <henning@meier-geinitz.de>
* doc/descriptions-external/mustek_a3p1.desc: Downgraded status to

Wyświetl plik

@ -172,7 +172,8 @@ static const SANE_Range u8_range = {
#define UMAX_PP_RESERVE 259200
static int
parse_int_option (const char *string, char *name, long int *value, long int fallback);
parse_int_option (const char *string, char *name, long int *value,
long int fallback);
/*
* devname may be either an hardware address for direct I/O (0x378 for instance)
@ -747,7 +748,8 @@ init_options (Umax_PP_Device * dev)
}
static int
parse_int_option (const char *string, char *name, long int *value, long int fallback)
parse_int_option (const char *string, char *name, long int *value,
long int fallback)
{
int len;
char *end;
@ -763,7 +765,8 @@ parse_int_option (const char *string, char *name, long int *value, long int fall
if (end == string || errno)
{
DBG (2, "init: invalid value `%s`, using fallback '%ld'\n", string,fallback);
DBG (2, "init: invalid value `%s`, using fallback '%ld'\n", string,
fallback);
*value = fallback;
}
DBG (3, "init: option %s %ld\n", name, *value);
@ -851,7 +854,8 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
}
else if (parse_int_option (cp, "astra", &val, 0))
{
if((val!=610)&&(val!=1200)&&(val!=1600)&&(val!=2000))
if ((val != 610) && (val != 1200) && (val != 1600)
&& (val != 2000))
{
val = 0;
DBG (2, "init: invalid value `%s`, falling back to %ld\n",
@ -912,7 +916,8 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
DBG (2, "init: invalid value `%s`, falling back to %ld\n",
cp, val);
}
DBG (3, "init: setting global option green-offset to %ld\n", val);
DBG (3, "init: setting global option green-offset to %ld\n",
val);
green_offset = val;
}
else if (parse_int_option (cp, "blue-offset", &val, 10))
@ -2077,11 +2082,21 @@ sane_start (SANE_Handle handle)
DBG (2, "sane_start: checking if scanner is parking head .... \n");
rc = sanei_umax_pp_status ();
points = 0;
/* check if scanner busy parking */
/* if so, wait parking completion */
DBG (2, "sane_start: scanner busy\n");
while ((rc == UMAX1220P_BUSY) && (points < 30))
{
sleep (1);
rc = sanei_umax_pp_status ();
points++;
}
/* timeout waiting for scanner */
if (rc == UMAX1220P_BUSY)
{
DBG (2, "sane_start: scanner busy\n");
DBG (2, "sane_start: scanner still busy\n");
return SANE_STATUS_DEVICE_BUSY;
}
dev->state = UMAX_PP_STATE_IDLE;