Remove USB 2.0 mode, as it causes horrible backtracking for resolutions > 300 dpi.

merge-requests/1/head
Jan Hauffa 2012-07-14 16:44:28 +02:00 zatwierdzone przez m. allan noah
rodzic 98248f6088
commit a64477bf1a
2 zmienionych plików z 35 dodań i 61 usunięć

Wyświetl plik

@ -2010,7 +2010,6 @@ SANE_Status
Asic_Open (ASIC * chip) Asic_Open (ASIC * chip)
{ {
SANE_Status status; SANE_Status status;
struct sanei_usb_dev_descriptor desc;
DBG_ASIC_ENTER (); DBG_ASIC_ENTER ();
if (chip->firmwarestate > FS_OPENED) if (chip->firmwarestate > FS_OPENED)
@ -2029,15 +2028,6 @@ Asic_Open (ASIC * chip)
return status; return status;
} }
status = sanei_usb_get_descriptor (chip->fd, &desc);
if (status != SANE_STATUS_GOOD)
{
DBG (DBG_ERR, "sanei_usb_get_descriptor failed: %s\n",
sane_strstatus (status));
return status;
}
chip->isUsb20 = (desc.bcd_usb >= 0x0200) ? SANE_TRUE : SANE_FALSE;
status = OpenScanChip (chip); status = OpenScanChip (chip);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -2189,57 +2179,42 @@ GetDummyCycleNumber (ASIC * chip, unsigned short wYResolution,
SANE_Byte bDummyCycleNum = 0; SANE_Byte bDummyCycleNum = 0;
if (lsLightSource == SS_REFLECTIVE) if (lsLightSource == SS_REFLECTIVE)
{ {
if (!chip->isUsb20) switch (wYResolution)
{ {
switch (wYResolution) case 2400:
{ case 1200:
case 2400: if (chip->dwBytesCountPerRow > 22000)
case 1200: bDummyCycleNum = 4;
if (chip->dwBytesCountPerRow > 22000) else if (chip->dwBytesCountPerRow > 15000)
bDummyCycleNum = 4; bDummyCycleNum = 3;
else if (chip->dwBytesCountPerRow > 15000) else if (chip->dwBytesCountPerRow > 10000)
bDummyCycleNum = 3; bDummyCycleNum = 2;
else if (chip->dwBytesCountPerRow > 10000) else if (chip->dwBytesCountPerRow > 5000)
bDummyCycleNum = 2; bDummyCycleNum = 1;
else if (chip->dwBytesCountPerRow > 5000) break;
bDummyCycleNum = 1; case 600:
break; case 300:
case 600: case 150:
case 300: case 100:
case 150: if (chip->dwBytesCountPerRow > 21000)
case 100: bDummyCycleNum = 7;
if (chip->dwBytesCountPerRow > 21000) else if (chip->dwBytesCountPerRow > 18000)
bDummyCycleNum = 7; bDummyCycleNum = 6;
else if (chip->dwBytesCountPerRow > 18000) else if (chip->dwBytesCountPerRow > 15000)
bDummyCycleNum = 6; bDummyCycleNum = 5;
else if (chip->dwBytesCountPerRow > 15000) else if (chip->dwBytesCountPerRow > 12000)
bDummyCycleNum = 5; bDummyCycleNum = 4;
else if (chip->dwBytesCountPerRow > 12000) else if (chip->dwBytesCountPerRow > 9000)
bDummyCycleNum = 4; bDummyCycleNum = 3;
else if (chip->dwBytesCountPerRow > 9000) else if (chip->dwBytesCountPerRow > 6000)
bDummyCycleNum = 3; bDummyCycleNum = 2;
else if (chip->dwBytesCountPerRow > 6000) else if (chip->dwBytesCountPerRow > 3000)
bDummyCycleNum = 2; bDummyCycleNum = 1;
else if (chip->dwBytesCountPerRow > 3000) break;
bDummyCycleNum = 1; case 75:
break; case 50:
case 75: bDummyCycleNum = 1;
case 50: break;
bDummyCycleNum = 1;
break;
}
}
else
{
switch (wYResolution)
{
case 2400:
case 1200:
case 75:
case 50:
bDummyCycleNum = 1;
break;
}
} }
} }
return bDummyCycleNum; return bDummyCycleNum;

Wyświetl plik

@ -230,7 +230,6 @@ typedef struct ASIC
FIRMWARESTATE firmwarestate; FIRMWARESTATE firmwarestate;
SANE_Bool isFirstOpenChip; /* == SANE_FALSE after first Asic_Open */ SANE_Bool isFirstOpenChip; /* == SANE_FALSE after first Asic_Open */
SANE_Bool isUsb20;
unsigned int dwBytesCountPerRow; unsigned int dwBytesCountPerRow;