kopia lustrzana https://gitlab.com/sane-project/backends
				
				
				
			genesys: Simplify led calibration on gl841
							rodzic
							
								
									f6b606503c
								
							
						
					
					
						commit
						4aace34caa
					
				| 
						 | 
				
			
			@ -2005,8 +2005,8 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes
 | 
			
		|||
 | 
			
		||||
    unsigned resolution = sensor.shading_resolution;
 | 
			
		||||
 | 
			
		||||
    const auto& calib_sensor_base = sanei_genesys_find_sensor(dev, resolution, channels,
 | 
			
		||||
                                                              dev->settings.scan_method);
 | 
			
		||||
    const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels,
 | 
			
		||||
                                                         dev->settings.scan_method);
 | 
			
		||||
 | 
			
		||||
    ScanSession session;
 | 
			
		||||
    session.params.xres = resolution;
 | 
			
		||||
| 
						 | 
				
			
			@ -2025,9 +2025,9 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes
 | 
			
		|||
                           ScanFlag::SINGLE_LINE |
 | 
			
		||||
                           ScanFlag::IGNORE_STAGGER_OFFSET |
 | 
			
		||||
                           ScanFlag::IGNORE_COLOR_OFFSET;
 | 
			
		||||
    compute_session(dev, session, calib_sensor_base);
 | 
			
		||||
    compute_session(dev, session, calib_sensor);
 | 
			
		||||
 | 
			
		||||
    init_regs_for_scan_session(dev, calib_sensor_base, ®s, session);
 | 
			
		||||
    init_regs_for_scan_session(dev, calib_sensor, ®s, session);
 | 
			
		||||
 | 
			
		||||
    dev->interface->write_registers(regs);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2051,21 +2051,15 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes
 | 
			
		|||
  max_exposure=((exp[0]+exp[1]+exp[2])/3)*2;
 | 
			
		||||
  target=sensor.gain_white_ref*256;
 | 
			
		||||
 | 
			
		||||
    auto calib_sensor = calib_sensor_base;
 | 
			
		||||
 | 
			
		||||
    bool acceptable = false;
 | 
			
		||||
    do {
 | 
			
		||||
        calib_sensor.exposure.red = exp[0];
 | 
			
		||||
        calib_sensor.exposure.green = exp[1];
 | 
			
		||||
        calib_sensor.exposure.blue = exp[2];
 | 
			
		||||
 | 
			
		||||
        regs_set_exposure(dev->model->asic_type, regs, calib_sensor.exposure);
 | 
			
		||||
        dev->interface->write_register(0x10, (calib_sensor.exposure.red >> 8) & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x11, calib_sensor.exposure.red & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x12, (calib_sensor.exposure.green >> 8) & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x13, calib_sensor.exposure.green & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x14, (calib_sensor.exposure.blue >> 8) & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x15, calib_sensor.exposure.blue & 0xff);
 | 
			
		||||
        regs_set_exposure(dev->model->asic_type, regs, { exp[0], exp[1], exp[2] });
 | 
			
		||||
        dev->interface->write_register(0x10, (exp[0] >> 8) & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x11, exp[0] & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x12, (exp[1] >> 8) & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x13, exp[1] & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x14, (exp[2] >> 8) & 0xff);
 | 
			
		||||
        dev->interface->write_register(0x15, exp[2] & 0xff);
 | 
			
		||||
 | 
			
		||||
        dev->interface->write_registers(regs);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2075,7 +2069,7 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes
 | 
			
		|||
        if (is_testing_mode()) {
 | 
			
		||||
            dev->interface->test_checkpoint("led_calibration");
 | 
			
		||||
            move_back_home(dev, true);
 | 
			
		||||
            return calib_sensor.exposure;
 | 
			
		||||
            return { exp[0], exp[1], exp[2] };
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        auto image = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes);
 | 
			
		||||
| 
						 | 
				
			
			@ -2169,7 +2163,7 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes
 | 
			
		|||
 | 
			
		||||
    dev->cmd_set->move_back_home(dev, true);
 | 
			
		||||
 | 
			
		||||
    return calib_sensor.exposure;
 | 
			
		||||
    return { exp[0], exp[1], exp[2] };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** @brief calibration for AD frontend devices
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue