genesys: No longer specify per-sensor hwdpi divisor

fix-build-obselete-jpeg
Povilas Kanapickas 2020-03-20 23:29:10 +02:00
rodzic 5a106f9e9c
commit 94efec957e
6 zmienionych plików z 1 dodań i 62 usunięć

Wyświetl plik

@ -4910,7 +4910,7 @@ static void probe_genesys_devices()
of Genesys_Calibration_Cache as is.
*/
static const char* CALIBRATION_IDENT = "sane_genesys";
static const int CALIBRATION_VERSION = 27;
static const int CALIBRATION_VERSION = 28;
bool read_calibration(std::istream& str, Genesys_Device::Calibration& calibration,
const std::string& path)

Wyświetl plik

@ -967,17 +967,8 @@ void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Se
throw SaneException("Unsupported depth setting %d", s.params.depth);
}
unsigned ccd_pixels_per_system_pixel = sensor.ccd_pixels_per_system_pixel();
// compute optical and output resolutions
if (dev->model->asic_type == AsicType::GL843) {
// FIXME: this may be incorrect, but need more scanners to test
s.hwdpi_divisor = sensor.get_hwdpi_divisor_for_dpi(s.params.xres);
} else {
s.hwdpi_divisor = sensor.get_hwdpi_divisor_for_dpi(s.params.xres * ccd_pixels_per_system_pixel);
}
s.ccd_size_divisor = sensor.get_ccd_size_divisor_for_dpi(s.params.xres);
s.pixel_count_ratio = sensor.pixel_count_ratio;

Wyświetl plik

