kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Return errors as exceptions from *read_scancnt()
rodzic
5c0a382bc9
commit
478ddd5d01
|
@ -3020,20 +3020,13 @@ gl841_detect_document_end (Genesys_Device * dev)
|
||||||
* amount of data to scan form the hardware settings
|
* amount of data to scan form the hardware settings
|
||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
status = sanei_genesys_read_scancnt(dev, &scancnt);
|
sanei_genesys_read_scancnt(dev, &scancnt);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
dev->total_bytes_to_read = dev->total_bytes_read;
|
dev->total_bytes_to_read = dev->total_bytes_read;
|
||||||
dev->read_bytes_left = 0;
|
dev->read_bytes_left = 0;
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status!=SANE_STATUS_GOOD)
|
|
||||||
{
|
|
||||||
dev->total_bytes_to_read = dev->total_bytes_read;
|
|
||||||
dev->read_bytes_left = 0;
|
|
||||||
DBG(DBG_proc, "%s: finished\n", __func__);
|
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
|
||||||
if (dev->settings.scan_mode == ScanColorMode::COLOR_SINGLE_PASS && dev->model->is_cis)
|
if (dev->settings.scan_mode == ScanColorMode::COLOR_SINGLE_PASS && dev->model->is_cis)
|
||||||
{
|
{
|
||||||
scancnt/=3;
|
scancnt/=3;
|
||||||
|
|
|
@ -1947,18 +1947,13 @@ gl843_detect_document_end (Genesys_Device * dev)
|
||||||
read_bytes_left = (int) dev->read_bytes_left;
|
read_bytes_left = (int) dev->read_bytes_left;
|
||||||
DBG(DBG_io, "%s: read_bytes_left=%d\n", __func__, read_bytes_left);
|
DBG(DBG_io, "%s: read_bytes_left=%d\n", __func__, read_bytes_left);
|
||||||
|
|
||||||
/* get lines read */
|
// get lines read
|
||||||
try {
|
try {
|
||||||
status = sanei_genesys_read_scancnt(dev, &scancnt);
|
sanei_genesys_read_scancnt(dev, &scancnt);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
flines = 0;
|
flines = 0;
|
||||||
}
|
}
|
||||||
if (status != SANE_STATUS_GOOD)
|
|
||||||
{
|
|
||||||
flines = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* compute number of line read */
|
/* compute number of line read */
|
||||||
tmp = (int) dev->total_bytes_read;
|
tmp = (int) dev->total_bytes_read;
|
||||||
if (depth == 1 || dev->settings.scan_mode == ScanColorMode::LINEART)
|
if (depth == 1 || dev->settings.scan_mode == ScanColorMode::LINEART)
|
||||||
|
@ -1970,7 +1965,6 @@ gl843_detect_document_end (Genesys_Device * dev)
|
||||||
flines = scancnt - flines;
|
flines = scancnt - flines;
|
||||||
|
|
||||||
DBG(DBG_io, "%s: %d scanned but not read lines\n", __func__, flines);
|
DBG(DBG_io, "%s: %d scanned but not read lines\n", __func__, flines);
|
||||||
}
|
|
||||||
|
|
||||||
/* adjust number of bytes to read
|
/* adjust number of bytes to read
|
||||||
* we need to read the final bytes which are word per line * number of last lines
|
* we need to read the final bytes which are word per line * number of last lines
|
||||||
|
|
|
@ -770,8 +770,7 @@ sanei_genesys_read_valid_words (Genesys_Device * dev, unsigned int *words)
|
||||||
/** read the number of lines scanned
|
/** read the number of lines scanned
|
||||||
* ie registers 4b-4c-4d
|
* ie registers 4b-4c-4d
|
||||||
*/
|
*/
|
||||||
SANE_Status
|
void sanei_genesys_read_scancnt(Genesys_Device* dev, unsigned int* words)
|
||||||
sanei_genesys_read_scancnt (Genesys_Device * dev, unsigned int *words)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
uint8_t value;
|
uint8_t value;
|
||||||
|
@ -799,7 +798,6 @@ sanei_genesys_read_scancnt (Genesys_Device * dev, unsigned int *words)
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG(DBG_proc, "%s: %d lines\n", __func__, *words);
|
DBG(DBG_proc, "%s: %d lines\n", __func__, *words);
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @brief Check if the scanner's internal data buffer is empty
|
/** @brief Check if the scanner's internal data buffer is empty
|
||||||
|
|
|
@ -1756,8 +1756,7 @@ sanei_genesys_init_shading_data (Genesys_Device * dev, const Genesys_Sensor& sen
|
||||||
extern SANE_Status sanei_genesys_read_valid_words (Genesys_Device * dev,
|
extern SANE_Status sanei_genesys_read_valid_words (Genesys_Device * dev,
|
||||||
unsigned int *steps);
|
unsigned int *steps);
|
||||||
|
|
||||||
extern SANE_Status sanei_genesys_read_scancnt (Genesys_Device * dev,
|
extern void sanei_genesys_read_scancnt(Genesys_Device* dev, unsigned int* steps);
|
||||||
unsigned int *steps);
|
|
||||||
|
|
||||||
extern SANE_Status sanei_genesys_read_feed_steps (Genesys_Device * dev,
|
extern SANE_Status sanei_genesys_read_feed_steps (Genesys_Device * dev,
|
||||||
unsigned int *steps);
|
unsigned int *steps);
|
||||||
|
|
Ładowanie…
Reference in New Issue