kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Only ever name Genesys_Sensor as "sensor" to reduce confusion
rodzic
7738412517
commit
43c86ecd81
|
@ -674,10 +674,8 @@ gl124_set_fe (Genesys_Device * dev, uint8_t set)
|
|||
*/
|
||||
static int gl124_compute_exposure(Genesys_Device *dev, int xres, int half_ccd)
|
||||
{
|
||||
Sensor_Profile *sensor;
|
||||
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, xres, half_ccd);
|
||||
return sensor->exposure;
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, xres, half_ccd);
|
||||
return sensor_profile->exposure;
|
||||
}
|
||||
|
||||
|
||||
|
@ -895,7 +893,6 @@ gl124_init_motor_regs_scan (Genesys_Device * dev,
|
|||
static void
|
||||
gl124_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi, int half_ccd)
|
||||
{
|
||||
Sensor_Profile *sensor;
|
||||
int dpihw;
|
||||
uint32_t exp;
|
||||
|
||||
|
@ -914,52 +911,52 @@ gl124_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi,
|
|||
|
||||
/* set EXPDUMMY and CKxMAP */
|
||||
dpihw=sanei_genesys_compute_dpihw(dev,dpi);
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw, half_ccd);
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, dpihw, half_ccd);
|
||||
|
||||
regs->set8(0x18, sensor->reg18);
|
||||
regs->set8(0x20, sensor->reg20);
|
||||
regs->set8(0x61, sensor->reg61);
|
||||
regs->set8(0x98, sensor->reg98);
|
||||
if (sensor->reg16 != 0) {
|
||||
regs->set8(0x16, sensor->reg16);
|
||||
regs->set8(0x18, sensor_profile->reg18);
|
||||
regs->set8(0x20, sensor_profile->reg20);
|
||||
regs->set8(0x61, sensor_profile->reg61);
|
||||
regs->set8(0x98, sensor_profile->reg98);
|
||||
if (sensor_profile->reg16 != 0) {
|
||||
regs->set8(0x16, sensor_profile->reg16);
|
||||
}
|
||||
if (sensor->reg70 != 0) {
|
||||
regs->set8(0x70, sensor->reg70);
|
||||
if (sensor_profile->reg70 != 0) {
|
||||
regs->set8(0x70, sensor_profile->reg70);
|
||||
}
|
||||
|
||||
|
||||
sanei_genesys_set_triple(regs,REG_SEGCNT,sensor->segcnt);
|
||||
sanei_genesys_set_double(regs,REG_TG0CNT,sensor->tg0cnt);
|
||||
sanei_genesys_set_double(regs,REG_EXPDMY,sensor->expdummy);
|
||||
sanei_genesys_set_triple(regs,REG_SEGCNT,sensor_profile->segcnt);
|
||||
sanei_genesys_set_double(regs,REG_TG0CNT,sensor_profile->tg0cnt);
|
||||
sanei_genesys_set_double(regs,REG_EXPDMY,sensor_profile->expdummy);
|
||||
|
||||
/* if no calibration has been done, set default values for exposures */
|
||||
exp = dev->sensor.exposure.red;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expr;
|
||||
exp=sensor_profile->expr;
|
||||
}
|
||||
sanei_genesys_set_triple(regs,REG_EXPR,exp);
|
||||
|
||||
exp =dev->sensor.exposure.green;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expg;
|
||||
exp=sensor_profile->expg;
|
||||
}
|
||||
sanei_genesys_set_triple(regs,REG_EXPG,exp);
|
||||
|
||||
exp = dev->sensor.exposure.blue;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expb;
|
||||
exp=sensor_profile->expb;
|
||||
}
|
||||
sanei_genesys_set_triple(regs,REG_EXPB,exp);
|
||||
|
||||
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);
|
||||
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor_profile->ck1map);
|
||||
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor_profile->ck3map);
|
||||
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor_profile->ck4map);
|
||||
|
||||
/* order of the sub-segments */
|
||||
dev->order=sensor->order;
|
||||
dev->order=sensor_profile->order;
|
||||
|
||||
DBGCOMPLETED;
|
||||
}
|
||||
|
@ -1528,7 +1525,6 @@ gl124_calculate_current_setup (Genesys_Device * dev)
|
|||
SANE_Bool half_ccd;
|
||||
|
||||
int max_shift, dpihw;
|
||||
Sensor_Profile *sensor;
|
||||
|
||||
int optical_res;
|
||||
|
||||
|
@ -1605,8 +1601,8 @@ gl124_calculate_current_setup (Genesys_Device * dev)
|
|||
/* compute hw dpi for sensor */
|
||||
dpihw=sanei_genesys_compute_dpihw(dev,used_res);
|
||||
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw, half_ccd);
|
||||
dev->segnb=sensor->reg98 & 0x0f;
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, dpihw, half_ccd);
|
||||
dev->segnb=sensor_profile->reg98 & 0x0f;
|
||||
|
||||
/* stagger */
|
||||
if ((!half_ccd) && (dev->model->flags & GENESYS_FLAG_STAGGERED_LINE))
|
||||
|
@ -2807,7 +2803,6 @@ gl124_led_calibration (Genesys_Device * dev)
|
|||
int avg[3];
|
||||
int turn;
|
||||
uint16_t exp[3],target;
|
||||
Sensor_Profile *sensor;
|
||||
SANE_Bool acceptable;
|
||||
SANE_Bool half_ccd;
|
||||
|
||||
|
@ -2829,7 +2824,7 @@ gl124_led_calibration (Genesys_Device * dev)
|
|||
{
|
||||
resolution = dpihw;
|
||||
}
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw, half_ccd);
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, dpihw, half_ccd);
|
||||
num_pixels = (dev->sensor.sensor_pixels*resolution)/dev->sensor.optical_res;
|
||||
|
||||
/* initial calibration reg values */
|
||||
|
@ -2863,9 +2858,9 @@ gl124_led_calibration (Genesys_Device * dev)
|
|||
std::vector<uint8_t> line(total_size);
|
||||
|
||||
/* initial loop values and boundaries */
|
||||
exp[0]=sensor->expr;
|
||||
exp[1]=sensor->expg;
|
||||
exp[2]=sensor->expb;
|
||||
exp[0]=sensor_profile->expr;
|
||||
exp[1]=sensor_profile->expg;
|
||||
exp[2]=sensor_profile->expb;
|
||||
target=dev->sensor.gain_white_ref*256;
|
||||
|
||||
turn = 0;
|
||||
|
|
|
@ -222,7 +222,7 @@ gl646_stop_motor (Genesys_Device * dev)
|
|||
* @return the closest resolution for the sensor and mode
|
||||
*/
|
||||
static int
|
||||
get_lowest_resolution (int sensor, SANE_Bool color)
|
||||
get_lowest_resolution(int sensor_id, SANE_Bool color)
|
||||
{
|
||||
int i, nb;
|
||||
int dpi;
|
||||
|
@ -233,7 +233,7 @@ get_lowest_resolution (int sensor, SANE_Bool color)
|
|||
while (i < nb)
|
||||
{
|
||||
/* computes distance and keep mode if it is closer than previous */
|
||||
if (sensor == sensor_master[i].sensor
|
||||
if (sensor_id == sensor_master[i].sensor
|
||||
&& sensor_master[i].color == color)
|
||||
{
|
||||
if (sensor_master[i].dpi < dpi)
|
||||
|
@ -255,7 +255,7 @@ get_lowest_resolution (int sensor, SANE_Bool color)
|
|||
* @return the closest resolution for the sensor and mode
|
||||
*/
|
||||
static int
|
||||
get_closest_resolution (int sensor, int required, SANE_Bool color)
|
||||
get_closest_resolution (int sensor_id, int required, SANE_Bool color)
|
||||
{
|
||||
int i, nb;
|
||||
int dist, dpi;
|
||||
|
@ -267,7 +267,7 @@ get_closest_resolution (int sensor, int required, SANE_Bool color)
|
|||
while (i < nb)
|
||||
{
|
||||
/* exit on perfect match */
|
||||
if (sensor == sensor_master[i].sensor
|
||||
if (sensor_id == sensor_master[i].sensor
|
||||
&& sensor_master[i].dpi == required
|
||||
&& sensor_master[i].color == color)
|
||||
{
|
||||
|
@ -275,7 +275,7 @@ get_closest_resolution (int sensor, int required, SANE_Bool color)
|
|||
return required;
|
||||
}
|
||||
/* computes distance and keep mode if it is closer than previous */
|
||||
if (sensor == sensor_master[i].sensor
|
||||
if (sensor_id == sensor_master[i].sensor
|
||||
&& sensor_master[i].color == color)
|
||||
{
|
||||
if (abs (sensor_master[i].dpi - required) < dist)
|
||||
|
@ -299,7 +299,7 @@ get_closest_resolution (int sensor, int required, SANE_Bool color)
|
|||
* @return SANE_TRUE if half ccd is used
|
||||
*/
|
||||
static SANE_Bool
|
||||
is_half_ccd (int sensor, int required, SANE_Bool color)
|
||||
is_half_ccd (int sensor_id, int required, SANE_Bool color)
|
||||
{
|
||||
int i, nb;
|
||||
|
||||
|
@ -308,7 +308,7 @@ is_half_ccd (int sensor, int required, SANE_Bool color)
|
|||
while (i < nb)
|
||||
{
|
||||
/* exit on perfect match */
|
||||
if (sensor == sensor_master[i].sensor
|
||||
if (sensor_id == sensor_master[i].sensor
|
||||
&& sensor_master[i].dpi == required
|
||||
&& sensor_master[i].color == color)
|
||||
{
|
||||
|
@ -330,7 +330,7 @@ is_half_ccd (int sensor, int required, SANE_Bool color)
|
|||
* @return cksel value for mode
|
||||
*/
|
||||
static int
|
||||
get_cksel (int sensor, int required, SANE_Bool color)
|
||||
get_cksel (int sensor_id, int required, SANE_Bool color)
|
||||
{
|
||||
int i, nb;
|
||||
|
||||
|
@ -339,7 +339,7 @@ get_cksel (int sensor, int required, SANE_Bool color)
|
|||
while (i < nb)
|
||||
{
|
||||
/* exit on perfect match */
|
||||
if (sensor == sensor_master[i].sensor
|
||||
if (sensor_id == sensor_master[i].sensor
|
||||
&& sensor_master[i].dpi == required
|
||||
&& sensor_master[i].color == color)
|
||||
{
|
||||
|
@ -391,7 +391,7 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
{
|
||||
SANE_Status status = SANE_STATUS_GOOD;
|
||||
int i, nb;
|
||||
Sensor_Master *sensor = NULL;
|
||||
Sensor_Master *sensor_mst = NULL;
|
||||
Motor_Master *motor = NULL;
|
||||
Sensor_Settings *settings = NULL;
|
||||
GenesysRegister *r;
|
||||
|
@ -429,11 +429,11 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
&& sensor_master[i].dpi == xresolution
|
||||
&& sensor_master[i].color == color)
|
||||
{
|
||||
sensor = &sensor_master[i];
|
||||
sensor_mst = &sensor_master[i];
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (sensor == NULL)
|
||||
if (sensor_mst == NULL)
|
||||
{
|
||||
DBG(DBG_error, "%s: unable to find settings for sensor %d at %d dpi color=%d\n", __func__,
|
||||
dev->model->ccd_type, xresolution, color);
|
||||
|
@ -466,8 +466,8 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
nb = sizeof (sensor_settings) / sizeof (Sensor_Settings);
|
||||
while (i < nb)
|
||||
{
|
||||
if (sensor->sensor == sensor_settings[i].sensor
|
||||
&& sensor->cksel == sensor_settings[i].cksel)
|
||||
if (sensor_mst->sensor == sensor_settings[i].sensor
|
||||
&& sensor_mst->cksel == sensor_settings[i].cksel)
|
||||
{
|
||||
settings = &sensor_settings[i];
|
||||
}
|
||||
|
@ -476,20 +476,20 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
if (settings == NULL)
|
||||
{
|
||||
DBG(DBG_error, "%s: unable to find settings for sensor %d with '%d' ccd timing\n", __func__,
|
||||
sensor->sensor, sensor->cksel);
|
||||
sensor_mst->sensor, sensor_mst->cksel);
|
||||
return SANE_STATUS_INVAL;
|
||||
}
|
||||
|
||||
/* half_ccd if manual clock programming or dpi is half dpiset */
|
||||
half_ccd = sensor->half_ccd;
|
||||
half_ccd = sensor_mst->half_ccd;
|
||||
|
||||
/* now apply values from settings to registers */
|
||||
if (sensor->regs_0x10_0x15 != NULL)
|
||||
if (sensor_mst->regs_0x10_0x15 != NULL)
|
||||
{
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
r = sanei_genesys_get_address (regs, 0x10 + i);
|
||||
r->value = sensor->regs_0x10_0x15[i];
|
||||
r->value = sensor_mst->regs_0x10_0x15[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -674,10 +674,10 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
}
|
||||
|
||||
/* cktoggle, ckdelay and cksel at once, cktdelay=2 => half_ccd for md5345 */
|
||||
regs->find_reg(0x18).value = sensor->r18;
|
||||
regs->find_reg(0x18).value = sensor_mst->r18;
|
||||
|
||||
/* manual CCD/2 clock programming => half_ccd for hp2300 */
|
||||
regs->find_reg(0x1d).value = sensor->r1d;
|
||||
regs->find_reg(0x1d).value = sensor_mst->r1d;
|
||||
|
||||
/* HP2400 1200dpi mode tuning */
|
||||
|
||||
|
@ -742,8 +742,8 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
}
|
||||
|
||||
/* scanner's x coordinates are expressed in physical DPI but they must be divided by cksel */
|
||||
sx = startx / sensor->cksel;
|
||||
ex = endx / sensor->cksel;
|
||||
sx = startx / sensor_mst->cksel;
|
||||
ex = endx / sensor_mst->cksel;
|
||||
if (half_ccd == SANE_TRUE)
|
||||
{
|
||||
sx /= 2;
|
||||
|
@ -755,7 +755,7 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
|
||||
/* words_per_line must be computed according to the scan's resolution */
|
||||
/* in fact, words_per_line _gives_ the actual scan resolution */
|
||||
words_per_line = (((endx - startx) * sensor->xdpi) / dev->sensor.optical_res);
|
||||
words_per_line = (((endx - startx) * sensor_mst->xdpi) / dev->sensor.optical_res);
|
||||
bpp=depth/8;
|
||||
if (depth == 1)
|
||||
{
|
||||
|
@ -773,8 +773,8 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
DBG(DBG_info, "%s: wpl=%d\n", __func__, words_per_line);
|
||||
sanei_genesys_set_triple(regs, REG_MAXWD, words_per_line);
|
||||
|
||||
sanei_genesys_set_double(regs, REG_DPISET, sensor->dpiset);
|
||||
sanei_genesys_set_double(regs, REG_LPERIOD, sensor->exposure);
|
||||
sanei_genesys_set_double(regs, REG_DPISET, sensor_mst->dpiset);
|
||||
sanei_genesys_set_double(regs, REG_LPERIOD, sensor_mst->exposure);
|
||||
|
||||
/* move distance must be adjusted to take into account the extra lines
|
||||
* read to reorder data */
|
||||
|
@ -903,7 +903,7 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
regs->find_reg(0x65).value = motor->mtrpwm;
|
||||
|
||||
sanei_genesys_calculate_zmode2 (regs->find_reg(0x02).value & REG02_FASTFED,
|
||||
sensor->exposure,
|
||||
sensor_mst->exposure,
|
||||
slope_table1,
|
||||
motor->steps1,
|
||||
move, motor->fwdbwd, &z1, &z2);
|
||||
|
@ -954,12 +954,12 @@ gl646_setup_registers (Genesys_Device * dev,
|
|||
dev->read_active = SANE_TRUE;
|
||||
|
||||
dev->current_setup.pixels =
|
||||
((endx - startx) * sensor->xdpi) / dev->sensor.optical_res;
|
||||
((endx - startx) * sensor_mst->xdpi) / dev->sensor.optical_res;
|
||||
dev->current_setup.lines = linecnt;
|
||||
dev->current_setup.depth = depth;
|
||||
dev->current_setup.channels = channels;
|
||||
dev->current_setup.exposure_time = sensor->exposure;
|
||||
dev->current_setup.xres = sensor->xdpi;
|
||||
dev->current_setup.exposure_time = sensor_mst->exposure;
|
||||
dev->current_setup.xres = sensor_mst->xdpi;
|
||||
dev->current_setup.yres = motor->ydpi;
|
||||
dev->current_setup.half_ccd = half_ccd;
|
||||
dev->current_setup.stagger = stagger;
|
||||
|
|
|
@ -300,42 +300,41 @@ static void
|
|||
gl843_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi,int flags)
|
||||
{
|
||||
GenesysRegister *r;
|
||||
Sensor_Profile *sensor;
|
||||
int i,dpihw;
|
||||
|
||||
DBGSTART;
|
||||
|
||||
dpihw=sanei_genesys_compute_dpihw(dev,dpi);
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw, flags);
|
||||
Sensor_Profile* sensor_profile=get_sensor_profile(dev->model->ccd_type, dpihw, flags);
|
||||
|
||||
for (i = 0; i < 0x1e - 0x16; i++)
|
||||
{
|
||||
r = sanei_genesys_get_address(regs, 0x16 + i);
|
||||
if (r)
|
||||
r->value = sensor->regs_0x16_0x1d[i];
|
||||
r->value = sensor_profile->regs_0x16_0x1d[i];
|
||||
}
|
||||
for (i = 0; i < 9; i++)
|
||||
{
|
||||
r = sanei_genesys_get_address (regs, 0x52 + i);
|
||||
if (r)
|
||||
r->value = sensor->regs_0x52_0x5e[i];
|
||||
r->value = sensor_profile->regs_0x52_0x5e[i];
|
||||
}
|
||||
|
||||
/* specific registers */
|
||||
r = sanei_genesys_get_address (regs, 0x0c);
|
||||
if (r)
|
||||
{
|
||||
r->value = sensor->reg0c;
|
||||
r->value = sensor_profile->reg0c;
|
||||
}
|
||||
r = sanei_genesys_get_address (regs, 0x70);
|
||||
if (r)
|
||||
{
|
||||
r->value = sensor->reg70;
|
||||
r->value = sensor_profile->reg70;
|
||||
}
|
||||
r = sanei_genesys_get_address (regs, 0x71);
|
||||
if (r)
|
||||
{
|
||||
r->value = sensor->reg71;
|
||||
r->value = sensor_profile->reg71;
|
||||
}
|
||||
r = sanei_genesys_get_address (regs, 0x7d);
|
||||
if (r)
|
||||
|
@ -348,19 +347,19 @@ gl843_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi,i
|
|||
r = sanei_genesys_get_address (regs, 0x9e);
|
||||
if (r)
|
||||
{
|
||||
r->value = sensor->reg9e;
|
||||
r->value = sensor_profile->reg9e;
|
||||
}
|
||||
/* undocumented register */
|
||||
r = sanei_genesys_get_address (regs, 0xaa);
|
||||
if (r)
|
||||
{
|
||||
r->value = sensor->regaa;
|
||||
r->value = sensor_profile->regaa;
|
||||
}
|
||||
|
||||
/* CKxMAP */
|
||||
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);
|
||||
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor_profile->ck1map);
|
||||
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor_profile->ck3map);
|
||||
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor_profile->ck4map);
|
||||
|
||||
DBGCOMPLETED;
|
||||
}
|
||||
|
@ -1153,10 +1152,8 @@ gl843_init_motor_regs_scan (Genesys_Device * dev,
|
|||
*/
|
||||
static int gl843_compute_exposure(Genesys_Device *dev, int xres, int flags)
|
||||
{
|
||||
Sensor_Profile *sensor;
|
||||
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, xres, flags);
|
||||
return sensor->exposure;
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, xres, flags);
|
||||
return sensor_profile->exposure;
|
||||
}
|
||||
|
||||
/** @brief setup optical related registers
|
||||
|
|
|
@ -203,10 +203,8 @@ static Sensor_Profile *get_sensor_profile(int sensor_type, int dpi)
|
|||
*/
|
||||
static int gl846_compute_exposure(Genesys_Device *dev, int xres)
|
||||
{
|
||||
Sensor_Profile *sensor;
|
||||
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, xres);
|
||||
return sensor->exposure;
|
||||
Sensor_Profile* sensor_profile=get_sensor_profile(dev->model->ccd_type, xres);
|
||||
return sensor_profile->exposure;
|
||||
}
|
||||
|
||||
|
||||
|
@ -216,7 +214,6 @@ static void
|
|||
gl846_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi)
|
||||
{
|
||||
GenesysRegister *r;
|
||||
Sensor_Profile *sensor;
|
||||
int dpihw;
|
||||
uint16_t exp;
|
||||
|
||||
|
@ -233,41 +230,41 @@ gl846_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi)
|
|||
|
||||
/* set EXPDUMMY and CKxMAP */
|
||||
dpihw=sanei_genesys_compute_dpihw(dev,dpi);
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
|
||||
sanei_genesys_set_reg_from_set(regs,REG_EXPDMY,(uint8_t)((sensor->expdummy) & 0xff));
|
||||
sanei_genesys_set_reg_from_set(regs,REG_EXPDMY,(uint8_t)((sensor_profile->expdummy) & 0xff));
|
||||
|
||||
/* if no calibration has been done, set default values for exposures */
|
||||
exp = dev->sensor.exposure.red;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expr;
|
||||
exp=sensor_profile->expr;
|
||||
}
|
||||
sanei_genesys_set_double(regs,REG_EXPR,exp);
|
||||
|
||||
exp = dev->sensor.exposure.green;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expg;
|
||||
exp=sensor_profile->expg;
|
||||
}
|
||||
sanei_genesys_set_double(regs,REG_EXPG,exp);
|
||||
|
||||
exp = dev->sensor.exposure.blue;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expb;
|
||||
exp=sensor_profile->expb;
|
||||
}
|
||||
sanei_genesys_set_double(regs,REG_EXPB,exp);
|
||||
|
||||
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);
|
||||
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor_profile->ck1map);
|
||||
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor_profile->ck3map);
|
||||
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor_profile->ck4map);
|
||||
|
||||
/* order of the sub-segments */
|
||||
dev->order=sensor->order;
|
||||
dev->order=sensor_profile->order;
|
||||
|
||||
r = sanei_genesys_get_address (regs, 0x17);
|
||||
r->value = sensor->r17;
|
||||
r->value = sensor_profile->r17;
|
||||
|
||||
DBGCOMPLETED;
|
||||
}
|
||||
|
@ -865,7 +862,6 @@ gl846_init_optical_regs_scan (Genesys_Device * dev,
|
|||
unsigned int bytes;
|
||||
GenesysRegister *r;
|
||||
SANE_Status status;
|
||||
Sensor_Profile *sensor;
|
||||
|
||||
DBG(DBG_proc, "%s : exposure_time=%d, used_res=%d, start=%d, pixels=%d, channels=%d, depth=%d, "
|
||||
"half_ccd=%d, flags=%x\n", __func__, exposure_time, used_res, start, pixels, channels, depth,
|
||||
|
@ -883,7 +879,7 @@ gl846_init_optical_regs_scan (Genesys_Device * dev,
|
|||
DBG(DBG_io2, "%s: dpihw=%d (factor=%d)\n", __func__, dpihw, factor);
|
||||
|
||||
/* sensor parameters */
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
gl846_setup_sensor (dev, reg, dpihw);
|
||||
dpiset = used_res * cksel;
|
||||
|
||||
|
@ -917,7 +913,7 @@ gl846_init_optical_regs_scan (Genesys_Device * dev,
|
|||
* of the sensor crossed by the scan area */
|
||||
if (dev->model->flags & GENESYS_FLAG_SIS_SENSOR && segnb>1)
|
||||
{
|
||||
dev->dist = sensor->segcnt;
|
||||
dev->dist = sensor_profile->segcnt;
|
||||
}
|
||||
|
||||
/* use a segcnt rounded to next even number */
|
||||
|
@ -2385,7 +2381,6 @@ gl846_led_calibration (Genesys_Device * dev)
|
|||
int avg[3], top[3], bottom[3];
|
||||
int turn;
|
||||
uint16_t exp[3];
|
||||
Sensor_Profile *sensor;
|
||||
float move;
|
||||
SANE_Bool acceptable;
|
||||
|
||||
|
@ -2403,7 +2398,7 @@ gl846_led_calibration (Genesys_Device * dev)
|
|||
channels = 3;
|
||||
depth=16;
|
||||
used_res=sanei_genesys_compute_dpihw(dev,dev->settings.xres);
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, used_res);
|
||||
Sensor_Profile* sensor_profile = get_sensor_profile(dev->model->ccd_type, used_res);
|
||||
num_pixels = (dev->sensor.sensor_pixels*used_res)/dev->sensor.optical_res;
|
||||
|
||||
/* initial calibration reg values */
|
||||
|
@ -2435,9 +2430,9 @@ gl846_led_calibration (Genesys_Device * dev)
|
|||
std::vector<uint8_t> line(total_size);
|
||||
|
||||
/* initial loop values and boundaries */
|
||||
exp[0]=sensor->expr;
|
||||
exp[1]=sensor->expg;
|
||||
exp[2]=sensor->expb;
|
||||
exp[0]=sensor_profile->expr;
|
||||
exp[1]=sensor_profile->expg;
|
||||
exp[2]=sensor_profile->expb;
|
||||
|
||||
bottom[0]=29000;
|
||||
bottom[1]=29000;
|
||||
|
|
|
@ -198,10 +198,8 @@ static Sensor_Profile *get_sensor_profile(int sensor_type, int dpi)
|
|||
*/
|
||||
static int gl847_compute_exposure(Genesys_Device *dev, int xres)
|
||||
{
|
||||
Sensor_Profile *sensor;
|
||||
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, xres);
|
||||
return sensor->exposure;
|
||||
Sensor_Profile* sensor_profile=get_sensor_profile(dev->model->ccd_type, xres);
|
||||
return sensor_profile->exposure;
|
||||
}
|
||||
|
||||
|
||||
|
@ -211,7 +209,6 @@ static void
|
|||
gl847_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi)
|
||||
{
|
||||
GenesysRegister *r;
|
||||
Sensor_Profile *sensor;
|
||||
int dpihw;
|
||||
uint16_t exp;
|
||||
|
||||
|
@ -228,41 +225,41 @@ gl847_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi)
|
|||
|
||||
/* set EXPDUMMY and CKxMAP */
|
||||
dpihw=sanei_genesys_compute_dpihw(dev,dpi);
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
Sensor_Profile* sensor_profile=get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
|
||||
sanei_genesys_set_reg_from_set(regs,REG_EXPDMY,(uint8_t)((sensor->expdummy) & 0xff));
|
||||
sanei_genesys_set_reg_from_set(regs,REG_EXPDMY,(uint8_t)((sensor_profile->expdummy) & 0xff));
|
||||
|
||||
/* if no calibration has been done, set default values for exposures */
|
||||
exp = dev->sensor.exposure.red;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expr;
|
||||
exp=sensor_profile->expr;
|
||||
}
|
||||
sanei_genesys_set_double(regs,REG_EXPR,exp);
|
||||
|
||||
exp = dev->sensor.exposure.green;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expg;
|
||||
exp=sensor_profile->expg;
|
||||
}
|
||||
sanei_genesys_set_double(regs,REG_EXPG,exp);
|
||||
|
||||
exp = dev->sensor.exposure.blue;
|
||||
if(exp==0)
|
||||
{
|
||||
exp=sensor->expb;
|
||||
exp=sensor_profile->expb;
|
||||
}
|
||||
sanei_genesys_set_double(regs,REG_EXPB,exp);
|
||||
|
||||
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);
|
||||
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor_profile->ck1map);
|
||||
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor_profile->ck3map);
|
||||
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor_profile->ck4map);
|
||||
|
||||
/* order of the sub-segments */
|
||||
dev->order=sensor->order;
|
||||
dev->order=sensor_profile->order;
|
||||
|
||||
r = sanei_genesys_get_address (regs, 0x17);
|
||||
r->value = sensor->r17;
|
||||
r->value = sensor_profile->r17;
|
||||
|
||||
DBGCOMPLETED;
|
||||
}
|
||||
|
@ -880,7 +877,6 @@ gl847_init_optical_regs_scan (Genesys_Device * dev,
|
|||
unsigned int bytes;
|
||||
GenesysRegister *r;
|
||||
SANE_Status status;
|
||||
Sensor_Profile *sensor;
|
||||
|
||||
DBG(DBG_proc, "%s : exposure_time=%d, used_res=%d, start=%d, pixels=%d, channels=%d, depth=%d, "
|
||||
"half_ccd=%d, flags=%x\n", __func__, exposure_time, used_res, start, pixels, channels, depth,
|
||||
|
@ -898,7 +894,7 @@ gl847_init_optical_regs_scan (Genesys_Device * dev,
|
|||
DBG(DBG_io2, "%s: dpihw=%d (factor=%d)\n", __func__, dpihw, factor);
|
||||
|
||||
/* sensor parameters */
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
Sensor_Profile* sensor_profile=get_sensor_profile(dev->model->ccd_type, dpihw);
|
||||
gl847_setup_sensor (dev, reg, dpihw);
|
||||
dpiset = used_res * cksel;
|
||||
|
||||
|
@ -932,7 +928,7 @@ gl847_init_optical_regs_scan (Genesys_Device * dev,
|
|||
* of the sensor crossed by the scan area */
|
||||
if (dev->model->flags & GENESYS_FLAG_SIS_SENSOR && segnb>1)
|
||||
{
|
||||
dev->dist = sensor->segcnt;
|
||||
dev->dist = sensor_profile->segcnt;
|
||||
}
|
||||
|
||||
/* use a segcnt rounded to next even number */
|
||||
|
@ -2448,7 +2444,6 @@ gl847_led_calibration (Genesys_Device * dev)
|
|||
int avg[3], top[3], bottom[3];
|
||||
int turn;
|
||||
uint16_t exp[3];
|
||||
Sensor_Profile *sensor;
|
||||
float move;
|
||||
SANE_Bool acceptable;
|
||||
|
||||
|
@ -2466,7 +2461,7 @@ gl847_led_calibration (Genesys_Device * dev)
|
|||
channels = 3;
|
||||
depth=16;
|
||||
used_res=sanei_genesys_compute_dpihw(dev,dev->settings.xres);
|
||||
sensor=get_sensor_profile(dev->model->ccd_type, used_res);
|
||||
Sensor_Profile* sensor_profile=get_sensor_profile(dev->model->ccd_type, used_res);
|
||||
num_pixels = (dev->sensor.sensor_pixels*used_res)/dev->sensor.optical_res;
|
||||
|
||||
/* initial calibration reg values */
|
||||
|
@ -2498,9 +2493,9 @@ gl847_led_calibration (Genesys_Device * dev)
|
|||
std::vector<uint8_t> line(total_size);
|
||||
|
||||
/* initial loop values and boundaries */
|
||||
exp[0]=sensor->expr;
|
||||
exp[1]=sensor->expg;
|
||||
exp[2]=sensor->expb;
|
||||
exp[0]=sensor_profile->expr;
|
||||
exp[1]=sensor_profile->expg;
|
||||
exp[2]=sensor_profile->expb;
|
||||
|
||||
bottom[0]=29000;
|
||||
bottom[1]=29000;
|
||||
|
|
Ładowanie…
Reference in New Issue