kopia lustrzana https://gitlab.com/sane-project/backends
align gl124 code on latest gl847 improvements
- slow back home - feeding - unintialized dev->skipmerge-requests/1/head
rodzic
3d9b16327c
commit
c87bfdc0be
|
@ -58,7 +58,7 @@
|
||||||
* SANE backend for Genesys Logic GL646/GL841/GL842/GL843/GL847/GL124 based scanners
|
* SANE backend for Genesys Logic GL646/GL841/GL842/GL843/GL847/GL124 based scanners
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define BUILD 81
|
#define BUILD 82
|
||||||
#define BACKEND_NAME genesys
|
#define BACKEND_NAME genesys
|
||||||
|
|
||||||
#include "genesys.h"
|
#include "genesys.h"
|
||||||
|
@ -5222,7 +5222,8 @@ Problems with the first approach:
|
||||||
|
|
||||||
/* end scan if all needed data have been read */
|
/* end scan if all needed data have been read */
|
||||||
/* TODO extend this to other ASICs */
|
/* 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->total_bytes_read >= dev->total_bytes_to_read))
|
||||||
{
|
{
|
||||||
dev->model->cmd_set->end_scan (dev, dev->reg, SANE_TRUE);
|
dev->model->cmd_set->end_scan (dev, dev->reg, SANE_TRUE);
|
||||||
|
|
|
@ -1054,6 +1054,8 @@ gl124_init_motor_regs_scan (Genesys_Device * dev,
|
||||||
feedl<<=scan_step_type;
|
feedl<<=scan_step_type;
|
||||||
|
|
||||||
dist = scan_steps;
|
dist = scan_steps;
|
||||||
|
if (flags & MOTOR_FLAG_FEED)
|
||||||
|
dist *=2;
|
||||||
if (use_fast_fed)
|
if (use_fast_fed)
|
||||||
{
|
{
|
||||||
dist += fast_steps*2;
|
dist += fast_steps*2;
|
||||||
|
@ -1064,7 +1066,7 @@ gl124_init_motor_regs_scan (Genesys_Device * dev,
|
||||||
if(dist<feedl)
|
if(dist<feedl)
|
||||||
feedl -= dist;
|
feedl -= dist;
|
||||||
else
|
else
|
||||||
feedl = 1;
|
feedl = 0;
|
||||||
|
|
||||||
sanei_genesys_set_triple(reg,REG_FEEDL,feedl);
|
sanei_genesys_set_triple(reg,REG_FEEDL,feedl);
|
||||||
DBG (DBG_io, "%s: feedl=%d\n", __FUNCTION__, 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);
|
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_CK1MAP,sensor->ck1map);
|
||||||
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor->ck3map);
|
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor->ck3map);
|
||||||
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor->ck4map);
|
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor->ck4map);
|
||||||
|
|
||||||
|
/* order of the sub-segments */
|
||||||
|
dev->order=sensor->order;
|
||||||
|
|
||||||
DBGCOMPLETED;
|
DBGCOMPLETED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1378,6 +1380,7 @@ gl124_init_optical_regs_scan (Genesys_Device * dev,
|
||||||
|
|
||||||
dev->bpl = words_per_line;
|
dev->bpl = words_per_line;
|
||||||
dev->cur = 0;
|
dev->cur = 0;
|
||||||
|
dev->skip = 0;
|
||||||
dev->len = dev->bpl/segnb;
|
dev->len = dev->bpl/segnb;
|
||||||
dev->dist = dev->bpl/segnb;
|
dev->dist = dev->bpl/segnb;
|
||||||
dev->segnb = 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 */
|
/* set up for reverse and no scan */
|
||||||
r = sanei_genesys_get_address (local_reg, REG02);
|
r = sanei_genesys_get_address (local_reg, REG02);
|
||||||
r->value |= REG02_MTRREV;
|
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));
|
RIE (gl124_bulk_write_register (dev, local_reg, GENESYS_GL124_MAX_REGS));
|
||||||
|
|
||||||
|
@ -2331,6 +2332,9 @@ gl124_feed (Genesys_Device * dev, unsigned int steps)
|
||||||
}
|
}
|
||||||
while (status == SANE_STATUS_GOOD && !(val & FEEDFSH));
|
while (status == SANE_STATUS_GOOD && !(val & FEEDFSH));
|
||||||
|
|
||||||
|
/* then stop scanning */
|
||||||
|
RIE(gl124_stop_action (dev));
|
||||||
|
|
||||||
DBGCOMPLETED;
|
DBGCOMPLETED;
|
||||||
return SANE_STATUS_GOOD;
|
return SANE_STATUS_GOOD;
|
||||||
}
|
}
|
||||||
|
@ -2662,16 +2666,15 @@ gl124_init_regs_for_scan (Genesys_Device * dev)
|
||||||
move = (move * move_dpi) / MM_PER_INCH;
|
move = (move * move_dpi) / MM_PER_INCH;
|
||||||
DBG (DBG_info, "%s: move=%f steps\n", __FUNCTION__, move);
|
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-500);
|
||||||
status = gl124_feed (dev, move);
|
|
||||||
if (status != SANE_STATUS_GOOD)
|
if (status != SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
DBG (DBG_error, "%s: failed to move to scan area\n",__FUNCTION__);
|
DBG (DBG_error, "%s: failed to move to scan area\n",__FUNCTION__);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
move=0;
|
move=500;
|
||||||
}
|
}
|
||||||
DBG (DBG_info, "gl124_init_regs_for_scan: move=%f steps\n", move);
|
DBG (DBG_info, "gl124_init_regs_for_scan: move=%f steps\n", move);
|
||||||
|
|
||||||
|
|
|
@ -581,7 +581,6 @@ typedef struct {
|
||||||
|
|
||||||
static size_t order_01[]={0,1};
|
static size_t order_01[]={0,1};
|
||||||
static size_t order_0213[]={0,2,1,3};
|
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
|
* database of sensor profiles
|
||||||
|
|
Ładowanie…
Reference in New Issue