genesys: Merge chip-specific compute_session functions

merge-requests/236/head
Povilas Kanapickas 2019-10-27 10:42:00 +02:00
rodzic 05f313cc53
commit 0fa25a233b
8 zmienionych plików z 81 dodań i 151 usunięć

Wyświetl plik

@ -887,20 +887,6 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
reg->set16(REG_DUMMY, sensor.dummy_pixel);
}
static void gl124_compute_session(Genesys_Device* dev, ScanSession& s,
const Genesys_Sensor& sensor)
{
DBG_HELPER(dbg);
compute_session(dev, s, sensor);
s.enable_ledadd = (s.params.channels == 1 && dev->model->is_cis && dev->settings.true_gray);
s.computed = true;
DBG(DBG_info, "%s ", __func__);
debug_dump(DBG_info, s);
}
/** set up registers for an actual scan
*
* this function sets up the scanner to scan in normal or single line mode
@ -1018,7 +1004,7 @@ void CommandSetGl124::calculate_current_setup(Genesys_Device * dev,
session.params.color_filter = dev->settings.color_filter;
session.params.flags = 0;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
/* compute scan parameters values */
/* pixels are allways given at half or full CCD optical resolution */
@ -1319,7 +1305,7 @@ void CommandSetGl124::slow_back_home(Genesys_Device* dev, bool wait_until_home)
session.params.flags = SCAN_FLAG_DISABLE_SHADING |
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &local_reg, session);
@ -1409,7 +1395,7 @@ static void gl124_feed(Genesys_Device* dev, unsigned int steps, int reverse)
SCAN_FLAG_FEEDING |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &local_reg, session);
@ -1492,7 +1478,7 @@ void CommandSetGl124::search_start_position(Genesys_Device* dev) const
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &local_reg, session);
@ -1553,7 +1539,7 @@ void CommandSetGl124::init_regs_for_coarse_calibration(Genesys_Device* dev,
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_FEEDING |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &regs, session);
@ -1619,7 +1605,7 @@ void CommandSetGl124::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
try {
gl124_init_scan_regs(dev, sensor, &regs, session);
@ -1697,7 +1683,7 @@ void CommandSetGl124::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
session.params.scan_mode = dev->settings.scan_mode;
session.params.color_filter = dev->settings.color_filter;
session.params.flags = 0;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &dev->reg, session);
}
@ -1833,7 +1819,7 @@ static void move_to_calibration_area(Genesys_Device* dev, const Genesys_Sensor&
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &regs, session);
@ -1909,7 +1895,7 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &regs, session);
@ -2077,7 +2063,7 @@ void CommandSetGl124::offset_calibration(Genesys_Device* dev, const Genesys_Sens
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, &regs, session);
@ -2231,7 +2217,7 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
try {
gl124_init_scan_regs(dev, sensor, &regs, session);
@ -2339,7 +2325,7 @@ void CommandSetGl124::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl124_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl124_init_scan_regs(dev, sensor, reg, session);

Wyświetl plik

@ -207,19 +207,6 @@ static int get_cksel(SensorId sensor_id, int required, unsigned channels)
return 1;
}
static void gl646_compute_session(Genesys_Device* dev, ScanSession& s,
const Genesys_Sensor& sensor)
{
DBG_HELPER(dbg);
(void) dev;
compute_session(dev, s, sensor);
s.computed = true;
DBG(DBG_info, "%s ", __func__);
debug_dump(DBG_info, s);
}
/**
* Setup register and motor tables for a scan at the
* given resolution and color mode. TODO try to not use any filed from
@ -2008,7 +1995,7 @@ static void setup_for_scan(Genesys_Device* dev,
if (xcorrection) {
session.params.flags |= SCAN_FLAG_USE_XCORRECTION;
}
gl646_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
std::vector<uint16_t> slope_table0;
std::vector<uint16_t> slope_table1;

Wyświetl plik

@ -1608,24 +1608,6 @@ int scan_step_type=0;
return scan_step_type;
}
static void gl841_compute_session(Genesys_Device* dev, ScanSession& s,
const Genesys_Sensor& sensor)
{
DBG_HELPER(dbg);
// no 16 bit gamma for this ASIC
if (s.params.depth == 16) {
s.params.flags |= SCAN_FLAG_DISABLE_GAMMA;
}
compute_session(dev, s, sensor);
s.computed = true;
DBG(DBG_info, "%s ", __func__);
debug_dump(DBG_info, s);
}
// set up registers for an actual scan this function sets up the scanner to scan in normal or single
// line mode
static void gl841_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sensor,
@ -1801,7 +1783,7 @@ void CommandSetGl841::calculate_current_setup(Genesys_Device * dev,
session.params.color_filter = dev->settings.color_filter;
session.params.flags = 0;
gl841_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
/* dummy lines: may not be usefull, for instance 250 dpi works with 0 or 1
dummy line. Maybe the dummy line adds correctness since the motor runs
@ -2530,7 +2512,7 @@ void CommandSetGl841::search_start_position(Genesys_Device* dev) const
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE;
gl841_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl841_init_scan_regs(dev, sensor, &local_reg, session);
@ -2590,7 +2572,7 @@ void CommandSetGl841::init_regs_for_coarse_calibration(Genesys_Device* dev,
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl841_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl841_init_scan_regs(dev, sensor, &regs, session);
@ -2662,7 +2644,7 @@ void CommandSetGl841::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
SCAN_FLAG_DISABLE_GAMMA |
/*SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE |*/
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl841_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl841_init_scan_regs(dev, calib_sensor, &regs, session);
@ -2754,7 +2736,7 @@ void CommandSetGl841::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
session.params.scan_mode = dev->settings.scan_mode;
session.params.color_filter = dev->settings.color_filter;
session.params.flags = flags;
gl841_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl841_init_scan_regs(dev, sensor, &dev->reg, session);
}
@ -2839,7 +2821,7 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl841_compute_session(dev, session, calib_sensor_base);
compute_session(dev, session, calib_sensor_base);
gl841_init_scan_regs(dev, calib_sensor_base, &regs, session);
@ -3043,7 +3025,7 @@ static void ad_fe_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl841_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl841_init_scan_regs(dev, calib_sensor, &regs, session);
@ -3166,7 +3148,7 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE |
SCAN_FLAG_DISABLE_LAMP;
gl841_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl841_init_scan_regs(dev, calib_sensor, &regs, session);
@ -3531,7 +3513,7 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl841_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl841_init_scan_regs(dev, calib_sensor, &regs, session);
@ -3676,7 +3658,7 @@ void CommandSetGl841::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl841_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl841_init_scan_regs(dev, sensor, local_reg, session);
@ -3834,7 +3816,7 @@ void CommandSetGl841::init(Genesys_Device* dev) const
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl841_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl841_init_scan_regs(dev, calib_sensor, &regs, session);
@ -3956,7 +3938,7 @@ void CommandSetGl841::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
session.params.scan_mode = ScanColorMode::GRAY;
session.params.color_filter = ColorFilter::RED;
session.params.flags = SCAN_FLAG_DISABLE_SHADING | SCAN_FLAG_DISABLE_GAMMA;
gl841_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
size = pixels * channels * lines * (session.params.depth / 8);
std::vector<uint8_t> data(size);

