correcting vertical scanning start point

merge-requests/1/head
Ullrich Sigwanz 2004-10-18 19:02:58 +00:00
rodzic 1414cd8f44
commit 1c1479d919
3 zmienionych plików z 25 dodań i 1 usunięć

Wyświetl plik

@ -1,3 +1,9 @@
2004-10-18 Ullrich Sigwanz <usigwanz@freesurf.ch>
* backend/niash_core.c:
* backend/niash.c: correcting vertical scanning start
point for changed max. page height
2004-10-17 Ullrich Sigwanz <usigwanz@freesurf.ch>
* backend/niash_core.c: using exact number of lines

Wyświetl plik

@ -1290,7 +1290,7 @@ sane_start (SANE_Handle h)
s->ScanParams.iWidth = par.pixels_per_line * iScaleDown;
s->ScanParams.iHeight = par.lines * iScaleDown;
s->ScanParams.iBottom = 14200UL;
s->ScanParams.iBottom = HP3300C_BOTTOM;
s->ScanParams.fCalib = SANE_FALSE;
/* perform a simple calibration just before scanning */

Wyświetl plik

@ -977,6 +977,20 @@ CircBufferGetLine (int iHandle, TDataPipe * p, unsigned char *pabLine,
}
/* try to keep the number of transfers the same, but make them all
as good as possible the same size to avoid cranking in critical
situations
*/
static int
_OptimizeXferSize (int iLines, int iLinesPerXfer)
{
int iXfers;
iXfers = (iLines + iLinesPerXfer - 1) / iLinesPerXfer;
while (--iLinesPerXfer > 0
&& (iLines + iLinesPerXfer - 1) / iLinesPerXfer == iXfers);
return iLinesPerXfer + 1;
}
STATIC void
CircBufferInit (int iHandle, TDataPipe * p,
int iWidth, int iHeight,
@ -1052,6 +1066,10 @@ CircBufferInit (int iHandle, TDataPipe * p,
{
p->iLinesPerXferBuf = MAX_LINES_PER_XFERBUF;
}
/* final optimization to keep critical scans smooth */
p->iLinesPerXferBuf =
_OptimizeXferSize (p->iLinesLeft, p->iLinesPerXferBuf);
DBG (DBG_MSG, "_iXFerSize = %d for %d transfer(s)\n",
(int) p->iLinesPerXferBuf * p->iBytesPerLine,
(p->iLinesLeft + p->iLinesPerXferBuf - 1) / p->iLinesPerXferBuf);