@ -328,17 +328,12 @@ struct Genesys_Sensor {
std::function<unsigned(const Genesys_Sensor&, unsigned)> get_register_hwdpi_fun;
std::function<unsigned(const Genesys_Sensor&, unsigned)> get_ccd_size_divisor_fun;
std::function<unsigned(const Genesys_Sensor&, unsigned)> get_hwdpi_divisor_fun;
unsigned get_register_hwdpi(unsigned xres) const { return get_register_hwdpi_fun(*this, xres); }
unsigned get_ccd_size_divisor_for_dpi(unsigned xres) const
{
return get_ccd_size_divisor_fun(*this, xres);
}
unsigned get_hwdpi_divisor_for_dpi(unsigned xres) const
{
return get_hwdpi_divisor_fun(*this, xres);
}
// how many CCD pixels are processed per system pixel time. This corresponds to CKSEL + 1
unsigned ccd_pixels_per_system_pixel() const

Wyświetl plik

@ -97,7 +97,6 @@ bool ScanSession::operator==(const ScanSession& other) const
{
return params == other.params &&
computed == other.computed &&
hwdpi_divisor == other.hwdpi_divisor &&
ccd_size_divisor == other.ccd_size_divisor &&
optical_resolution == other.optical_resolution &&
optical_pixels == other.optical_pixels &&
@ -136,7 +135,6 @@ std::ostream& operator<<(std::ostream& out, const ScanSession& session)
{
out << "ScanSession{\n"
<< " computed: " << session.computed << '\n'
<< " hwdpi_divisor: " << session.hwdpi_divisor << '\n'
<< " ccd_size_divisor: " << session.ccd_size_divisor << '\n'
<< " optical_resolution: " << session.optical_resolution << '\n'
<< " optical_pixels: " << session.optical_pixels << '\n'

Wyświetl plik

@ -211,10 +211,6 @@ struct ScanSession {
// 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.
// except gl646
unsigned hwdpi_divisor = 1;
// specifies the reduction (if any) of CCD effective dpi which is performed by latching the
// data coming from CCD in such a way that 1/2 or 3/4 of pixel data is ignored.
unsigned ccd_size_divisor = 1;
@ -343,7 +339,6 @@ void serialize(Stream& str, ScanSession& x)
serialize(str, x.params);
serialize_newline(str);
serialize(str, x.computed);
serialize(str, x.hwdpi_divisor);
serialize(str, x.ccd_size_divisor);
serialize(str, x.optical_resolution);
serialize(str, x.optical_pixels);

Wyświetl plik

@ -104,11 +104,6 @@ inline unsigned get_ccd_size_divisor_gl124(const Genesys_Sensor& sensor, unsigne
return 1;
}
inline unsigned default_get_hwdpi_divisor_for_dpi(const Genesys_Sensor& sensor, unsigned xres)
{
return sensor.optical_res / default_get_register_hwdpi(sensor, xres);
}
StaticInit<std::vector<Genesys_Sensor>> s_sensors;
void genesys_init_sensor_tables()
@ -136,7 +131,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -160,7 +154,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -184,7 +177,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -210,7 +202,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 2.38f, 2.35f, 2.34f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
@ -336,7 +327,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 2.1f, 2.1f, 2.1f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
@ -433,7 +423,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 2.1f, 2.1f, 2.1f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
@ -533,7 +522,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -565,7 +553,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 2.1f, 2.1f, 2.1f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
@ -620,7 +607,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
@ -744,7 +730,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -787,7 +772,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -830,7 +814,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -873,7 +856,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -916,7 +898,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -932,7 +913,6 @@ void genesys_init_sensor_tables()
sensor.exposure = { 0x0000, 0x0000, 0x0000 };
sensor.gamma = { 2.2f, 2.2f, 2.2f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1036,7 +1016,6 @@ void genesys_init_sensor_tables()
sensor.gain_white_ref = 200;
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1139,7 +1118,6 @@ void genesys_init_sensor_tables()
sensor.exposure = { 0x01c1, 0x0126, 0x00e5 };
sensor.gamma = { 2.2f, 2.2f, 2.2f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1258,7 +1236,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
struct CustomSensorSettings
@ -1292,7 +1269,6 @@ void genesys_init_sensor_tables()
sensor.custom_regs = {};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1473,7 +1449,6 @@ void genesys_init_sensor_tables()
sensor.custom_regs = {};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1586,7 +1561,6 @@ void genesys_init_sensor_tables()
sensor.stagger_config = StaggerConfig{4800, 8};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor;
sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; };
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1683,7 +1657,6 @@ void genesys_init_sensor_tables()
sensor.custom_regs = {};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor;
sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; };
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1839,7 +1812,6 @@ void genesys_init_sensor_tables()
sensor.custom_regs = {};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor;
sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; };
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
@ -1962,7 +1934,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -1979,7 +1950,6 @@ void genesys_init_sensor_tables()
sensor.exposure = { 0x0000, 0x0000, 0x0000 };
sensor.gamma = { 2.2f, 2.2f, 2.2f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124;
{
@ -2103,7 +2073,6 @@ void genesys_init_sensor_tables()
sensor.exposure = { 0x0000, 0x0000, 0x0000 };
sensor.gamma = { 2.2f, 2.2f, 2.2f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124;
{
@ -2211,7 +2180,6 @@ void genesys_init_sensor_tables()
sensor.exposure = { 0x0000, 0x0000, 0x0000 };
sensor.gamma = { 2.2f, 2.2f, 2.2f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124;
{
@ -2322,7 +2290,6 @@ void genesys_init_sensor_tables()
sensor.exposure = { 0x0000, 0x0000, 0x0000 };
sensor.gamma = { 2.2f, 2.2f, 2.2f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124;
{
@ -2461,7 +2428,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
@ -2509,7 +2475,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
struct CustomSensorSettings
@ -2599,7 +2564,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
struct CustomSensorSettings
@ -2672,7 +2636,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact;
{
struct CustomSensorSettings
@ -2734,7 +2697,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.7f, 1.7f, 1.7f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
struct CustomSensorSettings
@ -2778,7 +2740,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.7f, 1.7f, 1.7f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
{
struct CustomSensorSettings
@ -2840,7 +2801,6 @@ void genesys_init_sensor_tables()
};
sensor.gamma = { 1.0f, 1.0f, 1.0f };
sensor.get_register_hwdpi_fun = default_get_register_hwdpi;
sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi;
sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi;
s_sensors->push_back(sensor);
}