genesys: Update all sensors when searching for reference point

merge-requests/118/head
Povilas Kanapickas 2019-08-04 02:48:29 +03:00
rodzic 91b20fb268
commit e5a90e8005
8 zmienionych plików z 51 dodań i 14 usunięć

Wyświetl plik

@ -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
sanei_genesys_init_structs (Genesys_Device * dev)
{

Wyświetl plik

@ -1940,8 +1940,10 @@ static void gl124_search_start_position(Genesys_Device* dev)
/* update regs to copy ASIC internal state */
dev->reg = local_reg;
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
dev->model->search_lines);
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);
}
}
// sets up register for coarse gain calibration

Wyświetl plik

@ -2183,8 +2183,10 @@ static void gl646_search_start_position(Genesys_Device* dev)
}
// now search reference points on the data
sanei_genesys_search_reference_point(dev, sensor, data.data(), sensor.CCD_start_xoffset,
resolution, settings.pixels, settings.lines);
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);
}
}
/**

Wyświetl plik

@ -2991,10 +2991,10 @@ static void gl841_search_start_position(Genesys_Device* dev)
/* update regs to copy ASIC internal state */
dev->reg = local_reg;
// TODO: find out where sanei_genesys_search_reference_point stores information,
// and use that correctly
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
dev->model->search_lines);
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);
}
}
// sets up register for coarse gain calibration

Wyświetl plik

@ -2366,8 +2366,10 @@ static void gl843_search_start_position(Genesys_Device* dev)
/* update regs to copy ASIC internal state */
dev->reg = local_reg;
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
dev->model->search_lines);
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);
}
}
// sets up register for coarse gain calibration

Wyświetl plik

@ -1632,8 +1632,10 @@ static void gl846_search_start_position(Genesys_Device* dev)
// TODO: find out where sanei_genesys_search_reference_point stores information,
// and use that correctly
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
dev->model->search_lines);
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);
}
}
// sets up register for coarse gain calibration

Wyświetl plik

@ -1688,8 +1688,10 @@ static void gl847_search_start_position(Genesys_Device* dev)
// TODO: find out where sanei_genesys_search_reference_point stores information,
// and use that correctly
sanei_genesys_search_reference_point(dev, sensor, data.data(), 0, dpi, pixels,
dev->model->search_lines);
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);
}
}
// sets up register for coarse gain calibration

Wyświetl plik

@ -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,
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,
int pixels_per_line);