Wyświetl plik

@ -1192,23 +1192,6 @@ static void gl843_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
r->value = sensor.dummy_pixel;
}
// computes physical parameters for specific scan setup
static void gl843_compute_session(Genesys_Device* dev, ScanSession& s,
const Genesys_Sensor& sensor)
{
// no 16 bit gamma for this ASIC
if (s.params.depth == 16) {
s.params.flags |= SCAN_FLAG_DISABLE_GAMMA;
}
compute_session(dev, s, sensor);
s.computed = true;
DBG(DBG_info, "%s ", __func__);
debug_dump(DBG_info, s);
}
// set up registers for an actual scan this function sets up the scanner to scan in normal or single
// line mode
static void gl843_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sensor,
@ -1353,7 +1336,7 @@ void CommandSetGl843::calculate_current_setup(Genesys_Device * dev,
session.params.color_filter = dev->settings.color_filter;
session.params.flags = 0;
gl843_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
/* compute scan parameters values */
/* pixels are allways given at half or full CCD optical resolution */
@ -1965,7 +1948,7 @@ void CommandSetGl843::slow_back_home(Genesys_Device* dev, bool wait_until_home)
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl843_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl843_init_scan_regs(dev, sensor, &local_reg, session);
@ -2058,7 +2041,7 @@ void CommandSetGl843::search_start_position(Genesys_Device* dev) const
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE;
gl843_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl843_init_scan_regs(dev, sensor, &local_reg, session);
@ -2122,7 +2105,7 @@ void CommandSetGl843::init_regs_for_coarse_calibration(Genesys_Device* dev,
session.params.scan_mode = dev->settings.scan_mode;
session.params.color_filter = dev->settings.color_filter;
session.params.flags = flags;
gl843_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl843_init_scan_regs(dev, sensor, &regs, session);
@ -2169,7 +2152,7 @@ static void gl843_feed(Genesys_Device* dev, unsigned int steps)
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_FEEDING |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl843_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl843_init_scan_regs(dev, sensor, &local_reg, session);
@ -2287,7 +2270,7 @@ void CommandSetGl843::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
session.params.scan_mode = dev->settings.scan_mode;
session.params.color_filter = dev->settings.color_filter;
session.params.flags = flags;
gl843_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl843_init_scan_regs(dev, calib_sensor, &regs, session);
@ -2374,7 +2357,7 @@ void CommandSetGl843::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
session.params.scan_mode = dev->settings.scan_mode;
session.params.color_filter = dev->settings.color_filter;
session.params.flags = flags;
gl843_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl843_init_scan_regs(dev, sensor, &dev->reg, session);
}
@ -2456,7 +2439,7 @@ SensorExposure CommandSetGl843::led_calibration(Genesys_Device* dev, const Genes
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl843_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl843_init_scan_regs(dev, calib_sensor, &regs, session);
@ -2669,7 +2652,7 @@ void CommandSetGl843::offset_calibration(Genesys_Device* dev, const Genesys_Sens
session.params.scan_mode = ScanColorMode::COLOR_SINGLE_PASS;
session.params.color_filter = ColorFilter::RED;
session.params.flags = flags;
gl843_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
pixels = session.output_pixels;
DBG(DBG_io, "%s: dpihw =%d\n", __func__, dpihw);
@ -2885,7 +2868,7 @@ void CommandSetGl843::coarse_gain_calibration(Genesys_Device* dev, const Genesys
session.params.scan_mode = ScanColorMode::COLOR_SINGLE_PASS;
session.params.color_filter = dev->settings.color_filter;
session.params.flags = flags;
gl843_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
std::size_t pixels = session.output_pixels;
try {
@ -2996,7 +2979,7 @@ void CommandSetGl843::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl843_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl843_init_scan_regs(dev, calib_sensor, reg, session);
@ -3240,7 +3223,7 @@ void CommandSetGl843::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
session.params.scan_mode = ScanColorMode::GRAY;
session.params.color_filter = ColorFilter::RED;
session.params.flags = SCAN_FLAG_DISABLE_SHADING | SCAN_FLAG_DISABLE_SHADING;
gl843_compute_session(dev, session, calib_sensor);
compute_session(dev, session, calib_sensor);
gl843_init_scan_regs(dev, calib_sensor, &local_reg, session);

Wyświetl plik

@ -741,21 +741,6 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
r->value = sensor.dummy_pixel;
}
static void gl846_compute_session(Genesys_Device* dev, ScanSession& s,
const Genesys_Sensor& sensor)
{
DBG_HELPER(dbg);
compute_session(dev, s, sensor);
s.enable_ledadd = (s.params.channels == 1 && dev->model->is_cis && dev->settings.true_gray);
s.computed = true;
DBG(DBG_info, "%s ", __func__);
debug_dump(DBG_info, s);
}
// set up registers for an actual scan this function sets up the scanner to scan in normal or single
// line mode
static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sensor,
@ -873,7 +858,7 @@ void CommandSetGl846::calculate_current_setup(Genesys_Device* dev,
session.params.color_filter = dev->settings.color_filter;
session.params.flags = 0;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
/* compute scan parameters values */
/* pixels are allways given at half or full CCD optical resolution */
@ -1087,7 +1072,7 @@ void CommandSetGl846::slow_back_home(Genesys_Device* dev, bool wait_until_home)
session.params.flags = SCAN_FLAG_DISABLE_SHADING |
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &local_reg, session);
@ -1180,7 +1165,7 @@ void CommandSetGl846::search_start_position(Genesys_Device* dev) const
session.params.flags = SCAN_FLAG_DISABLE_SHADING |
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &local_reg, session);
@ -1242,7 +1227,7 @@ void CommandSetGl846::init_regs_for_coarse_calibration(Genesys_Device* dev,
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &regs, session);
@ -1285,7 +1270,7 @@ static void gl846_feed(Genesys_Device* dev, unsigned int steps)
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_FEEDING |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &local_reg, session);
@ -1373,7 +1358,7 @@ void CommandSetGl846::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &regs, session);
@ -1455,7 +1440,7 @@ void CommandSetGl846::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
session.params.color_filter = dev->settings.color_filter;
// backtracking isn't handled well, so don't enable it
session.params.flags = SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &dev->reg, session);
}
@ -1586,7 +1571,7 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &regs, session);
@ -1909,7 +1894,7 @@ void CommandSetGl846::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
session.params.color_filter = ColorFilter::RED;
session.params.flags = SCAN_FLAG_DISABLE_SHADING |
SCAN_FLAG_DISABLE_GAMMA;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &local_reg, session);
@ -2132,7 +2117,7 @@ void CommandSetGl846::offset_calibration(Genesys_Device* dev, const Genesys_Sens
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl846_init_scan_regs(dev, sensor, &regs, session);
@ -2280,7 +2265,7 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl846_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
try {
gl846_init_scan_regs(dev, sensor, &regs, session);

Wyświetl plik

@ -752,19 +752,6 @@ static void gl847_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
r->value = sensor.dummy_pixel;
}
static void gl847_compute_session(Genesys_Device* dev, ScanSession& s,
const Genesys_Sensor& sensor)
{
DBG_HELPER(dbg);
compute_session(dev, s, sensor);
s.computed = true;
DBG(DBG_info, "%s ", __func__);
debug_dump(DBG_info, s);
}
// set up registers for an actual scan this function sets up the scanner to scan in normal or single
// line mode
static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sensor,
@ -876,7 +863,7 @@ void CommandSetGl847::calculate_current_setup(Genesys_Device * dev,
session.params.color_filter = dev->settings.color_filter;
session.params.flags = 0;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
/* compute scan parameters values */
/* pixels are allways given at half or full CCD optical resolution */
@ -1131,7 +1118,7 @@ void CommandSetGl847::slow_back_home(Genesys_Device* dev, bool wait_until_home)
session.params.flags = SCAN_FLAG_DISABLE_SHADING |
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &local_reg, session);
@ -1222,7 +1209,7 @@ void CommandSetGl847::search_start_position(Genesys_Device* dev) const
session.params.flags = SCAN_FLAG_DISABLE_SHADING |
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &local_reg, session);
@ -1284,7 +1271,7 @@ void CommandSetGl847::init_regs_for_coarse_calibration(Genesys_Device* dev,
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &regs, session);
@ -1326,7 +1313,7 @@ static void gl847_feed(Genesys_Device* dev, unsigned int steps)
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_FEEDING |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &local_reg, session);
@ -1405,7 +1392,7 @@ void CommandSetGl847::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &regs, session);
@ -1486,7 +1473,7 @@ void CommandSetGl847::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
session.params.color_filter = dev->settings.color_filter;
// backtracking isn't handled well, so don't enable it
session.params.flags = SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &dev->reg, session);
}
@ -1618,7 +1605,7 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &regs, session);
@ -1972,7 +1959,7 @@ void CommandSetGl847::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
session.params.color_filter = ColorFilter::RED;
session.params.flags = SCAN_FLAG_DISABLE_SHADING |
SCAN_FLAG_DISABLE_GAMMA;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
size = pixels * channels * lines * (session.params.depth / 8);
std::vector<uint8_t> data(size);
@ -2196,7 +2183,7 @@ void CommandSetGl847::offset_calibration(Genesys_Device* dev, const Genesys_Sens
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
gl847_init_scan_regs(dev, sensor, &regs, session);
@ -2343,7 +2330,7 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys
SCAN_FLAG_DISABLE_GAMMA |
SCAN_FLAG_SINGLE_LINE |
SCAN_FLAG_IGNORE_LINE_DISTANCE;
gl847_compute_session(dev, session, sensor);
compute_session(dev, session, sensor);
try {
gl847_init_scan_regs(dev, sensor, &regs, session);

Wyświetl plik

@ -1653,6 +1653,27 @@ void compute_session(Genesys_Device* dev, ScanSession& s, const Genesys_Sensor&
compute_session_buffer_sizes(dev->model->asic_type, s);
compute_session_pipeline(dev, s);
compute_session_pixel_offsets(dev, s, sensor, sensor_profile);
if (dev->model->asic_type == AsicType::GL124 ||
dev->model->asic_type == AsicType::GL845 ||
dev->model->asic_type == AsicType::GL846)
{
s.enable_ledadd = (s.params.channels == 1 && dev->model->is_cis && dev->settings.true_gray);
}
if (dev->model->asic_type == AsicType::GL841 ||
dev->model->asic_type == AsicType::GL843)
{
// no 16 bit gamma for this ASIC
if (s.params.depth == 16) {
s.params.flags |= SCAN_FLAG_DISABLE_GAMMA;
}
}
s.computed = true;
DBG(DBG_info, "%s ", __func__);
debug_dump(DBG_info, s);
}
static std::size_t get_usb_buffer_read_size(AsicType asic, const ScanSession& session)

Wyświetl plik

@ -203,8 +203,7 @@ void serialize(Stream& str, SetupParams& x)
struct ScanSession {
SetupParams params;
// whether the session setup has been computed via gl*_compute_session()
// gl843-only
// whether the session setup has been computed via compute_session()
bool computed = false;
// specifies the reduction (if any) of hardware dpi on the Genesys chip side.