kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Simplify physical pixel count computation on gl124
rodzic
e2fc129b56
commit
576d1fcdba
|
@ -895,9 +895,6 @@ void compute_session_pixel_offsets(const Genesys_Device* dev, ScanSession& s,
|
|||
|
||||
// FIXME: should we add sensor.dummy_pxel to pixel_startx at this point?
|
||||
s.pixel_endx = s.pixel_startx + s.optical_pixels;
|
||||
|
||||
s.pixel_startx /= s.hwdpi_divisor * s.segment_count * ccd_pixels_per_system_pixel;
|
||||
s.pixel_endx /= s.hwdpi_divisor * s.segment_count * ccd_pixels_per_system_pixel;
|
||||
}
|
||||
|
||||
s.pixel_count_ratio = sensor.pixel_count_ratio;
|
||||
|
|
|
@ -1958,12 +1958,13 @@ void genesys_init_sensor_tables()
|
|||
ValueFilterAny<unsigned> resolutions;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
std::vector<unsigned> segment_order;
|
||||
GenesysRegisterSettingSet custom_regs;
|
||||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75, 100, 150 }, 4608, { 462, 609, 453 }, std::vector<unsigned>{}, {
|
||||
{ { 75, 100, 150 }, 4608, { 462, 609, 453 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x0c },
|
||||
{ 0x52, 0x00 }, { 0x53, 0x02 }, { 0x54, 0x04 }, { 0x55, 0x06 },
|
||||
|
@ -1980,7 +1981,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 300 }, 4608, { 462, 609, 453 }, std::vector<unsigned>{}, {
|
||||
{ { 300 }, 4608, { 462, 609, 453 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 }, { 0x20, 0x0c },
|
||||
{ 0x52, 0x00 }, { 0x53, 0x02 }, { 0x54, 0x04 }, { 0x55, 0x06 },
|
||||
|
@ -1997,7 +1998,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 600 }, 5360, { 823, 1117, 805 }, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 5360, { 823, 1117, 805 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 }, { 0x20, 0x0a },
|
||||
{ 0x52, 0x00 }, { 0x53, 0x02 }, { 0x54, 0x04 }, { 0x55, 0x06 },
|
||||
|
@ -2014,7 +2015,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 1200 }, 10528, { 6071, 6670, 6042 }, { 0, 1 }, {
|
||||
{ { 1200 }, 10528, { 6071, 6670, 6042 }, Ratio{1, 4}, { 0, 1 }, {
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 },{ 0x20, 0x08 },
|
||||
{ 0x52, 0x00 }, { 0x53, 0x02 }, { 0x54, 0x04 }, { 0x55, 0x06 },
|
||||
|
@ -2031,7 +2032,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x22 },
|
||||
}
|
||||
},
|
||||
{ { 2400 }, 20864, { 7451, 8661, 7405 }, { 0, 2, 1, 3 }, {
|
||||
{ { 2400 }, 20864, { 7451, 8661, 7405 }, Ratio{1, 4}, { 0, 2, 1, 3 }, {
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 }, { 0x20, 0x06 },
|
||||
{ 0x52, 0x00 }, { 0x53, 0x02 }, { 0x54, 0x04 }, { 0x55, 0x06 },
|
||||
|
@ -2054,6 +2055,7 @@ void genesys_init_sensor_tables()
|
|||
sensor.resolutions = setting.resolutions;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
sensor.segment_order = setting.segment_order;
|
||||
sensor.custom_regs = setting.custom_regs;
|
||||
s_sensors->push_back(sensor);
|
||||
|
@ -2080,12 +2082,14 @@ void genesys_init_sensor_tables()
|
|||
ValueFilterAny<unsigned> resolutions;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
std::vector<unsigned> segment_order;
|
||||
GenesysRegisterSettingSet custom_regs;
|
||||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75, 100, 150, 300 }, 4608, { 1244, 1294, 1144 }, std::vector<unsigned>{}, {
|
||||
{ { 75, 100, 150, 300 },
|
||||
4608, { 1244, 1294, 1144 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
{ 0x16, 0x15 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 }, { 0x20, 0x02 },
|
||||
{ 0x52, 0x04 }, { 0x53, 0x06 }, { 0x54, 0x00 }, { 0x55, 0x02 },
|
||||
|
@ -2102,7 +2106,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 600 }, 5360, { 2394, 2444, 2144 }, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 5360, { 2394, 2444, 2144 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
{ 0x16, 0x11 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 }, { 0x20, 0x02 },
|
||||
{ 0x52, 0x04 }, { 0x53, 0x06 }, { 0x54, 0x00 }, { 0x55, 0x02 },
|
||||
|
@ -2119,7 +2123,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 1200 }, 10528, { 4694, 4644, 4094 }, std::vector<unsigned>{}, {
|
||||
{ { 1200 }, 10528, { 4694, 4644, 4094 }, Ratio{1, 2}, std::vector<unsigned>{}, {
|
||||
{ 0x16, 0x15 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 }, { 0x20, 0x02 },
|
||||
{ 0x52, 0x04 }, { 0x53, 0x06 }, { 0x54, 0x00 }, { 0x55, 0x02 },
|
||||
|
@ -2136,7 +2140,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 2400 }, 20864, { 8944, 8144, 7994 }, std::vector<unsigned>{}, {
|
||||
{ { 2400 }, 20864, { 8944, 8144, 7994 }, Ratio{1, 1}, std::vector<unsigned>{}, {
|
||||
{ 0x16, 0x11 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x00 }, { 0x20, 0x02 },
|
||||
{ 0x52, 0x04 }, { 0x53, 0x06 }, { 0x54, 0x00 }, { 0x55, 0x02 },
|
||||
|
@ -2159,6 +2163,7 @@ void genesys_init_sensor_tables()
|
|||
sensor.resolutions = setting.resolutions;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
sensor.segment_order = setting.segment_order;
|
||||
sensor.custom_regs = setting.custom_regs;
|
||||
s_sensors->push_back(sensor);
|
||||
|
@ -2185,12 +2190,13 @@ void genesys_init_sensor_tables()
|
|||
ValueFilterAny<unsigned> resolutions;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
std::vector<unsigned> segment_order;
|
||||
GenesysRegisterSettingSet custom_regs;
|
||||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75, 100, 150, 300 }, 2768, { 388, 574, 393 }, std::vector<unsigned>{}, {
|
||||
{ { 75, 100, 150, 300 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x0c },
|
||||
|
@ -2208,7 +2214,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 600 }, 5360, { 388, 574, 393 }, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 5360, { 388, 574, 393 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x0a },
|
||||
|
@ -2226,7 +2232,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 1200 }, 10528, { 388, 574, 393 }, {0, 1}, {
|
||||
{ { 1200 }, 10528, { 388, 574, 393 }, Ratio{1, 4}, {0, 1}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x08 },
|
||||
|
@ -2244,7 +2250,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x22 },
|
||||
},
|
||||
},
|
||||
{ { 2400 }, 20864, { 6839, 8401, 6859 }, {0, 2, 1, 3}, {
|
||||
{ { 2400 }, 20864, { 6839, 8401, 6859 }, Ratio{1, 4}, {0, 2, 1, 3}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x06 },
|
||||
|
@ -2268,6 +2274,7 @@ void genesys_init_sensor_tables()
|
|||
sensor.resolutions = setting.resolutions;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
sensor.segment_order = setting.segment_order;
|
||||
sensor.custom_regs = setting.custom_regs;
|
||||
s_sensors->push_back(sensor);
|
||||
|
@ -2294,12 +2301,14 @@ void genesys_init_sensor_tables()
|
|||
ValueFilterAny<unsigned> resolutions;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
std::vector<unsigned> segment_order;
|
||||
GenesysRegisterSettingSet custom_regs;
|
||||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75, 100, 150, 300 }, 2768, { 388, 574, 393 }, std::vector<unsigned>{}, {
|
||||
{ { 75, 100, 150, 300 },
|
||||
2768, { 388, 574, 393 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x0c },
|
||||
|
@ -2317,7 +2326,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 600 }, 5360, { 388, 574, 393 }, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 5360, { 388, 574, 393 }, Ratio{1, 4}, std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x0a },
|
||||
|
@ -2335,7 +2344,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 1200 }, 10528, { 388, 574, 393 }, {0, 1}, {
|
||||
{ { 1200 }, 10528, { 388, 574, 393 }, Ratio{1, 4}, {0, 1}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x08 },
|
||||
|
@ -2353,7 +2362,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x22 },
|
||||
}
|
||||
},
|
||||
{ { 2400 }, 20864, { 6839, 8401, 6859 }, {0, 2, 1, 3}, {
|
||||
{ { 2400 }, 20864, { 6839, 8401, 6859 },Ratio{1, 4}, {0, 2, 1, 3}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x06 },
|
||||
|
@ -2377,6 +2386,7 @@ void genesys_init_sensor_tables()
|
|||
sensor.resolutions = setting.resolutions;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
sensor.segment_order = setting.segment_order;
|
||||
sensor.custom_regs = setting.custom_regs;
|
||||
s_sensors->push_back(sensor);
|
||||
|
|
Ładowanie…
Reference in New Issue