Lines Matching defs:sensor

161     for (const auto& sensor : *s_sensors) {
162 if (dev->model->sensor_id == sensor.sensor_id) {
163 return sensor;
166 throw std::runtime_error("Given device does not have sensor defined");
174 for (auto& sensor : *s_sensors) {
175 if (dev->model->sensor_id == sensor.sensor_id && sensor.resolutions.matches(dpi) &&
176 sensor.matches_channel_count(channels) && sensor.method == scan_method)
178 return &sensor;
197 const auto* sensor = find_sensor_impl(dev, dpi, channels, scan_method);
198 if (sensor)
199 return *sensor;
200 throw std::runtime_error("Given device does not have sensor defined");
209 auto* sensor = find_sensor_impl(dev, dpi, channels, scan_method);
210 if (sensor)
211 return *sensor;
212 throw std::runtime_error("Given device does not have sensor defined");
221 for (auto& sensor : *s_sensors) {
222 if (dev->model->sensor_id == sensor.sensor_id && sensor.method == scan_method) {
223 ret.push_back(sensor);
234 for (auto& sensor : *s_sensors) {
235 if (dev->model->sensor_id == sensor.sensor_id && sensor.method == scan_method) {
236 ret.push_back(sensor);
398 static void genesys_send_offset_and_shading(Genesys_Device* dev, const Genesys_Sensor& sensor,
408 dev->cmd_set->send_shading_data(dev, sensor, data, size);
417 void sanei_genesys_init_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor,
442 genesys_send_offset_and_shading(dev, sensor, shading_data.data(),
489 void scanner_send_slope_table(Genesys_Device* dev, const Genesys_Sensor& sensor, unsigned table_nr,
560 switch (sensor.register_dpihw) {
647 void scanner_setup_sensor(Genesys_Device& dev, const Genesys_Sensor& sensor,
652 for (const auto& custom_reg : sensor.custom_regs) {
659 regs_set_exposure(dev.model->asic_type, regs, sensor.exposure);
662 dev.segment_order = sensor.segment_order;
739 const auto& sensor = sanei_genesys_find_sensor(&dev, resolution, 3, scan_method);
794 compute_session(&dev, session, sensor);
796 dev.cmd_set->init_regs_for_scan_session(&dev, sensor, &local_reg, session);
929 const auto& sensor = sanei_genesys_find_sensor(&dev, resolution, 1, dev.model->default_method);
956 compute_session(&dev, session, sensor);
958 dev.cmd_set->init_regs_for_scan_session(&dev, sensor, &local_reg, session);
1062 const auto& sensor = sanei_genesys_find_sensor(&dev, resolution, 1, scan_method);
1095 compute_session(&dev, session, sensor);
1097 dev.cmd_set->init_regs_for_scan_session(&dev, sensor, &local_reg, session);
1162 auto& sensor = sanei_genesys_find_sensor(&dev, dpi, channels, dev.settings.scan_method);
1163 dev.cmd_set->set_fe(&dev, sensor, AFE_SET);
1205 compute_session(&dev, session, sensor);
1207 dev.cmd_set->init_regs_for_scan_session(&dev, sensor, &local_reg, session);
1211 dev.cmd_set->begin_scan(&dev, sensor, &local_reg, true);
1240 dev.cmd_set->begin_scan(&dev, sensor, &local_reg, true);
1381 void scanner_offset_calibration(Genesys_Device& dev, const Genesys_Sensor& sensor,
1422 unsigned target_pixels = dev.model->x_size_calib_mm * sensor.full_resolution / MM_PER_INCH;
1424 unsigned black_pixels = (sensor.black_pixels * sensor.full_resolution) / sensor.full_resolution;
1428 unsigned resolution = sensor.full_resolution;
1430 const Genesys_Sensor* calib_sensor = &sensor;
1438 unsigned factor = sensor.full_resolution / resolution;
1684 void scanner_coarse_gain_calibration(Genesys_Device& dev, const Genesys_Sensor& sensor,
1739 unsigned resolution = sensor.full_resolution;
1763 if (dev.settings.xres < sensor.full_resolution) {
1773 const Genesys_Sensor* calib_sensor = &sensor;
1940 void move_to_calibration_area(Genesys_Device* dev, const Genesys_Sensor& sensor,
1944 SensorExposure scanner_led_calibration(Genesys_Device& dev, const Genesys_Sensor& sensor,
1972 gl124::move_to_calibration_area(&dev, sensor, regs);
1977 unsigned resolution = sensor.shading_resolution;
2019 std::uint16_t target = sensor.gain_white_ref * 256;
2217 static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_Sensor& sensor,
2225 dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg);
2229 dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg);
2251 dev->calib_session.params.startx * sensor.full_resolution / dev->calib_session.params.xres;
2282 sanei_genesys_set_lamp_power(dev, sensor, local_reg, false);
2284 sanei_genesys_set_lamp_power(dev, sensor, local_reg, true);
2300 dev->cmd_set->begin_scan(dev, sensor, &local_reg, start_motor);
2353 static void genesys_dark_shading_by_dummy_pixel(Genesys_Device* dev, const Genesys_Sensor& sensor)
2372 dev->calib_session.params.startx * sensor.full_resolution / dev->calib_session.params.xres;
2382 if (dev->settings.xres <= sensor.full_resolution / 2) {
2398 xend = sensor.black_pixels;
2460 static void genesys_host_shading_calibration_impl(Genesys_Device& dev, const Genesys_Sensor& sensor,
2473 dev.cmd_set->init_regs_for_shading(&dev, sensor, local_reg);
2481 sanei_genesys_set_lamp_power(&dev, sensor, local_reg, false);
2483 sanei_genesys_set_lamp_power(&dev, sensor, local_reg, true);
2499 dev.cmd_set->begin_scan(&dev, sensor, &local_reg, start_motor);
2538 static void genesys_dark_shading_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor,
2543 genesys_host_shading_calibration_impl(*dev, sensor, dev->dark_average_data, true,
2546 genesys_shading_calibration_impl(dev, sensor, local_reg, dev->dark_average_data, true,
2551 static void genesys_white_shading_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor,
2556 genesys_host_shading_calibration_impl(*dev, sensor, dev->white_average_data, false,
2559 genesys_shading_calibration_impl(dev, sensor, local_reg, dev->white_average_data, false,
2567 const Genesys_Sensor& sensor,
2573 dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg);
2577 dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg);
2597 dev->calib_session.params.startx * sensor.full_resolution / dev->calib_session.params.xres;
2622 sanei_genesys_set_lamp_power(dev, sensor, local_reg, true);
2627 dev->cmd_set->begin_scan(dev, sensor, &local_reg, false);
2779 static void compute_averaged_planar(Genesys_Device * dev, const Genesys_Sensor& sensor,
2826 if (sensor.full_resolution > sensor.get_optical_resolution()) {
2831 basepixels = sensor.full_resolution / res;
3094 const Genesys_Sensor& sensor,
3113 if (sensor.full_resolution > sensor.get_optical_resolution()) {
3116 basepixels = sensor.full_resolution / x; // this should be evenly dividable
3185 static void genesys_send_shading_coefficient(Genesys_Device* dev, const Genesys_Sensor& sensor)
3189 if (sensor.use_host_side_calib) {
3202 dev->calib_session.params.startx * sensor.full_resolution / dev->calib_session.params.xres;
3240 /* could be 0xa800 because sensor is truly 2400 dpi, then halved because
3254 genesys_send_offset_and_shading(dev, sensor, shading_data.data(), length);
3270 if (dev->settings.xres > sensor.full_resolution) {
3273 factor = sensor.full_resolution / dev->settings.xres;
3278 * each sensor is used only in one mode. Currently only the CIS_XP200
3322 if (dev->settings.xres <= sensor.full_resolution / 2) {
3323 o = o - sensor.dummy_pixel / 2;
3337 if(dev->settings.xres<=sensor.full_resolution/2)
3339 o = o - sensor.dummy_pixel;
3355 // FIXME: use sensor.ccd_pixels_per_system_pixel()
3441 compute_averaged_planar (dev, sensor,
3452 compute_averaged_planar (dev, sensor,
3463 compute_shifted_coefficients (dev, sensor,
3475 throw SaneException(SANE_STATUS_UNSUPPORTED, "sensor %d not supported",
3481 genesys_send_offset_and_shading(dev, sensor, shading_data.data(), length);
3493 genesys_restore_calibration(Genesys_Device * dev, Genesys_Sensor& sensor)
3502 auto session = dev->cmd_set->calculate_scan_session(dev, sensor, dev->settings);
3511 sensor.exposure = cache.sensor.exposure;
3520 genesys_send_shading_coefficient(dev, sensor);
3532 static void genesys_save_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor)
3539 auto session = dev->cmd_set->calculate_scan_session(dev, sensor, dev->settings);
3566 found_cache_it->sensor = sensor;
3576 static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sensor)
3581 unsigned coarse_res = sensor.full_resolution;
3582 if (dev->settings.yres <= sensor.full_resolution / 2) {
3601 dev->cmd_set->offset_calibration(dev, sensor, local_reg);
3604 dev->cmd_set->coarse_gain_calibration(dev, sensor, local_reg, coarse_res);
3618 auto calib_exposure = dev->cmd_set->led_calibration(dev, sensor, local_reg);
3620 sanei_genesys_find_sensors_all_for_write(dev, sensor.method)) {
3623 sensor.exposure = calib_exposure;
3627 sensor.exposure = dev->cmd_set->led_calibration(dev, sensor, local_reg);
3634 dev->cmd_set->offset_calibration(dev, sensor, local_reg);
3637 dev->cmd_set->coarse_gain_calibration(dev, sensor, local_reg, coarse_res);
3641 /* we always use sensor pixel number when the ASIC can't handle multi-segments sensor */
3652 sanei_genesys_init_shading_data(dev, sensor, pixels_per_line);
3664 genesys_dark_white_shading_calibration(dev, sensor, local_reg);
3671 genesys_dark_shading_calibration(dev, sensor, local_reg);
3676 genesys_white_shading_calibration(dev, sensor, local_reg);
3684 genesys_dark_shading_by_dummy_pixel(dev, sensor);
3692 genesys_send_shading_coefficient(dev, sensor);
3705 static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& sensor)
3715 unsigned coarse_res = sensor.full_resolution;
3730 dev->cmd_set->offset_calibration(dev, sensor, local_reg);
3733 dev->cmd_set->coarse_gain_calibration(dev, sensor, local_reg, coarse_res);
3741 dev->cmd_set->led_calibration(dev, sensor, local_reg);
3746 dev->cmd_set->offset_calibration(dev, sensor, local_reg);
3749 dev->cmd_set->coarse_gain_calibration(dev, sensor, local_reg, coarse_res);
3765 genesys_dark_shading_calibration(dev, sensor, local_reg);
3785 genesys_white_shading_calibration(dev, sensor, local_reg);
3801 genesys_send_shading_coefficient(dev, sensor);
3805 genesys_save_calibration(dev, sensor);
3811 dev->settings.xres = sensor.full_resolution;
3818 static void genesys_scanner_calibration(Genesys_Device* dev, Genesys_Sensor& sensor)
3822 genesys_flatbed_calibration(dev, sensor);
3825 genesys_sheetfed_calibration(dev, sensor);
3842 const auto& sensor = sanei_genesys_find_sensor_any(dev);
3844 dev->cmd_set->init_regs_for_warmup(dev, sensor, &dev->reg);
3858 dev->cmd_set->begin_scan(dev, sensor, &dev->reg, false);
3921 static void init_regs_for_scan(Genesys_Device& dev, const Genesys_Sensor& sensor,
3927 auto session = dev.cmd_set->calculate_scan_session(&dev, sensor, dev.settings);
3947 compute_session(&dev, session, sensor);
3950 dev.cmd_set->init_regs_for_scan_session(&dev, sensor, &regs, session);
4002 auto& sensor = sanei_genesys_find_sensor_for_write(dev, dev->settings.xres,
4008 dev->cmd_set->send_gamma_table(dev, sensor);
4011 if (!genesys_restore_calibration (dev, sensor))
4020 genesys_scanner_calibration(dev, sensor);
4021 genesys_save_calibration(dev, sensor);
4039 init_regs_for_scan(*dev, sensor, dev->reg);
4043 sanei_genesys_set_lamp_power(dev, sensor, dev->reg, false);
4051 genesys_send_shading_coefficient(dev, sensor);
4058 dev->cmd_set->begin_scan(dev, sensor, &dev->reg, true);
4247 const auto& sensor = sanei_genesys_find_sensor(dev, settings.xres, settings.get_channels(),
4250 pixels_per_line = session_adjust_output_pixels(pixels_per_line, *dev, sensor,
4286 auto sensor = sanei_genesys_find_sensor(&dev, settings.xres, settings.get_channels(),
4288 auto session = dev.cmd_set->calculate_scan_session(&dev, sensor, settings);
5491 // FIXME: we create sensor tables for the sensor, this should happen when we know which sensor
5634 const Genesys_Sensor* sensor = nullptr;
5638 sensor = &sanei_genesys_find_sensor(dev, dev->settings.xres,
5706 if (!sensor)
5711 gamma_table = get_gamma_table(dev, *sensor, GENESYS_RED);
5713 gamma_table = get_gamma_table(dev, *sensor, GENESYS_BLUE);
5715 gamma_table = get_gamma_table(dev, *sensor, GENESYS_GREEN);
5726 if (!sensor)
5730 gamma_table = get_gamma_table(dev, *sensor, GENESYS_RED);
5740 if (!sensor)
5744 gamma_table = get_gamma_table(dev, *sensor, GENESYS_GREEN);
5754 if (!sensor)
5758 gamma_table = get_gamma_table(dev, *sensor, GENESYS_BLUE);
5786 if (!sensor) {
5795 auto session = dev->cmd_set->calculate_scan_session(dev, *sensor, dev->settings);
6059 auto& sensor = sanei_genesys_find_sensor_for_write(dev, dev->settings.xres,
6065 genesys_scanner_calibration(dev, sensor);