align gl124 code on latest gl847 improvements

- slow back home
- feeding
- unintialized dev->skip
merge-requests/1/head
Stphane Voltz 2012-05-30 06:39:35 +02:00
rodzic 3d9b16327c
commit c87bfdc0be
3 zmienionych plików z 16 dodań i 13 usunięć

Wyświetl plik

@ -58,7 +58,7 @@
* SANE backend for Genesys Logic GL646/GL841/GL842/GL843/GL847/GL124 based scanners
*/
#define BUILD 81
#define BUILD 82
#define BACKEND_NAME genesys
#include "genesys.h"
@ -5222,7 +5222,8 @@ Problems with the first approach:
/* end scan if all needed data have been read */
/* TODO extend this to other ASICs */
if((dev->model->asic_type == GENESYS_GL847)
if(((dev->model->asic_type == GENESYS_GL847)
||(dev->model->asic_type == GENESYS_GL124))
&&(dev->total_bytes_read >= dev->total_bytes_to_read))
{
dev->model->cmd_set->end_scan (dev, dev->reg, SANE_TRUE);

Wyświetl plik

@ -1054,6 +1054,8 @@ gl124_init_motor_regs_scan (Genesys_Device * dev,
feedl<<=scan_step_type;
dist = scan_steps;
if (flags & MOTOR_FLAG_FEED)
dist *=2;
if (use_fast_fed)
{
dist += fast_steps*2;
@ -1064,7 +1066,7 @@ gl124_init_motor_regs_scan (Genesys_Device * dev,
if(dist<feedl)
feedl -= dist;
else
feedl = 1;
feedl = 0;
sanei_genesys_set_triple(reg,REG_FEEDL,feedl);
DBG (DBG_io, "%s: feedl=%d\n", __FUNCTION__, feedl);
@ -1183,13 +1185,13 @@ gl124_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi)
}
sanei_genesys_set_triple(regs,REG_EXPB,exp);
/* order of the sub-segments */
dev->order=sensor->order;
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor->ck1map);
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor->ck3map);
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor->ck4map);
/* order of the sub-segments */
dev->order=sensor->order;
DBGCOMPLETED;
}
@ -1378,6 +1380,7 @@ gl124_init_optical_regs_scan (Genesys_Device * dev,
dev->bpl = words_per_line;
dev->cur = 0;
dev->skip = 0;
dev->len = dev->bpl/segnb;
dev->dist = dev->bpl/segnb;
dev->segnb = segnb;
@ -2201,8 +2204,6 @@ gl124_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
/* set up for reverse and no scan */
r = sanei_genesys_get_address (local_reg, REG02);
r->value |= REG02_MTRREV;
r = sanei_genesys_get_address (local_reg, REG01);
r->value &= ~REG01_SCAN;
RIE (gl124_bulk_write_register (dev, local_reg, GENESYS_GL124_MAX_REGS));
@ -2330,6 +2331,9 @@ gl124_feed (Genesys_Device * dev, unsigned int steps)
status = sanei_genesys_get_status (dev, &val);
}
while (status == SANE_STATUS_GOOD && !(val & FEEDFSH));
/* then stop scanning */
RIE(gl124_stop_action (dev));
DBGCOMPLETED;
return SANE_STATUS_GOOD;
@ -2662,16 +2666,15 @@ gl124_init_regs_for_scan (Genesys_Device * dev)
move = (move * move_dpi) / MM_PER_INCH;
DBG (DBG_info, "%s: move=%f steps\n", __FUNCTION__, move);
if(channels*dev->settings.yres>=1200 && move>1000)
if(channels*dev->settings.yres>=600 && move>700)
{
move -= 180;
status = gl124_feed (dev, move);
status = gl124_feed (dev, move-500);
if (status != SANE_STATUS_GOOD)
{
DBG (DBG_error, "%s: failed to move to scan area\n",__FUNCTION__);
return status;
}
move=0;
move=500;
}
DBG (DBG_info, "gl124_init_regs_for_scan: move=%f steps\n", move);

Wyświetl plik

@ -581,7 +581,6 @@ typedef struct {
static size_t order_01[]={0,1};
static size_t order_0213[]={0,2,1,3};
static size_t order_0246[]={0,2,4,6,1,3,5,7};
/**
* database of sensor profiles