kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Update all sensors when searching for reference point
rodzic
91b20fb268
commit
e5a90e8005
|
@ -230,6 +230,28 @@ Genesys_Sensor& sanei_genesys_find_sensor_for_write(Genesys_Device* dev, int dpi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::vector<std::reference_wrapper<const Genesys_Sensor>>
|
||||||
|
sanei_genesys_find_sensors_all(Genesys_Device* dev, ScanMethod scan_method)
|
||||||
|
{
|
||||||
|
std::vector<std::reference_wrapper<const Genesys_Sensor>> ret;
|
||||||
|
for (const Genesys_Sensor& sensor : sanei_genesys_find_sensors_all_for_write(dev, scan_method)) {
|
||||||
|
ret.push_back(sensor);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::reference_wrapper<Genesys_Sensor>>
|
||||||
|
sanei_genesys_find_sensors_all_for_write(Genesys_Device* dev, ScanMethod scan_method)
|
||||||
|
{
|
||||||
|
std::vector<std::reference_wrapper<Genesys_Sensor>> ret;
|
||||||
|
for (auto& sensor : *s_sensors) {
|
||||||
|
if (dev->model->ccd_type == sensor.sensor_id && sensor.method == scan_method) {
|
||||||
|
ret.push_back(sensor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sanei_genesys_init_structs (Genesys_Device * dev)
|
sanei_genesys_init_structs (Genesys_Device * dev)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1940,9 +1940,11 @@ static void gl124_search_start_position(Genesys_Device* dev)
|
||||||
/* update regs to copy ASIC internal state */
|
/* update regs to copy ASIC internal state */
|
||||||
dev->reg = local_reg;
|
dev->reg = local_reg;
|
||||||
|
|
||||||
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
|
for (auto& sensor_update : sanei_genesys_find_sensors_all_for_write(dev, ScanMethod::FLATBED)) {
|
||||||
|
sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels,
|
||||||
dev->model->search_lines);
|
dev->model->search_lines);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// sets up register for coarse gain calibration
|
// sets up register for coarse gain calibration
|
||||||
// todo: check it for scanners using it
|
// todo: check it for scanners using it
|
||||||
|
|
|
@ -2183,9 +2183,11 @@ static void gl646_search_start_position(Genesys_Device* dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
// now search reference points on the data
|
// now search reference points on the data
|
||||||
sanei_genesys_search_reference_point(dev, sensor, data.data(), sensor.CCD_start_xoffset,
|
for (auto& sensor_update : sanei_genesys_find_sensors_all_for_write(dev, ScanMethod::FLATBED)) {
|
||||||
|
sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0,
|
||||||
resolution, settings.pixels, settings.lines);
|
resolution, settings.pixels, settings.lines);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* internally overriden during effective calibration
|
* internally overriden during effective calibration
|
||||||
|
|
|
@ -2991,11 +2991,11 @@ static void gl841_search_start_position(Genesys_Device* dev)
|
||||||
/* update regs to copy ASIC internal state */
|
/* update regs to copy ASIC internal state */
|
||||||
dev->reg = local_reg;
|
dev->reg = local_reg;
|
||||||
|
|
||||||
// TODO: find out where sanei_genesys_search_reference_point stores information,
|
for (auto& sensor_update : sanei_genesys_find_sensors_all_for_write(dev, ScanMethod::FLATBED)) {
|
||||||
// and use that correctly
|
sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels,
|
||||||
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
|
|
||||||
dev->model->search_lines);
|
dev->model->search_lines);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// sets up register for coarse gain calibration
|
// sets up register for coarse gain calibration
|
||||||
// todo: check it for scanners using it
|
// todo: check it for scanners using it
|
||||||
|
|
|
@ -2366,9 +2366,11 @@ static void gl843_search_start_position(Genesys_Device* dev)
|
||||||
/* update regs to copy ASIC internal state */
|
/* update regs to copy ASIC internal state */
|
||||||
dev->reg = local_reg;
|
dev->reg = local_reg;
|
||||||
|
|
||||||
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
|
for (auto& sensor_update : sanei_genesys_find_sensors_all_for_write(dev, ScanMethod::FLATBED)) {
|
||||||
|
sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels,
|
||||||
dev->model->search_lines);
|
dev->model->search_lines);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// sets up register for coarse gain calibration
|
// sets up register for coarse gain calibration
|
||||||
// todo: check it for scanners using it
|
// todo: check it for scanners using it
|
||||||
|
|
|
@ -1632,9 +1632,11 @@ static void gl846_search_start_position(Genesys_Device* dev)
|
||||||
|
|
||||||
// TODO: find out where sanei_genesys_search_reference_point stores information,
|
// TODO: find out where sanei_genesys_search_reference_point stores information,
|
||||||
// and use that correctly
|
// and use that correctly
|
||||||
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
|
for (auto& sensor_update : sanei_genesys_find_sensors_all_for_write(dev, ScanMethod::FLATBED)) {
|
||||||
|
sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels,
|
||||||
dev->model->search_lines);
|
dev->model->search_lines);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// sets up register for coarse gain calibration
|
// sets up register for coarse gain calibration
|
||||||
// todo: check it for scanners using it
|
// todo: check it for scanners using it
|
||||||
|
|
|
@ -1688,9 +1688,11 @@ static void gl847_search_start_position(Genesys_Device* dev)
|
||||||
|
|
||||||
// TODO: find out where sanei_genesys_search_reference_point stores information,
|
// TODO: find out where sanei_genesys_search_reference_point stores information,
|
||||||
// and use that correctly
|
// and use that correctly
|
||||||
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
|
for (auto& sensor_update : sanei_genesys_find_sensors_all_for_write(dev, ScanMethod::FLATBED)) {
|
||||||
|
sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels,
|
||||||
dev->model->search_lines);
|
dev->model->search_lines);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// sets up register for coarse gain calibration
|
// sets up register for coarse gain calibration
|
||||||
// todo: check it for scanners using it
|
// todo: check it for scanners using it
|
||||||
|
|
|
@ -439,6 +439,11 @@ const Genesys_Sensor& sanei_genesys_find_sensor(Genesys_Device* dev, int dpi,
|
||||||
Genesys_Sensor& sanei_genesys_find_sensor_for_write(Genesys_Device* dev, int dpi,
|
Genesys_Sensor& sanei_genesys_find_sensor_for_write(Genesys_Device* dev, int dpi,
|
||||||
ScanMethod scan_method);
|
ScanMethod scan_method);
|
||||||
|
|
||||||
|
std::vector<std::reference_wrapper<const Genesys_Sensor>>
|
||||||
|
sanei_genesys_find_sensors_all(Genesys_Device* dev, ScanMethod scan_method);
|
||||||
|
std::vector<std::reference_wrapper<Genesys_Sensor>>
|
||||||
|
sanei_genesys_find_sensors_all_for_write(Genesys_Device* dev, ScanMethod scan_method);
|
||||||
|
|
||||||
extern void sanei_genesys_init_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor,
|
extern void sanei_genesys_init_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor,
|
||||||
int pixels_per_line);
|
int pixels_per_line);
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue